Guest User

DTDM

a guest
Jan 27th, 2014
347
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 60.02 KB | None | 0 0
  1. /*Desert Team DM by Marwan*/
  2.  
  3.  
  4. //----------------------------------------------Includes---------------------------------------------------------
  5.  
  6. #include <a_samp>
  7. #include <YSI\y_ini>
  8. #include <sscanf2>
  9. #include <zcmd>
  10.  
  11. //----------------------------------------------Defines----------------------------------------------------------
  12.  
  13. //login/register system defines
  14. #define DIALOG_REGISTER 1
  15. #define DIALOG_LOGIN 2
  16. #define DIALOG_SUCCESS_1 3
  17. #define DIALOG_SUCCESS_2 4
  18. #define PATH "/Users/%s.ini"
  19. //Color defines
  20. #define COL_WHITE "{FFFFFF}"
  21. #define COL_GREEN "{00FF22}"
  22. #define COL_LIGHTBLUE "{00CED1}"
  23. #define COLOR_RED 0xAA3333AA
  24. #define COLOR_WHITE 0xFFFFFFFF
  25. #define COLOR_VIP 0xD200D2FF
  26. #define COLOR_PM 0xDFDF00FF
  27. #define COLOR_LIGHTBLUE 0x33CCFFAA
  28. #define RWTime 60000*3
  29. //Defines regarding teams
  30. #define TEAM_ARMY 1
  31. #define TEAM_TERRORISTS 2
  32. #define TEAM_ARMY_COLOR 0x00FF00AA // Bright Green
  33. #define TEAM_TERRORISTS_COLOR 0x00000000 // Black
  34. //defines regarding all dialogs dialogs
  35. #define DIALOG_SHOP 999
  36. #define DIALOG_HELP 998
  37. #define DIALOG_TUT 997
  38. #define DIALOG_USELESS 996 // This is used for dialog styled messages, don't remove it.
  39. #define DIALOG_CSHOP 995
  40.  
  41. //------------------------------------------------Enums----------------------------------------------------------
  42.  
  43. enum pInfo //Player info enum
  44. {
  45. pPass,
  46. pCash,
  47. pVip,
  48. pTogVC,
  49. pAdmin,
  50. pKills,
  51. pDeaths,
  52. pBanned,
  53. pWarns,
  54. pReportMuted,
  55. pCookies,
  56. pRank
  57. }
  58.  
  59. //----------------------------------------------Variables--------------------------------------------------------
  60.  
  61. new gTeam[MAX_PLAYERS];
  62. new PlayerInfo[MAX_PLAYERS][pInfo];
  63. new Weather;
  64. forward StartedNewRound();
  65. forward NewMapTimer(playerid);
  66. new MapChange;
  67.  
  68. //----------------------------------------------Forwards---------------------------------------------------------
  69.  
  70. forward LoadUser_data(playerid,name[],value[]); //This forward is used for loading users data
  71. forward ABroadCast(color,const string[],level); //This forward is used for checking admlvl and broadcasting a msg
  72. forward VBroadCast(color,const string[],level); //This forward is used for checking VIPlvl and broadcasting a msg
  73.  
  74. //==============================================MAIN BODY========================================================
  75.  
  76. main()
  77. {
  78. print("\n----------------------------------");
  79. print(" Desert Team DeathMatch by Marwan");
  80. print("----------------------------------\n");
  81. }
  82.  
  83. public OnGameModeInit()
  84. {
  85. SetTimer("NewMapTimer",180000,true); // this is 2 min timer for MapChangechange basically has to be on true for it to change the other MapChangewhen timer is over OnPlayerSpawn Further in the tutorial you will know why
  86. MapChange= 0;
  87. SetTimer("RandomWeather",RWTime, true);
  88. antiDeAMX();
  89. SetGameModeText("DTDM V0.2");
  90. ShowNameTags(1);
  91. SetWorldTime(0);
  92. DisableInteriorEnterExits();
  93.  
  94. //Army skins
  95. AddPlayerClass(287,230.5570,1696.2507,22.6406,263.2534,31,49999,23,49999,3,2); //
  96. AddPlayerClass(179,232.6367,1700.9747,22.6406,262.9400,31,49999,23,49999,3,2); //
  97. AddPlayerClass(191,232.6576,1689.0695,22.6406,262.9400,31,49999,23,49999,3,2); //
  98. AddPlayerClass(285,232.6576,1689.0695,22.6406,262.9400,31,49999,23,49999,3,2); //
  99. AddPlayerClass(288,232.6576,1689.0695,22.6406,262.9400,31,49999,23,49999,3,2); //
  100.  
  101.  
  102. //Terrorists skin
  103. AddPlayerClass(60,191.3909,2084.5696,22.6406,277.2641,30,49999,22,49999,4,2); //
  104. AddPlayerClass(111,191.3432,2079.5408,22.6444,259.4039,30,49999,22,49999,4,2); //
  105. AddPlayerClass(192,190.6399,2094.2769,22.6406,276.6374,30,49999,22,49999,4,2); //
  106. AddPlayerClass(292,190.6399,2094.2769,22.6406,276.6374,30,49999,22,49999,4,2); //
  107. AddPlayerClass(272,190.6399,2094.2769,22.6406,276.6374,30,49999,22,49999,4,2); //
  108.  
  109.  
  110. //Army objects and cars
  111. CreateObject(19312, 235.36707, 1695.43616, 19.77254, 0.00000, 0.00000, 0.00000);
  112. CreateObject(19312, 244.64842, 2071.63306, 19.78327, 0.00000, 0.00000, -178.08000);
  113. CreateVehicle(433, 146.9802, 1657.9812, 17.3897, 269.5399, 99, 99, 20);
  114. CreateVehicle(433, 147.5316, 1670.7219, 17.6929, -89.4000, 99, 99, 20);
  115. CreateVehicle(433, 147.8038, 1684.4885, 17.9131, -91.5000, 99, 99, 20);
  116. CreateVehicle(433, 147.9912, 1697.2031, 17.9799, -93.1800, 99, 99, 20);
  117. CreateVehicle(433, 147.7041, 1714.1603, 17.9621, -91.4400, 99, 99, 20);
  118. CreateVehicle(433, 147.6006, 1731.6425, 17.8712, -91.9800, 99, 99, 20);
  119. CreateVehicle(400, 192.8159, 1763.8597, 17.5825, 177.3894, 99, 99, 20);
  120. CreateVehicle(400, 200.7252, 1763.7263, 17.5661, 177.6613, 99, 99, 20);
  121. CreateVehicle(400, 208.9903, 1763.9935, 17.5599, -181.8600, 99, 99, 20);
  122. CreateVehicle(400, 216.5974, 1763.5127, 17.5516, -181.9800, 99, 99, 20);
  123. CreateVehicle(400, 224.4044, 1763.7711, 17.6335, -181.3800, 99, 99, 20);
  124. CreateVehicle(432, 240.6619, 1759.3805, 17.5511, -180.5400, 99, 99, 20);
  125. CreateVehicle(432, 255.9543, 1759.1079, 17.5529, 179.7703, 99, 99, 20);
  126. CreateVehicle(432, 269.5639, 1759.7552, 17.4597, -181.9200, 99, 99, 20);
  127. CreateVehicle(470, 146.7619, 1724.3362, 17.2562, -92.0317, 99, 99, 20);
  128. CreateVehicle(470, 146.7570, 1706.0692, 17.2631, -92.1000, 99, 99, 20);
  129. CreateVehicle(470, 145.8182, 1690.8519, 17.2663, -92.0400, 99, 99, 20);
  130. CreateVehicle(470, 145.8022, 1677.4164, 17.3620, -90.1800, 99, 99, 20);
  131. CreateVehicle(470, 145.6138, 1664.1328, 16.7327, -90.0600, 99, 99, 20);
  132. CreateVehicle(468, 291.2907, 1753.9210, 17.1360, 0.0000, 99, 99, 20);
  133. CreateVehicle(468, 295.9355, 1751.9498, 17.1392, 0.0000, 99, 99, 20);
  134. CreateVehicle(468, 300.6717, 1749.8354, 17.1350, 0.0000, 99, 99, 20);
  135. CreateVehicle(468, 304.9778, 1748.3606, 17.1326, 0.0000, 99, 99, 20);
  136. CreateVehicle(468, 308.2560, 1747.3311, 17.1264, 0.0000, 99, 99, 20);
  137. CreateVehicle(468, 285.4278, 1756.6929, 17.1637, 0.0000, 99, 99, 20);
  138. CreateVehicle(425, 302.7235, 1712.6877, 18.2436, 89.1000, 99, 99, 20);
  139. CreateVehicle(425, 303.9235, 1699.2748, 18.2592, 87.2400, 99, 99, 20);
  140. CreateVehicle(425, 305.3083, 1684.6649, 18.2299, 83.6400, 99, 99, 20);
  141. CreateVehicle(461, 142.4462, 1754.2678, 17.0400, -86.7600, 99, 99, 20);
  142. CreateVehicle(461, 142.5471, 1757.7698, 17.0563, -92.2800, 99, 99, 20);
  143. CreateVehicle(461, 142.5340, 1761.4193, 17.0515, -94.9800, 99, 99, 20);
  144.  
  145. //Terrorists cars
  146. CreateVehicle(402, 333.4777, 2122.0227, 17.1623, 92.1600, 0, 0, 20);
  147. CreateVehicle(402, 333.6626, 2116.7529, 17.1623, 92.1600, 0, 0, 20);
  148. CreateVehicle(402, 333.8768, 2111.7634, 17.1623, 92.1000, 0, 0, 20);
  149. CreateVehicle(402, 334.1618, 2106.4910, 17.1623, 92.1600, 0, 0, 20);
  150. CreateVehicle(402, 334.1994, 2101.8909, 17.1623, 92.1600, 0, 0, 20);
  151. CreateVehicle(402, 334.4857, 2096.7747, 17.1623, 91.7400, 0, 0, 20);
  152. CreateVehicle(402, 334.7802, 2092.3589, 17.1623, 92.1600, 0, 0, 20);
  153. CreateVehicle(402, 334.4857, 2096.7747, 17.1623, 91.7400, 0, 0, 20);
  154. CreateVehicle(402, 334.6182, 2087.2144, 17.1623, 92.1600, 0, 0, 20);
  155. CreateVehicle(402, 334.7708, 2082.3562, 17.1623, 92.1600, 0, 0, 20);
  156. CreateVehicle(402, 334.8441, 2077.4570, 17.1623, 92.1600, 0, 0, 20);
  157. CreateVehicle(428, 292.6531, 2007.0073, 17.6435, 0.0000, 0, 0, 20);
  158. CreateVehicle(428, 287.3436, 2006.4933, 17.6435, 0.0000, 0, 0, 20);
  159. CreateVehicle(428, 282.5711, 2006.3347, 17.6435, 0.0000, 0, 0, 20);
  160. CreateVehicle(428, 277.3625, 2006.1284, 17.6435, 0.0000, 0, 0, 20);
  161. CreateVehicle(428, 271.4852, 2005.8606, 17.6435, 0.0000, 0, 0, 20);
  162. CreateVehicle(428, 266.4672, 2005.6625, 17.6435, 0.0000, 0, 0, 20);
  163. CreateVehicle(463, 252.8870, 2003.2036, 17.0655, 0.0000, 0, 0, 20);
  164. CreateVehicle(463, 249.7882, 2003.1084, 17.0655, 0.0000, 0, 0, 20);
  165. CreateVehicle(463, 246.2334, 2002.9128, 17.0655, 0.0000, 0, 0, 20);
  166. CreateVehicle(463, 243.3700, 2002.9286, 17.0655, 0.0000, 0, 0, 20);
  167. CreateVehicle(447, 198.8703, 2010.5332, 17.4705, -27.9600, 0, 0, 20);
  168. CreateVehicle(447, 187.5684, 2016.7830, 17.4705, -27.9600, 0, 0, 20);
  169. CreateVehicle(447, 175.8630, 2022.4092, 17.4705, -27.9600, 0, 0, 20);
  170. CreateVehicle(463, 240.4923, 2002.8578, 17.0655, 0.0000, 0, 0, 20);
  171. CreateVehicle(587, 165.7403, 2132.6489, 16.8159, -179.6585, 0, 0, 20);
  172. CreateVehicle(587, 170.9406, 2132.5715, 16.8159, -179.6585, 0, 0, 20);
  173. CreateVehicle(587, 175.7894, 2132.7466, 16.8159, -179.6585, 0, 0, 20);
  174. CreateVehicle(587, 180.6176, 2132.9023, 16.8159, -179.6585, 0, 0, 20);
  175. CreateVehicle(587, 185.3044, 2133.0225, 16.8159, -179.6585, 0, 0, 20);
  176. CreateVehicle(587, 161.5441, 2132.8323, 16.8159, -179.6585, 0, 0, 20);
  177.  
  178. //Map 2
  179. CreateObject(11440, -1283.95020, 2473.88525, 85.68746, 356.85840, 0.00000, 3.14159);
  180. CreateObject(11447, -1289.81775, 2500.69312, 86.00781, 356.85840, 0.00000, 3.14159);
  181. CreateObject(11457, -1303.15112, 2483.98364, 85.39877, 356.85840, 0.00000, 21.65140);
  182. CreateObject(11443, -1283.95410, 2446.06104, 87.29965, 0.00000, 0.00000, 8.90462);
  183. CreateObject(11459, -1305.83545, 2456.85034, 86.18849, 0.00000, 0.00000, 0.00000);
  184. CreateObject(711, -1287.44495, 2465.49683, 92.66559, 0.00000, 0.00000, 0.00000);
  185. CreateObject(711, -1299.96570, 2513.85449, 91.93855, 0.00000, 0.00000, 0.00000);
  186. CreateObject(711, -1332.64905, 2542.57397, 90.64313, 0.00000, 0.00000, 0.00000);
  187. CreateObject(711, -1332.47754, 2499.43604, 91.45190, 0.00000, 0.00000, 0.00000);
  188. CreateObject(711, -1293.23938, 2494.54395, 91.75677, 0.00000, 0.00000, 0.00000);
  189. CreateObject(711, -1311.48706, 2502.43018, 91.70747, 0.00000, 0.00000, 0.00000);
  190. CreateObject(3092, -1318.06104, 2539.33472, 87.63331, 0.00000, 0.00000, 0.00000);
  191. CreateObject(3092, -1315.75220, 2540.89160, 87.72890, 0.00000, 0.00000, 0.00000);
  192. CreateObject(16410, -1306.45032, 2503.64771, 86.00015, 0.00000, 0.00000, 0.00000);
  193. CreateObject(16410, -1306.44849, 2499.67456, 86.03646, 0.00000, 0.00000, 0.00000);
  194. CreateObject(12961, -1324.51440, 2484.64722, 86.54999, 0.00000, 0.00000, 0.00000);
  195. CreateObject(5269, -1280.41211, 2507.13477, 87.03956, 0.00000, 0.00000, 92.07153);
  196. CreateObject(3279, -1244.06189, 2529.35645, 106.64878, 0.00000, 0.00000, 0.00000);
  197. CreateObject(3279, -1353.55688, 2513.75464, 85.24866, 0.00000, 0.00000, 0.00000);
  198. CreateObject(3399, -1327.14026, 2502.11279, 86.69601, 0.00000, 0.00000, 87.04179);
  199. CreateObject(3399, -1289.70032, 2492.67310, 87.00195, 0.00000, 0.00000, 88.60888);
  200. CreateObject(3265, -1289.58972, 2451.08911, 86.71705, 0.00000, 0.00000, 188.65230);
  201. CreateObject(1415, -1295.29565, 2519.96118, 86.50883, 0.00000, 0.00000, 0.00000);
  202.  
  203.  
  204. return 1;
  205. }
  206.  
  207. public OnPlayerRequestClass(playerid, classid)
  208. {
  209. SetPlayerPos(playerid, 259.2184,-41.4297,1002.0234);
  210. SetPlayerFacingAngle(playerid, 89.9766);
  211. SetPlayerInterior(playerid, 14);
  212. SetPlayerCameraPos(playerid, 254.9213,-39.8146,1002.0234);
  213. SetPlayerCameraLookAt(playerid, 259.2184,-41.4297,1002.0234);
  214. SetPlayerTeamFromClass(playerid, classid);
  215. return 1;
  216. }
  217.  
  218. public OnPlayerConnect(playerid)
  219. {
  220. SendClientMessage(playerid, COLOR_WHITE, "Welcome to Desert Team DeathMatch!");
  221. if(fexist(UserPath(playerid)))
  222. {
  223. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  224. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
  225. }
  226. else
  227. {
  228. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register your account.","Register","Quit");
  229. }
  230. return 1;
  231. }
  232.  
  233. public OnPlayerDeath(playerid, killerid, reason)
  234. {
  235. new weapon = GetPlayerWeapon(killerid);
  236. new killerscore = GetPlayerScore(killerid);
  237. if (gTeam[playerid] == gTeam[killerid])
  238. {
  239. SetPlayerScore(killerid, killerscore-1);
  240. GivePlayerMoney(killerid, -500);
  241. GivePlayerMoney(playerid, 500);
  242. SendClientMessage(playerid, COLOR_WHITE, "Compensation for being teamkilled: $500!");
  243. }
  244. else SetPlayerScore(killerid, killerscore+1);
  245. GivePlayerMoney(killerid, 500);
  246. GivePlayerMoney(playerid, -500);
  247. PlayerInfo[killerid][pKills]++;
  248. PlayerInfo[playerid][pDeaths]++;
  249. SendDeathMessage(killerid,playerid,weapon);
  250. return 1;
  251. }
  252.  
  253. public OnPlayerRequestSpawn(playerid)
  254. {
  255. return 1;
  256. }
  257.  
  258. public OnPlayerSpawn(playerid)
  259. {
  260. SetPlayerToTeamColor(playerid);
  261. SetPlayerInterior(playerid, 0);
  262. SendClientMessage(playerid, COLOR_WHITE, "Weapons shop is available! To access it, type /shop!");
  263. /*if(PlayerInfo[playerid][pVip]=1) return SetPlayerArmour(playerid, 50);
  264. if(PlayerInfo[playerid][pVip]=2) return SetPlayerArmour(playerid, 100);*/
  265. RemoveBuildingForPlayer(playerid, 3366, 276.6563, 2023.7578, 16.6328, 0.25);
  266. RemoveBuildingForPlayer(playerid, 3366, 276.6563, 1989.5469, 16.6328, 0.25);
  267. RemoveBuildingForPlayer(playerid, 3366, 276.6563, 1955.7656, 16.6328, 0.25);
  268. RemoveBuildingForPlayer(playerid, 3267, 188.2422, 2081.6484, 22.4453, 0.25);
  269. RemoveBuildingForPlayer(playerid, 3277, 188.2422, 2081.6484, 22.4063, 0.25);
  270. RemoveBuildingForPlayer(playerid, 3267, 237.6953, 1696.8750, 22.4141, 0.25);
  271. RemoveBuildingForPlayer(playerid, 3277, 237.6797, 1696.8828, 22.3750, 0.25);
  272. RemoveBuildingForPlayer(playerid, 16293, 238.0703, 1697.5547, 21.6328, 0.25);
  273. RemoveBuildingForPlayer(playerid, 16670, 330.7891, 1813.2188, 17.8281, 0.25);
  274. RemoveBuildingForPlayer(playerid, 16094, 191.1406, 1870.0391, 21.4766, 0.25);
  275. RemoveBuildingForPlayer(playerid, 16671, 193.9531, 2051.7969, 20.1797, 0.25);
  276. RemoveBuildingForPlayer(playerid, 3268, 276.6563, 2023.7578, 16.6328, 0.25);
  277. RemoveBuildingForPlayer(playerid, 3268, 276.6563, 1989.5469, 16.6328, 0.25);
  278. RemoveBuildingForPlayer(playerid, 3268, 276.6563, 1955.7656, 16.6328, 0.25);
  279. RemoveBuildingForPlayer(playerid, 3267, 354.4297, 2028.4922, 22.4141, 0.25);
  280. RemoveBuildingForPlayer(playerid, 3277, 354.4141, 2028.5000, 22.3750, 0.25);
  281. RemoveBuildingForPlayer(playerid, 16668, 357.9375, 2049.4219, 16.8438, 0.25);
  282. RemoveBuildingForPlayer(playerid, 16669, 380.2578, 1914.9609, 17.4297, 0.25);
  283. if (GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 30)
  284. {
  285. PlayerInfo[playerid][pRank] == 1;
  286. }
  287. else if (GetPlayerScore(playerid) > 30 && GetPlayerScore(playerid) <= 80)
  288. {
  289. PlayerInfo[playerid][pRank] == 2;
  290. }
  291. else if (GetPlayerScore(playerid) >= 80 && GetPlayerScore(playerid) <= 150)
  292. {
  293. PlayerInfo[playerid][pRank] == 3;
  294. }
  295. else if (GetPlayerScore(playerid) >= 150 && GetPlayerScore(playerid) <= 270)
  296. {
  297. PlayerInfo[playerid][pRank] == 4;
  298. }
  299. else if (GetPlayerScore(playerid) >= 270 && GetPlayerScore(playerid) <= 430)
  300. {
  301. PlayerInfo[playerid][pRank] == 5;
  302. }
  303. else if (GetPlayerScore(playerid) < 430)
  304. {
  305. PlayerInfo[playerid][pRank] == 6;
  306. }
  307.  
  308. switch ( MapChange )
  309. { // you must have a case for the mapchange to get the list going
  310. case 0: // MapChange1 this is the part for MapChange = 0; Which basically starts of the first MapChangein the list
  311. {
  312. if( gTeam[playerid] = TEAM_ARMY)
  313. {
  314. SetPlayerPos(playerid, 230.5570,1696.2507,22.6406); // XYZ Co-rds of the first map
  315. SetPlayerFacingAngle(playerid,263.2534);
  316. }
  317. else if( gTeam[playerid] = TEAM_TERRORISTS)
  318. {
  319. SetPlayerPos(playerid, 191.3909,2084.5696,22.6406); // XYZ Co-rds of the first map
  320. SetPlayerFacingAngle(playerid,277.2641);
  321. } // Facing Angle of the first map
  322. }
  323. case 1: // MapChange2 same settings on top
  324. {
  325. if( gTeam[playerid] = TEAM_ARMY)
  326. {
  327. SetPlayerPos(playerid, -1285.6185,2442.6338,88.1217); // XYZ Co-rds of the first map
  328. SetPlayerFacingAngle(playerid,20.2962);
  329. }
  330. else if( gTeam[playerid] = TEAM_TERRORISTS)
  331. {
  332. SetPlayerPos(playerid, -1314.2284,2542.1833,87.7422); // XYZ Co-rds of the first map
  333. SetPlayerFacingAngle(playerid,357.7593);
  334. }
  335. }
  336. }
  337.  
  338. return 1;
  339. }
  340.  
  341. public OnPlayerDisconnect(playerid, reason)
  342. {
  343. new INI:File = INI_Open(UserPath(playerid));
  344. INI_SetTag(File,"data");
  345. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  346. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  347. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  348. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  349. INI_WriteInt(File,"VIP",PlayerInfo[playerid][pVip]);
  350. INI_WriteInt(File,"Banned",PlayerInfo[playerid][pBanned]);
  351. INI_WriteInt(File,"Warnings",PlayerInfo[playerid][pWarns]);
  352. INI_WriteInt(File,"Reportmute",PlayerInfo[playerid][pReportMuted]);
  353. INI_WriteInt(File,"Cookies",PlayerInfo[playerid][pCookies]);
  354. INI_WriteInt(File,"Rank",PlayerInfo[playerid][pRank]);
  355. INI_WriteInt(File,"VC",0);
  356. INI_Close(File);
  357. return 1;
  358. }
  359.  
  360. SetPlayerTeamFromClass(playerid, classid) // Getting info about the team you chosen
  361. {
  362. if (0<=classid<=4)
  363. {
  364. gTeam[playerid] = TEAM_ARMY;
  365. SendClientMessage(playerid, COLOR_WHITE, "You're in the Army, kill the terrorists!");
  366. }
  367. else
  368. {
  369. gTeam[playerid] = TEAM_TERRORISTS;
  370. SendClientMessage(playerid, COLOR_WHITE, "You're a Terrorist, kill the army!");
  371. }
  372. }
  373.  
  374. SetPlayerToTeamColor(playerid) // Thing which sets your color team when you spawn
  375. {
  376. if (gTeam[playerid] == TEAM_ARMY)
  377. {
  378. SetPlayerColor(playerid, TEAM_ARMY_COLOR);
  379. }
  380. else if (gTeam[playerid] == TEAM_TERRORISTS)
  381. {
  382. SetPlayerColor(playerid, TEAM_TERRORISTS_COLOR);
  383. }
  384. }
  385.  
  386.  
  387. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  388. {
  389.  
  390. switch( dialogid )
  391. {
  392. case DIALOG_REGISTER: // Registering dialog
  393. {
  394. if (!response) return Kick(playerid);
  395. if(response)
  396. {
  397. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Type your password below to register a new account.","Register","Quit");
  398. new INI:File = INI_Open(UserPath(playerid));
  399. INI_SetTag(File,"data");
  400. INI_WriteInt(File,"Password",udb_hash(inputtext));
  401. INI_WriteInt(File,"Cash",0);
  402. INI_WriteInt(File,"Admin",0);
  403. INI_WriteInt(File,"Kills",0);
  404. INI_WriteInt(File,"Deaths",0);
  405. INI_WriteInt(File,"VIP",0);
  406. INI_WriteInt(File,"Banned",0);
  407. INI_WriteInt(File,"Warnings",0);
  408. INI_WriteInt(File,"Reportmute",0);
  409. INI_WriteInt(File,"Cookies",0);
  410. INI_WriteInt(File,"VC",0);
  411. INI_Close(File);
  412. ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"Relog to save your stats!","Ok","");
  413. GivePlayerMoney(playerid, 3000);
  414. SendClientMessage(playerid, COLOR_WHITE, "Welcome to Desert Team DeathMatch! Now you'll proceed to tutorial.");
  415. ShowPlayerDialog(playerid, DIALOG_TUT, DIALOG_STYLE_MSGBOX,""COL_WHITE"Tutorial","{00FF22}1.Rules\n{FFFFFF}1.Respect all players and admins\n2.Never abuse bugs or get BANNED.\n3.Don't be rude or get warned and/or kicked\n4.Abusing /report will get you warned and muted from reports\n{00FF22}2.Help\n{FFFFFF}If you need to know which CMD's this server includes, you always can use /help. For any other help, use /report","Thanks","");
  416. }
  417. }
  418.  
  419. case DIALOG_LOGIN:
  420. {
  421. if ( !response ) return Kick ( playerid );
  422. if( response )
  423. {
  424. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  425. {
  426. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  427. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  428. ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
  429. }
  430. else
  431. {
  432. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Login", "Type your password below to login.","Login","Quit");
  433. }
  434. return 1;
  435. }
  436. }
  437. }
  438. if(dialogid == DIALOG_HELP)
  439. {
  440. if(!response) return SendClientMessage(playerid, COLOR_WHITE, "The action is canceled!");
  441. switch(listitem)
  442. {
  443. case 0: // Player commands
  444. {
  445. ShowPlayerDialog(playerid, DIALOG_USELESS, DIALOG_STYLE_MSGBOX,""COL_WHITE".:PLAYER COMMANDS:.","/stats, /shop, /kill, /report, /pm, /ranks, /updates","OK","");
  446. return 1;
  447. }
  448. case 1: // Admin commands
  449. {
  450. if(PlayerInfo[playerid][pAdmin]==0) return ShowPlayerDialog(playerid, DIALOG_USELESS, DIALOG_STYLE_MSGBOX,""COL_WHITE".:ADMIN COMMANDS:.","You are not an Admin!","OK","");
  451. if(PlayerInfo[playerid][pAdmin]==1) return ShowPlayerDialog(playerid, DIALOG_USELESS, DIALOG_STYLE_MSGBOX,""COL_WHITE".:ADMIN COMMANDS:.","/kick, /warn","OK","");
  452. if(PlayerInfo[playerid][pAdmin]==2) return ShowPlayerDialog(playerid, DIALOG_USELESS, DIALOG_STYLE_MSGBOX,""COL_WHITE".:ADMIN COMMANDS:.","/kick, /sethealth, /setarmour, /fine /warn, /reportmute, /goto\n/gethere","OK","");
  453. if(PlayerInfo[playerid][pAdmin]==3) return ShowPlayerDialog(playerid, DIALOG_USELESS, DIALOG_STYLE_MSGBOX,""COL_WHITE".:ADMIN COMMANDS:.","/ban, /unban, /givecash, /kick, /sethealth, /setarmour, /fine\n /warn, /reportmute, /goto, /gethere","OK","");
  454. if(PlayerInfo[playerid][pAdmin]==4) return ShowPlayerDialog(playerid, DIALOG_USELESS, DIALOG_STYLE_MSGBOX,""COL_WHITE".:ADMIN COMMANDS:.","/ban, /unban, /givecash, /kick, /sethealth, /setarmour, /fine\n /warn, /reportmute, /goto, /gethere, /givecookie","OK","");
  455. if(PlayerInfo[playerid][pAdmin]==5) return ShowPlayerDialog(playerid, DIALOG_USELESS, DIALOG_STYLE_MSGBOX,""COL_WHITE".:ADMIN COMMANDS:.","/ban, /unban, /givecash, /kick, /sethealth, /setarmour, /fine\n /warn, /reportmute, /goto, /gethere, /makevip, /makeadmin, /resetstats\n/givecookie ","OK","");
  456. return 1;
  457. }
  458. case 2: // VIP commands
  459. {
  460. if(PlayerInfo[playerid][pVip]==0) return ShowPlayerDialog(playerid, DIALOG_USELESS, DIALOG_STYLE_MSGBOX,""COL_WHITE".:VIP COMMANDS:.","You are not a VIP!","OK","");
  461. if(PlayerInfo[playerid][pVip]==1) return ShowPlayerDialog(playerid, DIALOG_USELESS, DIALOG_STYLE_MSGBOX,""COL_WHITE".:VIP COMMANDS:.","/vc, /togvc","OK","");
  462. if(PlayerInfo[playerid][pVip]==2) return ShowPlayerDialog(playerid, DIALOG_USELESS, DIALOG_STYLE_MSGBOX,""COL_WHITE".:VIP COMMANDS:.","/vc, /togvc","OK","");
  463. return 1;
  464. }
  465. }
  466. }
  467. if(dialogid == DIALOG_SHOP) // Shop dialog
  468. {
  469. if(!response) return SendClientMessage(playerid, COLOR_WHITE, "The action is canceled!");
  470. switch(listitem)
  471. {
  472. case 0: // Deagle
  473. {
  474. if (GetPlayerMoney(playerid)>=10000)
  475. {
  476. SendClientMessage(playerid, COLOR_WHITE, "You have sucessfully bought a deagle!");
  477. GivePlayerWeapon(playerid, 24, 100000);
  478. GivePlayerMoney(playerid, -10000);
  479. return 1;
  480. }
  481. else SendClientMessage(playerid, COLOR_WHITE, "You don't have enough money!");
  482. return 1;
  483. }
  484. case 1: // M4
  485. {
  486. if (GetPlayerMoney(playerid)>=15000)
  487. {
  488. SendClientMessage(playerid, COLOR_WHITE, "You have sucessfully bought M4!");
  489. GivePlayerWeapon(playerid, 30, 100000);
  490. GivePlayerMoney(playerid, -15000);
  491. return 1;
  492. }
  493. else SendClientMessage(playerid, COLOR_WHITE, "You don't have enough money!");
  494. return 1;
  495. }
  496. case 2: // Grenade
  497. {
  498. if(PlayerInfo[playerid][pVip]>=1)
  499. {
  500. if (GetPlayerMoney(playerid)>=10000)
  501. {
  502. SendClientMessage(playerid, COLOR_WHITE, "You have sucessfully bought one grenade!");
  503. GivePlayerWeapon(playerid, 16, 1);
  504. GivePlayerMoney(playerid, -10000);
  505. return 1;
  506. }
  507. else SendClientMessage(playerid, COLOR_WHITE, "You don't have enough money!");
  508. return 1;
  509. }
  510. else SendClientMessage(playerid, COLOR_RED, "You must be at least normal VIP to buy a grenade!");
  511. }
  512. case 3: // Health
  513. {
  514. if (GetPlayerMoney(playerid)>=2500)
  515. {
  516. SendClientMessage(playerid, COLOR_WHITE, "You have sucessfully bought first aid kit!");
  517. SetPlayerHealth(playerid, 100);
  518. GivePlayerMoney(playerid, -2500);
  519. return 1;
  520. }
  521. else SendClientMessage(playerid, COLOR_WHITE, "You don't have enough money!");
  522. return 1;
  523. }
  524. case 4: // Armour
  525. {
  526. if (GetPlayerMoney(playerid)>=5000)
  527. {
  528. SendClientMessage(playerid, COLOR_WHITE, "You have sucessfully bought armour!");
  529. SetPlayerArmour(playerid, 100);
  530. GivePlayerMoney(playerid, -5000);
  531. return 1;
  532. }
  533. else SendClientMessage(playerid, COLOR_WHITE, "You don't have enough money!");
  534. return 1;
  535. }
  536. case 5: // AK-47
  537. {
  538. if (GetPlayerMoney(playerid)>=15000)
  539. {
  540. SendClientMessage(playerid, COLOR_WHITE, "You have sucessfully bought AK-47!");
  541. GivePlayerWeapon(playerid, 30, 100000);
  542. GivePlayerMoney(playerid, -15000);
  543. return 1;
  544. }
  545. else SendClientMessage(playerid, COLOR_WHITE, "You don't have enough money!");
  546. return 1;
  547. }
  548. case 6: // SNIPER
  549. {
  550. if (GetPlayerMoney(playerid)>=25000)
  551. {
  552. SendClientMessage(playerid, COLOR_WHITE, "You have sucessfully bought a Sniper!");
  553. GivePlayerWeapon(playerid, 34, 100000);
  554. GivePlayerMoney(playerid, -25000);
  555. return 1;
  556. }
  557. else SendClientMessage(playerid, COLOR_WHITE, "You don't have enough money!");
  558. return 1;
  559. }
  560. case 7: // MP5
  561. {
  562. if (GetPlayerMoney(playerid)>=5000)
  563. {
  564. SendClientMessage(playerid, COLOR_WHITE, "You have sucessfully bought MP5!");
  565. GivePlayerWeapon(playerid, 29, 100000);
  566. GivePlayerMoney(playerid, -5000);
  567. return 1;
  568. }
  569. else SendClientMessage(playerid, COLOR_WHITE, "You don't have enough money!");
  570. return 1;
  571. }
  572. }
  573. }
  574. if(dialogid == DIALOG_CSHOP) // Cookie shop dialog
  575. {
  576. if(!response) return SendClientMessage(playerid, COLOR_WHITE, "The action is canceled!");
  577. switch(listitem)
  578. {
  579. case 0: // Armour
  580. {
  581. if (PlayerInfo[playerid][pCookies] >= 2)
  582. {
  583. SendClientMessage(playerid, COLOR_WHITE, "You have sucessfully bought armour!");
  584. PlayerInfo[playerid][pCookies] = PlayerInfo[playerid][pCookies]-2;
  585. SetPlayerArmour(playerid, 100);
  586. return 1;
  587. }
  588. else SendClientMessage(playerid, COLOR_WHITE, "You don't have enough cookies!");
  589. return 1;
  590. }
  591. case 1: // AK
  592. {
  593. if (PlayerInfo[playerid][pCookies] >= 5)
  594. {
  595. SendClientMessage(playerid, COLOR_WHITE, "You have sucessfully bought AK!");
  596. PlayerInfo[playerid][pCookies] = PlayerInfo[playerid][pCookies]-5;
  597. GivePlayerWeapon(playerid, 30, 99999);
  598. return 1;
  599. }
  600. else SendClientMessage(playerid, COLOR_WHITE, "You don't have enough cookies!");
  601. return 1;
  602. }
  603. }
  604. }
  605. return 1;
  606. }
  607.  
  608. //=====================================================Commands==================================================
  609.  
  610. // Regular Players CMD's section
  611. CMD:credits(playerid) // CMD for credits
  612. {
  613. SendClientMessage(playerid, COLOR_LIGHTBLUE, "-------DTDM V0.2---------");
  614. SendClientMessage(playerid, COLOR_LIGHTBLUE, "Scripting and mapping: Marwan Alramahi");
  615. SendClientMessage(playerid, COLOR_LIGHTBLUE, "-------------------------");
  616.  
  617.  
  618. return 1;
  619. }
  620.  
  621. CMD:shop(playerid) // CMD for calling a shop
  622. {
  623. ShowPlayerDialog(playerid, DIALOG_SHOP, DIALOG_STYLE_LIST, "Shop", "Deagle ($10.000)\nM4 ($15.000)\nGrenade ($10.000) [Normal VIP]\nHealth ($2.500)\nArmour ($5.000)\nAK-47 ($15.000\nSniper ($25.000)\nMP5 ($5,000)", "Buy", "Exit");
  624. return 1;
  625. }
  626.  
  627. CMD:cshop(playerid) // CMD for calling a shop
  628. {
  629. ShowPlayerDialog(playerid, DIALOG_CSHOP, DIALOG_STYLE_LIST, "Cookies Shop", "Armour (2 cookies)\nM4 (5 cookies)", "Buy", "Exit");
  630. return 1;
  631. }
  632.  
  633. CMD:kill(playerid) // CMD to commit a suicide
  634. {
  635. SetPlayerHealth(playerid, 0);
  636. return 1;
  637. }
  638.  
  639. CMD:updates(playerid) // CMD to commit a suicide
  640. {
  641. SendClientMessage(playerid, COLOR_LIGHTBLUE, "-------DTDM V0.2---------");
  642. SendClientMessage(playerid, COLOR_LIGHTBLUE, "1 - Added rank system.");
  643. SendClientMessage(playerid, COLOR_LIGHTBLUE, "2 - Added random weather system.");
  644. SendClientMessage(playerid, COLOR_LIGHTBLUE, "3 - Added /ranks and /updates.");
  645. SendClientMessage(playerid, COLOR_LIGHTBLUE, "4 - Added more weapons to /shop.");
  646. SendClientMessage(playerid, COLOR_LIGHTBLUE, "5 - Added more skins for both teams.");
  647. SendClientMessage(playerid, COLOR_LIGHTBLUE, "6 - Added killbox.");
  648. return 1;
  649. }
  650.  
  651. CMD:ranks(playerid) // CMD for ranks
  652. {
  653. SendClientMessage(playerid, COLOR_WHITE, "-------Army Ranks---------");
  654. SendClientMessage(playerid, COLOR_WHITE, "Rank 1 - Soldier");
  655. SendClientMessage(playerid, COLOR_WHITE, "Rank 2 - Private");
  656. SendClientMessage(playerid, COLOR_WHITE, "Rank 3 - Intrusion Force");
  657. SendClientMessage(playerid, COLOR_WHITE, "Rank 4 - Silent Bullet");
  658. SendClientMessage(playerid, COLOR_WHITE, "Rank 5 - Field Colonel");
  659. SendClientMessage(playerid, COLOR_WHITE, "Rank 6 - Head of Command");
  660. SendClientMessage(playerid, COLOR_WHITE, "-------Terrorists Ranks---------");
  661. SendClientMessage(playerid, COLOR_WHITE, "Rank 1 - Outsider");
  662. SendClientMessage(playerid, COLOR_WHITE, "Rank 2 - Suicider");
  663. SendClientMessage(playerid, COLOR_WHITE, "Rank 3 - Angry Rebel");
  664. SendClientMessage(playerid, COLOR_WHITE, "Rank 4 - Black Sand Ambush Unit");
  665. SendClientMessage(playerid, COLOR_WHITE, "Rank 5 - Bombing specialist");
  666. SendClientMessage(playerid, COLOR_WHITE, "Rank 6 - Grim reaper");
  667. return 1;
  668. }
  669.  
  670. CMD:stats(playerid) // CMD to see your stats
  671. {
  672. new str[256];
  673. new rank[128];
  674. if(gTeam[playerid] == TEAM_ARMY)//A ranks
  675. {
  676. if(PlayerInfo[playerid][pRank] == 1) { rank = "Soldier"; }
  677. else if(PlayerInfo[playerid][pRank] == 2) { rank = "Private"; }
  678. else if(PlayerInfo[playerid][pRank] == 3) { rank = "Intrusion Force"; }
  679. else if(PlayerInfo[playerid][pRank] == 4) { rank = "Silent Bullet"; }
  680. else if(PlayerInfo[playerid][pRank] == 5) { rank = "Field Colonel"; }
  681. else if(PlayerInfo[playerid][pRank] == 6) { rank = "HOC"; }
  682. else { rank = "Soldier"; }
  683. }
  684. else if(gTeam[playerid] == TEAM_TERRORISTS)//T Ranks
  685. {
  686. if(PlayerInfo[playerid][pRank] == 1) { rank = "Outsider"; }
  687. else if(PlayerInfo[playerid][pRank] == 2) { rank = "Suicider "; }
  688. else if(PlayerInfo[playerid][pRank] == 3) { rank = "Angry Rebel"; }
  689. else if(PlayerInfo[playerid][pRank] == 4) { rank = "BS Ambush Unit"; }
  690. else if(PlayerInfo[playerid][pRank] == 5) { rank = "Bombing specialist"; }
  691. else if(PlayerInfo[playerid][pRank] == 6) { rank = "Grim reaper"; }
  692. else { rank = "Outsider"; }
  693. }
  694. format(str, sizeof(str), "VIP level - [%s], Admin level - [%s], Kills - [%i], Deaths - [%i]", GetVipLvlName(playerid), GetAdminLvlName(playerid), PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths]);
  695. SendClientMessage(playerid, COLOR_WHITE, str);
  696. format(str, sizeof(str), "Warnings - [%i], Report muted - [%s], Cookies - [%i], Rank - %s", PlayerInfo[playerid][pWarns] , YesNoChecker(PlayerInfo[playerid][pReportMuted]), PlayerInfo[playerid][pCookies], rank);
  697. SendClientMessage(playerid, COLOR_WHITE, str);
  698. return 1;
  699. }
  700.  
  701. CMD:report(playerid,params[]) // CMD for report to admin
  702. {
  703. if(PlayerInfo[playerid][pReportMuted] == 1)
  704. {
  705. SendClientMessage(playerid, COLOR_RED, "You are currently muted from using /report");
  706. return 0;
  707. }
  708. else
  709. {
  710. new sendername[MAX_PLAYER_NAME], string[128];
  711. GetPlayerName(playerid, sendername, sizeof(sendername));
  712. sendername[strfind(sendername,"_")] = ' ';
  713. if(isnull(params)) return SendClientMessage(playerid,COLOR_WHITE,"USAGE: /report [text]");
  714. format(string, sizeof(string), "Report From %s: %s", sendername, params);
  715. ABroadCast(COLOR_RED,string,1);
  716. }
  717. return 1;
  718. }
  719.  
  720. CMD:help(playerid) // CMD for sending the client a list of available CMD's
  721. {
  722. ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_LIST, "Help", "Player commands\nAdmin commands\nVIP commands", "Select", "Exit");
  723. return 1;
  724. }
  725.  
  726. CMD:pm(playerid,params[]) // CMD for PM'ing someone
  727. {
  728. new pid;
  729. new msg[128];
  730. new str[128];
  731. if(sscanf(params, "us[128]", pid, msg)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /pm [Player ID] [Message]");
  732. if(playerid == pid) return SendClientMessage(playerid,COLOR_RED,"You can't message yourself!");
  733. format(str, sizeof(str), "Message from %s: %s", GetName(playerid), msg);
  734. SendClientMessage(pid, COLOR_PM, str);
  735. format(str, sizeof(str), "Message to %s: %s", GetName(pid), msg);
  736. SendClientMessage(playerid, COLOR_PM, str);
  737. return 1;
  738. }
  739.  
  740. // End of regular players CMD's section
  741.  
  742. //---------------------------------------------------------------------------------------------------------------
  743.  
  744. // Admin CMD's section
  745.  
  746. CMD:makevip(playerid, params[]) // CMD for making someone a VIP...
  747. {
  748. new pid;
  749. new vlevel;
  750. new str[128];
  751. if(sscanf(params,"ui", pid, vlevel)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /makevip [Player ID] [VIPlevel]");
  752. if (PlayerInfo[playerid][pAdmin]==5)
  753. {
  754. if((vlevel<=2)&&(vlevel>=0))
  755. {
  756. if(pid==playerid) return PlayerInfo[pid][pVip] = vlevel;
  757. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  758. format(str, sizeof(str), "You just granted %s level %i VIP!", GetName(pid), vlevel);
  759. SendClientMessage(playerid, COLOR_RED, str);
  760. format(str, sizeof(str), "You have been given a level %i VIP by an Admin!", vlevel);
  761. SendClientMessage(pid, COLOR_RED, str);
  762. PlayerInfo[pid][pVip] = vlevel;
  763. }
  764. else SendClientMessage(playerid, COLOR_WHITE, "VIP level is between 1 and 2");
  765. }
  766. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  767. return 1;
  768. }
  769.  
  770. CMD:goto(playerid, params[]) // CMD to go to someone
  771. {
  772. new pid;
  773. if(IsPlayerConnected(pid))
  774. {
  775. if(PlayerInfo[playerid][pAdmin]>=2)
  776. {
  777. if(!sscanf(params, "ui", pid))
  778. {
  779. new string[64];
  780. new Float:x, Float:y, Float:z; GetPlayerPos(pid,x,y,z); SetPlayerInterior(playerid,GetPlayerInterior(pid));
  781. format(string, sizeof(string), "You teleported yourself to %s .", GetName(pid));
  782. SendClientMessage(playerid, COLOR_RED, string);
  783. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pid));
  784. SetPlayerPos(playerid,x+2,y,z);
  785. return 1;
  786. }
  787. else return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /goto [PlayerID/PartOfName]");
  788. }
  789. else return SendClientMessage(playerid, COLOR_RED, "You must be an admin to use this command!");
  790. }
  791. else return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  792. }
  793.  
  794. CMD:gethere(playerid, params[]) // CMD to get someone to you
  795. {
  796. new pid;
  797. if(IsPlayerConnected(pid))
  798. {
  799. if(PlayerInfo[playerid][pAdmin]>=2)
  800. {
  801. if(!sscanf(params, "ui", pid))
  802. {
  803. new string[64];
  804. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerInterior(pid,GetPlayerInterior(playerid));
  805. format(string, sizeof(string), "You teleported %s to you.", GetName(pid));
  806. SendClientMessage(playerid, COLOR_RED, string);
  807. SetPlayerVirtualWorld(pid,GetPlayerVirtualWorld(playerid));
  808. SetPlayerPos(pid,x+2,y,z);
  809. return 1;
  810. }
  811. else return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gethere [PlayerID/PartOfName]");
  812. }
  813. else return SendClientMessage(playerid, COLOR_RED, "You must be an admin to use this command!");
  814. }
  815. else return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  816. }
  817.  
  818. CMD:makeadmin(playerid, params[]) // CMD for making someone an admin...
  819. {
  820. new pid;
  821. new alevel;
  822. new str[128];
  823. if(sscanf(params,"ui", pid, alevel)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /makeadmin [Player ID] [Admin level]");
  824. if (PlayerInfo[playerid][pAdmin]==5)
  825. {
  826. if((alevel<=5)&&(alevel>=0))
  827. {
  828. if(pid==playerid) return SendClientMessage(playerid, COLOR_RED, "You can't change your admin level!");
  829. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  830. format(str, sizeof(str), "You just granted %s level %i Admin!", GetName(pid), alevel);
  831. SendClientMessage(playerid, COLOR_RED, str);
  832. format(str, sizeof(str), "You have been given a level %i admin by an Admin!", alevel);
  833. SendClientMessage(pid, COLOR_RED, str);
  834. PlayerInfo[pid][pAdmin] = alevel;
  835. }
  836. else SendClientMessage(playerid, COLOR_WHITE, "Admin level is between 1 and 5");
  837. }
  838. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  839. return 1;
  840. }
  841.  
  842. CMD:rmakeadmin(playerid, params[]) // CMD for making someone an admin...
  843. {
  844. new pid;
  845. new alevel;
  846. new str[128];
  847. if(sscanf(params,"ui", pid, alevel)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /rmakeadmin [Player ID] [Admin level]");
  848. if (IsPlayerAdmin(playerid))
  849. {
  850. if((alevel<=5)&&(alevel>=0))
  851. {
  852. if(pid==playerid) return PlayerInfo[pid][pAdmin] = alevel;
  853. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  854. format(str, sizeof(str), "You just granted %s level %i Admin!", GetName(pid), alevel);
  855. SendClientMessage(playerid, COLOR_RED, str);
  856. format(str, sizeof(str), "You have been given a level %i admin by an Admin!", alevel);
  857. SendClientMessage(pid, COLOR_RED, str);
  858. PlayerInfo[pid][pAdmin] = alevel;
  859. }
  860. else SendClientMessage(playerid, COLOR_WHITE, "Admin level is between 1 and 5");
  861. }
  862. else SendClientMessage(playerid, COLOR_RED, "You must be RCON admin to use that command!");
  863. return 1;
  864. }
  865.  
  866. CMD:ban(playerid, params[]) // CMD for banning someone
  867. {
  868. new pid;
  869. new str[128];
  870. new reason;
  871. if(sscanf(params,"us", pid, reason)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ban [Player ID] [Reason]");
  872. if (PlayerInfo[playerid][pAdmin]>=3)
  873. {
  874. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  875. if(PlayerInfo[playerid][pAdmin]<=PlayerInfo[pid][pAdmin]) return SendClientMessage(playerid, COLOR_RED, "PlayerID is higher admin rank, can't ban him!");
  876. if(playerid==pid) return SendClientMessage(playerid, COLOR_RED, "You can't ban yourself!");
  877. format(str, sizeof(str), "You have banned %s. Reason: %s", GetName(pid), reason);
  878. SendClientMessage(playerid, COLOR_RED, str);
  879. format(str, sizeof(str), "ADMCMD: %s have been banned by %s. Reason: %s", GetName(pid), GetName(playerid), reason );
  880. SendClientMessageToAll(COLOR_RED, str);
  881. PlayerInfo[pid][pBanned] = 1;
  882. Kick(pid);
  883. }
  884. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  885. return 1;
  886. }
  887.  
  888. CMD:unban(playerid, params[]) // CMD for unbanning someone
  889. {
  890. new pName[MAX_PLAYER_NAME];
  891. new str[128];
  892. if(sscanf(params,"s[MAX_PLAYER_NAME]", pName)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /unban [Player Name]");
  893. if (PlayerInfo[playerid][pAdmin]>=3)
  894. {
  895. if(!fexist(UserAccount(pName))) return SendClientMessage(playerid, COLOR_RED, "Player doesn't exist.");
  896. new INI:File = INI_Open(UserAccount(pName));
  897. INI_WriteInt(File,"Banned", 0);
  898. INI_WriteInt(File,"Warnings",0);
  899. INI_Close(File);
  900. format(str, sizeof(str), "You have unbanned %s.", pName);
  901. SendClientMessage(playerid, COLOR_RED, str);
  902. }
  903. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  904. return 1;
  905. }
  906.  
  907. CMD:kick(playerid, params[]) // CMD for unbanning someone
  908. {
  909. new pid;
  910. new str[128];
  911. new reason;
  912. if(sscanf(params,"us", pid, reason)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /kick [Player ID] [Reason]");
  913. if (PlayerInfo[playerid][pAdmin]>=1)
  914. {
  915. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  916. if(PlayerInfo[playerid][pAdmin]<=PlayerInfo[pid][pAdmin]) return SendClientMessage(playerid, COLOR_RED, "PlayerID is higher admin rank, can't kick him!");
  917. format(str, sizeof(str), "You have kicked %s. Reason: %s", GetName(pid), reason);
  918. SendClientMessage(playerid, COLOR_RED, str);
  919. format(str, sizeof(str), "%s have been kicked by %s. Reason: %s", GetName(pid), GetName(playerid), reason);
  920. SendClientMessage(playerid, COLOR_RED, str);
  921. Kick(playerid);
  922. }
  923. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  924. return 1;
  925. }
  926.  
  927. CMD:givecash(playerid, params[]) // CMD to give somebody some cash
  928. {
  929. new amount;
  930. new pid;
  931. new str[128];
  932. if(sscanf(params, "ui", pid, amount)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [Player ID] [Amount]");
  933. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  934. if (PlayerInfo[playerid][pAdmin]>=3)
  935. {
  936. GivePlayerMoney(pid, amount);
  937. format(str, sizeof(str), "You have been granted $%i by an Admin!", amount);
  938. SendClientMessage(pid, COLOR_RED, str);
  939. format(str, sizeof(str), "You just gave $%i to %s.", amount, GetName(pid));
  940. SendClientMessage(playerid, COLOR_RED, str);
  941. }
  942. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  943. return 1;
  944. }
  945.  
  946. CMD:givecookie(playerid, params[]) // CMD for giving somebody a cookie
  947. {
  948. new pid;
  949. new reason[128];
  950. new str[128];
  951. if(sscanf(params, "us[128]", pid, reason)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecookie [Player ID] [Reason]");
  952. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  953. if (PlayerInfo[playerid][pAdmin]>=4)
  954. {
  955. format(str, sizeof(str), "%s have been granted a cookie by %s. Reason: %s", GetName(pid), GetName(playerid), reason);
  956. SendClientMessageToAll(COLOR_RED, str);
  957. format(str, sizeof(str), "You just gave a cookie to %s.", GetName(pid));
  958. SendClientMessage(playerid, COLOR_RED, str);
  959. PlayerInfo[pid][pCookies] ++;
  960. }
  961. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  962. return 1;
  963. }
  964.  
  965. CMD:sethealth(playerid, params[]) // CMD for setting someone his health
  966. {
  967. new amount;
  968. new pid;
  969. new str[128];
  970. if(sscanf(params, "ui", pid, amount)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /sethealth [Player ID] [Amount]");
  971. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  972. if (PlayerInfo[playerid][pAdmin]>=2)
  973. {
  974. SetPlayerHealth(pid, amount);
  975. format(str, sizeof(str), "Your health has been set to $%i by an Admin!", amount);
  976. SendClientMessage(pid, COLOR_RED, str);
  977. format(str, sizeof(str), "You just set %s's health to %i.", GetName(pid), amount);
  978. SendClientMessage(playerid, COLOR_RED, str);
  979. }
  980. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  981. return 1;
  982. }
  983.  
  984. CMD:setarmour(playerid, params[]) // CMD for setting someone his armour
  985. {
  986. new amount;
  987. new pid;
  988. new str[128];
  989. if(sscanf(params, "ui", pid, amount)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /setarmour [Player ID] [Amount]");
  990. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  991. if (PlayerInfo[playerid][pAdmin]>=2)
  992. {
  993. SetPlayerArmour(pid, amount);
  994. format(str, sizeof(str), "Your armour has been set to $%i by an Admin!", amount);
  995. SendClientMessage(pid, COLOR_RED, str);
  996. format(str, sizeof(str), "You just set %s's armour to %i.", GetName(pid), amount);
  997. SendClientMessage(playerid, COLOR_RED, str);
  998. }
  999. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  1000. return 1;
  1001. }
  1002.  
  1003. CMD:resetstats(playerid, params[]) // CMD for resetting somebody's stats
  1004. {
  1005. new pid;
  1006. new str[128];
  1007. if(sscanf(params, "u", pid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /resetstats [Player ID]. NOTE: Stats will be lost forever.");
  1008. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  1009. if (PlayerInfo[playerid][pAdmin]>=5)
  1010. {
  1011. if(PlayerInfo[playerid][pAdmin]==PlayerInfo[pid][pAdmin]) return SendClientMessage(playerid, COLOR_RED, "You can't reset stats of another owner!");
  1012. format(str, sizeof(str), "Your stats have been reset. You were kicked to apply your new stats.");
  1013. SendClientMessage(pid, COLOR_RED, str);
  1014. format(str, sizeof(str), "You just reset %s's stats.", GetName(pid));
  1015. SendClientMessage(pid, COLOR_RED, str);
  1016. format(str, sizeof(str), "ADMCMD: %s just reset %s's stats.", GetName(playerid), GetName(pid));
  1017. SendClientMessage(pid, COLOR_RED, str);
  1018. new INI:File = INI_Open(UserPath(playerid));
  1019. INI_SetTag(File,"data");
  1020. INI_WriteInt(File,"Cash",3000);
  1021. INI_WriteInt(File,"Admin",0);
  1022. INI_WriteInt(File,"Kills",0);
  1023. INI_WriteInt(File,"Deaths",0);
  1024. INI_WriteInt(File,"VIP",0);
  1025. INI_WriteInt(File,"Banned",0);
  1026. INI_WriteInt(File,"Warnings",0);
  1027. INI_WriteInt(File,"Report mute",0);
  1028. Kick(pid);
  1029. }
  1030. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  1031. return 1;
  1032. }
  1033.  
  1034. CMD:fine(playerid, params[]) // CMD for fining someone
  1035. {
  1036. new pid;
  1037. new str[128];
  1038. new amount;
  1039. new reason;
  1040. if(sscanf(params, "uis", pid, amount, reason)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fine [Player ID] [Amount] [Reason]");
  1041. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  1042. if(PlayerInfo[playerid][pAdmin]>=2)
  1043. {
  1044. if(amount==0) return SendClientMessage(playerid, COLOR_WHITE, "You can't fine someone 0 dollars!");
  1045. GivePlayerMoney(pid, -amount);
  1046. format(str, sizeof(str), "ADMCMD: %s has been fined $%i by %s. Reason: %s", GetName(pid), amount, GetName(playerid), reason);
  1047. SendClientMessageToAll(COLOR_RED, str);
  1048. }
  1049. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  1050. return 1;
  1051. }
  1052.  
  1053. CMD:warn(playerid, params[]) // CMD for warning someone
  1054. {
  1055. new pid;
  1056. new str[128];
  1057. new reason;
  1058. if(sscanf(params, "us", pid, reason)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /warn [Player ID] [Reason]");
  1059. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  1060. if(PlayerInfo[playerid][pAdmin]>=1)
  1061. {
  1062. if(PlayerInfo[pid][pAdmin]>=PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid, COLOR_WHITE, "You can't warn this player: he's higher admin rank!");
  1063. if(PlayerInfo[pid][pWarns]>=4)
  1064. {
  1065. PlayerInfo[pid][pWarns]++;
  1066. PlayerInfo[pid][pBanned]++;
  1067. format(str, sizeof(str), "ADMCMD: %s has been warned by an %s. Reason: %s", GetName(pid), GetName(playerid), reason);
  1068. SendClientMessageToAll(COLOR_RED, str);
  1069. format(str, sizeof(str), "AUTO-BAN: %s has been automatically banned. Reason: Too much warnings.", GetName(pid));
  1070. SendClientMessageToAll(COLOR_RED, str);
  1071. Kick(pid);
  1072. }
  1073. else
  1074. {
  1075. PlayerInfo[pid][pWarns]++;
  1076. format(str, sizeof(str), "ADMCMD: %s has been warned by an %s. Reason: %s", GetName(pid), GetName(playerid), reason);
  1077. SendClientMessageToAll(COLOR_RED, str);
  1078. }
  1079. }
  1080. return 1;
  1081. }
  1082.  
  1083. CMD:a(playerid,params[]) // CMD for admin chat
  1084. {
  1085. if(PlayerInfo[playerid][pAdmin] >= 1)
  1086. {
  1087. new sendername[MAX_PLAYER_NAME], string[128];
  1088. GetPlayerName(playerid, sendername, sizeof(sendername));
  1089. sendername[strfind(sendername,"_")] = ' ';
  1090. if(isnull(params)) return SendClientMessage(playerid,COLOR_WHITE,"USAGE: /(a)say [text]");
  1091. format(string, sizeof(string), "[%s] %s: %s", GetAdminLvlName(playerid), sendername, params);
  1092. ABroadCast(COLOR_RED,string,1);
  1093. }
  1094. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  1095. return 1;
  1096. }
  1097.  
  1098. CMD:asay(playerid,params[]) // Alt. CMD for admin chat
  1099. {
  1100. if(PlayerInfo[playerid][pAdmin] >= 1)
  1101. {
  1102. new sendername[MAX_PLAYER_NAME], string[128];
  1103. GetPlayerName(playerid, sendername, sizeof(sendername));
  1104. sendername[strfind(sendername,"_")] = ' ';
  1105. if(isnull(params)) return SendClientMessage(playerid,COLOR_WHITE,"USAGE: /(a)say [text]");
  1106. format(string, sizeof(string), "[%s] %s: %s", GetAdminLvlName(playerid), sendername, params);
  1107. ABroadCast(COLOR_RED,string,1);
  1108. }
  1109. else SendClientMessage(playerid, COLOR_RED, "You must be an admin to use that command!");
  1110. return 1;
  1111. }
  1112.  
  1113. CMD:reportmute(playerid, params[]) // CMD for muting someone from report
  1114. {
  1115. new pid;
  1116. new str[128];
  1117. new reason;
  1118. if(sscanf(params, "us", pid, reason)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /reportmute [Player ID] [Reason] (This commands is also used to unmute. Type 'null' reason when unmute.)");
  1119. if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "PlayerID is not connected.");
  1120. if(PlayerInfo[playerid][pAdmin]>=2)
  1121. {
  1122. if(PlayerInfo[pid][pAdmin]>=PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid, COLOR_WHITE, "You can't mute this player: he's higher admin rank!");
  1123. if(PlayerInfo[pid][pReportMuted]==0)
  1124. {
  1125. new INI:File = INI_Open(UserPath(playerid));
  1126. INI_SetTag(File,"data");
  1127. INI_WriteInt(File,"Reportmute",PlayerInfo[pid][pReportMuted]+1);
  1128. INI_Close(File);
  1129. format(str, sizeof(str), "ADMCMD: %s has been report muted by %s. Reason: %s", GetName(pid), GetName(playerid), reason);
  1130. SendClientMessageToAll(COLOR_RED, str);
  1131. }
  1132. else
  1133. {
  1134. new INI:File = INI_Open(UserPath(playerid));
  1135. INI_SetTag(File,"data");
  1136. INI_WriteInt(File,"Reportmute",PlayerInfo[pid][pReportMuted]-1);
  1137. INI_Close(File);
  1138. format(str, sizeof(str), "ADMCMD: %s has been report unmuted by %s.", GetName(pid), GetName(playerid));
  1139. SendClientMessageToAll(COLOR_RED, str);
  1140. }
  1141. }
  1142. return 1;
  1143. }
  1144.  
  1145. // End of admin CMD's section
  1146.  
  1147. //---------------------------------------------------------------------------------------------------------------
  1148.  
  1149. // VIP CMD's section
  1150.  
  1151. CMD:vc(playerid,params[]) // CMD for VIP chat
  1152. {
  1153. if(PlayerInfo[playerid][pVip] >= 1)
  1154. {
  1155. if(PlayerInfo[playerid][pTogVC] == 0)
  1156. {
  1157. new sendername[MAX_PLAYER_NAME], string[128];
  1158. GetPlayerName(playerid, sendername, sizeof(sendername));
  1159. sendername[strfind(sendername,"_")] = ' ';
  1160. if(isnull(params)) return SendClientMessage(playerid,COLOR_WHITE,"USAGE: /vc [text]");
  1161. format(string, sizeof(string), "[%s] %s: %s", GetVipLvlName(playerid), sendername, params);
  1162. VBroadCast(COLOR_VIP,string,1);
  1163. }
  1164. else SendClientMessage(playerid, COLOR_RED, "VIP chat toggled off, turn it on!");
  1165. }
  1166. else SendClientMessage(playerid, COLOR_RED, "You must be VIP to use that command!");
  1167. return 1;
  1168. }
  1169.  
  1170. CMD:togvc(playerid) // CMD for toggling VIP chat
  1171. {
  1172. if(PlayerInfo[playerid][pVip] >= 1)
  1173. {
  1174. if(PlayerInfo[playerid][pTogVC] == 0)
  1175. {
  1176. PlayerInfo[playerid][pTogVC] = 1;
  1177. SendClientMessage(playerid, COLOR_RED, "You have disabled VIP chat.");
  1178. }
  1179. else
  1180. {
  1181. PlayerInfo[playerid][pTogVC] = 0;
  1182. SendClientMessage(playerid, COLOR_RED, "You have enabled VIP chat.");
  1183. }
  1184. }
  1185. else SendClientMessage(playerid, COLOR_RED, "You must be VIP to use that command!");
  1186. return 1;
  1187. }
  1188.  
  1189. // End of VIP CMD's section
  1190.  
  1191. //-------------------------------------------------------Publics-------------------------------------------------
  1192.  
  1193. public LoadUser_data(playerid,name[],value[])
  1194. {
  1195. INI_Int("Password",PlayerInfo[playerid][pPass]);
  1196. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  1197. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  1198. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  1199. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  1200. INI_Int("VIP",PlayerInfo[playerid][pVip]);
  1201. INI_Int("Banned",PlayerInfo[playerid][pBanned]);
  1202. INI_Int("VC",PlayerInfo[playerid][pTogVC]);
  1203. INI_Int("Cookies",PlayerInfo[playerid][pCookies]);
  1204. return 1;
  1205. }
  1206.  
  1207. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1208. {
  1209. if (newkeys == KEY_YES) return ShowPlayerDialog(playerid, DIALOG_SHOP, DIALOG_STYLE_LIST, "Shop", "Deagle ($10.000)\nM4 ($15.000)\nGrenade ($10.000) [VIP]\nHealth ($2.500)\nArmour ($5.000)", "Buy", "Exit");
  1210. if (newkeys == KEY_NO) return ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_LIST, "Help", "Player commands\nAdmin commands\nVIP commands", "Select", "Exit");
  1211. return 1;
  1212. }
  1213.  
  1214.  
  1215. public ABroadCast(color,const string[],level)
  1216. {
  1217. for(new pid = 0; pid < MAX_PLAYERS; pid++)
  1218. {
  1219. if(IsPlayerConnected(pid))
  1220. {
  1221. if (PlayerInfo[pid][pAdmin] >= level)
  1222. {
  1223. SendClientMessage(pid, color, string);
  1224. }
  1225. }
  1226. }
  1227. return 1;
  1228. }
  1229.  
  1230. public VBroadCast(color,const string[],level)
  1231. {
  1232. for(new pid = 0; pid < MAX_PLAYERS; pid++)
  1233. {
  1234. if(IsPlayerConnected(pid))
  1235. {
  1236. if (PlayerInfo[pid][pTogVC] == 0)
  1237. {
  1238. if (PlayerInfo[pid][pVip] >= level)
  1239. {
  1240. SendClientMessage(pid, color, string);
  1241. }
  1242. }
  1243. }
  1244. }
  1245. return 1;
  1246. }
  1247.  
  1248. //--------------------------------------------------Stocks-------------------------------------------------------
  1249.  
  1250. stock UserPath(playerid)
  1251. {
  1252. new string[128],playername[MAX_PLAYER_NAME];
  1253. GetPlayerName(playerid,playername,sizeof(playername));
  1254. format(string,sizeof(string),PATH,playername);
  1255. return string;
  1256. }
  1257.  
  1258. stock UserAccount(string[])
  1259. {
  1260. new File[128];
  1261. format(File,sizeof(File),PATH,string);
  1262. return File;
  1263. }
  1264.  
  1265. stock udb_hash(buf[]) {
  1266. new length=strlen(buf);
  1267. new s1 = 1;
  1268. new s2 = 0;
  1269. new n;
  1270. for (n=0; n<length; n++)
  1271. {
  1272. s1 = (s1 + buf[n]) % 65521;
  1273. s2 = (s2 + s1) % 65521;
  1274. }
  1275. return (s2 << 16) + s1;
  1276. }
  1277.  
  1278. stock GetName(playerid)
  1279. {
  1280. new Name[MAX_PLAYER_NAME];
  1281. if(IsPlayerConnected(playerid))
  1282. {
  1283. GetPlayerName(playerid, Name, sizeof(Name));
  1284. }
  1285. return Name;
  1286. }
  1287.  
  1288. //----------------------------------Stocks used for /stats CMD---------------------------------------------------
  1289.  
  1290. stock GetVipLvlName(playerid)
  1291. {
  1292. new str[64];
  1293. if (PlayerInfo[playerid][pVip] == 0) str = ("None");
  1294. if (PlayerInfo[playerid][pVip] == 1) str = ("Normal VIP");
  1295. if (PlayerInfo[playerid][pVip] == 2) str = ("Advanced VIP");
  1296. return str;
  1297. }
  1298.  
  1299. stock GetAdminLvlName(playerid)
  1300. {
  1301. new str[64];
  1302. if (PlayerInfo[playerid][pAdmin] == 0) str = ("None");
  1303. if (PlayerInfo[playerid][pAdmin] == 1) str = ("Moderator");
  1304. if (PlayerInfo[playerid][pAdmin] == 2) str = ("Junior Admin");
  1305. if (PlayerInfo[playerid][pAdmin] == 3) str = ("Admin");
  1306. if (PlayerInfo[playerid][pAdmin] == 4) str = ("General Admin");
  1307. if (PlayerInfo[playerid][pAdmin] == 5) str = ("Owner");
  1308. return str;
  1309. }
  1310.  
  1311. stock YesNoChecker(params)
  1312. {
  1313. new str[64];
  1314. if (params == 0) str = ("No");
  1315. if (params == 1) str = ("Yes");
  1316. return str;
  1317. }
  1318.  
  1319. antiDeAMX()
  1320. {
  1321. new AntiDeAMX[][] =
  1322. {
  1323. "Unarmed (Fist)",
  1324. "Brass K"
  1325. };
  1326. #pragma unused AntiDeAMX
  1327. }
  1328. forward RandomWeather();
  1329. public RandomWeather()
  1330. {
  1331.  
  1332. Weather = random(20);
  1333. SetWeather(Weather);
  1334. switch(Weather)
  1335. {
  1336. case 0:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Sunny Skies |[Visibility]:High |[Winds]:NA |[Clouds]:Moderate");
  1337. case 1:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Moderate Sunny Skies [Visibility]:High [Winds]:NA [Clouds]:Moderate");
  1338. case 2:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Sunny Skies [Visibility]:High [Winds]:NA [Clouds]:Moderate");
  1339. case 3:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Sunny Skies [Visibility]:High [Winds]:NA [Clouds]:Moderate");
  1340. case 4:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Sunny Skies |[Visibility]:High |[Winds]:NA |[Clouds]:Moderate");
  1341. case 5:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Sunny Skies |[Visibility]:High |[Winds]:NA |[Clouds]:Moderate");
  1342. case 7:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Sunny Skies |[Visibility]:High |[Winds]:NA |[Clouds]:Moderate");
  1343. case 8:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Wet Rainy Weather |[Visibility]:Medium |[Winds]:Moderate |[Clouds]:Heavy");
  1344. case 9:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Thick Fog |[Visibility]:Low |[Winds]:Moderate |[Clouds]:Heavy");
  1345. case 10:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Moderate Sunny Skies |[Visibility]:High |[Winds]:NA |[Clouds]:Moderate");
  1346. case 11:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: HeatWave |[Visibility]:High |[Winds]:NA |[Clouds]:Moderate");
  1347. case 12:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Hazy/Dull Weather |[Visibility]:Moderate |[Winds]:NA |[Clouds]:High");
  1348. case 13:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Hazy/Dull Weather |[Visibility]:Moderate |[Winds]:NA |[Clouds]:High");
  1349. case 14:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Hazy/Dull Weather |[Visibility]:Moderate |[Winds]:NA |[Clouds]:High");
  1350. case 15:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Heavy RainStorm |[Visibility]:Low |[Winds]:Very High |[Clouds]: very Thick");
  1351. case 16:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Scorching Hot Bright Weather |[Visibility]:High |[Winds]:NA |[Clouds]:Low");
  1352. case 17:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Scorching Hot Bright Weather |[Visibility]:High |[Winds]:NA |[Clouds]:Low");
  1353. case 18:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Scorching Hot Bright Weather |[Visibility]:High |[Winds]:NA |[Clouds]:Low");
  1354. case 19:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Sand Storm |[Visibility]:Very-Low |[Winds]: High Speed Winds |[Clouds]:Heavy");
  1355. case 20:SendClientMessageToAll(COLOR_LIGHTBLUE,"Weather INFO: [Current Weather]: Toxic Green Smog |[Visibility]:Low |[Winds]:Moderate |[Clouds]:Heavy");
  1356.  
  1357.  
  1358. }
  1359. }
  1360. public NewMapTimer(playerid) // The callback we forwarded on the beginning of the tutorial
  1361. {
  1362. MapChange++; // this makes it to go to the second MapChange++ part basically does it
  1363. // Sends everyone in server a gametext
  1364. GameTextForAll("~b~ Loading new ~w~MAP",4000,3);
  1365. SetTimer("StartedNewRound",4000,false); // Starts a new timer for the MapChangechange 4 seconds this basically starts the new MapChangeand always must be in false
  1366. return 1;
  1367. }
  1368. public StartedNewRound() // The callback we forwarded in the beginning of this tutorial
  1369. {
  1370. for(new i = 0; i < MAX_PLAYERS; i++) { // this loops everyone in the server also you can use foreach include for this part
  1371. SpawnPlayer ( i ) ; // Re Spawns everyone in the server which then gets OnPlayerSpawn Callback called
  1372. switch ( MapChange ) { // This part is basically for your new MapChangesettings like giving them weapons
  1373. case 0:
  1374. {
  1375. SendClientMessage(i,COLOR_RED,"New Map Change");
  1376. if( gTeam[i] = TEAM_ARMY)
  1377. {
  1378. GivePlayerWeapon(i,31,49999);
  1379. }
  1380. else if( gTeam[i] = TEAM_TERRORISTS)
  1381. {
  1382. GivePlayerWeapon(i,31,49999);
  1383. GivePlayerWeapon(i,31,49999);
  1384. GivePlayerWeapon(i,31,49999);
  1385. }
  1386. }
  1387. case 1:
  1388. {
  1389. SendClientMessage(i,COLOR_RED,"New Map Change");
  1390. if( gTeam[i] = TEAM_ARMY)
  1391. {
  1392. GivePlayerWeapon(i,31,49999);
  1393. GivePlayerWeapon(i,23,49999);
  1394. GivePlayerWeapon(i,3,49999);
  1395. }
  1396. else if( gTeam[i] = TEAM_TERRORISTS)
  1397. {
  1398. GivePlayerWeapon(i,30,49999);
  1399. GivePlayerWeapon(i,22,49999);
  1400. GivePlayerWeapon(i,4,49999);
  1401. }
  1402. }
  1403. }
  1404. }
  1405. return 1;
  1406. }
  1407. //---------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment