24/09/2023 08:26
(23/09/2023 10:49)White_Blue Escreveu:Fala amigão tudo certo? Fiquei impressionado com o capricho e a complexidade do código que vc fez, obrigado mesmo pela ajuda, ficou perfeito só precisei colocar um ponto e virgula ali em cima depois do org proibida, e renomear "GetDistanceBetweenPlayers" que tava dando conflito com uma include e Shazam o código funcionou PERFEITAMENTEEE muito obrigado mesmo amigo!!(23/09/2023 08:11)Colono Escreveu: Olá sou novato em Pawn, estou tentando criar um comando policial, o /autosu, a sua função seria "/autosu [id]" (id do time) que retornaria dando nível de procura em: quem estiver perto do player e seu time for do mesmo número que o player digitou.
Deixei no pastebin o código pra ser mais fácil de entender
https://pastebin.com/wAmBqxvA
o problema é que ele não retorna dando procura em quem esta perto o máximo que consegui foi dar procura em mim mesmo...
Tente assim:
Código PHP:CMD:autosu(playerid, const params[]) {
new org, bool:orgproibida, new Float:distance;
if(GetPlayerOrg(playerid) != 1 || GetPlayerOrg(playerid) != 2 || GetPlayerOrg(playerid) != 3 || GetPlayerOrg(playerid) != 4 || GetPlayerOrg(playerid) != 9 || GetPlayerOrg(playerid) != 10 || GetPlayerOrg(playerid) != 12 || GetPlayerOrg(playerid) != 13 || GetPlayerOrg(playerid) != 14 || GetPlayerOrg(playerid) != 17 || GetPlayerOrg(playerid) != 25) return SendClientMessage(playerid, -1, "Você precisa ser policial para utilizar este comando.");
if(sscanf(params, "d", org)) return SendClientMessage(playerid, -1, "Use: /autosu [id-org]");
switch(org) {
case 1..2: orgproibida = true;
case 3..4: orgproibida = true;
case 9..10: orgproibida = true;
case 12..13: orgproibida = true;
case 14..17: orgproibida = true;
case 0..25: orgproibida = true;
default: orgproibida = false;
}
if(orgproibida) return SendClientMessage(playerid, -1, "Você não pode dar autosu nessa org.");
for(new i = 0; i < MAX_PLAYERS; i++) {
distance = GetDistanceBetweenPlayers(playerid, i);
if(distance > 10) continue; // Caso a distância for superior a 10, o loop pula esse jogador e continua a procurar por jogadores com a distância inferior a 10.
else if(GetPlayerOrg(i) != org) continue;
SetPlayerCriminal(i, 255, "Sequestro (auto su usado)");
TempoSu[i] = GetTickCount();
}
return 1;
}
stock Float:GetDistanceBetweenPlayers(playerid, targetid) {
static Float:pos[3];
GetPlayerPos(targetid, pos[0], pos[1], pos[2]);
return GetPlayerDistanceFromPoint(playerid, pos[0], pos[1], pos[2]);
}