stock ChecarCadeia(playerid)
{
if(PlayerInfo[playerid][pPreso] == 0)return 0;
else if(PlayerInfo[playerid][pPreso] != 0)
{
PrenderJogador(playerid);
}
return 1;
}
stock PrenderJogador(playerid)
{
if(PlayerInfo[playerid][pPreso] == 1)
{
PrisaoPublica(playerid);
}
else if(PlayerInfo[playerid][pPreso] == 2)
{
PrisaoAdmin(playerid);
}
return true;
}
stock PrisaoPublica(playerid)
{
new string[64];
new Celas = random(6);
new tempo = PlayerInfo[playerid][pTempoPreso];
TogglePlayerSpectating(playerid, 0);
switch(Celas)
{
case 0:{ SetPlayerInterior(playerid, 3); SetPlayerPos(playerid, 190.2, 162.10001, 105.0);}
case 1:{ SetPlayerInterior(playerid, 3); SetPlayerPos(playerid, 194.5, 162.39999, 1005.0);}
case 2:{ SetPlayerInterior(playerid, 3); SetPlayerPos(playerid, 198.5, 162.10001, 1005.0);}
case 3:{ SetPlayerInterior(playerid, 3); SetPlayerPos(playerid, 197.60001, 174.2, 1005.0);}
case 4:{ SetPlayerInterior(playerid, 3); SetPlayerPos(playerid, 193.0, 174.7, 1005.0);}
case 5:{ SetPlayerInterior(playerid, 3); SetPlayerPos(playerid, 189.10001, 174.60001, 1005.0);}
}
PlayerInfo[playerid][pAlgemado] = false;
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
format(string, sizeof(string), "[CADEIA] Voce deve cumprir %d minutos de prisao!", tempo);
SendClientMessage(playerid, COR_AMARELO, string);
ShowPlayerDialog(playerid, 998, DIALOG_STYLE_MSGBOX, "PRISAO", "VOCE FOI PRESO PELA POLICIA!", "OK", "");
new Query1[90], Query2[90],DBResult:Resultado;
format(Query2, sizeof(Query2), "SELECT * FROM `cadeia` WHERE `presoNome`='%s'", PlayerInfo[playerid][pNome]);
Resultado = db_query(Connect, Query2);
if(db_num_rows(Resultado) == 0)
{
format(Query1, sizeof(Query1), "INSERT INTO `cadeia`(`presoNome`,`presoTipo`,`presoTempo`) VALUES('%s',%d,%d);",
PlayerInfo[playerid][pNome],PlayerInfo[playerid][pPreso],PlayerInfo[playerid][pTempoPreso]);
db_query(Connect, Query1);
}
db_free_result(Resultado);
TimerCadeiaPublica[playerid] = SetTimerEx("CadeiaPublica",minutos(1),true,"i",playerid);
return true;
}
stock PrisaoAdmin(playerid)
{
new string[64];
new tempo = PlayerInfo[playerid][pTempoPreso];
TogglePlayerSpectating(playerid, 0);
SetPlayerInterior(playerid, 5);
SetPlayerPos(playerid, 322.197998,302.497985,999.148437);
format(string, sizeof(string), "[PRISAO] Voce deve cumprir %d minutos de prisao!", tempo);
SendClientMessage(playerid, COR_AMARELO, string);
ShowPlayerDialog(playerid, 998, DIALOG_STYLE_MSGBOX, "PRISAO", "VOCE FOI PRESO PELA STAFF!", "OK", "");
new Query1[90], Query2[90],DBResult:Resultado;
format(Query2, sizeof(Query2), "SELECT * FROM `cadeia` WHERE `presoNome`='%s'", PlayerInfo[playerid][pNome]);
Resultado = db_query(Connect, Query2);
if(db_num_rows(Resultado) == 0)
{
format(Query1, sizeof(Query1), "INSERT INTO `cadeia`(`presoNome`,`presoTipo`,`presoTempo`) VALUES('%s',%d,%d);",
PlayerInfo[playerid][pNome],PlayerInfo[playerid][pPreso],PlayerInfo[playerid][pTempoPreso]);
db_query(Connect, Query1);
}
db_free_result(Resultado);
TimerCadeiaAdmin[playerid] = SetTimerEx("CadeiaAdmin",minutos(1),true,"i",playerid);
return true;
}
forward CadeiaPublica(playerid);
public CadeiaPublica(playerid)
{
if(PlayerInfo[playerid][pTempoPreso] != 0)
{
PlayerInfo[playerid][pTempoPreso] -= 1;
return true;
}
else if(PlayerInfo[playerid][pTempoPreso] == 0)
{
SoltarJogador(playerid);
}
return true;
}
forward CadeiaAdmin(playerid);
public CadeiaAdmin(playerid)
{
if(PlayerInfo[playerid][pTempoPreso] != 0)
{
PlayerInfo[playerid][pTempoPreso] -= 1;
return true;
}
else if(PlayerInfo[playerid][pTempoPreso] == 0)
{
SoltarJogador(playerid);
}
return true;
}
forward SoltarJogador(playerid);
public SoltarJogador(playerid)
{
new Query[180];
format(Query, sizeof(Query), "DELETE FROM `cadeia` WHERE `presoNome`='%s'",PlayerInfo[playerid][pNome]);
db_query(Connect, Query);
PlayerInfo[playerid][pPreso] = 0;
PlayerInfo[playerid][pTempoPreso] = 0;
PlayerInfo[playerid][pCalado] = false;
PlayerInfo[playerid][pNivelProcurado] = 0;
SetPlayerWantedLevel(playerid, PlayerInfo[playerid][pNivelProcurado]);
SendClientMessage(playerid,COR_VERDE,"[LIBERDADE] Voce foi solto! Nao cometa mais crimes!");
KillTimer(TimerCadeiaPublica[playerid]);
KillTimer(TimerCadeiaAdmin[playerid]);
SpawnPlayer(playerid);
SalvarDB(playerid);
}
stock ChecarCadeia(playerid)
{
if(PlayerInfo[playerid][pPreso == 0) return KillTimer(TimerCadeiaAdmin[playerid]), KillTimer(TimerCadeiaPublica[playerid]);
else if(PlayerInfo[playerid][pPreso] != 0)
{
PrenderJogador(playerid);
}
return 1;
}
PHP Code:
|
Mais ai no caso eu apagaria os KillTimer to soltar jogador, ou deixo la?
|
A verificaзгo que vocк fez ai nгo para o Timer de cadeia, que no caso vocк definiu se ele estiver preso, como vai ta verificando entгo deve retornar a "morte" do timer, jб que o jogador VERIFICADO nгo esta preso
EDIT: apenas adicionar os KillTimer no return jб resolve possivelmente. (Como fiz a cima) |