Posiзгo de onde veio o tiro -
gmstrikker - 29.12.2017
https://uploaddeimagens.com.br/imagens/blood-png--12
Alguйm jб fez isso ou sabe como fazer?
Seria possнvel pegando ao player receber dano, pegar a posiзгo do player que atirou e o player atingido e fazer uma textdraw apontando pra direзгo do cara que acertou como funciona em quase todos os FPS?
Re: Posiзгo de onde veio o tiro -
DelK - 29.12.2017
Quote:
Originally Posted by gmstrikker
https://uploaddeimagens.com.br/imagens/blood-png--12
Alguйm jб fez isso ou sabe como fazer?
Seria possнvel pegando ao player receber dano, pegar a posiзгo do player que atirou e o player atingido e fazer uma textdraw apontando pra direзгo do cara que acertou como funciona em quase todos os FPS?
|
Acabei de fazer um sistema de headshot que irei postar mais tarde e eu coloquei essa funзгo, mas ainda nгo criei a textdraw do dano mais й sу vocк seguir essa lуgica.
PHP код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
//funзгo
new string[55], Float: Distancia;
Distancia = GetDistanciaEntrePlayers(issuerid, playerid);
format(string, sizeof(string), "Distancia:_%.1f Metros", Distancia);
TextDrawSetString(TextId, string);
return 1;
}
PHP код:
stock GetDistanciaEntrePlayers(playerid, playerid2)
{
new Float: Pos1[3], Float: Pos2[3], Float: distancia;
GetPlayerPos(playerid, Pos1[0], Pos1[1], Pos1[2]);
GetPlayerPos(playerid2,Pos2[0], Pos2[1], Pos2[2]);
distancia = floatsqroot(floatpower(floatabs(floatsub(Pos2[0], Pos1[0])),2)+floatpower(floatabs(floatsub(Pos2[1], Pos1[1])),2)+floatpower(floatabs(floatsub(Pos2[2], Pos1[2])),2));
return floatround(distancia);
}
Re: Posiзгo de onde veio o tiro -
maikons - 31.12.2017
Quote:
Originally Posted by DelK
Acabei de fazer um sistema de headshot que irei postar mais tarde e eu coloquei essa funзгo, mas ainda nгo criei a textdraw do dano mais й sу vocк seguir essa lуgica.
PHP код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
//funзгo
new string[55], Float: Distancia;
Distancia = GetDistanciaEntrePlayers(issuerid, playerid);
format(string, sizeof(string), "Distancia:_%.1f Metros", Distancia);
TextDrawSetString(TextId, string);
return 1;
}
PHP код:
stock GetDistanciaEntrePlayers(playerid, playerid2)
{
new Float: Pos1[3], Float: Pos2[3], Float: distancia;
GetPlayerPos(playerid, Pos1[0], Pos1[1], Pos1[2]);
GetPlayerPos(playerid2,Pos2[0], Pos2[1], Pos2[2]);
distancia = floatsqroot(floatpower(floatabs(floatsub(Pos2[0], Pos1[0])),2)+floatpower(floatabs(floatsub(Pos2[1], Pos1[1])),2)+floatpower(floatabs(floatsub(Pos2[2], Pos1[2])),2));
return floatround(distancia);
}
|
Essa funзгo retorna a distancia? Mas os X da questгo й a direзгo com relaзгo as textdraws, nгo a distancia...
Eu acho que o ideal era fazer com uma funзгo como essa:
stock Float:AngleBetweenPoints(Float:XA, Float:YA, Float:XB, Float:YB)
{
new Float:Angle=-(90+(atan2(YA-YB,XA-XB)));// * 180.0 / 3.141592653;
return Angle;
}
AngleBetweenPoints(p1X,p1Y,p2X,p2Y);
Mas eu nгo sei como criar a textdraw na direзгo, se alguйm souber por favor me fale...
Re: Posiзгo de onde veio o tiro -
renatog - 31.12.2017
A matemбtica pra fazer isso й tгo pesada que nem vale a pena tentar implementar isso no SA:MP, mas se vocк quiser muito, isso pode te ajudar:
https://sampforum.blast.hk/showthread.php?tid=480286