[Ajuda] Adaptar um comando ao outro!
#1

Depois de tentar alguns mйtodos e ver que nгo foram bem sucedidos, me recorri a ajuda de vocкs ! :X
Eu tentei fazer da seguinte maneira: Quando um player fosse algemado, uma certa variбvel armazenaria um certo valor e entгo, quando o Policial digitasse /prender , prenderia esse ultimo Player, portanto, a variбvel pegaria seu valor padrгo.Nгo deu exatamente certo, por isso, peзo a ajuda de vocкs !

#Comando de Algemar:
pawn Код:
if(strcmp(cmd, "/algemar", true) == 0) {
if(algemou[playerid] == 1) return SendClientMessage(playerid, Vermelho, "(ERRO) Aguarde 1 minuto para algemar novamente!");
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);
if(dini_Int(file, "Profissao") == Policia_Militar || dini_Int(file, "Profissao") == Policia_Civil || dini_Int(file, "Profissao") == Policia_Federal || dini_Int(file, "Profissao") == Delegado || dini_Int(file, "Profissao") == Bope || dini_Int(file, "Profissao") == Swat || dini_Int(file, "Profissao") == Narcoticos || dini_Int(file, "Profissao") == FBI || dini_Int(file, "Profissao") == Interpol || dini_Int(file, "aAdmin") == 1){
new tmp[256];
new plid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)){
SendClientMessage(playerid, Vermelho, " /algemar [id] [motivo]");
return 1;
}
plid = strval(tmp);
if(plid == playerid){
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo pode usar este comando em vocк mesmo.");
return 1 ;
}

if(!IsPlayerConnected(plid)){
SendClientMessage(playerid, Vermelho, "(ERRO) Jogador nгo conectado.");
return 1;
} else {
if(GetDistanceBetweenPlayers(plid,playerid) < 10){
format(string, sizeof(string), "(INFO) Vocк foi algemado por %s.", aname);
GameTextForPlayer(plid,"~w~Algemado", 58000, 0);
SendClientMessage(plid, 0x8C8CFFAA, string);
TogglePlayerControllable(plid, 0);
SendClientMessage(playerid, 0x8C8CFFAA, "(INFO) Algemado com sucesso.");
algemado[plid] = 1;
algemou[playerid] = 1;
return 1;
} else {
SendClientMessage(playerid,Vermelho," Chegue mais perto para algemar.");
return 1;
}
}
} else {
SendClientMessage(playerid,Vermelho,"(ERRO) Vocк nгo й um policial!");
return 1;
}
}
#Comando de Prender:
pawn Код:
if(strcmp(cmd, "/prender", true) == 0) {
new check_prender;
check_prender = CPS_GetPlayerCheckpoint(playerid);
if(prendeu[playerid] == 1) return SendClientMessage(playerid, Vermelho, "(ERRO) Aguarde 1 minuto para prender novamente!");
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);
if(dini_Int(file, "Profissao") == Policia_Civil || dini_Int(file, "Profissao") == Policia_Federal || dini_Int(file, "Profissao") == Interpol || dini_Int(file, "Profissao") == Delegado || dini_Int(file, "Profissao") == Bope || dini_Int(file, "Profissao") == Swat || dini_Int(file, "Profissao") == Narcoticos || dini_Int(file, "Profissao") == Policia_Militar || dini_Int(file, "Profissao") == FBI || dini_Int(file, "aAdmin") == 1){
new tmp[256];
new plid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)){
SendClientMessage(playerid, Vermelho, "Voce nгo estб em nenhum Departamento de Policia !");
return 1;
}
plid = strval(tmp);
if(IsPlayerInAnyVehicle(plid) == 1 || IsPlayerInAnyVehicle(playerid) == 1){
SendClientMessage(playerid, Vermelho, " Alguem estб dentro de um carro.");
return 1 ;
}
if(plid == playerid){
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo pode usar este comando em vocк mesmo.");
return 1 ;
}

if(Procurados[plid] < 5){
SendClientMessage(playerid, Vermelho, "(ERRO) Apenas jogadores com nivel 6 podem ser presos !");
return 1;
}

if(!IsPlayerConnected(plid)){
SendClientMessage(playerid, Vermelho, "(ERRO) Jogador nгo conectado.");
return 1;
} else {
if(check_prender == cop_prender){
new pname[MAX_PLAYER_NAME];
GetPlayerName(plid, pname, MAX_PLAYER_NAME);
format(file2, sizeof(file2), PASTA_CONTAS, pname);
format(string, sizeof(string), "O policial %s te prendeu.", aname);
SendClientMessage(plid, Blue, string);
SetPlayerPos(plid, 263.8820,77.4002,1001.0391);
SetPlayerInterior(plid, 6);
SetPlayerHealth(plid, 99999);
ResetPlayerWeapons(plid);
dini_IntSet(file2, "Preso", 1);
SendClientMessage(playerid, 0x8C8CFFAA, "(INFO) Preso com sucesso.");
prendeu[playerid] = 1;
preso[plid] = 1;
TogglePlayerControllable(plid, 1);
if(Procurados[plid] == 1){
Procurados[plid] = 0;
dini_IntSet(file2, "Procurado", 0);
}
return 1;
} else {
SendClientMessage(playerid,Vermelho," Chegue mais perto para Prender!");
return 1;
}
}
} else {
SendClientMessage(playerid,Vermelho," Apenas Policiais podem fazer isso!");
return 1;
}
}

PS; Nгo serб preciso digitar o ID do player ao usar o comando /prender, o player que estiver algemado serб preso.

Abraзs!

@Edit

#Comando para Desalgemar:
pawn Код:
if(strcmp(cmd, "/desalgemar", true) == 0) {
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);
if(dini_Int(file, "Profissao") == Policia_Militar || dini_Int(file, "Profissao") == Policia_Civil || dini_Int(file, "Profissao") == Policia_Federal || dini_Int(file, "Profissao") == Delegado || dini_Int(file, "Profissao") == Bope || dini_Int(file, "Profissao") == Swat || dini_Int(file, "Profissao") == Narcoticos || dini_Int(file, "Profissao") == FBI || dini_Int(file, "Profissao") == Interpol || dini_Int(file, "aAdmin") == 1){
new tmp[256];
new plid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)){
SendClientMessage(playerid, Vermelho, "/desalgemar [id]");
return 1;
}
plid = strval(tmp);
if(plid == playerid){
SendClientMessage(playerid, Vermelho, "Vocк nгo pode fazer isto com si mesmo.");
return 1 ;
}
if(!IsPlayerConnected(plid)){
SendClientMessage(playerid, Vermelho, "O jogador nгo estб conectado");
return 1;
} else {
if(GetDistanceBetweenPlayers(plid,playerid) < 10){
format(string, sizeof(string), "(INFO) O jogador %s te desalgemou.", aname);
GameTextForPlayer(plid,"~w~Desalgemado", 2000, 0);
TogglePlayerControllable(plid, 1);
SendClientMessage(plid, 0x8C8CFFAA, string);
SendClientMessage(playerid, 0x8C8CFFAA, "(INFO) Desalgemado com sucesso.");
algemado[plid] = 0;
return 1;
} else {
SendClientMessage(playerid,Vermelho," Chegue mais perto para desalgemar.");
return 1;
}
}
} else {
SendClientMessage(playerid,Vermelho,"(ERRO) Vocк nгo й um policial!");
return 1;
}
}
Reply
#2

Seu teclado nгo existe a tecla "TAB" ? '-'.

vasculhei seu cуdigo e nгo vi erros '-'.(ou to cego ?)
Imagino que vocк nгo esta usando ele corretamente kkk
Reply
#3

Amigo, o que eu queria й que ficasse da seguinte maneira; Quando um policial digitasse /prender, o player que estivesse algemado seria colocado na prisгo.

Abraзs!
Reply
#4

Seu problema й o mesmo problema de quase 90%+ dos membros desse fуrum quando possuem uma dъvida: montar uma lуgica.

Sua dъvida й bem simples. Basta criar uma variбvel globar com нndice para todos os jogadores. Exemplo:

new algo[MAX_PLAYERS]

Apartir daн nem tem muito o que falar. Quando o jogador estiver algemado voce coloca o valor dessa variбvel para True ou algo do tipo.

new algo[playerid] = 1

E quando o jogador digitar /prender, serб feito um looping entre todos os jogadores e verificar se o jogador possui essa variбvel criada com o valor i

Код:
for(new a = 0; a < MAX_PLAYERS; a++) {
    if(algo[a]) { ... }
}
Basta adaptar a sua necessidade.
Reply
#5

Obrigado GodKrok por responder!
Eu fiz da seguinte maneira: Quando um player for digitar /prender [id], terб uma variбvel verificando se o player foi algemado, ou seja, quando algemar, essa variavel fica com valor = 1 e quando desalgemar fica com valor = 0.
+Rept
#Tуpico Resolvido!
Abraзs!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)