pawn Код:
new Float:scale=3.0, Float:rotZ;
GetPlayerCameraFrontVector(playerid, fX,fY,fZ);
GetPlayerCameraPos(playerid, camX,camY,camZ);
GetPlayerPos(playerid, pposX,pposY,pposZ);
shootX = camX + floatmul(scale, fX);
shootY = camY + floatmul(scale, fY);
rotZ = atan2(shootY-camY,shootX-camX);
new str[128]; format(str,sizeof(str),"atan2: %.2f",rotZ);
SendClientMessage(0, -1, str); //debug
rotZ-=90.0;//это нужно, когда я тестировал?
if(rotZ<0.0) rotZ+=360.0;
if(rotZ>360.0) rotZ-=360.0;
new Float:ang; GetPlayerFacingAngle(playerid, ang);
format(str,sizeof(str),"GetPlayerAngle: %.2f atan: %.2f Angle-atan:%.2f",ang,rotZ,(rotZ-ang));
SendClientMessage(0, -1, str);
if(floatabs(rotZ-ang)<=90) SendClientMessage(0, -1, "Legit shot (Good)");
else return SendClientMessage(0, -1, "NOT LEGIT (bad)");
Не работает очень хорошо, если угол составляет 350, и atan2 составляет 20, то 350 - 20< 90 это не удается,
почему то, что я делаю неправильно