04.11.2011, 16:36
Quote:
No caso deste 0, й o ID do player (NO CASO EU), no codigo esta escrito "TEMPO" aonde eu coloquei o 0, mas na verdade й o ID.
|
Na verdade o ID do jogador que irб ser preso nгo й definido pelo jogador que prenderб atravйs do comando, mas sim por esta linha do cуdigo :
pawn Код:
new suspect = GetClosestPlayer(playerid);
Que igualarб o ID de quem serб preso ao ID do suspeito mais prуximo de vocк .
O 0 do qual falei й realmente um valor que deve estar entre 0 e 10000, como prova esta parte do seu cуdigo que й responsбvel pela formaзгo do primeiro parвmetro do comando :
pawn Код:
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /prender [preco] [Tempo (minutos)] [Fianca (0=nao 1=sim)] [Preco da Fianca]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1 || moneys > 99999) { SendClientMessage(playerid, COLOR_GREY, " Preco da fianca Minimo 1, Maximo 99999!"); return 1; }
Caso queira definir o ID do jogador pelo comando, adaptei o mesmo para vocк :
pawn Код:
if(strcmp(cmd, "/prender", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gTeam[playerid] == 2 || IsACop(playerid))
{
if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " Voce nao esta em servico!");
return 1;
}
if(!IsPlayerinCela(playerid))
{// Jail spot
SendClientMessage(playerid, COLOR_GREY, " Voce nao esta perto das celas!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /prender [ID do Suspeito] [Tempo (minutos)]");
return 1;
}
new suspect = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /prender [ID do Suspeito] [Tempo (minutos)]");
return 1;
}
new time = strval(tmp);
if(time < 1 || time > 20) { SendClientMessage(playerid, COLOR_GREY, " Tempo de prisao Minimo 1, Maximo 20!"); return 1; }
if(IsPlayerConnected(suspect))
{
if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
{
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(WantedLevel[suspect] < 1)
{
SendClientMessage(playerid, COLOR_GREY, " Jogador precisa de no minimo 1 nivel de procurado!");
return 1;
}
if(IsACop(suspect))
{
SendClientMessage(playerid, COLOR_GREY, " O Jogador й um Policial!");
return 1;
}
format(string, sizeof(string), "* Voce prendeu %s !", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Voce foi preso pelo %s", sendername);
GameTextForPlayer(suspect, string, 5000, 5);
ResetPlayerWeapons(suspect);
if(PlayerInfo[playerid][pMember]==1 || PlayerInfo[playerid][pLeader]==1)
{
format(string, sizeof(string), "<< Policial Militar %s prendeu o suspeito %s >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
PlayerInfo[suspect][pJailed] = 1;
}
else if(PlayerInfo[playerid][pMember]==2 || PlayerInfo[playerid][pLeader]==2)
{
format(string, sizeof(string), "<< BOPE %s prendeu o suspeito %s >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
PlayerInfo[suspect][pJailed] = 1;
}
else if(PlayerInfo[playerid][pMember]==3 || PlayerInfo[playerid][pLeader]==3)
{
format(string, sizeof(string), "<< Policial Militar %s prendeu o suspeito %s >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
PlayerInfo[suspect][pJailed] = 3;
}
else if(PlayerInfo[playerid][pMember]==4 || PlayerInfo[playerid][pLeader]==4)
{
format(string, sizeof(string), "<< Policial Civil %s prendeu o suspeito %s >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
PlayerInfo[suspect][pJailed] = 3;
}
else if(PlayerInfo[playerid][pMember]==19 || PlayerInfo[playerid][pLeader]==19)
{
format(string, sizeof(string), "<< Policial Federal %s prendeu o suspeito %s >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
PlayerInfo[suspect][pJailed] = 4;
}
PlayerInfo[suspect][pJailTime] = time * 60;
SetPlayerHealth(suspect, 0);
JailPrice[suspect] = 0;
format(string, sizeof(string), "Voce foi preso por %d segundos.", PlayerInfo[suspect][pJailTime]);
SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
PlayerInfo[suspect][pArrested] += 1;
SetPlayerFree(suspect,playerid, "Preso");
WantedPoints[suspect] = 0;
WantedLevel[suspect] = 0;
WantLawyer[suspect] = 1;
}//distance
}//not connected
else
{
SendClientMessage(playerid, COLOR_GREY, " Ninguem perto para voce prender.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Voce nao e um oficial!");
return 1;
}
}//not connected
return 1;
}
Espero ter ajudado .