30.09.2011, 16:51
Quote:
Are you saving the time already? Make it something like this.
pawn Код:
|
pawn Код:
forward SetPlayerUnjail();
new unjailtimer;
unjailtimer = SetTimer("SetPlayerUnjail", 1000, 1);
if(strcmp(cmd, "/jail", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gTeam[playerid] == 5 || gTeam[playerid] == 6)
{
if(!PlayerToPoint(6.0, playerid, 1529.3108,-1677.7783,5.8906))
{
SendClientMessage(playerid, COLOR_GREY, " You are not near the Jail, can't Arrest !");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, " USAGE: /jail [playerid/PartOfName] [fine] [time]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, " USAGE: /jail [playerid/PartOfName] [fine] [time]");
return 1;
}
moneys = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, " USAGE: /jail [playerid/PartOfName] [fine] [time]");
return 1;
}
new time = strval(tmp);
tmp = strtok(cmdtext, idx);
if(IsPlayerConnected(giveplayerid))
{
if(GetDistanceBetweenPlayers(playerid, giveplayerid) < 5)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* You arrested %s !", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
GivePlayerMoney(giveplayerid, -moneys);
format(string, sizeof(string), "~r~Fine: $%d", moneys);
GameTextForPlayer(giveplayerid, string, 5000, 5);
SetPlayerInterior(giveplayerid, 6);
SetPlayerPos(giveplayerid,264.6288,77.5742,1001.0391);
PlayerInfo[giveplayerid][pJailTime] = time * 60;
PlayerInfo[giveplayerid][pJailed] = 1;
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " That player is too far away.");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " You are not authorized to use that command.");
}
}
return 1;
}
public SetPlayerUnjail()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pJailed] > 0)
{
PlayerInfo[i][pJailTime] = 0;
if(PlayerInfo[i][pJailed] == 1)
{
SetPlayerInterior(i, 6);
SetPlayerPos(i,268.0903,77.6489,1001.0391);
}
else if(PlayerInfo[i][pJailed] == 2)
{
SetPlayerWorldBounds(i, 20000.0000,-20000.0000,20000.0000,-20000.0000);
SetPlayerInterior(i, 0);
SetPlayerPos(i, 90.2101,1920.4854,17.9422);
}
PlayerInfo[i][pJailed] = 0;
}
}
}
}