25.07.2011, 12:52
Olб, tehno um sistema de preso que vocк prender o player e bota /presos aparece os players que estгo presos e o tempo restante, mais sу que se o player Morre ou Sai e Entra denovo ele ta fora da Cadeia, gostaria de tirar mudar isto para se ele morrer ou sair do server e entrar denovo ele volte pra cadeia e termine o tempo restante que ainda lhe falta.
Meu sistema й este ;d
Forward's
New
Comando
Public Unjail
Meu sistema й este ;d
Forward's
pawn Код:
forward DiminSecondsJailed(playerid);
forward Unjail(giveplayerid, cmdtext[]);
pawn Код:
new SecondsJailed[MAX_PLAYERS];
pawn Код:
if(strcmp(cmd, "/prender", true) == 0)
{
new tmpp[256];
new playername;
tmp = strtok(cmdtext, idx);
tmpp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREEN, "Uso correto: /prender [id do player] [segundos");
return 1;
}
giveplayerid = strval(tmp);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new Second = strval(tmpp);
if(logado[playerid] == 1)
{
if(PlayerInfo[playerid][BOPE] >= 2 || PlayerInfo[playerid][EX] >= 2 || PlayerInfo[playerid][PMRJ] >= 2)
{
SecondsJailed[playerid] = Second;
SetTimerEx("DiminSecondsJailed", 1000, false, "i", playerid);
format(string, sizeof(string), "O Oficial %s prendeu o jogador %s por %d segundo(s)", sendername,giveplayer,Second);
SendClientMessageToAll(COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "~g~Preso por: ~n~~r~%s.", sendername);
GameTextForPlayer(giveplayerid, string, 1000, 1);
SetPlayerInterior(giveplayerid, 6);
SetPlayerPos(giveplayerid, 264.6288,77.5742,1001.0391);
SetPlayerArmour(giveplayerid, 0);
TogglePlayerControllable(giveplayerid, 1);
ResetPlayerWeapons(giveplayerid);
SetTimerEx("Unjail", Second*1000, 0, "i", giveplayerid);
format(file,sizeof(file),"%s.ini",playername);
dini_Create(file);
dini_IntSet(file,"Preso", 1);
PlayerInfo[giveplayerid][Preso] = dini_Int(file,"Preso");
}
else
{
SendClientMessage(playerid, COLOR_CYAN, "Vocк nгo й um OFICIAL!");
}
}
else
{
SendClientMessage(playerid, COLOR_CYAN, "Vocк tem que estar logado para usar este comando!");
}
return 1;
}
pawn Код:
if(!strcmp(cmdtext, "/presos", true))
{
SendClientMessage(playerid, 0x00FF00FF, "|_____[PRESOS ONLINE]_____|");
new count=0;
new tmpp[256];
tmp = strtok(cmdtext, idx);
tmpp = strtok(cmdtext, idx);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(logado[i] == 1)
{
if(PlayerInfo[i][Preso] >= 1)
{
new str[256];
new pname[24];
GetPlayerName(i, pname, 24);
format(str, 256, "PRESO - %s - [Tempo Restante: %d Segundos] ", pname, SecondsJailed);
SendClientMessage(playerid, 0xC0C0C0FF, str);
count++;
}
}
}
}
if(count == 0)
{
SendClientMessage(playerid, COLOR_CYAN, "Nenhum Preso Online !");
}
return 1;
}
Public Unjail
pawn Код:
public Unjail(giveplayerid, cmdtext[])
{
new idx;
new cmd[256];
cmd = strtok(cmdtext, idx);
new tmpp[256];
new tmp[256];
tmp = strtok(cmdtext, idx);
tmpp = strtok(cmdtext, idx);
new giveplayer[MAX_PLAYER_NAME], playername, playerid;
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
SetPlayerInterior(giveplayerid,0);
SetPlayerPos(giveplayerid,1546.2803,-1675.6632,13.5620);
TogglePlayerControllable(giveplayerid,1);
GameTextForPlayer(giveplayerid, "Solto da Cadeia", 1000,1);
format(file,sizeof(file),"%s.ini",playername);
dini_Create(file);
dini_IntSet(file,"Preso", 0);
PlayerInfo[giveplayerid][Preso] = dini_Int(file,"Preso");
SecondsJailed[playerid] --;
}