Jail timer
#1

I got this code, it jails me and put me in the jail for example 5 seconds, it works..
but
when I waited 5 seconds, it doesnt unjail me, I keep stay in jail

here is the code

pawn Код:
dcmd_ajail(playerid,params[])
{
    if(!PLVL[playerid]) return 0;
    if(PlayerInfo[playerid][pAdminLevel] >=1) {
        new pid, money;
        if(sscanf(params, "ud", pid, money)) return SendClientMessage(playerid, Yellow, "Usage: /ajail <playerid> <seconds>");
        new paramname[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128], string2[128], string3[128], string4[128];
        if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, Red, "This player is not connected");
        if(pid != INVALID_PLAYER_ID)
        if(PlayerInfo[playerid][pJailTime] >=5) return SendClientMessage(playerid,Red,"Minimum jail time is 5 seconds");
        if(PlayerInfo[playerid][pJail] == 1) return SendClientMessage(playerid,Red,"This player is already in jail !");
        PlayerInfo[playerid][pJailTime] = 1;
        PlayerInfo[playerid][pJail] = 1;
        GetPlayerName(pid, paramname, sizeof(paramname));
        GetPlayerName(playerid, adminname, sizeof(adminname));
        format(string, sizeof(string), "%s (ID: %d) has been jailed by %s for %d seconds", paramname, pid, adminname, money);
        format(string2, sizeof(string2), "You have been jailed by %s for %d seconds", adminname, money);
        SendClientMessageToAll(AdminColor, string);
        SendClientMessage(pid, AdminColor, string2);
        ResetPlayerWeapons(pid);
        SetPlayerInterior(pid,6);
        SetPlayerPos(playerid,264.6288,77.5742,1001.0391);
        SetTimerEx("Unjail",PlayerInfo[playerid][pJailTime]*1000,0,"d",pid);
    } else if(PlayerInfo[playerid][pAdminLevel] == 0) return 0;
    return 1;
}
pawn Код:
forward Unjail(playerid);
public Unjail(playerid)
{
    if(!IsPlayerConnected(playerid)) return 1;
    if(PlayerInfo[playerid][pJail] == 1) return 1;
    PlayerInfo[playerid][pJail] = 0;
    SetPlayerPos(playerid, 1383.1418,2185.1440,11.0234);
    SetPlayerInterior(playerid, 0);
    PlayerInfo[playerid][pJailTime] = 0;
    return 1;
}
please help me
Reply
#2

pawn Код:
forward Unjail(playerid);
public Unjail(playerid)
{
    if(!IsPlayerConnected(playerid)) return 1;
    if(PlayerInfo[playerid][pJail] == 1)
    {
        PlayerInfo[playerid][pJail] = 0;
        SetPlayerPos(playerid, 1383.1418,2185.1440,11.0234);
        SetPlayerInterior(playerid, 0);
        PlayerInfo[playerid][pJailTime] = 0;
    }
    return 1;
}
Reply
#3

thanks dice, but it unjails me after 1 second
Reply
#4

Cause you are setting this:
pawn Код:
PlayerInfo[playerid][pJailTime] = 1;
to 1; So 1 * 1000 = 1 second

Change it to
pawn Код:
PlayerInfo[playerid][pJailTime] = money;
Not sure why you defined money as your 'Seconds' variable
Reply
#5

Because you put pJailTime = 1.
Stop copy pasting everything and do something yourself
Reply
#6

Thanks Lethal !!

could you also help me with this, example i get jailed for 50 seec

and every 10 sec, it will say "40 sec left" "30 sec left" etc?
Reply
#7

Not hard, but stop copy&pasting other people's work.
Reply
#8

i edited a bit, ofc when i copy i also learn a bit, i just dont copy and paste and let it be as it is ..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)