29.05.2018, 14:44
Fiz uma base, nгo й para copiar e colar e sim entender o cуdigo. Vai ser necessбrio criar a pasta Presos,e adaptar o sistema a suas variбveis. Na callback OnPlayerSpawn vocк faz a verificaзгo se o player estб preso ou nгo, usando o DOF2_GetInt. Tambйm й necessбrio salvar a variбvel MinutosPreso, na OnPlayerDisconnect.
PHP код:
#define minutos(%0) (1000 * %0 * 60)
new MinutosPreso[MAX_PLAYERS],
IdTimer[MAX_PLAYERS];
new Str[50];
CMD:prender(playerid, params[])
{
new ID_OUTRO_JOGADOR, Minutos;
if(!IsPlayerInRangeOfPoint(playerid, 3.0, 1526.5399, -1678.6167, 5.8906)) return SendClientMessage(playerid,VERMELHO_BEM_CLARO ,"Vocк nгo estб no local de prender!");
if(!IsACop(playerid)) return SendClientMessage(playerid, VERMELHO_BEM_CLARO, "Vocк nгo й um policial!");
SendClientMessage(playerid, AZUL_BEM_CLARO, "Se vocк nгo sabe por quanto tempo prender, digite /ajudapreso, e verifique as regras!");
if(ProxDetector_Ao_Jogador(8.0, playerid, ID_OUTRO_JOGADOR))
{
if(sscanf(params, "uu", ID_OUTRO_JOGADOR , Minutos)) return SendClientMessage(playerid, VERDE_BEM_CLARO, "USE: /prender [ID] [MINUTOS]");
if(!IsPlayerConnected(ID_OUTRO_JOGADOR)) return SendClientMessage(playerid, VERMELHO_BEM_CLARO , "Jogador(a) nгo estб conectado.");
format(Str,sizeof(Str),"Presos/%s.ini",Name[ID_OUTRO_JOGADOR]);
if(!DOF2_FileExists(Str))
DOF2_CreateFile(Str);
MinutosPreso[ID_OUTRO_JOGADOR] = Minutos;
DOF2_SetInt(Str,"Tempo",MinutosPreso[ID_OUTRO_JOGADOR]);
IdTimer[ID_OUTRO_JOGADOR] = SetTimerEx("GetTimerJail", Minutos(1), true, "i", ID_OUTRO_JOGADOR);
SetPlayerInterior(ID_OUTRO_JOGADOR, 6);
SetPlayerPos(ID_OUTRO_JOGADOR, 264.1306,77.4115,1001.0391);
}
else
SendClientMessage(playerid, VERMELHO_BEM_CLARO, "[ ERRO ] Vocк nгo estб perto do outro jogador!");
return 1;
}
forward GetTimerJail(playerid);
public GetTimerJail(playerid)
{
if(MinutosPreso[playerid] == 0)
{
SetPlayerPos(playerid, X,Y,Z); //Coordenadas de fora da prisгo
KillTimer(IdTimer[playerid]);
return 1;
}
MinutosPreso[playerid]--;
format(Str,sizeof(Str),"Minuto atual preso %d",MinutosPreso[playerid]);
SendClientMessage(playerid,-1,Str);
return 0;
}