03/02/2023 02:30
(Esta mensagem foi modificada pela última vez a: 03/02/2023 02:32 por Device-Black.)
(02/01/2023 00:53)White_Blue Escreveu: Código para retornar a distância entre dois players.
Código PHP:stock GetDistanceBetweenPlayers(playerid, playerid2)
{
new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2;
new Float:tmpdis;
GetPlayerPos(playerid, x1, y1, z1);
GetPlayerPos(playerid2, x2, y2, z2);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2, x1)), 2) +floatpower(floatabs(floatsub(y2, y1)), 2)+floatpower(floatabs(floatsub(z2, z1)), 2));
return floatround(tmpdis);
}
Exemplo:
Código PHP:CMD:checkd(playerid, params[]) {
new plid;
if(sscanf(params, "u", plid)) return SendClientMessage(playerid, -1, "Use: /checkd [id]");
if(GetDistanceBetweenPlayers(playerid, plid) < 10) return SendClientMessage(playerid, -1, "Você está próximo!");
else return SendClientMessage(playerid, -1, "Você está longe.");
return 1;
}
stock GetDistanceBetweenPlayers(playerid, playerid2)
{
new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2;
new Float:tmpdis;
GetPlayerPos(playerid, x1, y1, z1);
GetPlayerPos(playerid2, x2, y2, z2);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2, x1)), 2) +floatpower(floatabs(floatsub(y2, y1)), 2)+floatpower(floatabs(floatsub(z2, z1)), 2));
return floatround(tmpdis);
}
Este código é inútil, pois pode ser feito facilmente de uma maneira simples como essa:
Código PHP:
stock Float:GetDistanceBetweenPlayers(playerid, targetid)
{
static Float:x, Float:y, Float:z;
GetPlayerPos(targetid, x, y, z);
// funcao nativa encontrada em: a_players.inc
return GetPlayerDistanceFromPoint(playerid, x, y, z);
}
Funciona da mesma forma, porém o seu codigo ocupa mais espaço tanto visual quanto em memoria
Eu mesmo não gosto de ficar ocupando linha desnecessáriamente... Da uma agonia da peste
Seu trouxa favorito 2