Advertisement
Guest User

Rocket System

a guest
Jul 21st, 2011
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.79 KB | None | 0 0
  1. /*
  2. Rocket System
  3. © by QWER
  4. credits
  5. IsObjectInRangeOfPoint = autor thx
  6. SetObjectLookAt = autor thx
  7. */
  8.  
  9. #include <a_samp>
  10. #define MAX_ROCKETS 32
  11. #define EXPLODE
  12. #define RANGE 150
  13.  
  14. new Float:pos[MAX_ROCKETS][3],
  15.     Float:speed[MAX_ROCKETS],
  16.     bool:active[MAX_ROCKETS],
  17.     bool:shoot[MAX_ROCKETS],
  18. #if defined EXPLODE
  19.     explode[MAX_ROCKETS] = {150,...},
  20. #endif
  21.     shootid[MAX_ROCKETS] = {-1,...},
  22.     rocket[MAX_ROCKETS],
  23.     RocketCount = -1;
  24.  
  25. forward RocketUpdate();
  26.  
  27. stock CreateRocket(Float:x,Float:y,Float:z,Float:s=2.0){
  28. RocketCount++;
  29. if(RocketCount == 0) SetTimer("RocketUpdate",1250,true);
  30. pos[RocketCount][0] = x;
  31. pos[RocketCount][1] = y;
  32. pos[RocketCount][2] = z+100;
  33. speed[RocketCount]  = s;
  34. active[RocketCount] = true;
  35. return RocketCount;
  36. }
  37.  
  38. stock IsObjectInRangeOfPoint( objectid,Float:radi, Float:x, Float:y, Float:z ) {
  39. new Float:oldposx, Float:oldposy, Float:oldposz;
  40. new Float:tempposx, Float:tempposy, Float:tempposz;
  41.  GetObjectPos( objectid, oldposx, oldposy, oldposz );
  42.  tempposx = ( oldposx -x );
  43.   tempposy = ( oldposy -y );
  44.   tempposz = ( oldposz -z );
  45.   if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  46.   {
  47.    return 1;
  48.   }    return 0;
  49.   }
  50.  
  51.  
  52. public RocketUpdate(){
  53. for(new rocketid; rocketid < RocketCount+1;rocketid++){
  54. if(!shoot[rocketid]){
  55. for(new i; i < GetMaxPlayers();i++){
  56. if(IsPlayerConnected(i)){
  57. if(IsPlayerInRangeOfPoint(i,RANGE,pos[rocketid][0],pos[rocketid][1],pos[rocketid][2])){
  58. new car = GetVehicleModel(GetPlayerVehicleID(i));
  59. if(car == 592|| car == 577|| car == 511|| car == 512|| car ==593|| car ==520
  60. || car ==553|| car ==476|| car ==519|| car ==460|| car ==513|| car ==548
  61. || car ==425|| car ==417|| car ==48|| car ==488|| car ==497|| car ==563|| car ==447|| car ==469){
  62. rocket[rocketid] = CreateObject(345,pos[rocketid][0],pos[rocketid][1],pos[rocketid][2],0,0,0);
  63. shoot[rocketid] = true;
  64. shootid[rocketid] = i;
  65. }}}}
  66. }else{
  67. new i = shootid[rocketid];
  68. new Float:X,Float:Y,Float:Z;
  69. GetPlayerPos(i,X,Y,Z);
  70. SetObjectLookAt(rocket[rocketid], X, Y);
  71. MoveObject(rocket[rocketid],X,Y,Z,speed[rocketid]);
  72. #if defined EXPLODE
  73. explode[rocketid]-= random(5);
  74. if(explode[rocketid] > 1) {
  75. CreateExplosion(X,Y,Z,10,5);
  76. DestroyObject(rocket[rocketid]);
  77. shoot[rocketid] = false;
  78. shootid[rocketid] = -1;
  79. explode[rocketid] = 150;
  80. continue;
  81. }
  82. #endif
  83. if(IsObjectInRangeOfPoint(rocket[rocketid],5,X,Y,Z)){
  84. CreateExplosion(X,Y,Z,7,5);
  85. DestroyObject(rocket[rocketid]);
  86. shoot[rocketid] = false;
  87. shootid[rocketid] = -1;
  88. }
  89. }
  90. }
  91. }
  92.  
  93. main()
  94. {
  95.     print("\n----------------------------------");
  96.     print(" Blank Gamemode by your name here");
  97.     print("----------------------------------\n");
  98. }
  99.  
  100. stock SetObjectLookAt(objectid, Float:x, Float:y)
  101. {
  102.    new Float:Px, Float:Py, Float: Pa;
  103.    GetObjectPos(objectid,Px,Py,Pa);
  104.    Pa = floatabs(atan((y-Py)/(x-Px)));
  105.    if(x <= Px && y >= Py) Pa = floatsub(180.0,Pa);
  106.    else if(x < Px && y < Py) Pa = floatadd(Pa,180.0);
  107.    else if(x >= Px && y <= Py) Pa = floatsub(360.0,Pa);
  108.    Pa = floatsub(Pa,90.0);
  109.    if(Pa >= 360.0) Pa = floatsub(Pa,360.0);
  110.    SetObjectRot(objectid,0,0,Pa);
  111.    return 1;
  112. }
  113.  
  114. public OnGameModeInit()
  115. {
  116.     SetGameModeText("Blank Script");
  117.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  118.     CreateRocket(0,0,3);
  119.     return 1;
  120. }
  121.  
  122. public OnGameModeExit()
  123. {
  124.     return 1;
  125. }
  126.  
  127. public OnPlayerRequestClass(playerid, classid)
  128. {
  129.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  130.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  131.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  132.     return 1;
  133. }
  134.  
  135. public OnPlayerConnect(playerid)
  136. {
  137.     return 1;
  138. }
  139. public OnPlayerDisconnect(playerid,reason)
  140. {
  141. return 1;
  142. }
  143.  
  144. public OnPlayerText(playerid, text[])
  145. {
  146.     return 1;
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement