PlayerToPlayer.inc 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include <a_samp>
  2. #include <a_players>
  3. stock SetPlayerFacePlayer(playerid, faceplayerid)
  4. {
  5. new Float:Px, Float:Py, Float: Pa;
  6. GetPlayerPos(playerid, Px, Py, Pa);
  7. new Float:fpX, Float:fpY, Float: fpZ;
  8. GetPlayerPos(faceplayerid, fpX, fpY, fpZ);
  9. Pa = floatabs(atan((fpY-Py)/(fpX-Px)));
  10. if(fpX <= Px && fpY >= Py) Pa = floatsub(180, Pa);
  11. else if(fpX < Px && fpY < Py) Pa = floatadd(Pa, 180);
  12. else if(fpX >= Px && fpY <= Py) Pa = floatsub(360.0, Pa);
  13. Pa = floatsub(Pa, 90.0);
  14. if(Pa >= 360.0) Pa = floatsub(Pa, 360.0);
  15. if(!IsPlayerInAnyVehicle(playerid)) SetPlayerFacingAngle(playerid, Pa);
  16. else SetVehicleZAngle(GetPlayerVehicleID(playerid), Pa);
  17. }
  18. new Float:_IPLAP[13];
  19. stock IsPlayerLookingAtPlayer(playerid,playerid2)
  20. {
  21. GetPlayerPos(playerid,_IPLAP[0],_IPLAP[1],_IPLAP[2]);
  22. GetPlayerCameraUpVector(playerid,_IPLAP[3],_IPLAP[4],_IPLAP[5]);
  23. _IPLAP[0]+=_IPLAP[3];
  24. _IPLAP[1]+=_IPLAP[4];
  25. _IPLAP[2]+=_IPLAP[5];
  26. GetPlayerCameraFrontVector(playerid,_IPLAP[6],_IPLAP[7],_IPLAP[8]);
  27. GetPlayerPos(playerid2,_IPLAP[9],_IPLAP[10],_IPLAP[11]);
  28. _IPLAP[12]=floatsqroot( ((_IPLAP[9]-_IPLAP[0])*(_IPLAP[9]-_IPLAP[0])) + ((_IPLAP[10]-_IPLAP[1])*(_IPLAP[10]-_IPLAP[1])) + ((_IPLAP[11]-_IPLAP[2])*(_IPLAP[11]-_IPLAP[2])) );
  29. _IPLAP[0]=_IPLAP[6]*_IPLAP[12]+_IPLAP[0];
  30. _IPLAP[1]=_IPLAP[7]*_IPLAP[12]+_IPLAP[1];
  31. _IPLAP[2]=_IPLAP[8]*_IPLAP[12]+_IPLAP[2];
  32. if( (_IPLAP[0]>(_IPLAP[9]-0.25)) && (_IPLAP[0]<(_IPLAP[9]+0.25)) && (_IPLAP[1]>(_IPLAP[10]-0.25)) && (_IPLAP[1]<(_IPLAP[10]+0.25)) && (_IPLAP[2]>(_IPLAP[11])) && (_IPLAP[2]<(_IPLAP[11]+2.0)) ) return 1;
  33. return 0;
  34. }
  35. stock IsPlayerLookingAtPoint(playerid,Float:X,Float:Y,Float:Z)
  36. {
  37. GetPlayerPos(playerid,_IPLAP[0],_IPLAP[1],_IPLAP[2]);
  38. GetPlayerCameraUpVector(playerid,_IPLAP[3],_IPLAP[4],_IPLAP[5]);
  39. _IPLAP[0]+=_IPLAP[3];
  40. _IPLAP[1]+=_IPLAP[4];
  41. _IPLAP[2]+=_IPLAP[5];
  42. GetPlayerCameraFrontVector(playerid,_IPLAP[6],_IPLAP[7],_IPLAP[8]);
  43. GetPlayerPos(playerid2,_IPLAP[9],_IPLAP[10],_IPLAP[11]);
  44. _IPLAP[12]=floatsqroot( ((X-_IPLAP[0])*(X-_IPLAP[0])) + ((Y-_IPLAP[1])*(Y-_IPLAP[1])) + ((Z-_IPLAP[2])*(Z-_IPLAP[2])) );
  45. _IPLAP[0]=_IPLAP[6]*_IPLAP[12]+_IPLAP[0];
  46. _IPLAP[1]=_IPLAP[7]*_IPLAP[12]+_IPLAP[1];
  47. _IPLAP[2]=_IPLAP[8]*_IPLAP[12]+_IPLAP[2];
  48. if( (_IPLAP[0]>(X-0.25)) && (_IPLAP[0]<(X+0.25)) && (_IPLAP[1]>(Y-0.25)) && (_IPLAP[1]<(Y+0.25)) && (_IPLAP[2]>(Z)) && (_IPLAP[2]<(Z+2.0)) ) return 1;
  49. return 0;
  50. }