/arrest befehl will nicht wie er soll

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • so nach langem rummachen hab ich einen arrest befehl hinbekommen...
    aber irgendwie funktioniert noch einiges nicht...
    ich werde alles posten, und mit // komentieren was nicht funktioniert.. dann könnt ihr mir ja vielleicht helfen:


    über ongamemodeinit:
    new Jailtimer;


    bei onplayerspawn
    if(GetPVarInt(playerid,"Jailtimer") == 0)
    {
    }
    else
    {
    Jailtimer = SetTimer("Jailtimer2",2000,1); ((funktioniert nicht richtig)
    }
    if(GetPVarInt(playerid,"Jail") == 1)
    {
    new Float:RandomSpawnJail[][4] =
    {
    {193.2786, 174.6594, 1003.0234, 3.4033},
    {197.5484, 174.7399, 1003.0234, 1.2100},
    {198.3096, 161.9169, 1003.0300, 181.9817}
    };
    new rand = random(sizeof(RandomSpawnJail));
    SetPlayerPos(playerid, RandomSpawnJail[rand][0], RandomSpawnJail[rand][1],RandomSpawnJail[rand][2]);
    SetPlayerFacingAngle(playerid, RandomSpawnJail[rand][3]);
    SetPlayerInterior(playerid, 3);
    }



    hier der hauptcommand:
    ocmd:arrest(playerid,params[])
    {
    if(Fraktion(playerid,1)||Fraktion(playerid,2))//ist er in Fraktion 1 oder 2
    if(IsPlayerInRangeOfPoint(playerid,2,200.6969,168.2510,1003.0234))
    {
    new pID,string[128];
    if(pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,ROT,"Spieler nicht gefunden");
    if(pID == playerid)return SendClientMessage(playerid,ROT,"Du kannst dich nicht selber einsperren!");
    if (ProxDetectorS(3.0, playerid, pID)) //funktioniert nicht, er zeigt mir immer an : Der Spieler ist nicht in der Nähe
    {
    if(GetPVarInt(pID,"Wanteds") <= 0)return SendClientMessage(playerid,ROT,"Der Spieler hat keine Wanteds!");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutze: /arrest [ID]");
    {
    SetTimer("Jailtimer1",GetPVarInt(pID,"Wanteds")*60000,0); // er soll einen Timer setzen, welcher pro Wanted 1ne Minute einsperrt
    Jailtimer = SetTimer("Jailtimer2",2000,1); //timer, welcher alle 2 Sekunden: SetPVarInt(playerid,"Jailtimer",-2000) macht... //funktioniert nicht
    SetPVarInt(pID,"Jailtime",GetPVarInt(pID,"Wanteds")*60000); //setzt jailtime auf Wantedlevel * 60000 //funktioniert
    SetPlayerWorldBounds(pID,203.9931,188.1784,180.7820,156.5854);
    format(string, sizeof string,"Du hast %s verhaftet!",Spielername(pID));
    SendClientMessage(playerid,BLAU,string);
    format(string, sizeof string,"Du wurdest von %s verhaftet!",Spielername(playerid));
    SendClientMessage(pID,BLAU,string);
    new Float:RandomSpawnJail[][4] =
    {
    {193.2786, 174.6594, 1003.0234, 3.4033},
    {197.5484, 174.7399, 1003.0234, 1.2100},
    {198.3096, 161.9169, 1003.0300, 181.9817}
    };
    new rand = random(sizeof(RandomSpawnJail));
    SetPlayerPos(pID, RandomSpawnJail[rand][0], RandomSpawnJail[rand][1],RandomSpawnJail[rand][2]);
    SetPlayerFacingAngle(pID, RandomSpawnJail[rand][3]);
    SetPVarInt(pID,"Wanteds",0);
    SetPlayerWantedLevel(pID, 0);
    SetPVarInt(pID,"Jail",1);
    SpielerSpeichern(pID);
    }
    }
    else
    {
    SendClientMessage(playerid, ROT, "Der Spieler ist nicht in der Nähe");
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du kannst hier niemanden verhaften!");
    }
    return 1;
    }


    und hier die beiden timer:(funktionieren beide nicht)
    forward Jailtimer1(playerid);
    public Jailtimer1(playerid)
    {
    SetPlayerPos(playerid,200.6969,168.2510,1003.0234); //Spielerposition wird wieder auserhalb der Zelle gesetzt
    SendClientMessage(playerid,BLAU, "Du hast deine Haftstrafe erfolgreich abgesessen!");
    SetPVarInt(playerid,"Jail",0); //Jail wird wieder auf 0 gesetzt
    SetPlayerWorldBounds(playerid,20000,-20000,20000,-20000);
    }
    forward Jailtimer2(playerid);
    public Jailtimer2(playerid)
    {
    if(GetPVarInt(playerid,"Jailtimer") == 0) //wenn "Jailtime" auf 0 angekommen ist, soll der Timer gestoppt werden.
    {
    KillTimer(Jailtimer);
    }
    else //ansonsten werden alle 2 Sekunden 2000 von "Jailtime" abgezogen und gespeichert, falls sich der spieler ausloggt, jailtime noch vorhanden ist
    {
    SetPVarInt(playerid,"Jailtime",-2000);
    SpielerSpeichern(playerid);
    }
    }




    /e rechtschreibfehler

    Pessimisten sind Optimisten mit Erfahrung!

  • new pID,string[128];
    if(pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,ROT,"Spieler nicht gefunden");
    if(pID == playerid)return SendClientMessage(playerid,ROT,"Du kannst dich nicht selber einsperren!");


    Du belegst die Variable pID nirgends mit einem Wert.