prender -
Feconitu - 29.05.2018
bom galera, estou tendo problema em criar um comando que й o /prender, comecei a fazer o comando, sу que a parte mais complicada pra mim й a parte de setar o tempo do player ser preso
PHP код:
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!");
else if(IsACop(playerid))
{
if(ProxDetector_Ao_Jogador(8.0, playerid, ID_OUTRO_JOGADOR))
{
if(sscanf(params, "u", 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.");
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;
}
no caso o prуprio policial colocaria os minutos, seria 5 mais a quantidade de estrelas do player. Se puderem me ajudar, ficarei muito agradecido!
Re: prender -
FerrariL - 29.05.2018
Tб mas qual й a sua dъvida ? vocк irб fazer o mesmo processo no sscanf, com a variбvel Minutos.
Sу uma observaзгo, vocк estб fazendo uma condicional desnecessбria
pawn Код:
else if(IsACop(playerid))
Vocк jб fez uma condicional anterior
pawn Код:
if(!IsACop(playerid)) return SendClientMessage(playerid, VERMELHO_BEM_CLARO, "Vocк nгo й um policial!");
.
Re: prender -
Feconitu - 29.05.2018
bom, seria isso, so que queria salvar o tempo que ele ficara preso em dof2, e quando acabar ele seria solto.
Ainda nгo entendo muito de pawn mano, mais valu por avisar
Re: prender -
FerrariL - 29.05.2018
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;
}
Re: prender -
Feconitu - 29.05.2018
Mano muito obrigado, so tenho mais uma duvida
PHP код:
IdTimer[ID_OUTRO_JOGADOR] = SetTimerEx("GetTimerJail", Minutos(1), true, "i", ID_OUTRO_JOGADOR);
nгo entendi esse Minutos(1)
Re: prender -
AutoMatic2 - 29.05.2018
esse Minutos(1) e essa define:
PHP код:
#define minutos(%0) (1000 * %0 * 60)
tem uma tabela inteira de: Segundos, Minutos, Horas, Dias, Anos, Seculos
nгo achei ela, mais e muito boa
Minutos(1), Minutos(5)
Segundos(30), Segundos(10) ... :z
Re: prender -
Feconitu - 29.05.2018
entendi, mas mesmo assim, quando eu coloco o valor que a pessoa ficaria presa comeзa do 65535 e vai diminuindo vamos supor que colequei 3 uma vez, 2 outra vez e 1, e sempre da o mesmo valor
Re: prender -
Feconitu - 30.05.2018
Alguйm?