Knast System Fehler

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 Tag,
    Ich bin dabei wenn ein Spieler mit Wanteds stribt das er im Knast kommt für 30 Sekunden aber er wird immer an seinem Spawnpunkt anstatt im Knast gesetzt


    Vielen Dank für eure Hilfe im vorraus


    Hier der Code:


  • Du musst das über OnPlayerSpawn regeln, sprich:
    public knast(playerid)
    {
    if(sInfo[playerid][pKnast] != 1 || !IsPlayerConnected(playerid)) return 1; //Nicht im Knast.

    if(sInfo[playerid][pTeam] == 1)
    {
    SetPlayerPos(playerid,1544.3629,-1675.3433,13.5583);//team spawn
    }
    sInfo[playerid][pKnast] = 0;
    return 1;
    }
    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(GetPlayerWantedLevel(playerid) > 0)
    {
    ResetPlayerWeapons(playerid);
    sInfo[playerid][pKnast] = 1;
    SetPlayerWantedLevel(playerid,0);
    SetTimerEx("knast",30000,false,"d",playerid); //knast timer
    }
    return 1;
    }
    public OnPlayerSpawn(playerid)
    {
    //Code der beim Spawnen immer ausgeführt wird:
    //...

    if(sInfo[playerid][pKnast] == 1)
    {
    SetPlayerPos(playerid,0,0,10);// knast pos
    SetPlayerHealth(playerid,100);
    return 1;
    }

    //Code der nur ausgeführt wird, wenn man nicht im Knast ist.
    //...
    return 1;
    }


    Ich habe außerdem das SetTimer zu SetTimerEx geändert, da es sonst nur für ID 0 funktioniert hätte.


    Setze im enum von sInfo noch
    pKnast,
    ein.
    Natürlich musst du den Wert auch beim Connect auf 0 setzen, wie alle anderen Werte, damit das nicht von einem Spieler übernommen wird, der den Server verlassen hat.