Advertisement
Guest User

mansonh

a guest
Dec 26th, 2009
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.33 KB | None | 0 0
  1. //Rocketeer Script
  2. // Pretty simple script to allow admin to use a "rocket" function to fly
  3. //Author:Mansonh
  4.  
  5. #include <a_samp>
  6. #include <core>
  7. #include <float>
  8.  
  9. #include "../include/gl_common.inc"
  10.  
  11. #if !defined INFINITY
  12. #define INFINITY (Float:0x7F800000)
  13. #endif
  14.  
  15. new
  16. Float:gPlayerHealth[MAX_PLAYERS],
  17. godmode[MAX_PLAYERS],
  18. godCarId[MAX_PLAYERS],
  19. exptype[MAX_PLAYERS];
  20.  
  21. public OnFilterScriptInit( ){
  22. for(new i=0; i<MAX_PLAYERS; i++)
  23. {
  24. godmode[i] = 0;
  25. exptype[i]=12;
  26. }
  27. }
  28. public OnPlayerUpdate(playerid){
  29. if(!godmode[playerid]){return 1;}
  30. new Keys,ud,lr, Float:A;
  31. GetPlayerKeys(playerid,Keys,ud,lr);
  32. GetPlayerFacingAngle(playerid, A);
  33. new Float:N=0, Float:E=0;
  34. if(A<67.5|| A > 292.5)//North
  35. {
  36. N+=1.0;
  37. }
  38. if(A<157.5 && A>22.5)//East
  39. {
  40. E-=1.0;
  41. }
  42. if(A<247.5 && A>112.5)//South
  43. {
  44. N-=1.0;
  45. }
  46. if(A<337.5 && A>202.5)//West
  47. {
  48. E+=1.0;
  49. }
  50.  
  51. new Float:X, Float:Y, Float:Z;
  52. GetPlayerPos(playerid, X, Y, Z );
  53. if(ud < 0) {
  54. //SendClientMessage(playerid, 0xFFFFFFFF, "UP");
  55. CreateExplosion (X-E, Y-N, Z-1, exptype[playerid], 0.0);
  56. }
  57. else if(ud > 0) {
  58. //SendClientMessage(playerid, 0xFFFFFFFF, "DOWN");
  59. CreateExplosion (X+E, Y+N, Z-1, exptype[playerid], 0.0);
  60. }
  61. if(lr > 0) {
  62. //SendClientMessage(playerid, 0xFFFFFFFF, "RIGHT");
  63. CreateExplosion (X-N, Y+E, Z-1, exptype[playerid], 0.0);
  64. }
  65. else if(lr < 0) {
  66. //SendClientMessage(playerid, 0xFFFFFFFF, "LEFT");
  67. CreateExplosion (X+N, Y-E, Z-1, exptype[playerid], 0.0);
  68. }
  69. return 1;
  70. }
  71. public OnPlayerKeyStateChange(playerid,newkeys,oldkeys){
  72. if(!godmode[playerid]){return 1;}
  73.  
  74. if (newkeys & KEY_JUMP){
  75. new Float:X, Float:Y, Float:Z;
  76. GetPlayerPos(playerid, X, Y, Z );
  77. CreateExplosion (X, Y, Z-1.5, exptype[playerid], 0.0);
  78. CreateExplosion (X+1, Y, Z-0.5, exptype[playerid], 0.0);
  79. CreateExplosion (X-1, Y, Z-0.5, exptype[playerid], 0.0);
  80. CreateExplosion (X, Y+1, Z-0.5, exptype[playerid], 0.0);
  81. CreateExplosion (X, Y-1, Z-0.5, exptype[playerid], 0.0);
  82. }
  83. return 1;
  84. }
  85. public OnPlayerCommandText(playerid, cmdtext[]){
  86. new cmd[256];
  87. new idx;
  88. cmd = strtok(cmdtext, idx);
  89.  
  90. //if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
  91. if( strcmp(cmd, "/help", true) == 0 || strcmp(cmd, "/commands", true) == 0){
  92. new msg[256];
  93. format(msg,256,"/fly - turns on rocket mode\n/rocket [1-12] changes type of rocket");
  94. SendClientMessage(playerid,0xAAAAAAAA,msg);
  95. return 1;
  96. }
  97. if( strcmp(cmd, "/fly", true) == 0){
  98. new msg[256];
  99. if(!godmode[playerid])
  100. {
  101. godCarId[playerid] = GetPlayerVehicleID( playerid );
  102. if ( godCarId[playerid] )
  103. {
  104. SetVehicleHealth(godCarId[playerid], INFINITY);
  105. }
  106. GivePlayerWeapon(playerid,30, 999999);
  107. GetPlayerHealth(playerid, gPlayerHealth[playerid]);
  108. SetPlayerHealth(playerid, INFINITY);
  109. godmode[playerid] = 1;
  110. format(msg,256,"Godmode On\nControls: direction(wsad), stableizer(KEY_JUMP)\nEnjoy the flight!");
  111. }else{
  112. if ( godCarId[playerid] )
  113. {
  114. SetVehicleHealth(godCarId[playerid], 100.0);
  115. }
  116. godCarId[playerid] = 0;
  117. GivePlayerWeapon(playerid,30, 0);
  118. SetPlayerHealth(playerid, gPlayerHealth[playerid]);
  119. godmode[playerid] = 0;
  120. format(msg,256,"Godmode Off, see you again soon");
  121. }
  122. SendClientMessage(playerid,0xAAAAAAAA,msg);
  123. return 1;
  124. }
  125. if( strcmp(cmd, "/rocket", true) == 0){
  126. new tmp[256];
  127. tmp = strtok(cmdtext,idx);
  128. new type = strval(tmp);
  129. new msg[256];
  130. if(type<1 || type>12)
  131. {
  132. format(msg,256,"/rocket [1-12] default 12");
  133. SendClientMessage(playerid,0x990000AA,msg);
  134. return 1;
  135. }
  136. exptype[playerid] = type;
  137. switch (type)
  138. {
  139. case 12:
  140. {
  141. format(msg,256,"%d - Default, easy to control, slow",type);
  142. }
  143. case 2:
  144. {
  145. format(msg,256,"%d - hard to control, very fast, long slow turns",type);
  146. }
  147. case 3:
  148. {
  149. format(msg,256,"%d - medium control, fast, larger ball",type);
  150. }
  151. case 8:
  152. {
  153. format(msg,256,"%d - [invisible], relatively easy to control",type);
  154. }
  155. case 9:
  156. {
  157. format(msg,256,"%d - [invisible], easy to control, slow",type);
  158. }
  159. case 11:
  160. {
  161. format(msg,256,"%d - easy to control, slow, larger flames",type);
  162. }
  163. default:
  164. {
  165. format(msg,256,"%d - NOT RECOMMENDED",type);
  166. }
  167. }
  168. SendClientMessage(playerid,0x990000AA,msg);
  169. return 1;
  170. }
  171. return 0;
  172. }
  173.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement