Knast Zeit falsch

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
  • Hallo Brotfische.


    Ich habe ein Knast System gemacht, alles funktioniert ja, nur wenn der Spieler relog ist der dann nicht mehr im Knast
    bzw. wenn der spieler relogt dann wird der spieler entlassen, auch die nachricht kommt "Du wurdest entlassen benimm dich in der Zukunft."
    usw. kann mir einer diesen bug fixxen oder sagen wie das geht?


    Danke im vorraus

  • Hier ist der Code:


    if(newstate == PLAYER_STATE_WASTED)
    {
    if(WantedLevel[playerid] >= 1)
    {
    new price = WantedLevel[playerid] * 2000;
    new count;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsACop(i) && CrimInRange(70.0, playerid,i))
    {
    count = 1;
    format(string, sizeof(string), "~w~Verbrecher getötet ~g~$%d", price);
    GameTextForPlayer(i, string, 5000, 1);
    ConsumingMoney[i] = 1;
    FraktionsKasse[0] += price/2;
    FraktionsKasse[1] += price/2;
    FraktionsKasse[2] += price/2;
    PlayerPlaySound(i, 1058, 0.0, 0.0, 0.0);
    }
    }
    }
    if(count == 1)
    {
    if(WantedLevel[playerid] >= 6)
    {
    GivePlayerMoney(playerid, -price);
    PlayerInfo[playerid][pWantedDeaths] += 1;
    PlayerInfo[playerid][pJailed] = 2;
    PlayerInfo[playerid][pJailTime] = (WantedLevel[playerid] * 240);
    format(string, sizeof(string), "Du bist für %d Sekunden im Gefängnis und musst $%d bezahlen.", PlayerInfo[playerid][pJailTime], price);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    WantedPoints[playerid] = 0;
    WantedLevel[playerid] = 0;
    SetPlayerVirtualWorld(playerid, 60);
    }
    else
    {
    GivePlayerMoney(playerid, -price);
    PlayerInfo[playerid][pWantedDeaths] += 1;
    PlayerInfo[playerid][pJailed] = 1;
    PlayerInfo[playerid][pJailTime] = (WantedLevel[playerid] * 240);
    format(string, sizeof(string), "Du bist für %d Sekunden im Gefängnis und musst $%d bezahlen.", PlayerInfo[playerid][pJailTime], price);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    WantedPoints[playerid] = 0;
    WantedLevel[playerid] = 0;
    }
    }
    }
    }


    if(KnastTime[playerid] > 0)
    {
    SetPlayerToKnast(playerid,Knast[playerid]);
    SendClientMessage(playerid, COLOR_LIGHTRED, "Deine Strafe ist noch nicht vorbei, zurück in den Knast.");
    SetPlayerInterior(playerid,3);
    return 1;
    }
    if(PlayerInfo[playerid][pJailed] == 1)
    {
    SetPlayerInterior(playerid,3);
    SetPlayerPos(playerid,197.8290,161.8141,1003.0300);
    SetPlayerSkin(playerid, 62);
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid, 1);
    DestroyPickup(TotenKopf[playerid]);
    return 1;
    }
    if(PlayerInfo[playerid][pJailed] == 2)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerSkin(playerid, 62);
    SetPlayerVirtualWorld(playerid, 0);
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid, 1);
    DestroyPickup(TotenKopf[playerid]);
    //SetPlayerPos(playerid,-2228.7432,1792.6576,5.0996);
    SetPlayerPos(playerid,-3208.0989,2552.2048,8.0815);
    return 1;
    }


    if(PlayerInfo[i][pJailed] > 0)
    {
    if(PlayerInfo[i][pJailTime] > 0)
    {
    PlayerInfo[i][pJailTime]--;
    }
    if(PlayerInfo[i][pJailTime] <= 0)
    {
    PlayerInfo[i][pJailTime] = 0;
    if(PlayerInfo[i][pJailed] == 1)
    {
    SetPlayerInterior(i,3);
    SetPlayerSkin(i, PlayerInfo[i][pChar]);
    SetPlayerPos(i,238.8609,177.9241,1003.0300);
    SetPlayerFacingAngle(i,-1587.2474);
    }
    else if(PlayerInfo[i][pJailed] == 2)
    {
    SetPlayerInterior(i, 0);
    SetPlayerSkin(i, PlayerInfo[i][pChar]);
    SetPlayerVirtualWorld(i, 0);
    SetPlayerPos(i, 1808.6899,-1569.0588,13.4676);
    }
    PlayerInfo[i][pJailed] = 0;
    SendClientMessage(i, COLOR_GRAD1,"Deine Gefängniszeit ist um.");
    SendClientMessage(i, COLOR_RED, "Benimm dich in Zukunft, sonst landest du wieder hier!");
    if(gTeam[i] == 4) { gTeam[i] = 3; }
    ClearCrime(i);
    }
    }



    if(IsACop(killerid))
    {
    if(GetPlayerWantedLevel(playerid) != 0)
    {
    new killername[MAX_PLAYER_NAME],sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,sendername,MAX_PLAYER_NAME);
    GetPlayerName(killerid,killername,MAX_PLAYER_NAME);
    new todString[200];
    PlayerInfo[playerid][pJailed] = 1;
    format(todString,200,"* Officer %s hat den Verbrecher %s getötet!",killername,sendername);
    SendClientMessageToAll(COLOR_LIGHTRED,todString);
    }
    if(Maske[playerid] == 1)
    {
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,sendername,MAX_PLAYER_NAME);
    new todString[200];
    PlayerInfo[playerid][pJailed] = 1;
    format(todString,200," Maskierter hat den Verbrecher %s getötet!",sendername);
    SendClientMessageToAll(COLOR_LIGHTRED,todString);
    printf("%s", string);
    return 1;
    }
    }