ufo.pwn 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #include <a_samp>
  2. #define COLOR_WHITE 0xFFFFFFAA
  3. new ufo1, ufo2;
  4. new control[MAX_PLAYERS];
  5. public OnFilterScriptExit()
  6. {
  7. DestroyObject(ufo1);
  8. DestroyObject(ufo2);
  9. }
  10. public OnFilterScriptInit()
  11. {
  12. ufo1 = CreateObject(13607, -1460.199829, -943.961182, 219.348648, 0.0000, 0.0000, 0.0000);
  13. ufo2 = CreateObject(13607, -1460.167114, -944.012512, 206.879150, 179.6226, 0.0000, 0.0000);
  14. }
  15. public OnPlayerCommandText(playerid, cmdtext[])
  16. {
  17. if (strcmp(cmdtext, "/control", true)==0)
  18. {
  19. if(IsPlayerAdmin(playerid))
  20. {
  21. if(control[playerid] == 1)
  22. {
  23. control[playerid] = 0;
  24. SendClientMessage(playerid, COLOR_WHITE, "You are no longer controlling the UFO");
  25. }
  26. else
  27. {
  28. control[playerid] = 1;
  29. SendClientMessage(playerid, COLOR_WHITE, "You are now controlling the UFO");
  30. }
  31. }
  32. }
  33. if(strcmp(cmdtext, "/ufo", true) == 0)
  34. {
  35. if(IsPlayerAdmin(playerid))
  36. {
  37. new Float:X,Float:Y,Float:Z;
  38. GetObjectPos(ufo1,X,Y,Z);
  39. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  40. {
  41. SetVehiclePos(GetPlayerVehicleID(playerid),X,Y,Z);
  42. SetPlayerInterior(playerid,0);
  43. LinkVehicleToInterior(GetPlayerVehicleID(playerid),0);
  44. }
  45. else
  46. {
  47. SetPlayerPos(playerid,X,Y,Z);
  48. SetPlayerInterior(playerid,0);
  49. }
  50. }
  51. return 1;
  52. }
  53. return 0;
  54. }
  55. public OnPlayerUpdate(playerid)
  56. {
  57. if(control[playerid] == 1)
  58. {
  59. new Keys,ud,lr;
  60. GetPlayerKeys(playerid,Keys,ud,lr);
  61. if(ud > 0)
  62. {
  63. new Float:X, Float:Y, Float:Z, Float:XB, Float:YB, Float:ZB;
  64. GetObjectPos(ufo1, X, Y, Z);
  65. GetObjectPos(ufo2, XB, YB, ZB);
  66. MoveObject(ufo1, X, Y - 20, Z, 20);
  67. MoveObject(ufo2, XB, YB - 20, ZB, 20);
  68. }
  69. else if(ud < 0)
  70. {
  71. new Float:X, Float:Y, Float:Z, Float:XB, Float:YB, Float:ZB;
  72. GetObjectPos(ufo1, X, Y, Z);
  73. GetObjectPos(ufo2, XB, YB, ZB);
  74. MoveObject(ufo1, X, Y + 20, Z, 20);
  75. MoveObject(ufo2, XB, YB + 20, ZB, 20);
  76. }
  77. if(lr > 0)
  78. {
  79. new Float:X, Float:Y, Float:Z, Float:XB, Float:YB, Float:ZB;
  80. GetObjectPos(ufo1, X, Y, Z);
  81. GetObjectPos(ufo2, XB, YB, ZB);
  82. MoveObject(ufo1, X + 20, Y, Z, 20);
  83. MoveObject(ufo2, XB + 20, YB, ZB, 20);
  84. }
  85. else if(lr < 0)
  86. {
  87. new Float:X, Float:Y, Float:Z, Float:XB, Float:YB, Float:ZB;
  88. GetObjectPos(ufo1, X, Y, Z);
  89. GetObjectPos(ufo2, XB, YB, ZB);
  90. MoveObject(ufo1, X - 20, Y, Z, 20);
  91. MoveObject(ufo2, XB - 20, YB, ZB, 20);
  92. }
  93. }
  94. return 1;
  95. }
  96. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  97. {
  98. if(control[playerid] == 1)
  99. {
  100. if (newkeys & KEY_SPRINT)
  101. {
  102. new Float:X, Float:Y, Float:Z, Float:XB, Float:YB, Float:ZB;
  103. GetObjectPos(ufo1, X, Y, Z);
  104. GetObjectPos(ufo2, XB, YB, ZB);
  105. MoveObject(ufo1, X, Y, Z, 20);
  106. MoveObject(ufo2, XB, YB, ZB, 20);
  107. SendClientMessage(playerid, COLOR_WHITE, "Stopping Movement");
  108. }
  109. if (newkeys & KEY_JUMP)
  110. {
  111. new Float:X, Float:Y, Float:Z, Float:XB, Float:YB, Float:ZB;
  112. GetObjectPos(ufo1, X, Y, Z);
  113. GetObjectPos(ufo2, XB, YB, ZB);
  114. MoveObject(ufo1, X, Y, Z + 10, 20);
  115. MoveObject(ufo2, XB, YB, ZB + 10, 20);
  116. }
  117. if (newkeys & KEY_CROUCH)
  118. {
  119. new Float:X, Float:Y, Float:Z, Float:XB, Float:YB, Float:ZB;
  120. GetObjectPos(ufo1, X, Y, Z);
  121. GetObjectPos(ufo2, XB, YB, ZB);
  122. MoveObject(ufo1, X, Y, Z - 10, 20);
  123. MoveObject(ufo2, XB, YB, ZB - 10, 20);
  124. }
  125. }
  126. }