Advertisement
Guest User

ODM

a guest
Oct 26th, 2014
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.26 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf2>
  4.  
  5. //Random Spawns for ODM arena
  6. new Float:ODMSpawns[][] =
  7. {
  8. {1595.3594, -777.3535, 1086.8411, 29.1164},
  9. {1608.2104, -769.7234, 1086.8411, 317.0491},
  10. {1607.0980,-803.7650,1086.8411,249.6819},
  11. {1585.4980,-813.2322,1086.8411,359.8079},
  12. {1590.5016,-804.3522,1089.7648,335.3677}
  13. };
  14.  
  15. //Variables
  16. new IsInODM[MAX_PLAYERS] = 0;
  17. new ODMOpen = 1;
  18. new weapons[MAX_PLAYERS][13][2];
  19. new Float:HealthBefore[MAX_PLAYERS],Float:ArmourBefore[MAX_PLAYERS];
  20. new Float:xB4[MAX_PLAYERS],Float:yB4[MAX_PLAYERS],Float:zB4[MAX_PLAYERS];
  21. new PlayerSpawned[MAX_PLAYERS] = 0;
  22. //Functions
  23. forward RemovePlayerFromODM(playerid);
  24. public RemovePlayerFromODM(playerid)
  25. {
  26. SetPlayerPos(playerid, xB4[playerid],yB4[playerid],zB4[playerid]);
  27. IsInODM[playerid] = 0;
  28. SendClientMessage(playerid, -1, "{FF8336}[Info] {FFD1B5}You have left the ODM deathmatch.");
  29. return 1;
  30. }
  31.  
  32. public OnFilterScriptInit()
  33. {
  34. print("\n--------------------------------------");
  35. print(" One Shot Deathmatch, made by Pawnify");
  36. print(" ODM, successfully loaded. ");
  37. print("--------------------------------------\n");
  38.  
  39. //MAPPING ARENA
  40. CreateObject(18981, 1604.84070, -773.00464, 1085.34106, 0.00000, 90.00000, 0.00000);
  41. CreateObject(18981, 1604.84070, -797.72162, 1085.34106, 0.00000, 90.00000, 0.00000);
  42. CreateObject(18981, 1580.12366, -797.72162, 1085.34106, 0.00000, 90.00000, 0.00000);
  43. CreateObject(18981, 1580.12366, -773.00458, 1085.34106, 0.00000, 90.00000, 0.00000);
  44. CreateObject(18981, 1580.13342, -821.82312, 1085.34106, 0.00000, 90.00000, 0.00000);
  45. CreateObject(18981, 1604.85034, -821.82312, 1085.34106, 0.00000, 90.00000, 0.00000);
  46. CreateObject(18981, 1567.20837, -773.00409, 1085.34106, 0.00000, 0.00000, 0.00000);
  47. CreateObject(18981, 1567.20837, -797.82013, 1085.34106, 0.00000, 0.00000, 0.00000);
  48. CreateObject(18981, 1567.20837, -822.63611, 1085.34106, 0.00000, 0.00000, 0.00000);
  49. CreateObject(18981, 1579.49341, -834.62878, 1085.34106, 0.00000, 0.00000, 90.00000);
  50. CreateObject(18981, 1604.30945, -834.62878, 1085.34106, 0.00000, 0.00000, 90.00000);
  51. CreateObject(18981, 1616.31238, -822.63611, 1085.34106, 0.00000, 0.00000, 0.00000);
  52. CreateObject(18981, 1616.31238, -797.82013, 1085.34106, 0.00000, 0.00000, 0.00000);
  53. CreateObject(18981, 1616.31238, -773.00409, 1085.34106, 0.00000, 0.00000, 0.00000);
  54. CreateObject(18981, 1604.30945, -760.70880, 1085.34106, 0.00000, 0.00000, 90.00000);
  55. CreateObject(18981, 1579.49341, -760.70880, 1085.34106, 0.00000, 0.00000, 90.00000);
  56. CreateObject(7921, 1603.07202, -809.10760, 1087.20691, 0.00000, 0.00000, 32.76000);
  57. CreateObject(7921, 1584.03760, -812.73615, 1087.21155, 0.00000, 0.00000, 105.71999);
  58. CreateObject(7921, 1593.29712, -790.46918, 1087.20691, 0.00000, 0.00000, 83.04000);
  59. CreateObject(7921, 1580.71655, -796.63257, 1087.20691, 0.00000, 0.00000, 255.90002);
  60. CreateObject(7921, 1605.24280, -792.20026, 1087.20691, 0.00000, 0.00000, 255.90002);
  61. CreateObject(7921, 1595.88721, -777.82336, 1087.20691, 0.00000, 0.00000, 306.12000);
  62. CreateObject(7921, 1577.60632, -773.16748, 1087.20691, 0.00000, 0.00000, 274.74002);
  63. CreateObject(7921, 1606.33093, -770.79382, 1087.20691, 0.00000, 0.00000, 191.45999);
  64. CreateObject(7921, 1579.39783, -785.74951, 1087.20691, 0.00000, 0.00000, 254.94002);
  65. CreateObject(5777, 1573.58423, -813.86841, 1086.44531, 0.00000, 0.00000, 36.12000);
  66. CreateObject(5777, 1593.17896, -818.96979, 1086.44531, 0.00000, 0.00000, 37.55999);
  67. CreateObject(2934, 1590.48621, -804.10767, 1087.31140, 0.00000, 0.00000, 0.00000);
  68. CreateObject(2934, 1604.07788, -801.04279, 1087.31140, 0.00000, 0.00000, 37.62000);
  69. CreateObject(2934, 1587.44690, -785.16925, 1087.31140, 0.00000, 0.00000, 88.56001);
  70. CreateObject(2934, 1571.44873, -782.63721, 1087.31140, 0.00000, 0.00000, 157.86005);
  71. CreateObject(2934, 1607.96692, -782.00873, 1087.31140, 0.00000, 0.00000, 216.36005);
  72. return 1;
  73. }
  74. main(){}
  75.  
  76. //COMMANDS
  77. CMD:odm(playerid, params[])
  78. {
  79. if(PlayerSpawned[playerid] == 1)
  80. {
  81. if(ODMOpen == 1)
  82. {
  83. if(IsInODM[playerid] == 0)
  84. {
  85. for (new i = 0; i <= 12; i++)
  86. {
  87. GetPlayerWeaponData(playerid, i, weapons[playerid][i][0], weapons[playerid][i][1]);
  88. }
  89. GetPlayerHealth(playerid, HealthBefore[playerid]);
  90. GetPlayerArmour(playerid, ArmourBefore[playerid]);
  91. GetPlayerPos(playerid, xB4[playerid],yB4[playerid],zB4[playerid]);
  92. new Random = random(sizeof(ODMSpawns));
  93. SetPlayerPos(playerid, ODMSpawns[Random][0], ODMSpawns[Random][1], ODMSpawns[Random][2]);
  94. SetPlayerFacingAngle(playerid, ODMSpawns[Random][3]);
  95. IsInODM[playerid] = 1;
  96. SendClientMessage(playerid, -1, "{FF8336}[Info] {FFD1B5}You have joined the ODM deathmatch.");
  97. ResetPlayerWeapons(playerid);
  98. SetPlayerHealth(playerid, 5);
  99. SetPlayerArmour(playerid, 0);
  100. GivePlayerWeapon(playerid, WEAPON_SILENCED, 999999);
  101. }else{
  102. RemovePlayerFromODM(playerid);
  103. ResetPlayerWeapons(playerid);
  104. SetPlayerHealth(playerid, HealthBefore[playerid]);
  105. SetPlayerArmour(playerid, ArmourBefore[playerid]);
  106. for (new i = 0; i <= 12; i++)
  107. {
  108. GivePlayerWeapon(playerid,weapons[playerid][i][0], 99999);
  109. }
  110. }
  111. }else SendClientMessage(playerid, -1, "{FF8336}[Error] {FFD1B5}ODM is closed at the moment.");
  112. }else SendClientMessage(playerid, -1, "{FF8336}[Error] {FFD1B5}You must be spawned to do this.");
  113. return 1;
  114. }
  115.  
  116. CMD:lockodm(playerid, params[])
  117. {
  118. if(IsPlayerAdmin(playerid))
  119. {
  120. if(ODMOpen == 1)
  121. {
  122. ODMOpen = 0;
  123. for(new i = 0; i < MAX_PLAYERS; i++)
  124. {
  125. if(IsInODM[playerid] == 1)
  126. {
  127. RemovePlayerFromODM(i);
  128. ResetPlayerWeapons(playerid);
  129. SetPlayerHealth(playerid, HealthBefore[playerid]);
  130. SetPlayerArmour(playerid, ArmourBefore[playerid]);
  131. for (new b = 0; b <= 12; b++)
  132. {
  133. GivePlayerWeapon(playerid,weapons[playerid][b][0], 99999);
  134. }
  135. SendClientMessage(i, -1, "{FF8336}[Info] {FFD1B5}The ODM has been closed.");
  136. }
  137. }
  138. SendClientMessage(playerid, -1, "{FF8336}[Info] {FFD1B5}You have locked the ODM.");
  139. }else if(ODMOpen == 0){
  140. ODMOpen = 1;
  141. SendClientMessage(playerid, -1, "{FF8336}[Info] {FFD1B5}You have unlocked the ODM.");
  142. }
  143. }else SendClientMessage(playerid, -1, "{FF8336}[Error] {FFD1B5}You must be an admin.");
  144. return 1;
  145. }
  146.  
  147. public OnPlayerDisconnect(playerid, reason)
  148. {
  149. IsInODM[playerid] = 0;
  150. return 1;
  151. }
  152.  
  153. public OnPlayerSpawn(playerid)
  154. {
  155. PlayerSpawned[playerid] = 1;
  156. if(ODMOpen == 1)
  157. {
  158. if(IsInODM[playerid] == 1)
  159. {
  160. new Random = random(sizeof(ODMSpawns));
  161. SetPlayerPos(playerid, ODMSpawns[Random][0], ODMSpawns[Random][1], ODMSpawns[Random][2]);
  162. SetPlayerFacingAngle(playerid, ODMSpawns[Random][3]);
  163. SendClientMessage(playerid, -1, "{FF8336}[Info] {FFD1B5}You have respawned inside of the ODM arena.");
  164. SetPlayerHealth(playerid, 5);
  165. SetPlayerArmour(playerid, 0);
  166. ResetPlayerWeapons(playerid);
  167. GivePlayerWeapon(playerid, WEAPON_SILENCED, 999999);
  168. }
  169. }
  170. return 1;
  171. }
  172. public OnPlayerDeath(playerid, killerid, reason)
  173. {
  174. PlayerSpawned[playerid] = 0;
  175. return 1;
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement