Beiträge von carlos1710

    Guten Abend Breadfish,


    ich erstelle mit folggener Syntax ein Pickup:
    GymLSInterior[0] = CreatePickup(1318,1,2229.5232,-1721.9972,13.5685,0);
    Keine errors doch das Pickup wird nicht angezeigt, es ist vor der Sporthalle in LS. Ein Pfeil der NUR in der standardisierten Virteullen Welt angezeigt werden soll und für immer bleibt als Eingang.
    Doch er wird nicht angezeigt. Andere Pickups ( Meine wafefnpickups) die unter Funktionen Createt werden sieht man auch doch die die ich unter OnGameModeInit Create bleiben unsichtbar.

    Yoa erstma meine Frundin fickn (falss ichs nicht überlebe).
    Dann mit kumpls ein ansaufen und das tun was mammi mir immer verboten hat, besoffen färhts sich am besten und den ein oder anderen Zombie nimmt man auchnoch mit.
    Wenn der Sprit alle is pach ich ne Dose A&W Root Beer aus, geniese es und dann gehts weiter, ich hab connections in die U.S Base in Wiesbaden, amerikanische ehemaligen Nachbarn wohnen nun da und ich denk die haben dort genug die Ammis ;) 2 darf ich mitnehmen, wer schließt sich mir an :D

    Ich suche einen Algorithmus mit dem ich die 3 größten Werte einer Arry in einer anderen Arry speicher.
    So habe ich angefangen:
    for(new i = 0;i < sizeof Gangzonen;i++)
    {
    Bigger[i] = GetBiggest(i);
    if(Bigger[i] == 0) Bigger2 = Gangzonen[i][GrovePPL];
    if(Bigger[i] == 1) Bigger2 = Gangzonen[i][BallasPPL];
    if(Bigger[i] == 2) Bigger2 = Gangzonen[i][VagosPPL];
    if(Bigger[i] == 3) Bigger2 = Gangzonen[i][AztecasPPL];
    if(Bigger[i] == 4) Bigger2 = 0;
    if(Bigger2 > TempBigger[0]) {TempBigger[0] = Bigger2;TempBigger[1] = i;} //TempBigger[0] ist die größte Zahl, TempBigger[i] ist die Herkunft
    }
    Damit bekomme ich den Größten Wert dieser Arry und speicher ihn unter TempBigger[0]
    wie bekomm ich den 2. und 3. größten? Dabei darf keine Zahl genau so groß sein wie TempBigger[0] gleichgroße zahlen werden aussortiert. Sollte die Arry nur 2 verschiedene Elemente haben, dann NUR dann darf das größte element doppelt vorkommen oder wenn die arry nur 1 zahl in ihren verschiedenen elementen hat nur dann darf 3 mal das selbe gespeichert werden.


    enum gangzonen_daten
    {
    Zone,
    Besitzer,
    GroveKills,
    BallasKills,
    VagosKills,
    AztecasKills,
    GrovePPL,
    BallasPPL,
    VagosPPL,
    AztecasPPL,
    Float:zone_minx,
    Float:zone_miny,
    Float:zone_maxx,
    Float:zone_maxy
    }


    new Gangzonen[10][gangzonen_daten];
    Interessant ist, dann nur gangzone 8 und 7 nocht angezeigt werden, gangzone 9 tut es wieder
    //EDIT: gefunden die zone ist falsch justiert

    Gibt es eine Maximale Anzahl an Gangzonen die für einen Spieler angezeigt werden ?
    Ich habe das Problem das ein eine Gangzone erstell, diese aus der datenbank geladen wird (durch prints gefrüft) und alle werden geladen auser 2.

    for(new i = 0;i < sizeof Gangzonen;i++)
    {
    LoadGangzone(i);
    printf("%d %f %f %f %f d",i,Gangzonen[i][zone_minx],Gangzonen[i][zone_miny],Gangzonen[i][zone_maxx],Gangzonen[i][zone_maxy]);
    Gangzonen[i][Zone] = GangZoneCreate(Gangzonen[i][zone_minx],Gangzonen[i][zone_miny],Gangzonen[i][zone_maxx],Gangzonen[i][zone_maxy]);
    }
    Alle werden Geladen
    for(new i = 0;i < sizeof Gangzonen;i++)
    {
    GangZoneShowForPlayer(playerid,Gangzonen[i][Zone],COLOR_WHITE);
    printf("%d",i);
    }
    Alle angezeigt aber für den Spieler bleiben die letzten beiden unsichtbar

    dann erklär mir was das *-1 bedeutet ich verwende floatdiv da mein compiler rumheult wenn ich 2 intger dividire.
    //EDIT: funktioniert dashier nicht ?
    (1000 - hp)/10 damit sparst du dir doch das *-1


    new Float:hp, VHealth[64], Float:schaden;
    GetVehicleHealth(GetPlayerVehicleID(i),hp);
    schaden = floatdiv(1000 - hp, 10);//du teilst den schaden durch 10
    format(VHealth,sizeof(VHealth),"~b~Schaden: ~w~%.0f%",schaden);
    TextDrawSetString(Zustand[i],VHealth);
    Damit sollte es eig schon gewesen sein. Bitte testen

    subtrahiere den zustand von 1000 (ich denke du meinst autos)
    dann weist du wie kaputt es ist und kannst damit anhand des schadens ausrechnen wie viel das von 1000 sind.
    Hast du schon was angefangen dann zeig ma code

    Ich möchte, dass der Spieler direkt nach dem Spawnen diese Amination ausführt:
    ApplyAnimation(playerid,"CRACK","crckdeth2",4.0, 1, 0, 0, 0, 0, 1);
    und zwar so lange bist ein Timer diese Animation stoppt, doch der Compiler ignoriert den animationscode einfach.


    else if(Spieler[playerid][Todeszeit] > 0)
    {
    SetPlayerPos(playerid, Spieler[playerid][posx], Spieler[playerid][posy], Spieler[playerid][posz]);
    print("vor animation");
    ApplyAnimation(playerid,"CRACK","crckdeth2",4.0, 1, 0, 0, 0, 0, 1);
    print("nach animation");
    sterbetimer[playerid] = SetTimerEx("OnPlayerSterben", 10000, false, "d", playerid);


    //SetPlayerWeather(playerid, -68);
    }


    public OnPlayerSterben(playerid)
    {
    if(Spieler[playerid][Todeszeit] == 1)
    {
    ClearAnimations(playerid);
    KillTimer(sterbetimer[playerid]);
    SetPlayerHealth(playerid,0);
    }
    else Spieler[playerid][Todeszeit]--;
    }


    Doch der compiler Ignoriert die animation, beide Prints werden ausgegeben, wiso aber die animation nicht?
    //EDIT: selbst wenn ich n timer dazwischen setze wird es ignoriert.
    //EDIT: Habt ihr echt keiner ne Ahnung, ich bin hier am verzweifeln.

    darkshadow, ja das dacht ich auch ,dass es an der position liegt, das tuts nicht eben getestet und ausm code raus genommen
    //EDIT: Fehler gefunden, wenn ein Spieler eine Animation ausführt hat er keine eigene Position (0,0,0)
    darum konnte diese auch nicht ermittelt werden und der spieler befad sich bei position 0,0,0 in der zone von kh 2, hab nun die position mein sterben genommen nun gehts

    Unter OnPlayerSpawn nachdem er von den Toten auferstanden ist


    if(Spieler[playerid][Todeszeit] == 1)
    {
    for(new i = 0;i < MAX_PLAYERS;i++)//kannste ignorieren, ist das der spieler wieder ausgeraubt werden kann
    {
    robbed[playerid][i] = 0;
    }
    Spieler[playerid][Todeszeit] --;
    if(IsPlayerInArea(playerid,1588.191, -9942.825, 9999.999, 618.9274)){SetPlayerPos(playerid,2036.8186,-1412.5883,16.9922);printf("K");}
    else if(IsPlayerInArea(playerid,-794.0955, -9942.825, 1588.191, 618.9274)){SetPlayerPos(playerid,1176.6805,-1323.6921,14.0333);printf("l");}
    else if(IsPlayerInArea(playerid,-794.0955, 618.9274, 9999.999, 9999.999)){SetPlayerPos(playerid,1608.3463,1820.8060,10.8280);printf("g");}
    else if(IsPlayerInArea(playerid,-9999.999, -9942.825, -794.0955, 9999.999)){SetPlayerPos(playerid,-2661.9617,632.5511,14.4531);printf("a");}
    KillTimer(sterbetimer[playerid]);//der timer ist nur dafür da, dass die todeszeit verringert wird.
    }


    Argh fehler gefunden, mim 2. sieht man besser.
    //EDIT:Verdammt doch nicht, immernoch das selbe man spawnt in ls habs eben getestet

    Guten Morgen leute,


    mein Problem heute:
    Eine Abfrage wo sich ein Spieler befindet um ihn dann ins jeweilige Krankenhaus zu schicken
    if(IsPlayerInArea(playerid,1588.191, -9942.825, 9999.999, 618.9274)){SetPlayerPos(playerid,2036.8186,-1412.5883,16.9922);printf("LS KH1");}
    else if(IsPlayerInArea(playerid,-794.0955, -9942.825, 1588.191, 618.9274)){SetPlayerPos(playerid,1176.6805,-1323.6921,14.0333);printf("LS KH2");}
    else if(IsPlayerInArea(playerid,-794.0955, 618.9274, 9999.999, 9999.999)){SetPlayerPos(playerid,1608.3463,1820.8060,10.8280);printf("LV KH");}
    else if(IsPlayerInArea(playerid,-9999.999, -9942.825, -794.0955, 9999.999)){SetPlayerPos(playerid,-2661.9617,632.5511,14.4531);printf("SFKH");}
    Die Spielerpositionen stimmen und auch die Zonen der Krankenhäuser (Gefrüft duch farbige Gangzonen) jedes Krankenhaus hat sein eigenes Gebiet trotzdem
    spawnen die Spieler IMMER am LS KH2 LosSantos Krankenhaus 2
    IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
    {
    new Float:X, Float:Y, Float:Z;


    GetPlayerPos(playerid, X, Y, Z);
    if(X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY) {
    return 1;
    }
    return 0;
    }
    Hier die Funktion aber bei den Gangzonen der verschiedenen Gangs gibt es keine Probleme mit dieser Funktion

    Nabend Breadfish,


    ich habe streit mit Animationen, der Spieler macht alles auser diese Animation ausführen:

    //Ganz oben
    UsePlayerPedAnims();
    //OnPlayerDeath
    if(Spieler[playerid][Todeszeit] > 0)
    {
    SetPlayerPos(playerid, Spieler[playerid][posx], Spieler[playerid][posy], Spieler[playerid][posz]);
    ApplyAnimation(playerid,"CRACK","crckdeth2",4.0, 1, 0, 0, 0, 0);
    sterbetimer[playerid] = SetTimerEx("OnPlayerSterben", 10000, true, "d", playerid);//Problem das passirt nicht der Spieler spawnt und ist frei beweglich
    //SetPlayerWeather(playerid, -68);
    }


    EDIT: Rechtschreibfehler


    //Push 48h Push Regel
    Der Spieler Spawnt immernoch ohne rücksicht auf den Animations Code
    //Push nun ist es so das aus der sicht des toten die animation ist aus der sicht der anderen steht der spieler.
    manchmal ist die animation auch garnicht an und der tote kann rumlaufen.