Advertisement
Guest User

Untitled

a guest
Jan 9th, 2011
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. new Arrow[MAX_PLAYERS];
  4.  
  5. stock Float:GetPointAngleToPoint(Float:x2, Float:y2, Float:X, Float:Y)
  6. {
  7. new Float:DX, Float:DY;
  8. new Float:angle;
  9.  
  10. DX = floatabs(floatsub(x2,X));
  11. DY = floatabs(floatsub(y2,Y));
  12.  
  13. if (DY == 0.0 || DX == 0.0)
  14. {
  15. if(DY == 0 && DX > 0) angle = 0.0;
  16. else if(DY == 0 && DX < 0) angle = 180.0;
  17. else if(DY > 0 && DX == 0) angle = 90.0;
  18. else if(DY < 0 && DX == 0) angle = 270.0;
  19. else if(DY == 0 && DX == 0) angle = 0.0;
  20. }
  21. else
  22. {
  23. angle = atan(DX/DY);
  24.  
  25. if(X > x2 && Y <= y2) angle += 90.0;
  26. else if(X <= x2 && Y < y2) angle = floatsub(90.0, angle);
  27. else if(X < x2 && Y >= y2) angle -= 90.0;
  28. else if(X >= x2 && Y > y2) angle = floatsub(270.0, angle);
  29. }
  30. return floatadd(angle, 90.0);
  31. }
  32.  
  33. stock SetArrowPlayer(playerid,Float:pX,Float:pY)
  34. {
  35. new Float:x, Float:y, Float:z, Float:Q;
  36. GetObjectPos(Seta[playerid],x,y,z);
  37. new Float:lookat = GetPointAngleToPoint(x,y,pX,pY);
  38. GetPlayerFacingAngle(playerid, Q);
  39. DestroyObject(Seta[playerid]);
  40. new Float:A, Float:B, Float:C;
  41. GetPlayerPos(playerid, A, B, C);
  42. Arrow[playerid] = CreateObject(1318,A, B, C,0,90, lookat + Q);
  43. return 1;
  44. }
  45.  
  46. public OnFilterScriptInit()
  47. {
  48. SetTimer("LOL", 100, 1);
  49. for(new I = 0; I < MAX_PLAYERS; I ++)
  50. {
  51. new Float:X, Float:Y, Float:Z;
  52. GetPlayerPos(I, X, Y, Z);
  53. Arrow[I] = CreateObject(1318,X, Y, Z,0,0,0);
  54. }
  55. return 1;
  56. }
  57.  
  58. forward LOL();
  59.  
  60. public LOL()
  61. {
  62. for(new I = 0; I < MAX_PLAYERS; I ++) SetArrowPlayer(I, 1153.9650,-1770.1655);
  63. return 1;
  64. }
  65.  
  66. public OnFilterScriptExit()
  67. {
  68. for(new I = 0; I < MAX_PLAYERS; I ++) DestroyObject(Arrow[I]);
  69. return 1;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement