[Ajuda] OnPlayerGiveDamage - Sistema de HIT
#1

Como posso saber a distancia de um player ao outro ?

tipo , se eu atiro em um player com uma sniper , como posso saber qual a distanзia de mim para o player em que tirei damage ?

pawn Код:
GetDistanceBetweenPlayers
acredito que necessita disso , mas como ?
Reply
#2

Vocк pode usar o GetPlayerPos e o GetPlayerDistanceFromPoint

PHP код:
    new Float:xFloat:yFloat:z;
    
GetPlayerPos(damagedidxyz);
    new 
Floatdistancia GetPlayerDistanceFromPoint(playeridxyz); 
Reply
#3

Acabei de fazer ..

Obs: Nгo testei mais pela logica estб parecendo ser fucional .


pawn Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
    if(issuerid != INVALID_PLAYER_ID && weaponid == 34)
    {
        new Float:Distancia, string[100];
        Distancia = GetDistanceBetweenPlayers(issuerid,playerid);
        format(string, sizeof(string), "[ INFO ] vocк deu um tiro no jogador %s em uma distancia de %.1f", PlayerName(playerid), Distancia);
        SendClientMessage(issuerid, -1, string);
    }
    return 1;
}


pawn Код:
stock PlayerName(playerid)
{
new Nome[MAX_PLAYERS];
GetPlayerName(playerid, Nome, MAX_PLAYERS);
return Nome;
}
pawn Код:
stock GetDistanceBetweenPlayers(playerid,playerid2){
        new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
        new Float:dis;
        GetPlayerPos(playerid,x1,y1,z1);
        GetPlayerPos(playerid2,x2,y2,z2);
        dis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
        return floatround(dis);
}
Reply
#4

jimmmy o meu iria funcionar corretamente ?

pawn Код:
if(weaponid == 34)
    {
    if(damagedid != INVALID_PLAYER_ID)
    {
        new string[128], hitado[MAX_PLAYER_NAME];
        GetPlayerName(damagedid, hitado, sizeof (hitado));
        new Float:x, Float:y, Float:z;
        GetPlayerPos(damagedid, x, y, z);
        new Float: distancia = GetPlayerDistanceFromPoint(playerid, x, y, z);
        format(string, sizeof(string), "{B50909}[H.I.T] {FFFFFF}Hit confirmando em:{17A80F}%s[%d]:{FFFFFF}Distancia {17A80F}.:%d Feet(s) [Danos: %d]",hitado, damagedid, distancia, amount);
        SendClientMessage(playerid , 0xFFFFFFFF, string);
    }
    }
Reply
#5

Quote:
Originally Posted by ModaLOKO
Посмотреть сообщение
jimmmy o meu iria funcionar corretamente ?

pawn Код:
if(weaponid == 34)
    {
    if(damagedid != INVALID_PLAYER_ID)
    {
        new string[128], hitado[MAX_PLAYER_NAME];
        GetPlayerName(damagedid, hitado, sizeof (hitado));
        new Float:x, Float:y, Float:z;
        GetPlayerPos(damagedid, x, y, z);
        new Float: distancia = GetPlayerDistanceFromPoint(playerid, x, y, z);
        format(string, sizeof(string), "{B50909}[H.I.T] {FFFFFF}Hit confirmando em:{17A80F}%s[%d]:{FFFFFF}Distancia {17A80F}.:%d Feet(s) [Danos: %d]",hitado, damagedid, distancia, amount);
        SendClientMessage(playerid , 0xFFFFFFFF, string);
    }
    }
Nгo rs

pawn Код:
if(damagedid != INVALID_PLAYER_ID)
new Float: distancia = GetPlayerDistanceFromPoint(playerid, x, y, z);
outros ...
Use o meu como base Amigo, mude a mensagem se quiser
Reply
#6

Obrigado <3 +rep
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)