15.02.2012, 15:11
Seguinte Pessoal, Fiz um comando de prender o Player Por 2 Minutos, Funciona, mais as Vezes ele nгo й solto, acho que o problema ta no settimer, mais ao meu ver estб tudo certo, Se alguйm conseguir solucionar o problema agradeзo e +rep.
pawn Код:
if(strcmp("/prender", cmd, true) == 0)
{
if(pInfo[playerid][AdminLogado] == 0)
{
SendClientMessage(playerid, 0xFC4430AA,"Vocк nгo й Administrador!");
return 1;
}
if(pInfo[playerid][AdminLevel] < 2)
{
SendClientMessage(playerid, 0xFFFF00AA,"Vocк nгo tem level o suficiente de admin para usar esse comando!");
return 1;
}
tmp = strtok(cmdtext,idx);
if(!strlen(tmp) || strlen(tmp) > 2)
{
return SendClientMessage(playerid, 0xFF6F28AA,"Uso correto: /prender [id] [Motivo]");
}
new id = strval(tmp);
if(!IsPlayerConnected(id))
{
SendClientMessage(playerid, 0xFC4430AA,"Jogador nгo conectado!");
return 1;
}
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, 0xFF6F28AA, "Uso correto: /prender [id] [Motivo]");
return 1;
}
if(preso[playerid]==1) return SendClientMessage(playerid,0x880000FF,"Este Jogador ja Estб Preso!");
if(pInfo[playerid][AdminLevel] > 2)
{
if (preso[playerid]==0)
{
new pname2[MAX_PLAYER_NAME];
GetPlayerName(id, pname2, sizeof(pname2));
SetPlayerInterior(id, 6);
SetPlayerPos(id, 264.2353,77.8103,1001.0391);
SetPlayerFacingAngle(id,267.2910);
SetPlayerHealth(id,90);
ResetPlayerWeapons(id);
format(Sjim, sizeof(Sjim),"O administrador '%s' Prendeu o Jogador '%s' [Motivo: %s][Tempo:2 Minutos]", pname, pname2, result);
SendClientMessageToAll(0x00FF00AA, Sjim);
preso[playerid]=1;
SetTimer("solto",120000,0);//2 Minutos 120000
}
}
return 1;
}
pawn Код:
forward solto(playerid);
public solto(playerid)
{
if (preso[playerid]==1)
{
GameTextForPlayer(playerid,"~>~ Voce Foi Solto!",5000,6);
SendClientMessage(playerid,0xFC4430AA,"Vocк Foi Solto, nгo Infrija mais as /Regras!");
preso[playerid]=0;
SpawnPlayer(playerid);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,0);
}
return 1;
}