Timer Help and Jail Command for RPG Server.
#5

pawn Code:
CMD:ajail(playerid,params[])
{
    if(pInfo[playerid][pAdminlevel]> 1 ) return 0;
    new id,time,reason[100],PlayerName[MAX_PLAYER_NAME],GPlayerName[MAX_PLAYER_NAME];
    new szString[100];
    if(sscanf(params,"uds[100]",id,time,reason)) return SendClientMessage(playerid, COLOR_RED1, "[ ! ] USAGE: /ajail <playerid> <time> <reason>");
    if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "[ ! ] Invalid Player ID !");
    if(Jailed[id] == 1) return SendClientMessage(playerid, COLOR_RED, "[ ! ] Player is already in Jail !");
    GetPlayerName(id, PlayerName, sizeof(PlayerName));// the jailed person id
    GetPlayerName(playerid, GPlayerName, sizeof(GPlayerName));
    format(szString, sizeof(szString), "[ ! ] %s has been jailed by %s for %d seconds for %s", PlayerName, id, playerid, time, reason);
    SendClientMessageToAll(COLOR_WS, szString);
    SetPlayerInterior(id, 3);//sets player interior
    SetPlayerVirtualWorld(id, 10);//sets player vw
    SetPlayerFacingAngle(id, 360.0);//player angle
    SetPlayerPos(id, 197.5662, 175.4800, 1004.0);//player pos
    SetPlayerHealth(id, 9999999999.0);//player cannot be killed
    ResetPlayerWeapons(id);//resets his weapons
    Jailed[id] = 1;
    JailTimer[id] = SetTimerEx("Unjail",time*1000, false, "i", id); // Changed 60000 to 1000.
    return 1;
}
What Konstantinos said + you forgot to set the Jailed variable to 1 after jailing, your sscanf format was "dds" when it should have been "uds[100]" and your jail time is in minutes because you used time * 60000, so if you jail a player for 60 seconds, he will be unjailed after 1 hour.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)