Andauernder erneuter Spawn - Hilfe

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
  • Guten Abend Community,


    mein "/prison ID Zeit Grund" Command macht mir ganzschön Probleme: Hat jemand eine Idee zu verhindern dass man andauernd gespawnt wird?


    Oben im Script
    forward CheckUnjail();


    OnGameModeInit
    SetTimer("CheckUnjail", 60000, 1);


    public CheckUnjail()
    public CheckUnjail()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(GetPVarInt(i,"Prisonzeit") <= 0)
    {
    Unprison(i);
    SetPVarInt(i,"Prisonzeit",0);
    }
    else SetPVarInt(i,"Prisonzeit", GetPVarInt(i,"Prisonzeit")-1);
    }
    return 1;
    }


    Danke im Voraus.


    Mit freundlichen Grüßen,
    DeFiarsdRash XDD

  • Da du keine zweite Variable verwendest, die prüft ob er im Knast ist, muss es etwas anders aussehen, als ich es dir vorhin gegeben habe:
    public CheckUnjail()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(GetPVarInt(i,"Prisonzeit") == 0)
    {
    Unprison(i);
    SetPVarInt(i,"Prisonzeit",-1); //Beachte das -1! Setze das bei OnPlayerConnect auch zu -1, VOR dem Login.
    }
    else if(GetPVarInt(i,"Prisonzeit") > 0) SetPVarInt(i,"Prisonzeit", GetPVarInt(i,"Prisonzeit")-1);
    }
    return 1;
    }

  • Spieler connected => Variablen werden zurückgesetzt (-1) => Daten werden geladen => Neue Werte gesetzt (nicht mehr -1, nur für nicht registrierte bleibt es -1).


    Machst du es nach dem Login, setzt er den Wert wieder zu -1, egal was in der Datei stand. ;)

  • Ok - Muss ich das dann auch so unter OnPlayerSpawn verändern:


    Alt
    if(GetPVarInt(playerid,"Prisonzeit") > 0 )
    {
    SetPlayerPos(playerid,2144.1353, 1638.1118, 993.6439);
    SetPlayerInterior(playerid,1);
    ResetPlayerWeapons(playerid);
    }


    Neu?
    if(GetPVarInt(playerid,"Prisonzeit") >= 0 )
    {
    SetPlayerPos(playerid,2144.1353, 1638.1118, 993.6439);
    SetPlayerInterior(playerid,1);
    ResetPlayerWeapons(playerid);
    }