Beiträge von Haxler


    #define STELLEN 7 //Hier definierst du wieviele Stellen angezeigt werden sollen
    format(string,sizeof(string),"%0"#STELLEN"d",pInfo[playerid][Geld]);
    TextDrawSetString(BankGeld[playerid], string);

    Jetzt habt ihrs ja bald ;D



    if (strcmp("/bsn", cmdtext, true))
    {
    if (GetPlayerVirtualWorld(playerid) == 0) //GetPlayerVirtualWorld hat nur 1 Parameter!
    {
    SetPlayerPos(playerid,1045.3831,1013.0660,55.3047);
    new msg[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(msg,50,"%s ist zu /bsn Gegangen!",name);
    SendClientMessageToAll(HellGruen,msg);
    }
    else
    {
    SendClientMessage(playerid,HellGruen,"Diesen Befehl kannst du hier nicht nutzen");
    }
    return 1;
    }
    e: schreibfehler

    stock GetNearestCarAtPlayer(playerid,Float:radius)
    {
    new Float:vx,Float:vy,Float:vz;
    for(new v = 0; v <= MAX_VEHICLES; v++)
    {
    GetVehiclePos(v,vx,vy,vz);
    if(IsPlayerInRangeOfPoint(playerid,radius,vx,vy,vz)) return v;
    }
    return -1;
    }
    die Funktion gibt dir aber das erst beste Fahrzeug aus, das im gewünschten Radius steht.
    Wenn du jetzt z.b. 3 Fahrzeuge hast (id 1, 2 und 3), die nebeneinander stehen und der Radius 5.0 ist,
    dann wird das erste Fahrzeug, das neben dir steht (in diesem Fall: id 1) erkannt, auch wenn Fahrzeug 2 und 3 einen geringeren Abstand zu dir haben.


    stock GetNearestCar(playerid,Float:max = 3.0)
    {
    new Float:pos[3], id = -1, Float:temp;
    for(new v = 0; v <= MAX_VEHICLES; v++)
    {
    GetVehiclePos(v,pos[0],pos[1],pos[2]);
    temp = GetPlayerDistanceFromPoint(playerid,pos[0],pos[1],pos[2]);
    if(temp < max)
    {
    max = temp;
    id = v;
    }
    }
    return id;
    }
    diese Funktion macht fast das gleiche, nur dass du die ID vom nächsten Fahrzeug bekommst.

    Spätestens wenn 2 Spieler /afk eintippen funktioniert das ganze nichtmehr:


    Spieler 1 tippt /afk ein:
    TextDraw wird erstellt, ID wird in txtSprite1 gespeichert.
    Spieler 2 tippt /afk ein:
    TextDraw wird erstellt, alte ID in textSprite1 wird überschrieben.
    -> Wenn Spieler 1 /back eintippt bleibt das Textdraw da.


    Am Besten du machst es so, wie benutzername es gesagt hat :D

    KnastZeit ist nur die komplette Zeit, die er absitzen muss. Wenn KnastZeit 10 Minuten sind, und der Spieler nach 5 Minuten offline geht, dann musst du ja irgendwie rausfinden wie lange der Spieler im Knast war. Das findest du raus, indem du über gettime() dir den Zeitstempel speicherst, und ihn beim offline gehen mit dem aktuellen vergleichst. Dadurch findest du raus, wie viele Sekunden der Spieler im Knast war. Diese ziehst du dann von der KnastZeit (10 Minuten) ab, und weißt, wie lange der Spieler noch im Knast bleiben musst.

    Wie schon gesagt musst du zuerst rausfinden, wie lange der Spieler im Knast sein muss.


    // Bei /einsperren
    SetPVarInt(pID,"KnastZeit",Time*1000*60);
    SetPVarInt(pID,"KnastStart",gettime()); //Damit speicherst du den aktuellen Unix-Zeitstempel ab.

    Die PVars kannst du beim Entlassen wieder löschen.
    Beim disconnecten findest du nun raus, wie lange der Spieler im Knast war:
    new dauer = gettime() - GetPVarInt(pID,"KnastStart"); //Damit findest du raus, wie lange der Spieler im Knast war
    new restliche_zeit = GetPVarInt(pID,"KnastZeit") - dauer; //Die Zeit, die er im Knast war, wird jetzt von der gesamt-Zeit abgezogen - du weißt nun wie lange er noch im Knast bleiben muss

    Den Wert musst du dann nurnoch abspeichern. Beim Spawn startest du dann einen Timer.

    Das "d" steht für einen Integer (playerid) und "s" für einen String (der Befehl, den du übergeben möchtest.).
    Mit CallLocalFunction rufst du einfach ein bestimmtes Callback (in deinem Fall "OnPlayerCommandText") auf, und übergibst die benötigten Parameter.
    public OnPlayerCommandText(playerid /* integer */, cmdtext[] /*string*/)

    Nein, Pawno sucht den Include Ordner immer da, wo auch die pawno.exe ist. Wenn das Script aber mit der falschen pawno.exe verknüpft ist, wird demnach auch der falsche Include ordner gewählt ;D