23.12.2014, 00:13
Bom muitos dizem que Pawn й bem fбcil de se aprender, Й MENTIRA, Tenho duas contas na BOARD, Uma em 2011 e essa outra a outra foi deletada. Bom eu estudo estudo estudo, e nunca tenho sucesso, nem sei como usar operadores , exemplos < , > ,, = !=. й bem complicado!!
Agora eu fazendo meu gamemode me deparo com uma merda dessa
O policial consegue algemar o suspeito mesmo ele estando bem longe do policial
O policial ta em LS E O SUSPEITO TA EM SF, ELE CONSEGUE ALGEMAR
e essa porra de return que eu nгo entendo de jeito nenhum , se eu deixou com o return ou se eu tiro ? qual vai ser a diferencia ?
Agora eu fazendo meu gamemode me deparo com uma merda dessa
O policial consegue algemar o suspeito mesmo ele estando bem longe do policial
O policial ta em LS E O SUSPEITO TA EM SF, ELE CONSEGUE ALGEMAR
pawn Код:
CMD:algemar(playerid, params[])
{
getdate(Ano, Mes, Dia);
gettime(Horas, Minutos, Segundos);
new ID_OUTRO_JOGADOR;
if(DadosJogador[playerid][ORGANIZACAO_JOGADOR] == POLICIA_MILITAR)
{
if (ProxDetector_Ao_Jogador(8.0, playerid, ID_OUTRO_JOGADOR))
{
if(Roupa_Farda[0][playerid] == false) return SendClientMessage(playerid,VERMELHO_BEM_CLARO,"Vocк precisa bater o cartгo para poder algemar algum suspeito.");
if(sscanf(params, "u", ID_OUTRO_JOGADOR)) return SendClientMessage(playerid, VERDE_BEM_CLARO, "USE: /algemar [ID]");
if(!IsPlayerConnected(ID_OUTRO_JOGADOR)) return SendClientMessage(playerid, VERMELHO_BEM_CLARO , "Jogador(a) nгo estб conectado.");
if(ID_OUTRO_JOGADOR == playerid) return SendClientMessage(playerid, VERMELHO_BEM_CLARO, "Vocк nгo pode si algemar.");
if(DadosJogador[ID_OUTRO_JOGADOR][VERIFICAR_MODO_ADMIN] == 1 && DadosJogador[ID_OUTRO_JOGADOR][ADMIN_NIVEL] >= 1) return SendClientMessage(playerid, VERMELHO_BEM_CLARO, "Vocк nгo pode algemar admin em modo de trabalho.");
if(DadosJogador[ID_OUTRO_JOGADOR][ORGANIZACAO_JOGADOR] == POLICIA_MILITAR) return SendClientMessage(playerid, VERMELHO_BEM_CLARO , "Vocк nгo pode algemar Policiais.");
if(Jogador_Algemado[ID_OUTRO_JOGADOR] == true) return SendClientMessage(playerid,VERMELHO_BEM_CLARO,"O Jogador jб estб algemado.");
if(DadosJogador[ID_OUTRO_JOGADOR][NIVEL_PROCURADO] < 0) return SendClientMessage(playerid,VERMELHO_BEM_CLARO,"O Suspeito precisa estar com nivel de procurado para ser algemado.");
Jogador_Algemado[ID_OUTRO_JOGADOR] = true;
SetPlayerSpecialAction(ID_OUTRO_JOGADOR, SPECIAL_ACTION_CUFFED);
SetPlayerAttachedObject(ID_OUTRO_JOGADOR, Algemas_Suspeito, 19418, 6, -0.031999, 0.024000,-0.024000,-7.900000,-32.000011,-72.299987, 1.115998, 1.322000, 1.406000);
GameTextForPlayer(ID_OUTRO_JOGADOR, "~y~[ ~r~~h~ALGEMADO ~y~[", 2500, 5);
format(String, sizeof(String), "Vocк foi algemado por %s .", PlayerNick(playerid));
SendClientMessage(ID_OUTRO_JOGADOR, COR_AMARELO, String);
format(String, sizeof(String), "Vocк algemou o suspeito %s .", PlayerNick(ID_OUTRO_JOGADOR));
SendClientMessage(playerid, COR_AMARELO, String);
format(String, sizeof(String), "(%s) - %s Algemou o suspeito %s .", NomeORG(playerid), PlayerNick(playerid), PlayerNick(ID_OUTRO_JOGADOR));
ProxDetector_Ao_Falar(10.0, playerid, String, ROXO_BEM_CLARO,ROXO_BEM_CLARO,ROXO_BEM_CLARO,ROXO_BEM_CLARO,ROXO_BEM_CLARO);
}
else
{
SendClientMessage(playerid,VERMELHO_BEM_CLARO,"Vocк precisa estar perto do jogador para poder algemar ele.");
return true;
}
}
else
{
SendClientMessage(playerid, VERMELHO_BEM_CLARO, "Vocк nгo estб autorizado a usar este comando.");
return true;
}
printf(" - [%d/%d/%d]: (%s): %s algemou o suspeito: %s ", Dia, Mes, Ano, NomeORG(playerid), PlayerNick(playerid), PlayerNick(ID_OUTRO_JOGADOR));
return true;
}
pawn Код:
ProxDetector_Ao_Jogador(Float:radi, playerid, targetid)
{
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
//radi = 2.0; //Trigger Radius
GetPlayerPos(targetid, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
//printf(" - [%d/%d/%d]: DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return true;
}
}
return true;
}