Advertisement
Guest User

SFTDM

a guest
Aug 29th, 2010
465
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 137.67 KB | None | 0 0
  1.  
  2. //------------------------------------------------------------------------------
  3.  
  4. #include <a_samp>
  5. #include <dudb>
  6. #include <dutils>
  7.  
  8. //Global stuff and defines for our gamemode
  9.  
  10. #pragma tabsize 0
  11.  
  12. static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player
  13.  
  14. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  15.  
  16. #define GetName(%1,%2) new %2[MAX_PLAYER_NAME]; GetPlayerName(%1,%2,MAX_PLAYER_NAME)
  17.  
  18. //Color Defines
  19. #define COLOR_GREY 0x70707096
  20. #define COLOR_DARKGREY 0x545454FF
  21. #define COLOR_GREEN 0x00620096
  22. #define COLOR_RED 0xAA3333AA
  23. #define COLOR_YELLOW 0xFFFF00AA
  24. #define COLOR_DARKRED 0xC50000FF
  25. #define COLOR_DARKYELLOW 0xE5E52BFF
  26. #define COLOR_PINK 0xFF66FFAA
  27. #define COLOR_BLUE 0x0000BBAA
  28. #define COLOR_LIGHTBLUE 0x33CCFFAA
  29. #define COLOR_ORANGE 0xFF9900AA
  30. #define COLOR_BEGE 0xFFA97FFF
  31. #define COLOR_BROWN 0x804000FF
  32. #define COLOR_DARKGREEN 0x007500FF
  33. #define COLOR_LRED 0xFF1111FF
  34. #define COLOR_PURPLE 0xFF80FF00
  35.  
  36. //Team Defines
  37.  
  38. #define MAX_TEAMS 14
  39.  
  40. #define TEAM_WORKER 0
  41. #define TEAM_PIMP 1
  42. #define TEAM_GOLFER 2
  43. #define TEAM_TRIAD 3
  44. #define TEAM_MECHANIC 4
  45. #define TEAM_BIKER 5
  46. #define TEAM_MEDIC 6
  47. #define TEAM_SWAT 7
  48. #define TEAM_HICK 8
  49. #define TEAM_PILOT 9
  50. #define TEAM_TORENO 10
  51. #define TEAM_NANG 11
  52. #define TEAM_CHICKEN 12
  53. #define TEAM_ARMY 13
  54.  
  55. #define COLOR_SYSTEM 0xFF0000AA
  56. #define COLOR_ADMINISTRATOR 0xFF0000AA
  57. #define KICKPORTAL "KickedNames.txt"
  58. #define ADMIN_SPEC_TYPE_NONE 0
  59. #define ADMIN_SPEC_TYPE_PLAYER 1
  60. #define ADMIN_SPEC_TYPE_VEHICLE 2
  61.  
  62. #define YOUR_START_HOUR 12 // change the ingame starting hour here
  63. #define YOUR_START_MINUTE 0 // change the ingame starting minute here
  64.  
  65. //MAX PICKUPS PER WEAPON... 6 is ok
  66. new DropLimit = 4;
  67. //DELETE PICKUPS IN ... SECONDS
  68. new DeleteTime = 10;
  69.  
  70. new gPlayerClass[MAX_PLAYERS];
  71. new Killed[MAX_PLAYERS];
  72.  
  73. enum PlayerInfo
  74. {
  75.     pAdmin,
  76.     pDeaths,
  77.     pKills
  78. }
  79.  
  80. new pInfo[MAX_PLAYERS][PlayerInfo];
  81.  
  82. new LoggedIn[MAX_PLAYERS];
  83. new Registered[MAX_PLAYERS];
  84. new IsPlayerMuted[MAX_PLAYERS];
  85. new Bounty[MAX_PLAYERS];
  86. new BountyKills[MAX_PLAYERS];
  87.  
  88. new tmp2[MAX_STRING];
  89. new giveplayerid;
  90. new bool:IsServerLocked;
  91. new gSpectateID[MAX_PLAYERS];
  92. new gSpectateType[MAX_PLAYERS];
  93. new InfoMessage;
  94.  
  95. new infotimer;
  96. //new savetimer;
  97. new zonetimer;
  98. new teamtimer;
  99.  
  100. new CLOCK_timer;
  101. new CLOCK_hour;
  102. new CLOCK_minute;
  103. new Text:Clock;
  104.  
  105. //spawninfo defines
  106. new Text:worker0;
  107. new Text:worker1;
  108. new Text:triad0;
  109. new Text:triad1;
  110. new Text:hick0;
  111. new Text:hick1;
  112. new Text:swat0;
  113. new Text:swat1;
  114. new Text:army0;
  115. new Text:army1;
  116. new Text:medic0;
  117. new Text:medic1;
  118. new Text:chicken0;
  119. new Text:chicken1;
  120. new Text:pimp0;
  121. new Text:pimp1;
  122. new Text:mechanic0;
  123. new Text:mechanic1;
  124. new Text:rich0;
  125. new Text:rich1;
  126. new Text:pilot0;
  127. new Text:pilot1;
  128. new Text:biker0;
  129. new Text:biker1;
  130. new Text:nang0;
  131. new Text:nang1;
  132. new Text:golfer0;
  133. new Text:golfer1;
  134. //rules
  135. new Text:rules0;
  136. new Text:rules1;
  137. new Text:rules2;
  138. new Text:Textdraw0;
  139.  
  140. enum Z_Info
  141. {
  142.     Float:z_minx,
  143.     Float:z_miny,
  144.     Float:z_maxx,
  145.     Float:z_maxy,
  146.     z_team,
  147.     z_id
  148. }
  149.  
  150. #define MAX_ZONES 67
  151.  
  152. new ZoneTakeOverTeam[MAX_ZONES];
  153. new ZoneTakeOverTime[MAX_ZONES];
  154.  
  155. new ZoneInfo[MAX_ZONES][Z_Info] = {
  156.     {-2155.1960, -108.1418, -1992.9630, 124.6110, TEAM_WORKER},
  157.     {-2155.1960, 124.6110, -1992.9630, 353.4189, TEAM_WORKER},
  158.     {-1992.9630, -108.1418, -1799.8289, 353.4189, TEAM_WORKER},
  159.     {-2247.9008, 120.6660, -2155.1960, 353.4189, TEAM_WORKER},
  160.     {-2587.8168, 160.1157, -2406.2709, 353.4189, TEAM_WORKER},
  161.     {-2807.9899, 353.4189, -2518.2890, 590.1168, TEAM_MEDIC},
  162.     {-2807.9899, 590.1168, -2518.2890, 740.0255, TEAM_MEDIC},
  163.     {-2518.2890, 353.4189, -2267.2141, 594.0618, TEAM_MEDIC},
  164.     {-2518.2890, 594.0618, -2267.2141, 743.9703, TEAM_MEDIC},
  165.     {-2510.5629, 743.9703, -2267.2141, 842.5944, TEAM_MEDIC},
  166.     {-1989.1009, 353.4189, -1726.4379, 463.8779, TEAM_SWAT},
  167.     {-1992.9630, 463.8779, -1726.4379, 617.7316, TEAM_SWAT},
  168.     {-1726.4379, 455.9880, -1529.4410, 661.1262, TEAM_SWAT},
  169.     {-2000.6889, 617.7316, -1714.8499, 759.7503, TEAM_SWAT},
  170.     {-1714.8499, 661.1262, -1529.4410, 755.8052, TEAM_SWAT},
  171.     {-1695.5369, 755.8052, -1417.4229, 854.4293, TEAM_SWAT},
  172.     {-1830.7309, 759.7503, -1695.5369, 1047.7330, TEAM_SWAT},
  173.     {-2251.7629, 1154.2469, -1826.8680, 1296.2650, TEAM_ARMY},
  174.     {-1726.4379, 274.5197, -1208.8380, 455.9880, TEAM_ARMY},
  175.     {-1529.4410, 455.9880, -1212.7010, 546.7222, TEAM_ARMY},
  176.     {-1734.1639, -680.1616, -1191.1429, -432.0813, TEAM_PILOT},
  177.     {-1726.4379, -432.0813, -1386.5219, 57.5466, TEAM_PILOT},
  178.     {-1726.4379, 57.5466, -1123.8590, 274.5197, TEAM_PILOT},
  179.     {-1386.5219, -432.0813, -1123.8590, 57.5466, TEAM_PILOT},
  180.     {-1803.6920, -108.1418, -1726.4379, 353.4189, TEAM_PILOT},
  181.     {-2641.8950, -368.5094, -2259.4890, -194.9311, TEAM_GOLFER},
  182.     {-2807.9899, -431.6289, -2641.8950, -194.9311, TEAM_GOLFER},
  183.     {-2807.9899, -194.9311, -2406.2709, -52.9123, TEAM_GOLFER},
  184.     {-2406.2709, -194.9311, -2155.1960, 120.6660, TEAM_GOLFER},
  185.     {-2742.3239, 1359.3850, -2247.9008, 1505.3489, TEAM_PIMP},
  186.     {-2502.8378, 1158.1920, -2247.9008, 1359.3850, TEAM_PIMP},
  187.     {-2742.3239, 1047.7330, -2502.8378, 1359.3850, TEAM_PIMP},
  188.     {-2831.1660, 1118.7419, -2742.3239, 1367.2750, TEAM_PIMP},
  189.     {-2247.9008, 1296.2650, -1842.3189, 1505.3489, TEAM_NANG},
  190.     {-1842.3189, 1296.2650, -1629.8709, 1576.3580, TEAM_NANG},
  191.     {-1502.4019, 1449.6789, -1332.4439, 1568.4680, TEAM_NANG},
  192.     {-1626.0080, 1047.7330, -1452.1879, 1288.3750, TEAM_NANG},
  193.     {-1695.5369, 850.4843, -1409.6979, 1047.7330, TEAM_NANG},
  194.     {-1830.7309, 1047.7330, -1626.0080, 1296.2650, TEAM_NANG},
  195.     {-2807.9899, 740.0255, -2510.5629, 949.1085, TEAM_TORENO},
  196.     {-2510.5629, 842.5944, -2267.2141, 1043.7879, TEAM_TORENO},
  197.     {-2742.3239, 949.1085, -2506.6999, 1047.7330, TEAM_TORENO},
  198.     {-2807.9899, 949.1085, -2742.3239, 1118.7419, TEAM_TORENO},
  199.     {-2502.8378, 1043.7879, -2267.2141, 1158.1920, TEAM_TORENO},
  200.     {-2267.2141, 968.8333, -1989.1009, 1158.1920, TEAM_TORENO},
  201.     {-2267.2141, 767.6401, -1989.1009, 968.8333, TEAM_TRIAD},
  202.     {-1989.1009, 759.7503, -1830.7309, 1158.1920, TEAM_TRIAD},
  203.     {-2124.2949, 617.7316, -1989.1009, 767.6401, TEAM_TRIAD},
  204.     {-2267.2141, 586.1718, -2124.2949, 767.6401, TEAM_TRIAD},
  205.     {-2267.2141, 353.4189, -2124.2949, 586.1718, TEAM_TRIAD},
  206.     {-2807.9899, -52.9123, -2595.5419, 160.1157, TEAM_CHICKEN},
  207.     {-2595.5419, -52.9123, -2406.2709, 160.1157, TEAM_CHICKEN},
  208.     {-2807.9899, 160.1157, -2684.3840, 353.4189, TEAM_CHICKEN},
  209.     {-2684.3840, 160.1157, -2587.8168, 353.4189, TEAM_CHICKEN},
  210.     {-2406.2709, 120.6660, -2247.9008, 353.4189, TEAM_CHICKEN},
  211.     {-2124.2949, 353.4189, -1989.1009, 617.7316, TEAM_CHICKEN},
  212.     {-618.9274, -595.5717, -443.7593, -443.7593, TEAM_MECHANIC},
  213.     {-618.9274, -782.4177, -385.3699, -595.5717, TEAM_MECHANIC},
  214.     {-934.2299, -992.6193, -618.9274, -560.5380, TEAM_MECHANIC},
  215.     {-1191.1429, -759.0618, -934.2299, -432.0813, TEAM_MECHANIC},
  216.     {-595.5717, -256.9132, -408.7255, -46.7114, TEAM_HICK},
  217.     {-887.5186, -256.9132, -595.5717, -46.7114, TEAM_HICK},
  218.     {-887.5186, -46.7114, -408.7255, 128.4566, TEAM_HICK},
  219.     {-1237.8549, -1354.6340, -980.9415, -887.5186, TEAM_HICK},
  220.     {-618.9274, -1027.6529, -362.0140, -852.4849, TEAM_BIKER},
  221.     {-618.9274, -1191.1429, -467.1149, -1027.6529, TEAM_BIKER},
  222.     {-782.4177, -1191.1429, -618.9274, -992.6193, TEAM_BIKER}
  223. };
  224.  
  225. forward StopSpeccing(playerid);
  226. forward SpecUpdate(playerid);
  227. forward SettingPlayerTeam(); //teamkill
  228. forward GameModeExitFunc();
  229. forward ZoneUpdate();
  230. //forward SaveAllStats();
  231.  
  232. forward SystemMsg(playerid,msg[]);
  233. forward Restart();
  234. forward CLOCK_EverySecondTimer();
  235. forward Information();
  236. forward DropPlayerWeapons(playerid);
  237. forward DeletePickup(pickupid);
  238.  
  239. //------------------------------------------------------------------------------
  240.  
  241. main()
  242. {
  243.     print("\n----------------------------------");
  244.     print("  SFTDM:4.6.1 by TheKingWillem (2009)\n");
  245.     print("----------------------------------\n");
  246. }
  247.  
  248. //------------------------------------------------------------------------------
  249.  
  250. public OnGameModeInit()
  251. {
  252.     SetGameModeText("San Fierro: TDM 4.6.1");
  253.  
  254.     UsePlayerPedAnims();
  255.     SetTeamCount(13);
  256.     ShowNameTags(1);
  257.     ShowPlayerMarkers(1);
  258.  
  259.  
  260.     AddPlayerClass(260,-2062.5583,237.4662,35.7149,268.8936,30,150,25,50,29,150); //Worker
  261.     AddPlayerClass(249,-2653.6443,1388.2767,7.1301,212.8453,26,100,29,150,16,8); //Pimp
  262.     AddPlayerClass(259,-2642.2583,-274.9985,7.5393,135.0036,34,18,32,150,2,1); //Golfer
  263.     AddPlayerClass(118,-2182.8789,609.0111,35.1641,90.3134,30,150,32,150,24,50); //Triad
  264.     AddPlayerClass(50,-540.9334,-493.9939,25.5234,2.1357,26,100,30,150,16,8); //Mechanic
  265.     AddPlayerClass(248,-590.2386,-1070.6687,23.4799,245.1315,29,150,16,8,25,50); //Biker
  266.     AddPlayerClass(274,-2665.4282,635.6348,14.4531,179.8403,33,30,29,150,23,30); //Medic
  267.     AddPlayerClass(285,-1635.0077,665.8105,7.1875,264.2244,29,150,31,150,16,8); //Swat
  268.     AddPlayerClass(162,-530.9717,-98.2034,63.2969,4.3698,26,100,28,150,24,20); //Hick
  269.     AddPlayerClass(255,-1331.1147,-235.3819,858.4656,106.3832,34,18,23,30,18,8); //Pilot
  270.     AddPlayerClass(187,-2664.8774,940.8234,79.7101,184.9922,31,150,27,100,16,8); //Toreno
  271.     AddPlayerClass(122,-1478.7167,1489.1571,8.2501,272.8738,27,100,28,150,24,50); // nang
  272.     AddPlayerClass(167,-2671.8293,267.5992,4.3359,358.9251,26,100,29,150,24,20); // chicken
  273.     AddPlayerClass(287,-1335.4381,506.1993,11.1953,83.7755,31,150,24,20,27,100); // army
  274.  
  275.     CreateVehicle(471,-1331.0846,-232.7304,858.1304,106.1061,0,7,120); // quad1
  276.     CreateVehicle(471,-1333.1228,-233.3187,857.6396,106.1063,0,7,120); // quad2
  277.     CreateVehicle(471,-1334.9735,-233.8529,857.1973,106.0828,0,7,120); // qaud3
  278.     CreateVehicle(471,-1336.8336,-234.3891,856.7507,106.0772,0,7,120); // qaud4
  279.     CreateVehicle(471,-1338.6772,-234.9201,856.3088,106.0686,0,7,120); // qaud5
  280.     CreateVehicle(471,-1329.3984,-238.3599,858.1602,104.6697,0,7,120); // quad6
  281.     CreateVehicle(471,-1331.0671,-238.7967,857.7630,104.6650,0,7,120); // quad7
  282.     CreateVehicle(471,-1332.7803,-239.2450,857.3539,104.6976,0,7,120); // quad8
  283.     CreateVehicle(471,-1334.5336,-239.7271,856.9307,106.4921,0,7,120); // quad9
  284.     CreateVehicle(471,-1336.1462,-240.2041,856.5461,106.4772,0,7,120); // quad10
  285.     CreateVehicle(519,-1289.7424,-350.5048,15.1024,195.3063,0,7,120); // shamal1
  286.     CreateVehicle(519,-1311.3673,-355.8325,15.0744,194.4418,0,7,120); // shamal2
  287.     CreateVehicle(476,-1266.8002,-341.9807,14.8562,202.8707,0,7,120); // rustler1
  288.     CreateVehicle(463,-588.1334,-1075.4253,22.9613,235.9492,0,7,120); // freeway1
  289.     CreateVehicle(463,-586.3122,-1072.1973,22.9270,234.7390,0,7,120); // freeway2
  290.     CreateVehicle(463,-584.4375,-1069.1838,22.8900,234.7676,0,7,120); // freeway3
  291.     CreateVehicle(463,-581.8464,-1066.4482,22.9467,235.5516,0,7,120); // freeway4
  292.     CreateVehicle(463,-580.2595,-1063.2745,23.0204,234.4455,0,7,120); // freeway5
  293.     CreateVehicle(463,-578.2027,-1060.0898,23.1023,234.5559,0,7,120); // freeway6
  294.     CreateVehicle(463,-576.0919,-1057.0671,23.1828,233.2619,0,7,120); // freeway7
  295.     CreateVehicle(463,-574.0414,-1054.0868,23.2618,234.4510,0,7,120); // freeway8
  296.     CreateVehicle(463,-572.5219,-1050.8461,23.3353,234.0683,0,7,120); // freeway
  297.     CreateVehicle(463,-570.2981,-1047.8882,23.4104,234.5488,0,7,120); // freeway10
  298.     CreateVehicle(520,-1586.9945,-288.4680,14.8716,47.7482,0,7,120); // hydra1
  299.     CreateVehicle(520,-1595.4969,-298.8236,14.8716,52.5507,0,7,120); // hydra2
  300.     CreateVehicle(519,-1440.1042,-525.9028,15.0938,205.9727,0,7,120); // shamalhangar
  301.     CreateVehicle(519,-1361.4075,-493.6789,15.0908,206.8716,0,7,120); // shamalhangar1
  302.     CreateVehicle(592,-1603.1377,-500.5093,23.2879,44.3925,0,7,120); // andromedabrug
  303.     CreateVehicle(577,-1684.7770,-190.2014,14.0623,314.7069,0,0,120); // at400hydra
  304.     CreateVehicle(556,-374.5188,-792.5562,30.8738,240.0383,0,7,120); // monstertruck
  305.     CreateVehicle(520,706.6594,-2261.2424,13.5735,274.6305,0,7,120); // hydraadmin1
  306.     CreateVehicle(520,705.5833,-2249.1421,13.5735,282.7750,0,7,120); // hydraadmin2
  307.     CreateVehicle(497,-1681.3857,705.7542,30.7787,268.3755,1,1,120); // policeswatheli
  308.     CreateVehicle(427,-1605.8827,673.2131,7.3195,179.9547,0,1,120); // enforcerswat1
  309.     CreateVehicle(427,-1594.0354,673.1947,7.3191,180.0891,0,1,120); // enforcerswat2
  310.     CreateVehicle(597,-1599.9773,673.2905,6.9573,180.4921,0,1,120); // sfpd1
  311.     CreateVehicle(601,-1588.1655,673.2490,6.9463,180.3133,1,1,120); // swatwater1
  312.     CreateVehicle(601,-1581.6047,651.1897,6.9463,0.5391,1,1,120); // swatwater2
  313.     CreateVehicle(427,-1587.9159,652.1567,7.3194,359.6385,0,1,120); // enforcerswat
  314.     CreateVehicle(597,-1593.7037,652.1074,6.9557,0.6342,0,1,120); // sfpd
  315.     CreateVehicle(597,-1599.5651,652.1554,6.9564,359.5761,0,1,120); // sfpd
  316.     CreateVehicle(597,-1610.7178,652.1724,6.9576,357.6054,0,1,120); // sfpd
  317.     CreateVehicle(427,-1616.4803,651.7550,7.3192,0.2895,0,1,120); // enforcerswat
  318.     CreateVehicle(593,-1283.2323,-259.4105,14.5798,26.5470,60,1,120); // dodo1
  319.     CreateVehicle(593,-1325.9102,-279.6250,14.6085,26.3195,58,8,120); // dodo2
  320.     CreateVehicle(593,-1312.5881,-273.3793,14.6102,24.4373,2,1,120); // dodo4
  321.     CreateVehicle(476,-1297.6835,-267.1807,14.8538,24.6283,7,6,120); // rustler1
  322.     CreateVehicle(593,-1390.2306,-215.9052,14.6066,243.2827,68,8,120); // dodo5
  323.     CreateVehicle(593,-1382.8989,-199.9279,14.6058,244.6571,13,8,120); // dodo6
  324.     CreateVehicle(513,-1271.8248,-254.2045,14.6964,25.8020,0,7,120); // stuntplane
  325.     CreateVehicle(476,-1376.3331,-183.9525,14.8587,244.2562,1,6,120); // rustler
  326.     CreateVehicle(511,-1124.1268,-215.5061,15.5241,103.6089,8,66,120); // beagle
  327.     CreateVehicle(511,-1131.9965,-191.5900,15.5180,109.1899,0,7,120); // beagle
  328.     CreateVehicle(417,-1223.6155,-11.2785,14.2421,43.9280,0,7,120); // levathian heli
  329.     CreateVehicle(417,-1185.4189,24.8705,14.2279,44.7164,0,0,120); // levathian ap 2
  330.     CreateVehicle(485,-1175.7916,-148.4632,13.8019,136.6563,1,74,120); // baggagecar-ap
  331.     CreateVehicle(433,-1453.4021,459.5739,7.6209,0.0983,43,0,120); // barrack
  332.     CreateVehicle(433,-1447.2100,459.6718,7.6222,0.7908,43,0,120); // barrack
  333.     CreateVehicle(470,-1441.2654,461.2669,7.1746,0.1664,43,0,120); // patriot
  334.     CreateVehicle(470,-1435.7161,461.3101,7.1741,2.2390,43,0,120); // patriot
  335.     CreateVehicle(470,-1459.3347,461.3413,7.1724,0.5497,43,0,120); // patriot
  336.     CreateVehicle(470,-1475.2953,461.0638,7.1701,358.1463,43,0,120); // patriot
  337.     CreateVehicle(548,-1459.7053,501.1780,19.9128,90.4667,0,7,120); // cargobob schip
  338.     CreateVehicle(430,-1453.2120,493.0416,-0.2642,89.9948,0,7,120); // predator schip
  339.     CreateVehicle(430,-1449.8503,509.2277,-0.4126,88.6226,46,26,120); // predator schip
  340.     CreateVehicle(409,-2618.0696,1349.3864,6.9744,180.0236,1,1,120); // stretcher
  341.     CreateVehicle(439,-2087.2488,254.1511,35.8860,182.2311,0,7,120); // stallion workers
  342.     CreateVehicle(455,-2072.5313,255.8437,36.0024,180.7321,84,58,120); // flatbed workers
  343.     CreateVehicle(541,-2033.2311,170.2635,28.4609,272.0341,58,8,120); // bullet workers
  344.     CreateVehicle(451,-1949.8311,258.7238,35.1766,67.1317,16,16,120); // turismo showroom workers
  345.     CreateVehicle(522,-1950.2866,273.5888,40.6224,90.0485,3,3,120); // nrg showroom workers
  346.     CreateVehicle(477,-1954.6924,303.0300,35.2243,143.7713,0,7,120); // sportwagen showroom workers
  347.     CreateVehicle(471,-1732.1516,594.3750,24.3583,1.1434,74,91,120); // quad
  348.     CreateVehicle(507,-1629.5237,872.6083,8.2645,180.6872,0,7,120); // elegant
  349.     CreateVehicle(522,-1661.5031,1207.4307,20.7293,306.4218,3,8,120); // nrg showroom
  350.     CreateVehicle(506,-1658.9474,1212.4692,6.9546,291.5670,0,7,120); // supergt showroom
  351.     CreateVehicle(603,-1661.9515,1213.7438,13.5104,295.7164,0,7,120); // phoenix showroom
  352.     CreateVehicle(446,-1572.1675,1263.2318,-0.4548,271.1535,3,3,120); // squalo pier 69
  353.     CreateVehicle(473,-1446.9709,1506.0396,-0.4551,274.4062,56,53,120); // dinghy nang
  354.     CreateVehicle(446,-1456.0205,1464.7013,-1.0466,183.4196,1,22,120); // squalo nang
  355.     CreateVehicle(446,-1439.7700,1465.2950,-0.8570,178.5492,1,35,120); // squalo2 nang
  356.     CreateVehicle(493,-1424.1104,1464.4220,0.2635,180.0312,0,7,120); // jetmax nang
  357.     CreateVehicle(460,-1392.3185,1524.1824,1.3338,353.0948,1,9,120); // skimmer nang1
  358.     CreateVehicle(453,-1382.1621,1520.8270,-0.7090,331.1713,0,7,120); // reefer nang
  359.     CreateVehicle(515,-484.3663,-473.5274,26.5414,178.2755,24,77,120); // roadtrain mech
  360.     CreateVehicle(515,-479.2825,-473.5772,26.5403,179.5269,54,77,120); // roadtrain mech1
  361.     CreateVehicle(524,-2063.3633,229.2307,36.6795,2.4409,0,7,120); // cementworkers
  362.     CreateVehicle(601,-1574.1744,726.4121,-5.4834,89.7060,0,7,120); // SWAT garage
  363.     CreateVehicle(412,-1784.1588,715.8806,34.7033,358.3048,0,7,120); // voodo city
  364.     CreateVehicle(422,-1914.5186,792.3923,39.7259,266.6577,0,7,120); // bobcat city
  365.     CreateVehicle(424,-2915.4692,411.2508,3.7899,104.1431,0,7,120); // beachcar
  366.     CreateVehicle(460,-2953.7786,499.2873,1.8422,0.8239,1,18,120); // skimmer chicken
  367.     CreateVehicle(429,-2875.6758,793.5854,35.4228,263.6978,14,14,120); // banshee
  368.     CreateVehicle(451,-2660.7803,885.7050,79.4807,0.6360,36,36,120); // turismo torenos
  369.     CreateVehicle(429,-2664.9697,912.9534,79.3542,181.6790,1,2,120); // banshee torenos
  370.     CreateVehicle(522,-2669.8237,893.5916,79.1174,285.0875,7,79,120); // nrg torenos
  371.     CreateVehicle(595,-1500.0380,1390.4011,0.1715,292.7947,0,7,120); // launch nang
  372.     CreateVehicle(424,-364.5125,-1409.9636,25.5088,92.9053,2,2,120); // bf farmers
  373.     CreateVehicle(555,-378.9482,-1454.7550,25.4099,356.7096,0,7,120); // windsor farmers
  374.     CreateVehicle(447,-1466.7335,-153.8585,6.0169,4.9886,0,7,120); // secret seasparrow
  375.     CreateVehicle(487,-1290.2253,-17.9604,14.3259,132.8653,29,42,120); // maverick ap
  376.     CreateVehicle(487,-1304.6489,-3.2582,14.3246,134.1127,26,57,120); // maverik ap
  377.     CreateVehicle(421,-1943.1354,161.0854,27.0362,356.3368,13,1,120); // washington train workers
  378.     CreateVehicle(537,-1942.2499,177.6045,27.2245,356.4843,1,1,120); // train workers
  379.     CreateVehicle(480,-524.2804,-471.3609,25.2977,178.4148,2,2,120); // comet
  380.     CreateVehicle(480,-529.5109,-471.6548,25.2953,176.6715,12,12,120); // comet
  381.     CreateVehicle(424,-519.4714,-471.3319,25.3041,176.5628,2,2,120); // bf mech
  382.     CreateVehicle(412,-559.5734,-473.0458,25.3588,179.5488,11,1,120); // voodo mech
  383.     CreateVehicle(422,-560.0017,-488.1627,25.5089,359.9904,101,25,120); // bobcat mech
  384.     CreateVehicle(542,-542.7549,-99.3194,63.1745,357.8329,24,118,120); // clover hick
  385.     CreateVehicle(468,-536.0410,-77.7962,62.5291,269.1149,46,46,120); // sanchez hick
  386.     CreateVehicle(555,-539.9163,-74.2539,62.5439,270.4185,58,1,120); // windsor hick
  387.     CreateVehicle(531,-526.5109,-102.4536,63.2589,267.8327,36,2,120); // tractor hick
  388.     CreateVehicle(478,-551.0283,-77.5382,63.1451,180.9080,66,1,120); // walton
  389.     CreateVehicle(471,-500.4510,-69.9420,61.0480,115.8333,120,112,120); // quad hick
  390.     CreateVehicle(468,-533.0751,-98.3595,62.9655,326.2289,53,53,120); // sanchez hick
  391.     CreateVehicle(422,-956.1768,-224.3703,40.0620,129.4595,111,31,120); // bobcat
  392.     CreateVehicle(468,-917.0044,-524.4356,25.6224,116.3784,3,3,120); // sancehz camping
  393.     CreateVehicle(424,-1124.3544,-555.4586,30.4514,70.3185,3,2,120); // injection weg vliegveld
  394.     CreateVehicle(478,-1162.9553,-586.7974,34.6831,172.5060,59,1,120); // walton weg ap
  395.     CreateVehicle(533,-1184.4913,-670.3323,47.8833,172.2101,74,1,120); // feltzer weg ap
  396.     CreateVehicle(518,-1652.1440,-563.9786,13.8196,312.8725,9,39,120); // buccaneer ap
  397.     CreateVehicle(522,-2267.5876,204.3293,34.7205,87.8311,36,105,120); // nrg
  398.     CreateVehicle(451,-2266.2581,192.6582,34.8702,90.1014,36,36,120); // turismo city
  399.     CreateVehicle(434,-2685.0981,268.1706,4.3045,359.9309,12,12,120); // hotknife chicken
  400.     CreateVehicle(603,-2678.3521,268.4741,4.1741,0.5581,75,77,120); // phoenix chicken
  401.     CreateVehicle(522,-2664.8284,268.8790,3.9084,356.9640,39,106,120); // nrg chicken
  402.     CreateVehicle(471,-2697.6968,277.3120,3.8046,359.3735,74,83,120); // quad chicken
  403.     CreateVehicle(575,-2617.6062,1370.0277,6.6775,178.9059,19,96,120); // broadway pimp
  404.     CreateVehicle(545,-2622.5396,1349.1959,6.9676,181.5360,47,1,120); // hustler
  405.     CreateVehicle(467,-2622.1089,1370.8529,6.8204,180.4827,58,8,120); // oceanic pimp
  406.     CreateVehicle(541,-2626.4973,1371.4775,6.7170,178.4769,60,1,120); // bullet pimp
  407.     CreateVehicle(409,-2607.1426,1365.7740,6.9326,267.3618,1,1,120); // stretcher
  408.     CreateVehicle(429,-2626.6687,1349.0995,6.8149,358.6410,13,13,120); // banshee pimp
  409.     CreateVehicle(447,-1313.7881,1488.2650,0.6646,352.2195,75,2,120); // seasparrow nang
  410.     CreateVehicle(541,-2674.1563,892.1849,79.2515,282.5140,68,8,120); // bullet troreno
  411.     CreateVehicle(545,-2019.7070,432.7517,34.9827,268.8799,44,96,120); // hustler city workers
  412.     CreateVehicle(459,-1539.2094,1012.3886,7.2382,123.5332,28,28,120); // van city
  413.     CreateVehicle(541,-1797.1143,1312.0325,59.3594,176.6748,68,8,120); // bullet garage
  414.     CreateVehicle(429,-1810.4651,1311.1039,59.4141,187.0934,2,1,120); // banshee garage
  415.     CreateVehicle(480,-1816.3813,1310.8966,59.5092,186.4798,6,6,120); // comet garage
  416.     CreateVehicle(522,-1802.8806,1312.6412,59.2954,180.7814,39,106,120); // nrg garage
  417.     CreateVehicle(522,-2137.9922,1251.8378,22.6064,354.9411,39,106,120); // nrg city
  418.     CreateVehicle(405,-2178.0479,1251.9452,29.7961,359.2146,24,1,120); // sentinel city
  419.     CreateVehicle(411,-2284.1589,1101.8370,79.8259,273.1972,64,1,120); // infernus city
  420.     CreateVehicle(410,-2213.2407,1104.7272,79.6655,179.3469,9,1,120); // manana city
  421.     CreateVehicle(522,-2127.5107,650.8709,51.9389,89.0601,51,118,120); // nrg triads
  422.     CreateVehicle(462,-2212.7847,612.6624,34.7604,177.0334,13,13,120); // faggio triad
  423.     CreateVehicle(585,-2228.8389,572.9700,34.6790,270.6666,42,42,120); // emperor triads
  424.     CreateVehicle(587,-2285.3010,580.3007,34.8914,271.7863,40,1,120); // euros city triad
  425.     CreateVehicle(507,-2271.6318,545.0032,34.8415,272.7581,53,53,120); // elegant city traids
  426.     CreateVehicle(416,-2570.7822,622.0333,14.6006,267.3199,1,3,120); // ambulance medic
  427.     CreateVehicle(416,-2570.7798,638.4097,14.6082,273.1752,1,3,120); // ambulance medic
  428.     CreateVehicle(561,-2545.4460,632.8561,14.2671,89.1344,43,21,120); // stratum medic
  429.     CreateVehicle(416,-2646.1672,613.5593,14.6024,178.5010,1,3,120); // amublance medic
  430.     CreateVehicle(516,-2671.1431,613.2625,14.2885,178.3544,119,1,120); // nebula medic
  431.     CreateVehicle(489,-2653.1895,583.9393,14.5955,89.5334,14,123,120); // rancher medic
  432.     CreateVehicle(480,-2872.7922,727.6775,29.1738,278.1286,46,46,120); // comet city
  433.     CreateVehicle(603,-2404.9995,942.4192,45.2247,269.5974,18,1,120); // phoenix city
  434.     CreateVehicle(442,-2572.2646,1147.5435,55.5530,157.3655,11,105,120); // romero city
  435.     CreateVehicle(445,-2379.5295,1231.7673,32.0811,271.6473,35,35,120); // adminiral city
  436.     CreateVehicle(475,-1833.4215,113.0971,14.9194,269.6346,9,39,120); // sabre dock city
  437.     CreateVehicle(522,-1708.6316,977.6370,17.1580,349.0795,6,25,120); // nrg under garage
  438.     CreateVehicle(480,-1687.4658,999.8015,17.3605,89.9063,73,45,120); // comet under garage
  439.     CreateVehicle(451,-1687.5680,1036.5848,17.2912,91.5156,18,18,120); // turismo under garage
  440.     CreateVehicle(429,-1688.0038,983.5756,17.2656,90.3479,1,3,120); // banshee under garage
  441.     CreateVehicle(445,-1703.3503,1012.4879,17.4609,269.3854,37,37,120); // adminiral under garage
  442.     CreateVehicle(475,-1736.8923,1028.7772,17.3912,268.1563,21,1,120); // sabre under gargae
  443.     CreateVehicle(411,-1736.1353,1007.8314,17.3130,269.6040,123,1,120); // internus under garage
  444.     CreateVehicle(522,-1720.1289,1010.7611,17.1334,92.6104,3,8,120); // nrg under gararge
  445.     CreateVehicle(479,-1800.9136,822.4512,24.6873,2.1440,59,36,120); // regina city
  446.     CreateVehicle(483,-1730.5592,751.7266,24.8828,268.6238,1,31,120); // hippie city
  447.     CreateVehicle(499,-2159.3887,454.2749,35.1642,270.0649,109,32,120); // benson city
  448.     CreateVehicle(490,-2175.8828,292.8557,35.2439,359.1608,0,0,120); // fbirancher city
  449.     CreateVehicle(506,-2218.5198,305.8065,34.8217,181.4081,7,7,120); // super gt city
  450.     CreateVehicle(411,-2033.7422,-95.7351,34.8911,356.6624,116,1,120); // infernus city
  451.     CreateVehicle(463,-2021.5338,-100.8840,34.7042,273.7768,11,11,120); // freeway city
  452.     CreateVehicle(457,-2655.8318,-279.1873,7.1280,131.0528,2,1,120); // caddy golfer
  453.     CreateVehicle(457,-2652.2632,-296.2739,7.0983,315.0136,34,1,120); // caddy golfers
  454.     CreateVehicle(457,-2653.6724,-281.4860,7.1300,135.4543,32,1,120); // caddy golers
  455.     CreateVehicle(457,-2657.4885,-277.3954,7.1233,129.5761,18,1,120); // caddy golfers
  456.     CreateVehicle(457,-2661.0266,-287.4526,7.1138,310.9831,63,1,120); // caddy golfers
  457.     CreateVehicle(489,-2676.4258,-276.1584,7.3181,314.3358,120,123,120); // rancher golfers
  458.     CreateVehicle(475,-2674.7202,-251.1950,6.4957,134.3407,33,0,120); // sabre golfers
  459.     CreateVehicle(457,-2478.0408,-303.5780,40.8994,39.6081,58,1,120); // caddy golf terain
  460.     CreateVehicle(527,-2592.8733,-100.8010,4.0241,91.0810,53,1,120); // cadrona city
  461.     CreateVehicle(533,-2718.8149,10.8991,4.0450,269.5640,75,1,120); // feltzer city
  462.     CreateVehicle(543,-2755.4929,171.0767,6.8602,174.0683,32,8,120); // sadler city
  463.     CreateVehicle(444,-2884.8330,160.6096,5.7309,183.4403,32,42,120); // monster beach chicken
  464.     CreateVehicle(411,-2796.2339,223.6504,6.9145,90.7779,112,1,120); // infernus city
  465.     CreateVehicle(409,-2757.9580,376.0507,4.1391,0.4436,1,1,120); // stretcher city
  466.     CreateVehicle(541,-2585.1760,332.3127,4.4764,90.2705,22,1,120); // bullet city
  467.     CreateVehicle(566,-2585.6011,325.1963,4.6342,269.3877,30,8,120); // tahoma city
  468.     CreateVehicle(580,-2586.3020,310.9505,4.6513,91.0530,81,81,120); // stafford city
  469.     CreateVehicle(468,-895.4147,-1155.3451,102.7189,185.4269,6,6,120); // sanchez country
  470.     CreateVehicle(522,-1387.5490,-618.0760,13.7097,61.4423,39,106,120); // nrg vliegveld
  471.     CreateVehicle(476,-1344.7352,-616.6428,14.8596,37.2596,119,117,120); // rustler vliegveld hangar
  472.     CreateVehicle(460,-1372.8444,1516.3047,1.5853,338.4427,1,30,120); // skimmer nang
  473.     CreateVehicle(541,-2578.4207,999.5179,77.8375,89.0168,22,1,120); // bullet toreno
  474.     CreateVehicle(476,-1410.9948,517.0949,18.9493,182.4897,119,117,120); // rustler army ship
  475.     CreateVehicle(476,-1428.5999,507.6015,18.9360,269.5311,103,102,120); // rustler army ship
  476.     CreateVehicle(520,-1820.8499,-1609.9801,23.7388,189.7787,0,0,120); // secret hydra
  477.     CreateVehicle(553,-1187.6145,-165.4155,15.4787,105.1306,55,23,120); // nevada ap
  478.     CreateVehicle(553,-1246.8854,-101.2565,15.4789,135.0078,61,74,120); // nevada ap1
  479.     CreateVehicle(453,-1364.5394,-703.4726,-0.2448,269.0192,56,56,120); // reefer ap
  480.     CreateVehicle(443,-605.2082,-498.4219,26.1568,269.6630,20,1,120); // packer mechanics
  481.     CreateVehicle(542,-599.8732,-560.0121,25.2666,272.3698,31,93,120); // clover mech
  482.     CreateVehicle(468,-767.8223,-630.7264,65.7323,358.6574,46,46,120); // sanchez country
  483.     CreateVehicle(407,-2053.5063,75.4488,28.6258,91.9088,3,1,120); // firetruck fdsa
  484.     CreateVehicle(559,-1707.7039,1348.4867,6.8361,135.6851,60,1,120); // jester
  485.     CreateVehicle(559,-1817.1080,1293.3694,59.3907,5.6484,60,1,120); // Jester
  486.  
  487.     Clock = TextDrawCreate(547.0, 24.0, "12:00");
  488.     TextDrawSetShadow(Clock, 0);
  489.     TextDrawSetOutline(Clock, 2);
  490.     TextDrawLetterSize(Clock, 0.6, 1.8);
  491.     TextDrawFont(Clock, 3);
  492.    
  493.     Textdraw0 = TextDrawCreate(176.000000,390.000000,"Spectating, respawn in 10 seconds");
  494.     TextDrawAlignment(Textdraw0,0);
  495.     TextDrawBackgroundColor(Textdraw0,0x000000ff);
  496.     TextDrawFont(Textdraw0,3);
  497.     TextDrawLetterSize(Textdraw0,0.499999,0.799999);
  498.     TextDrawColor(Textdraw0,0xffffff99);
  499.     TextDrawSetOutline(Textdraw0,1);
  500.     TextDrawSetProportional(Textdraw0,1);
  501.     TextDrawSetShadow(Textdraw0,1);
  502.        
  503.     rules0 = TextDrawCreate(218.000000,93.000000,"PartyRules");
  504.     rules1 = TextDrawCreate(152.000000,121.000000,"~w~-no cheating or glitching~n~ ~n~-always play as a team~n~ ~n~-respect other players~n~ ~n~-no racism~n~ ~n~-respect the admin");
  505.     rules2 = TextDrawCreate(109.000000,279.000000,"Abusing of these rules may result in a kick or a ban");
  506.     TextDrawAlignment(rules0,0);
  507.     TextDrawAlignment(rules1,0);
  508.     TextDrawAlignment(rules2,0);
  509.     TextDrawBackgroundColor(rules0,0x000000ff);
  510.     TextDrawBackgroundColor(rules1,0x000000ff);
  511.     TextDrawBackgroundColor(rules2,0x000000ff);
  512.     TextDrawFont(rules0,3);
  513.     TextDrawLetterSize(rules0,1.000000,2.200000);
  514.     TextDrawFont(rules1,3);
  515.     TextDrawLetterSize(rules1,0.799999,1.800000);
  516.     TextDrawFont(rules2,1);
  517.     TextDrawLetterSize(rules2,0.499999,1.000000);
  518.     TextDrawColor(rules0,0xff0000cc);
  519.     TextDrawColor(rules1,0xffffffff);
  520.     TextDrawColor(rules2,0xff0000cc);
  521.     TextDrawSetOutline(rules0,1);
  522.     TextDrawSetOutline(rules1,1);
  523.     TextDrawSetOutline(rules2,1);
  524.     TextDrawSetProportional(rules0,1);
  525.     TextDrawSetProportional(rules1,1);
  526.     TextDrawSetProportional(rules2,1);
  527.     TextDrawSetShadow(rules0,1);
  528.     TextDrawSetShadow(rules1,1);
  529.     TextDrawSetShadow(rules2,1);
  530.    
  531.     worker0 = TextDrawCreate(69.000000,118.000000,"~y~the workers~n~ ~n~~g~alias~n~~w~bikers~n~ ~n~~r~rivals~n~~w~the hicks~n~ ~n~~y~respawn point~n~~w~construction side");
  532.     worker1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~orange~n~ ~n~~y~weapons~n~~w~ak-47~n~shotgun~n~MP5~n~grenades");
  533.     TextDrawAlignment(worker0,0);
  534.     TextDrawAlignment(worker1,0);
  535.     TextDrawBackgroundColor(worker0,0x000000ff);
  536.     TextDrawBackgroundColor(worker1,0x000000ff);
  537.     TextDrawFont(worker0,3);
  538.     TextDrawLetterSize(worker0,0.299999,1.000000);
  539.     TextDrawFont(worker1,3);
  540.     TextDrawLetterSize(worker1,0.399999,1.000000);
  541.     TextDrawColor(worker0,0xffffffff);
  542.     TextDrawColor(worker1,0xffffffff);
  543.     TextDrawSetOutline(worker0,1);
  544.     TextDrawSetOutline(worker1,1);
  545.     TextDrawSetProportional(worker0,1);
  546.     TextDrawSetProportional(worker1,1);
  547.     TextDrawSetShadow(worker0,1);
  548.     TextDrawSetShadow(worker1,1);
  549.    
  550.     pimp0 = TextDrawCreate(69.000000,118.000000,"~y~The pimps~n~ ~n~~g~alias~n~~w~nang~n~ ~n~~r~rivals~n~~w~Rich~n~ ~n~~y~respawn point~n~~w~jizzy's club");
  551.     pimp1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~red~n~ ~n~~y~weapons~n~~w~sawn-off~n~MP5~n~grenades~n~cane");
  552.     TextDrawAlignment(pimp0,0);
  553.     TextDrawAlignment(pimp1,0);
  554.     TextDrawBackgroundColor(pimp0,0x000000ff);
  555.     TextDrawBackgroundColor(pimp1,0x000000ff);
  556.     TextDrawFont(pimp0,3);
  557.     TextDrawLetterSize(pimp0,0.299999,1.000000);
  558.     TextDrawFont(pimp1,3);
  559.     TextDrawLetterSize(pimp1,0.399999,1.000000);
  560.     TextDrawColor(pimp0,0xffffffff);
  561.     TextDrawColor(pimp1,0xffffffff);
  562.     TextDrawSetOutline(pimp0,1);
  563.     TextDrawSetOutline(pimp1,1);
  564.     TextDrawSetProportional(pimp0,1);
  565.     TextDrawSetProportional(pimp1,1);
  566.     TextDrawSetShadow(pimp0,1);
  567.     TextDrawSetShadow(pimp1,1);
  568.    
  569.     golfer0 = TextDrawCreate(69.000000,118.000000,"~y~The golfers~n~ ~n~~g~alias~n~~w~rich~n~ ~n~~r~rivals~n~~w~pilots~n~ ~n~~y~respawn point~n~~w~golf course");
  570.     golfer1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~yellow~n~ ~n~~y~weapons~n~~w~sniper~n~tec9~n~golf club~n~nvg goggles");
  571.     TextDrawAlignment(golfer0,0);
  572.     TextDrawAlignment(golfer1,0);
  573.     TextDrawBackgroundColor(golfer0,0x000000ff);
  574.     TextDrawBackgroundColor(golfer1,0x000000ff);
  575.     TextDrawFont(golfer0,3);
  576.     TextDrawLetterSize(golfer0,0.299999,1.000000);
  577.     TextDrawFont(golfer1,3);
  578.     TextDrawLetterSize(golfer1,0.399999,1.000000);
  579.     TextDrawColor(golfer0,0xffffffff);
  580.     TextDrawColor(golfer1,0xffffffff);
  581.     TextDrawSetOutline(golfer0,1);
  582.     TextDrawSetOutline(golfer1,1);
  583.     TextDrawSetProportional(golfer0,1);
  584.     TextDrawSetProportional(golfer1,1);
  585.     TextDrawSetShadow(golfer0,1);
  586.     TextDrawSetShadow(golfer1,1);
  587.    
  588.     triad0 = TextDrawCreate(69.000000,118.000000,"~y~the triads~n~ ~n~~g~alias~n~~w~chickens~n~ ~n~~r~rivals~n~~w~the nang~n~ ~n~~y~respawn point~n~~w~china town");
  589.     triad1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~dark red~n~ ~n~~y~weapons~n~~w~ak-47~n~TEC9~n~desert eagle~n~katana");
  590.     TextDrawAlignment(triad0,0);
  591.     TextDrawAlignment(triad1,0);
  592.     TextDrawBackgroundColor(triad0,0x000000ff);
  593.     TextDrawBackgroundColor(triad1,0x000000ff);
  594.     TextDrawFont(triad0,3);
  595.     TextDrawLetterSize(triad0,0.299999,1.000000);
  596.     TextDrawFont(triad1,3);
  597.     TextDrawLetterSize(triad1,0.399999,1.000000);
  598.     TextDrawColor(triad0,0xffffffff);
  599.     TextDrawColor(triad1,0xffffffff);
  600.     TextDrawSetOutline(triad0,1);
  601.     TextDrawSetOutline(triad1,1);
  602.     TextDrawSetProportional(triad0,1);
  603.     TextDrawSetProportional(triad1,1);
  604.     TextDrawSetShadow(triad0,1);
  605.     TextDrawSetShadow(triad1,1);
  606.    
  607.     mechanic0 = TextDrawCreate(69.000000,118.000000,"~y~The mechanics~n~ ~n~~g~alias~n~~w~none~n~ ~n~~r~rivals~n~~w~bikers~n~ ~n~~y~respawn point~n~~w~repair shop");
  608.     mechanic1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~light blue~n~ ~n~~y~weapons~n~~w~sawn-off~n~ak-47~n~desert eagle~n~grenades");
  609.     TextDrawAlignment(mechanic0,0);
  610.     TextDrawAlignment(mechanic1,0);
  611.     TextDrawBackgroundColor(mechanic0,0x000000ff);
  612.     TextDrawBackgroundColor(mechanic1,0x000000ff);
  613.     TextDrawFont(mechanic0,3);
  614.     TextDrawLetterSize(mechanic0,0.299999,1.000000);
  615.     TextDrawFont(mechanic1,3);
  616.     TextDrawLetterSize(mechanic1,0.399999,1.000000);
  617.     TextDrawColor(mechanic0,0xffffffff);
  618.     TextDrawColor(mechanic1,0xffffffff);
  619.     TextDrawSetOutline(mechanic0,1);
  620.     TextDrawSetOutline(mechanic1,1);
  621.     TextDrawSetProportional(mechanic0,1);
  622.     TextDrawSetProportional(mechanic1,1);
  623.     TextDrawSetShadow(mechanic0,1);
  624.     TextDrawSetShadow(mechanic1,1);
  625.    
  626.     biker0 = TextDrawCreate(69.000000,118.000000,"~y~The bikers~n~ ~n~~g~alias~n~~w~workers~n~ ~n~~r~rivals~n~~w~mechanics~n~ ~n~~y~respawn point~n~~w~drive-in motel");
  627.     biker1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~dark blue~n~ ~n~~y~weapons~n~~w~MP5~n~desert eagle~n~shotgun~n~grenades");
  628.     TextDrawAlignment(biker0,0);
  629.     TextDrawAlignment(biker1,0);
  630.     TextDrawBackgroundColor(biker0,0x000000ff);
  631.     TextDrawBackgroundColor(biker1,0x000000ff);
  632.     TextDrawFont(biker0,3);
  633.     TextDrawLetterSize(biker0,0.299999,1.000000);
  634.     TextDrawFont(biker1,3);
  635.     TextDrawLetterSize(biker1,0.399999,1.000000);
  636.     TextDrawColor(biker0,0xffffffff);
  637.     TextDrawColor(biker1,0xffffffff);
  638.     TextDrawSetOutline(biker0,1);
  639.     TextDrawSetOutline(biker1,1);
  640.     TextDrawSetProportional(biker0,1);
  641.     TextDrawSetProportional(biker1,1);
  642.     TextDrawSetShadow(biker0,1);
  643.     TextDrawSetShadow(biker1,1);
  644.    
  645.     medic0 = TextDrawCreate(69.000000,118.000000,"~y~The medics~n~ ~n~~g~alias~n~~w~NONE~n~ ~n~~r~rivals~n~~w~NONE~n~ ~n~~y~respawn point~n~~w~hospital");
  646.     medic1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~purple~n~ ~n~~y~weapons~n~~w~rifle~n~MP5~n~silenced 45mm~n~knife");
  647.     TextDrawAlignment(medic0,0);
  648.     TextDrawAlignment(medic1,0);
  649.     TextDrawBackgroundColor(medic0,0x000000ff);
  650.     TextDrawBackgroundColor(medic1,0x000000ff);
  651.     TextDrawFont(medic0,3);
  652.     TextDrawLetterSize(medic0,0.299999,1.000000);
  653.     TextDrawFont(medic1,3);
  654.     TextDrawLetterSize(medic1,0.399999,1.000000);
  655.     TextDrawColor(medic0,0xffffffff);
  656.     TextDrawColor(medic1,0xffffffff);
  657.     TextDrawSetOutline(medic0,1);
  658.     TextDrawSetOutline(medic1,1);
  659.     TextDrawSetProportional(medic0,1);
  660.     TextDrawSetProportional(medic1,1);
  661.     TextDrawSetShadow(medic0,1);
  662.     TextDrawSetShadow(medic1,1);
  663.    
  664.     swat0 = TextDrawCreate(69.000000,118.000000,"~y~S.W.A.T/justice~n~ ~n~~g~alias~n~~w~army~n~ ~n~~r~rivals~n~~w~chickens~n~ ~n~~y~respawn point~n~~w~sfpd");
  665.     swat1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~dark green~n~ ~n~~y~weapons~n~~w~mp5~n~m4~n~grenades~n~nv goggles");
  666.     TextDrawAlignment(swat0,0);
  667.     TextDrawAlignment(swat1,0);
  668.     TextDrawBackgroundColor(swat0,0x000000ff);
  669.     TextDrawBackgroundColor(swat1,0x000000ff);
  670.     TextDrawFont(swat0,3);
  671.     TextDrawLetterSize(swat0,0.299999,1.000000);
  672.     TextDrawFont(swat1,3);
  673.     TextDrawLetterSize(swat1,0.399999,1.000000);
  674.     TextDrawColor(swat0,0xffffffff);
  675.     TextDrawColor(swat1,0xffffffff);
  676.     TextDrawSetOutline(swat0,1);
  677.     TextDrawSetOutline(swat1,1);
  678.     TextDrawSetProportional(swat0,1);
  679.     TextDrawSetProportional(swat1,1);
  680.     TextDrawSetShadow(swat0,1);
  681.     TextDrawSetShadow(swat1,1);
  682.    
  683.     hick0 = TextDrawCreate(69.000000,118.000000,"~y~the hicks~n~ ~n~~g~alias~n~~w~None~n~ ~n~~r~rivals~n~~w~bikers~n~ ~n~~y~respawn point~n~~w~wood hut");
  684.     hick1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~brown red~n~ ~n~~y~weapons~n~~w~sawn-off~n~uzi~n~45mm~n~shovel");
  685.     TextDrawAlignment(hick0,0);
  686.     TextDrawAlignment(hick1,0);
  687.     TextDrawBackgroundColor(hick0,0x000000ff);
  688.     TextDrawBackgroundColor(hick1,0x000000ff);
  689.     TextDrawFont(hick0,3);
  690.     TextDrawLetterSize(hick0,0.299999,1.000000);
  691.     TextDrawFont(hick1,3);
  692.     TextDrawLetterSize(hick1,0.399999,1.000000);
  693.     TextDrawColor(hick0,0xffffffff);
  694.     TextDrawColor(hick1,0xffffffff);
  695.     TextDrawSetOutline(hick0,1);
  696.     TextDrawSetOutline(hick1,1);
  697.     TextDrawSetProportional(hick0,1);
  698.     TextDrawSetProportional(hick1,1);
  699.     TextDrawSetShadow(hick0,1);
  700.     TextDrawSetShadow(hick1,1);
  701.    
  702.     pilot0 = TextDrawCreate(69.000000,118.000000,"~y~The pilots~n~ ~n~~g~alias~n~~w~mechanics~n~ ~n~~r~rivals~n~~w~golfers~n~ ~n~~y~respawn point~n~~w~cargo plane");
  703.     pilot1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~grey~n~ ~n~~y~weapons~n~~w~sniper~n~silenced 45mm~n~molotovs~n~parachute");
  704.     TextDrawAlignment(pilot0,0);
  705.     TextDrawAlignment(pilot1,0);
  706.     TextDrawBackgroundColor(pilot0,0x000000ff);
  707.     TextDrawBackgroundColor(pilot1,0x000000ff);
  708.     TextDrawFont(pilot0,3);
  709.     TextDrawLetterSize(pilot0,0.299999,1.000000);
  710.     TextDrawFont(pilot1,3);
  711.     TextDrawLetterSize(pilot1,0.399999,1.000000);
  712.     TextDrawColor(pilot0,0xffffffff);
  713.     TextDrawColor(pilot1,0xffffffff);
  714.     TextDrawSetOutline(pilot0,1);
  715.     TextDrawSetOutline(pilot1,1);
  716.     TextDrawSetProportional(pilot0,1);
  717.     TextDrawSetProportional(pilot1,1);
  718.     TextDrawSetShadow(pilot0,1);
  719.     TextDrawSetShadow(pilot1,1);
  720.    
  721.     rich0 = TextDrawCreate(69.000000,118.000000,"~y~The richs~n~ ~n~~g~alias~n~~w~golfers~n~ ~n~~r~rivals~n~~w~pimps~n~ ~n~~y~respawn point~n~~w~rich neighborhood");
  722.     rich1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~peach~n~ ~n~~y~weapons~n~~w~m4~n~combat shotgun~n~desert eagle~n~grenades");
  723.     TextDrawAlignment(rich0,0);
  724.     TextDrawAlignment(rich1,0);
  725.     TextDrawBackgroundColor(rich0,0x000000ff);
  726.     TextDrawBackgroundColor(rich1,0x000000ff);
  727.     TextDrawFont(rich0,3);
  728.     TextDrawLetterSize(rich0,0.299999,1.000000);
  729.     TextDrawFont(rich1,3);
  730.     TextDrawLetterSize(rich1,0.399999,1.000000);
  731.     TextDrawColor(rich0,0xffffffff);
  732.     TextDrawColor(rich1,0xffffffff);
  733.     TextDrawSetOutline(rich0,1);
  734.     TextDrawSetOutline(rich1,1);
  735.     TextDrawSetProportional(rich0,1);
  736.     TextDrawSetProportional(rich1,1);
  737.     TextDrawSetShadow(rich0,1);
  738.     TextDrawSetShadow(rich1,1);
  739.    
  740.     nang0 = TextDrawCreate(69.000000,118.000000,"~y~The nang~n~ ~n~~g~alias~n~~w~pimps~n~ ~n~~r~rivals~n~~w~triads~n~ ~n~~y~respawn point~n~~w~cargo ship");
  741.     nang1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~dark red~n~ ~n~~y~weapons~n~~w~combat shotgun~n~uzi~n~desert eagle~n~grenades");
  742.     TextDrawAlignment(nang0,0);
  743.     TextDrawAlignment(nang1,0);
  744.     TextDrawBackgroundColor(nang0,0x000000ff);
  745.     TextDrawBackgroundColor(nang1,0x000000ff);
  746.     TextDrawFont(nang0,3);
  747.     TextDrawLetterSize(nang0,0.299999,1.000000);
  748.     TextDrawFont(nang1,3);
  749.     TextDrawLetterSize(nang1,0.399999,1.000000);
  750.     TextDrawColor(nang0,0xffffffff);
  751.     TextDrawColor(nang1,0xffffffff);
  752.     TextDrawSetOutline(nang0,1);
  753.     TextDrawSetOutline(nang1,1);
  754.     TextDrawSetProportional(nang0,1);
  755.     TextDrawSetProportional(nang1,1);
  756.     TextDrawSetShadow(nang0,1);
  757.     TextDrawSetShadow(nang1,1);
  758.    
  759.     chicken0 = TextDrawCreate(69.000000,118.000000,"~y~The chickens~n~ ~n~~g~alias~n~~w~triads~n~ ~n~~r~rivals~n~~w~S.W.A.T.~n~ ~n~~y~respawn point~n~~w~Cluckin' Bell");
  760.     chicken1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~Dark yellow~n~ ~n~~y~weapons~n~~w~Sawn-off~n~MP5~n~45mm~n~molotov");
  761.     TextDrawAlignment(chicken0,0);
  762.     TextDrawAlignment(chicken1,0);
  763.     TextDrawBackgroundColor(chicken0,0x000000ff);
  764.     TextDrawBackgroundColor(chicken1,0x000000ff);
  765.     TextDrawFont(chicken0,3);
  766.     TextDrawLetterSize(chicken0,0.299999,1.000000);
  767.     TextDrawFont(chicken1,3);
  768.     TextDrawLetterSize(chicken1,0.399999,1.000000);
  769.     TextDrawColor(chicken0,0xffffffff);
  770.     TextDrawColor(chicken1,0xffffffff);
  771.     TextDrawSetOutline(chicken0,1);
  772.     TextDrawSetOutline(chicken1,1);
  773.     TextDrawSetProportional(chicken0,1);
  774.     TextDrawSetProportional(chicken1,1);
  775.     TextDrawSetShadow(chicken0,1);
  776.     TextDrawSetShadow(chicken1,1);
  777.    
  778.     army0 = TextDrawCreate(69.000000,118.000000,"~y~army/justice~n~ ~n~~g~alias~n~~w~S.W.A.T.~n~ ~n~~r~rivals~n~~w~bikers~n~ ~n~~y~respawn point~n~~w~army ship");
  779.     army1 = TextDrawCreate(69.000000,215.000000,"~y~color~n~~w~dark green~n~ ~n~~y~weapons~n~~w~M4~n~45mm~n~combat shotgun~n~grenades");
  780.     TextDrawAlignment(army0,0);
  781.     TextDrawAlignment(army1,0);
  782.     TextDrawBackgroundColor(army0,0x000000ff);
  783.     TextDrawBackgroundColor(army1,0x000000ff);
  784.     TextDrawFont(army0,3);
  785.     TextDrawLetterSize(army0,0.299999,1.000000);
  786.     TextDrawFont(army1,3);
  787.     TextDrawLetterSize(army1,0.399999,1.000000);
  788.     TextDrawColor(army0,0xffffffff);
  789.     TextDrawColor(army1,0xffffffff);
  790.     TextDrawSetOutline(army0,1);
  791.     TextDrawSetOutline(army1,1);
  792.     TextDrawSetProportional(army0,1);
  793.     TextDrawSetProportional(army1,1);
  794.     TextDrawSetShadow(army0,1);
  795.     TextDrawSetShadow(army1,1);
  796.  
  797.     //--objects
  798.     CreateObject(14548,-1355.7847900391, -242.65003967285, 853.583984375, 0.000000, 0.000000, 18105.466326);
  799.  
  800.     for(new i=0; i<MAX_ZONES; i++)
  801.     {
  802.         ZoneInfo[i][z_id] = GangZoneCreate(ZoneInfo[i][z_minx], ZoneInfo[i][z_miny], ZoneInfo[i][z_maxx], ZoneInfo[i][z_maxy]);
  803.         ZoneTakeOverTeam[i] = -1;
  804.     }
  805.  
  806. //spawninfo text
  807.  
  808.  
  809. //Trains
  810.  
  811. //  AddStaticVehicle(537,-1943.3127,158.0254,27.0006,357.3614,121,1);
  812. //  AddStaticVehicle(569,-1943.3127,158.0254,27.0006,357.3614,121,1);
  813. //  AddStaticVehicle(569,-1943.3127,158.0254,27.0006,357.3614,121,1);
  814. //  AddStaticVehicle(569,-1943.3127,158.0254,27.0006,357.3614,121,1);
  815.  
  816.     //Pickups
  817.     AddStaticPickup(370, 15, -2209.4707,294.1174,35.1172); // jetpack
  818.     AddStaticPickup(370, 15, -1765.4392,-174.7473,3.5547); // jetpack
  819.     AddStaticPickup(370, 15, -2669.4919,921.7230,87.1120); //jetpack
  820.    
  821.     infotimer = SetTimer("Information", 300000, true);
  822.     //savetimer = SetTimer("SaveAllStats", 600000, true);
  823.     zonetimer = SetTimer("ZoneUpdate", 2000, true);
  824.     teamtimer = SetTimer("SettingPlayerTeam", 5000 ,true); //teamkill
  825.  
  826.     CLOCK_timer = SetTimer("CLOCK_EverySecondTimer",999,1);
  827.     CLOCK_hour = YOUR_START_HOUR;
  828.     CLOCK_minute = YOUR_START_MINUTE;
  829.  
  830.     return 1;
  831. }
  832.  
  833. public OnGameModeExit()
  834. {
  835.     KillTimer(infotimer);
  836.     //KillTimer(savetimer);
  837.     KillTimer(zonetimer);
  838.     KillTimer(teamtimer);
  839.     KillTimer(CLOCK_timer);
  840.     return 1;
  841. }
  842.  
  843.  
  844. //------------------------------------------------------------------------------
  845.  
  846. public OnPlayerConnect(playerid)
  847. {
  848.     SendDeathMessage(INVALID_PLAYER_ID,playerid,200);
  849.     //SendClientMessage(playerid,COLOR_RED, "If you don't have an account yet, use /register to create one.");
  850.     //rules--------------------------------------------------------------------------
  851.     TextDrawShowForPlayer(playerid, rules0);
  852.     TextDrawShowForPlayer(playerid, rules1);
  853.     TextDrawShowForPlayer(playerid, rules2);
  854. //-------------------------------------------------------------------------------
  855.     TextDrawShowForPlayer(playerid, Clock);
  856.     SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive
  857.    
  858.     pInfo[playerid][pAdmin] = 0;
  859.     pInfo[playerid][pDeaths] = 0;
  860.     pInfo[playerid][pKills] = 0;
  861.     LoggedIn[playerid] = 0;
  862.     IsPlayerMuted[playerid] = 0;
  863.     Bounty[playerid] = 0;
  864.     BountyKills[playerid] = 0;
  865.    
  866.     new PName[MAX_PLAYER_NAME];
  867.     GetPlayerName(playerid, PName, MAX_PLAYER_NAME);
  868.  
  869.     if(!udb_Exists(PName))
  870.     {
  871.         Registered[playerid] = 0;
  872.         SystemMsg(playerid,"Type /register <password> to create an account");
  873.     }
  874.     else
  875.     {
  876.         Registered[playerid] = 1;
  877.         SystemMsg(playerid,"This nickname is registered! If you haven't registered this nickname please choose a different one!");
  878.         SystemMsg(playerid,"Please login by typing /login <password>");
  879.     }
  880.    
  881.     /*if(fsearch(KICKPORTAL, PName, true))
  882.     {
  883.         new second, minute, hour, day, month, year, str[128];
  884.         SystemMessage(playerid, "Your name has been banned on this server.");
  885.         gettime(hour, minute, second);
  886.         getdate(year, month, day);
  887.         format(str, sizeof(str), "Player %s tried to join server with banned name on %d/%d/%d at %d:%d:%d.", PName, month, day, year, hour, minute, second);
  888.         KickPlayer(playerid, "");
  889.     }*/
  890.     if(IsServerLocked == true)
  891.     {
  892.         SystemMessage(playerid, "    Server is currently locked down by Administrator.");
  893.         SystemMessage(playerid, "    Please try connecting later.");
  894.         KickPlayer(playerid, "");
  895.     }
  896.  
  897.     return 1;
  898.  
  899. }
  900.  
  901. public OnPlayerDisconnect(playerid, reason)
  902. {
  903.     SendDeathMessage(INVALID_PLAYER_ID, playerid, 201);
  904.     if(reason == 0)
  905.     {
  906.         new str[128];
  907.         GetName(playerid, playername);
  908.         format(str, sizeof(str), "Player %s (%d) game crashed", playername, playerid);
  909.         SendMessageToAdmins(str);
  910.     }
  911.     if(Registered[playerid])
  912.     {
  913.         new playername[MAX_PLAYER_NAME];
  914.         GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  915.         dUserSetINT(playername).("Money",GetPlayerMoney(playerid));
  916.         dUserSetINT(playername).("Kills",pInfo[playerid][pKills]);
  917.         dUserSetINT(playername).("Deaths",pInfo[playerid][pDeaths]);
  918.         dUserSetINT(playername).("Admin",pInfo[playerid][pAdmin]);
  919.         dUserSetINT(playername).("Wantedlvl",GetPlayerWantedLevel(playerid));
  920.     }
  921.     return 1;
  922. }
  923. //------------------------------------------------------------------------------
  924.  
  925.  
  926.  
  927. public OnPlayerSpawn(playerid)
  928. {
  929.     if(Killed[playerid] != -1)
  930.     {
  931.         TextDrawShowForPlayer (playerid, Textdraw0);
  932.         TogglePlayerSpectating(playerid, true);
  933.         SetTimerEx("StopSpeccing", 10000, false, "i", playerid);
  934.         if(Killed[playerid] != INVALID_PLAYER_ID)
  935.         {
  936.             PlayerSpectatePlayer(playerid, Killed[playerid]);
  937.             if (IsPlayerInAnyVehicle(Killed[playerid])) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(Killed[playerid]));
  938.             gSpectateID[playerid] = Killed[playerid];
  939.         }
  940.         else
  941.         {
  942.             new randid = GetRandomID();
  943.             PlayerSpectatePlayer(playerid, randid);
  944.             if (IsPlayerInAnyVehicle(randid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(randid));
  945.             gSpectateID[playerid] = randid;
  946.         }
  947.     }
  948.  
  949.     //turfs zone
  950.    
  951.     for(new i=0; i<MAX_ZONES; i++)
  952.     {
  953.         GangZoneShowForPlayer(playerid, ZoneInfo[i][z_id], GetTeamColor(ZoneInfo[i][z_team]));
  954.         if(ZoneTakeOverTeam[i] != -1) GangZoneFlashForPlayer(playerid, ZoneInfo[i][z_id], GetTeamColor(ZoneTakeOverTeam[i]));
  955.     }
  956.  
  957.     //hide spawn info
  958.     TextDrawHideForPlayer(playerid, army0);
  959.     TextDrawHideForPlayer(playerid, army1);
  960.     TextDrawHideForPlayer(playerid, nang0);
  961.     TextDrawHideForPlayer(playerid, nang1);
  962.     TextDrawHideForPlayer(playerid, worker0);
  963.     TextDrawHideForPlayer(playerid, worker1);
  964.     TextDrawHideForPlayer(playerid, rich0);
  965.     TextDrawHideForPlayer(playerid, rich1);
  966.     TextDrawHideForPlayer(playerid, golfer0);
  967.     TextDrawHideForPlayer(playerid, golfer1);
  968.     TextDrawHideForPlayer(playerid, pilot0);
  969.     TextDrawHideForPlayer(playerid, pilot1);
  970.     TextDrawHideForPlayer(playerid, biker0);
  971.     TextDrawHideForPlayer(playerid, biker1);
  972.     TextDrawHideForPlayer(playerid, swat0);
  973.     TextDrawHideForPlayer(playerid, swat1);
  974.     TextDrawHideForPlayer(playerid, pimp0);
  975.     TextDrawHideForPlayer(playerid, pimp1);
  976.     TextDrawHideForPlayer(playerid, triad0);
  977.     TextDrawHideForPlayer(playerid, triad1);
  978.     TextDrawHideForPlayer(playerid, mechanic0);
  979.     TextDrawHideForPlayer(playerid, mechanic1);
  980.     TextDrawHideForPlayer(playerid, chicken0);
  981.     TextDrawHideForPlayer(playerid, chicken1);
  982.     TextDrawHideForPlayer(playerid, hick0);
  983.     TextDrawHideForPlayer(playerid, hick1);
  984.     TextDrawHideForPlayer(playerid, rules0);
  985.     TextDrawHideForPlayer(playerid, rules1);
  986.     TextDrawHideForPlayer(playerid, rules2);
  987.     TextDrawHideForPlayer(playerid, medic0);
  988.     TextDrawHideForPlayer(playerid, medic1);
  989.  
  990.     PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0); //spawn sound
  991.  
  992.     if(gTeam[playerid] == TEAM_WORKER)
  993.     {
  994.         GivePlayerWeapon(playerid, 16, 8);
  995.         SetPlayerColor(playerid,COLOR_ORANGE); // Orange
  996.     }
  997.     else if(gTeam[playerid] == TEAM_PIMP)
  998.     {
  999.         GivePlayerWeapon(playerid, 15, 1);
  1000.         SetPlayerColor(playerid,COLOR_DARKRED); // Red
  1001.     }
  1002.     else if(gTeam[playerid] == TEAM_GOLFER)
  1003.     {
  1004.         GivePlayerWeapon(playerid, 45, 1);
  1005.         SetPlayerColor(playerid,COLOR_YELLOW); // Yellow
  1006.     }
  1007.     else if(gTeam[playerid] == TEAM_TRIAD)
  1008.     {
  1009.         GivePlayerWeapon(playerid, 8, 1);
  1010.         SetPlayerColor(playerid,COLOR_PINK); // Pink
  1011.     }
  1012.     else if(gTeam[playerid] == TEAM_MECHANIC)
  1013.     {
  1014.         GivePlayerWeapon(playerid, 24, 40);
  1015.         SetPlayerColor(playerid,COLOR_LIGHTBLUE); // LightBlue
  1016.     }
  1017.     else if(gTeam[playerid] == TEAM_BIKER)
  1018.     {
  1019.         GivePlayerWeapon(playerid, 24, 40);
  1020.         SetPlayerColor(playerid,COLOR_BLUE); // Blue
  1021.     }
  1022.     else if(gTeam[playerid] == TEAM_MEDIC)
  1023.     {
  1024.         GivePlayerWeapon(playerid, 4, 1);
  1025.         SetPlayerColor(playerid,COLOR_PURPLE); // Purple
  1026.     }
  1027.     else if(gTeam[playerid] == TEAM_SWAT)
  1028.     {
  1029.         GivePlayerWeapon(playerid, 44, 1);
  1030.         SetPlayerColor(playerid,COLOR_DARKGREEN); // DarkGreen
  1031.     }
  1032.     else if(gTeam[playerid] == TEAM_HICK)
  1033.     {
  1034.         GivePlayerWeapon(playerid, 6, 1);
  1035.         SetPlayerColor(playerid,COLOR_BROWN); // Brown
  1036.     }
  1037.     else if(gTeam[playerid] == TEAM_PILOT)
  1038.     {
  1039.         GivePlayerWeapon(playerid, 46, 1);
  1040.         SetPlayerColor(playerid,COLOR_DARKGREY); // Grey good
  1041.     }
  1042.     else if(gTeam[playerid] == TEAM_TORENO)
  1043.     {
  1044.         GivePlayerWeapon(playerid, 16, 8);
  1045.         SetPlayerColor(playerid,COLOR_BEGE); // Bege
  1046.     }
  1047.     else if(gTeam[playerid] == TEAM_NANG)
  1048.     {
  1049.         GivePlayerWeapon(playerid, 16, 8);
  1050.         SetPlayerColor(playerid,COLOR_RED); // lRed
  1051.     }
  1052.     else if(gTeam[playerid] == TEAM_CHICKEN)
  1053.     {
  1054.         GivePlayerWeapon(playerid, 18, 8);
  1055.         SetPlayerColor(playerid,COLOR_DARKYELLOW); // DarkYellow
  1056.     }
  1057.     else if(gTeam[playerid] == TEAM_ARMY)
  1058.     {
  1059.         GivePlayerWeapon(playerid, 16, 8);
  1060.         SetPlayerColor(playerid,COLOR_DARKGREEN); // DarkGreen
  1061.     }
  1062.  
  1063.     return 1;
  1064.  
  1065. }
  1066.  
  1067.  
  1068.  
  1069. //------------------------------------------------------------------------------
  1070.  
  1071.  
  1072. public OnPlayerDeath(playerid, killerid, reason)
  1073. {
  1074.     SendDeathMessage(killerid,playerid,reason);
  1075.     Killed[playerid] = killerid;
  1076.     pInfo[playerid][pDeaths]++;
  1077.     DropPlayerWeapons(playerid);
  1078.     if(killerid != INVALID_PLAYER_ID)
  1079.     {
  1080.         pInfo[killerid][pKills]++;
  1081.         if(gTeam[killerid] != gTeam[playerid])
  1082.         {
  1083.             // Valid kill
  1084.             new str[128];
  1085.             SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  1086.             GivePlayerMoney(killerid, 1000);
  1087.             if(IsPlayerJustice(playerid) && !IsPlayerJustice(killerid))
  1088.             {
  1089.                 BountyKills[killerid]++;
  1090.                 if(BountyKills[killerid] > 3)
  1091.                 {
  1092.                     if(BountyKills[killerid] == 4) Bounty[killerid] = 10000;
  1093.                     else Bounty[killerid] += 2500;
  1094.                     GetName(killerid, killername);
  1095.                     format(str, sizeof(str), "%s (%d) now has a bounty of $%d", killername, killerid, Bounty[killerid]);
  1096.                     SendClientMessageToAll(COLOR_YELLOW, str);
  1097.                 }
  1098.             }
  1099.             if(Bounty[playerid] > 0)
  1100.             {
  1101.                 GetName(playerid, playername);
  1102.                 GivePlayerMoney(killerid, Bounty[playerid]);
  1103.                 format(str, sizeof(str), "You got $%d bounty reward for killing %s (%d)", Bounty[playerid], playername, playerid);
  1104.                 SendClientMessage(killerid, COLOR_YELLOW, str);
  1105.             }
  1106.         }
  1107.     }
  1108.     Bounty[playerid] = 0;
  1109.     BountyKills[playerid] = 0;
  1110.     return 1;
  1111. }
  1112.  
  1113.  
  1114. //------------------------------------------------------------------------------
  1115.  
  1116.  
  1117. public OnPlayerRequestClass(playerid, classid)
  1118. {
  1119.     Killed[playerid] = -1;
  1120.  
  1121.     //rules
  1122.     TextDrawHideForPlayer(playerid, rules0);
  1123.     TextDrawHideForPlayer(playerid, rules1);
  1124.     TextDrawHideForPlayer(playerid, rules2);
  1125.     //-------------------------------------
  1126.     SetPlayerClass(playerid, classid);
  1127.     PlayerPlaySound(playerid, 1097, 0.0, 0.0, 0.0);
  1128.     gPlayerClass[playerid] = classid;
  1129.  
  1130.     switch (classid)
  1131.     {
  1132.         case 0:
  1133.         {
  1134.                 //worker
  1135.                 TextDrawShowForPlayer(playerid, worker0);
  1136.                 TextDrawShowForPlayer(playerid, worker1);
  1137.                 //hide
  1138.                 TextDrawHideForPlayer(playerid, army0);
  1139.                 TextDrawHideForPlayer(playerid, army1);
  1140.                 TextDrawHideForPlayer(playerid, pimp0);
  1141.                 TextDrawHideForPlayer(playerid, pimp1);
  1142.                 SetPlayerPos(playerid, -2112.2437,176.7923,35.3929);
  1143.                 SetPlayerFacingAngle(playerid,1);
  1144.                 SetPlayerCameraPos(playerid, -2112.2803,181.6424,36.3327);
  1145.                 SetPlayerCameraLookAt(playerid, -2112.2437,176.7923,35.3929);
  1146.         }
  1147.         case 1:
  1148.         {
  1149.                 //pimp
  1150.                 TextDrawShowForPlayer(playerid, pimp0);
  1151.                 TextDrawShowForPlayer(playerid, pimp1);
  1152.                 //hide
  1153.                 TextDrawHideForPlayer(playerid, worker0);
  1154.                 TextDrawHideForPlayer(playerid, worker1);
  1155.                 TextDrawHideForPlayer(playerid, golfer0);
  1156.                 TextDrawHideForPlayer(playerid, golfer1);
  1157.                 SetPlayerPos(playerid, -2716.8499,1434.0413,7.1875);
  1158.                 SetPlayerFacingAngle(playerid,0);
  1159.                 SetPlayerCameraPos(playerid, -2717.1458,1438.8533,8.3975);
  1160.                 SetPlayerCameraLookAt(playerid, -2716.8499,1434.0413,7.1875);
  1161.         }
  1162.         case 2:
  1163.         {
  1164.                 //golfer
  1165.                 TextDrawShowForPlayer(playerid, golfer0);
  1166.                 TextDrawShowForPlayer(playerid, golfer1);
  1167.                 //hide
  1168.                 TextDrawHideForPlayer(playerid, triad0);
  1169.                 TextDrawHideForPlayer(playerid, triad1);
  1170.                 TextDrawHideForPlayer(playerid, pimp0);
  1171.                 TextDrawHideForPlayer(playerid, pimp1);
  1172.                 SetPlayerPos(playerid, -2512.3667,-266.4278,38.9365);
  1173.                 SetPlayerFacingAngle(playerid,0);
  1174.                 SetPlayerCameraPos(playerid, -2512.5325,-261.5241,39.9224);
  1175.                 SetPlayerCameraLookAt(playerid, -2512.3667,-266.4278,38.9365);
  1176.         }
  1177.         case 3:
  1178.         {
  1179.                 //triad
  1180.                 TextDrawShowForPlayer(playerid, triad0);
  1181.                 TextDrawShowForPlayer(playerid, triad1);
  1182.  
  1183.                 //hide
  1184.                 TextDrawHideForPlayer(playerid, mechanic0);
  1185.                 TextDrawHideForPlayer(playerid, mechanic1);
  1186.                 TextDrawHideForPlayer(playerid, golfer0);
  1187.                 TextDrawHideForPlayer(playerid, golfer1);
  1188.                 SetPlayerPos(playerid, -2191.1252,607.3189,35.1641);
  1189.                 SetPlayerFacingAngle(playerid,0);
  1190.                 SetPlayerCameraPos(playerid, -2191.0605,611.9641,36.2765);
  1191.                 SetPlayerCameraLookAt(playerid, -2191.1252,607.3189,35.1641);
  1192.         }
  1193.         case 4:
  1194.         {
  1195.                 //mechanic
  1196.                 TextDrawShowForPlayer(playerid, mechanic0);
  1197.                 TextDrawShowForPlayer(playerid, mechanic1);
  1198.                 //hide
  1199.                 TextDrawHideForPlayer(playerid, triad0);
  1200.                 TextDrawHideForPlayer(playerid, triad1);
  1201.                 TextDrawHideForPlayer(playerid, biker0);
  1202.                 TextDrawHideForPlayer(playerid, biker1);
  1203.                 SetPlayerPos(playerid, -541.4526,-491.8309,25.5234);
  1204.                 SetPlayerFacingAngle(playerid,180);
  1205.                 SetPlayerCameraPos(playerid, -541.3816,-496.9438,26.6260);
  1206.                 SetPlayerCameraLookAt(playerid, -541.4526,-491.8309,25.5234);
  1207.         }
  1208.         case 5:
  1209.         {
  1210.                 //biker
  1211.                 TextDrawShowForPlayer(playerid, biker0);
  1212.                 TextDrawShowForPlayer(playerid, biker1);
  1213.                 //hide
  1214.                 TextDrawHideForPlayer(playerid, medic0);
  1215.                 TextDrawHideForPlayer(playerid, medic1);
  1216.                 TextDrawHideForPlayer(playerid, mechanic0);
  1217.                 TextDrawHideForPlayer(playerid, mechanic1);
  1218.                 SetPlayerPos(playerid, -595.8671,-1065.9160,23.4248);
  1219.                 SetPlayerFacingAngle(playerid,295);
  1220.                 SetPlayerCameraPos(playerid, -591.7051,-1063.6787,24.5159);
  1221.                 SetPlayerCameraLookAt(playerid, -595.8671,-1065.9160,23.4248);
  1222.         }
  1223.         case 6:
  1224.         {
  1225.                 //medic
  1226.                 TextDrawShowForPlayer(playerid, medic0);
  1227.                 TextDrawShowForPlayer(playerid, medic1);
  1228.                
  1229.                 //hide
  1230.                 TextDrawHideForPlayer(playerid, swat0);
  1231.                 TextDrawHideForPlayer(playerid, swat1);
  1232.                 TextDrawHideForPlayer(playerid, biker0);
  1233.                 TextDrawHideForPlayer(playerid, biker1);
  1234.                 SetPlayerPos(playerid, -2613.8987,598.3188,14.4531);
  1235.                 SetPlayerFacingAngle(playerid,180);
  1236.                 SetPlayerCameraPos(playerid, -2613.8223,593.5840,15.5394);
  1237.                 SetPlayerCameraLookAt(playerid, -2613.8987,598.3188,14.4531);
  1238.         }
  1239.         case 7:
  1240.         {
  1241.                 //swat
  1242.                 TextDrawShowForPlayer(playerid, swat0);
  1243.                 TextDrawShowForPlayer(playerid, swat1);
  1244.                
  1245.                 //hide
  1246.                 TextDrawHideForPlayer(playerid, hick0);
  1247.                 TextDrawHideForPlayer(playerid, hick1);
  1248.                 TextDrawHideForPlayer(playerid, medic0);
  1249.                 TextDrawHideForPlayer(playerid, medic1);
  1250.                 SetPlayerPos(playerid, -1600.3812,737.4028,-5.2422);
  1251.                 SetPlayerFacingAngle(playerid,0);
  1252.                 SetPlayerCameraPos(playerid, -1600.5311,741.8755,-4.1332);
  1253.                 SetPlayerCameraLookAt(playerid, -1600.3812,737.4028,-5.2422);
  1254.         }
  1255.         case 8:
  1256.         {
  1257.                 //hicks
  1258.                 TextDrawShowForPlayer(playerid, hick0);
  1259.                 TextDrawShowForPlayer(playerid, hick1);
  1260.  
  1261.                 //hide
  1262.                 TextDrawHideForPlayer(playerid, swat0);
  1263.                 TextDrawHideForPlayer(playerid, swat1);
  1264.                 TextDrawHideForPlayer(playerid, pilot0);
  1265.                 TextDrawHideForPlayer(playerid, pilot1);
  1266.                 SetPlayerPos(playerid, -527.5626,-96.3141,62.9619);
  1267.                 SetPlayerFacingAngle(playerid,0);
  1268.                 SetPlayerCameraPos(playerid, -527.9584,-91.4849,63.6649);
  1269.                 SetPlayerCameraLookAt(playerid, -527.5626,-96.3141,62.9619);
  1270.         }
  1271.         case 9:
  1272.         {
  1273.                 //pilots
  1274.                 TextDrawShowForPlayer(playerid, pilot0);
  1275.                 TextDrawShowForPlayer(playerid, pilot1);
  1276.                 //hide
  1277.                 TextDrawHideForPlayer(playerid, hick0);
  1278.                 TextDrawHideForPlayer(playerid, hick1);
  1279.                 TextDrawHideForPlayer(playerid, rich0);
  1280.                 TextDrawHideForPlayer(playerid, rich1);
  1281.  
  1282.                 SetPlayerPos(playerid, -1255.9720,-263.9608,14.1484);
  1283.                 SetPlayerFacingAngle(playerid,0);
  1284.                 SetPlayerCameraPos(playerid, -1256.4557,-258.9485,15.2540);
  1285.                 SetPlayerCameraLookAt(playerid, -1255.9720,-263.9608,14.1484);
  1286.         }
  1287.         case 10:
  1288.         {
  1289.                 //toreno
  1290.                 TextDrawShowForPlayer(playerid, rich0);
  1291.                 TextDrawShowForPlayer(playerid, rich1);
  1292.  
  1293.                 //hide
  1294.                 TextDrawHideForPlayer(playerid, pilot0);
  1295.                 TextDrawHideForPlayer(playerid, pilot1);
  1296.                 TextDrawHideForPlayer(playerid, nang0);
  1297.                 TextDrawHideForPlayer(playerid, nang1);
  1298.                 SetPlayerPos(playerid, -2680.3953,931.0175,79.7031);
  1299.                 SetPlayerFacingAngle(playerid,0);
  1300.                 SetPlayerCameraPos(playerid,-2680.5896,935.7803,80.8995);
  1301.                 SetPlayerCameraLookAt(playerid, -2680.3953,931.0175,79.7031);
  1302.         }
  1303.         case 11:
  1304.         {
  1305.                 //nang
  1306.                 TextDrawShowForPlayer(playerid, nang0);
  1307.                 TextDrawShowForPlayer(playerid, nang1);
  1308.                 //hide
  1309.                 TextDrawHideForPlayer(playerid, chicken0);
  1310.                 TextDrawHideForPlayer(playerid, chicken1);
  1311.                 TextDrawHideForPlayer(playerid, rich0);
  1312.                 TextDrawHideForPlayer(playerid, rich1);
  1313.  
  1314.                 SetPlayerPos(playerid, -1459.7673,1490.9714,8.2578);
  1315.                 SetPlayerFacingAngle(playerid,85);
  1316.                 SetPlayerCameraPos(playerid, -1464.5118,1490.9004,9.3470);
  1317.                 SetPlayerCameraLookAt(playerid, -1459.7673,1490.9714,8.2578);
  1318.         }
  1319.         case 12:
  1320.         {
  1321.                 //chickens
  1322.                 TextDrawShowForPlayer(playerid, chicken0);
  1323.                 TextDrawShowForPlayer(playerid, chicken1);
  1324.                 //hide
  1325.                 TextDrawHideForPlayer(playerid, army0);
  1326.                 TextDrawHideForPlayer(playerid, army1);
  1327.                 TextDrawHideForPlayer(playerid, nang0);
  1328.                 TextDrawHideForPlayer(playerid, nang1);
  1329.                 SetPlayerPos(playerid, -2671.8293,267.5992,4.3359);
  1330.                 SetPlayerFacingAngle(playerid,0);
  1331.                 SetPlayerCameraPos(playerid, -2671.7861,272.2567,5.4376);
  1332.                 SetPlayerCameraLookAt(playerid, -2671.8293,267.5992,4.3359);
  1333.         }
  1334.         case 13:
  1335.         {
  1336.             //army
  1337.             TextDrawShowForPlayer(playerid, army0);
  1338.             TextDrawShowForPlayer(playerid, army1);
  1339.             //hide
  1340.             TextDrawHideForPlayer(playerid, worker0);
  1341.             TextDrawHideForPlayer(playerid, worker1);
  1342.             TextDrawHideForPlayer(playerid, chicken0);
  1343.             TextDrawHideForPlayer(playerid, chicken1);
  1344.             SetPlayerPos(playerid, -1399.3936,493.3810,18.2294);
  1345.             SetPlayerFacingAngle(playerid,85);
  1346.             SetPlayerCameraPos(playerid, -1404.4672,493.5200,19.3241);
  1347.             SetPlayerCameraLookAt(playerid, -1399.3936,493.3810,18.2294);
  1348.         }
  1349.  
  1350.     }
  1351.     return 1;
  1352. }
  1353.  
  1354. public OnPlayerRequestSpawn(playerid)
  1355. {
  1356.     if(Registered[playerid] == 1 && LoggedIn[playerid] == 0)
  1357.     {
  1358.         SystemMsg(playerid,"Please login first, use /login password!");
  1359.         return 0; //if registered but not logged in cant spawn till /login
  1360.     }
  1361.     else if(Registered[playerid] == 0)
  1362.     {
  1363.         SystemMsg(playerid,"Register an account to save stats & money!");
  1364.         return 1; //not registered can spawn & choose to register/Change this to Return 0; if you want ppl to have to register
  1365.     }
  1366.     else if(LoggedIn[playerid] == 1)
  1367.     return 1; //if registered & logged in can spawn
  1368.  
  1369.     return 0;
  1370. }
  1371.  
  1372. public OnPlayerStateChange(playerid, newstate, oldstate)
  1373. {
  1374.     SpecUpdate(playerid);
  1375.     return 1;
  1376. }
  1377.  
  1378.  
  1379. //------------------------------------------------------------------------------
  1380.  
  1381.  
  1382. public GameModeExitFunc()
  1383. {
  1384.     GameModeExit();
  1385.     return 1;
  1386. }
  1387.  
  1388.  
  1389. //------------------------------------------------------------------------------
  1390.  
  1391. GetMembersInZone(zoneid, team)
  1392. {
  1393.     new count = 0;
  1394.     new Float:px, Float:py, Float:pz;
  1395.     for(new i=0; i<MAX_PLAYERS; i++)
  1396.     {
  1397.         if(IsPlayerConnected(i))
  1398.         {
  1399.             if(GetPlayerState(i) != PLAYER_STATE_WASTED && gTeam[i] == team)
  1400.             {
  1401.                 GetPlayerPos(i, px, py, pz);
  1402.                 if(px > ZoneInfo[zoneid][z_minx] && py > ZoneInfo[zoneid][z_miny] && px < ZoneInfo[zoneid][z_maxx] && py < ZoneInfo[zoneid][z_maxy])
  1403.                 {
  1404.                     count++;
  1405.                 }
  1406.             }
  1407.         }
  1408.     }
  1409.     return count;
  1410. }
  1411.  
  1412. GetTeamColor(team)
  1413. {
  1414.     switch(team)
  1415.     {
  1416.         case TEAM_WORKER: return 0xFF8000AF;
  1417.         case TEAM_MEDIC: return 0xFF80FF96;
  1418.         case TEAM_PIMP: return 0xE6000096;
  1419.         case TEAM_GOLFER: return 0xC1C10096;
  1420.         case TEAM_TRIAD: return 0xE800E896;
  1421.         case TEAM_MECHANIC: return 0x00E1E196;
  1422.         case TEAM_BIKER: return 0x0059B39B;
  1423.         case TEAM_SWAT: return 0x00800096;
  1424.         case TEAM_HICK: return 0x8E594096;
  1425.         case TEAM_PILOT: return 0x80808096;
  1426.         case TEAM_TORENO: return 0xFFCA9596;
  1427.         case TEAM_NANG: return 0xFF090996;
  1428.         case TEAM_CHICKEN: return 0xFFFF0096;
  1429.         case TEAM_ARMY: return 0x00800096;
  1430.     }
  1431.     return 0;
  1432. }
  1433.  
  1434. stock GetPlayerZone(playerid)
  1435. {
  1436.     if(GetPlayerState(playerid) != PLAYER_STATE_WASTED)
  1437.     {
  1438.         new Float:px, Float:py, Float:pz;
  1439.         GetPlayerPos(playerid, px, py, pz);
  1440.         for(new i=0; i<MAX_ZONES; i++)
  1441.         {
  1442.             if(px > ZoneInfo[i][z_minx] && py > ZoneInfo[i][z_miny] && px < ZoneInfo[i][z_maxx] && py < ZoneInfo[i][z_maxy]) return i;
  1443.         }
  1444.     }
  1445.     return -1;
  1446. }
  1447.  
  1448. public ZoneUpdate()
  1449. {
  1450.     for(new z=0; z < MAX_ZONES; z++)
  1451.     {
  1452.         if(ZoneTakeOverTeam[z] == -1)
  1453.         {
  1454.             for(new t=0; t < MAX_TEAMS; t++)
  1455.             {
  1456.                 if(t == ZoneInfo[z][z_team]) continue;
  1457.                 if(GetMembersInZone(z, t) >= 3)
  1458.                 {
  1459.                     ZoneTakeOverTeam[z] = t;
  1460.                     GangZoneFlashForAll(ZoneInfo[z][z_id], GetTeamColor(t));
  1461.                     ZoneTakeOverTime[z] = 0;
  1462.                 }
  1463.             }
  1464.         }
  1465.         else
  1466.         {
  1467.             if(GetMembersInZone(z, ZoneTakeOverTeam[z]) > 0)
  1468.             {
  1469.                 ZoneTakeOverTime[z]++;
  1470.                 if(ZoneTakeOverTime[z] >= 120)
  1471.                 {
  1472.                     GangZoneStopFlashForAll(ZoneInfo[z][z_id]);
  1473.                     GangZoneShowForAll(ZoneInfo[z][z_id], GetTeamColor(ZoneTakeOverTeam[z]));
  1474.                     ZoneInfo[z][z_team] = ZoneTakeOverTeam[z];
  1475.                     for(new i=0; i<MAX_PLAYERS; i++)
  1476.                     {
  1477.                         if(IsPlayerConnected(i))
  1478.                         {
  1479.                             if(GetPlayerZone(i) == z && gTeam[i] == ZoneTakeOverTeam[z])
  1480.                             {
  1481.                                 SetPlayerScore(i, GetPlayerScore(i) + 2);
  1482.                                 pInfo[i][pKills] += 2;
  1483.                                 GameTextForPlayer(i, "~g~Turf ~r~taken over~n~~b~~h~+2 score", 6000, 3);
  1484.                             }
  1485.                         }
  1486.                     }
  1487.                     ZoneTakeOverTeam[z] = -1;
  1488.                     ZoneTakeOverTime[z] = 0;
  1489.                 }
  1490.             }
  1491.             else
  1492.             {
  1493.                 ZoneTakeOverTeam[z] = -1;
  1494.                 GangZoneStopFlashForAll(ZoneInfo[z][z_id]);
  1495.                 ZoneTakeOverTime[z] = 0;
  1496.             }
  1497.         }
  1498.     }
  1499. }
  1500.  
  1501. IsPlayerJustice(playerid)
  1502. {
  1503.     if(gTeam[playerid] == TEAM_SWAT || gTeam[playerid] == TEAM_ARMY) return 1;
  1504.     else return 0;
  1505. }
  1506.  
  1507. SetPlayerClass(playerid, classid) {
  1508.  
  1509.     if(classid == 0) {
  1510.  
  1511.     gTeam[playerid] = TEAM_WORKER;
  1512.  
  1513.     } else if(classid == 1) {
  1514.  
  1515.     gTeam[playerid] = TEAM_PIMP;
  1516.  
  1517.     } else if(classid == 2) {
  1518.  
  1519.     gTeam[playerid] = TEAM_GOLFER;
  1520.  
  1521.     } else if(classid == 3) {
  1522.  
  1523.     gTeam[playerid] = TEAM_TRIAD;
  1524.  
  1525.     } else if(classid == 4) {
  1526.  
  1527.     gTeam[playerid] = TEAM_MECHANIC;
  1528.  
  1529.     } else if(classid == 5) {
  1530.  
  1531.     gTeam[playerid] = TEAM_BIKER;
  1532.  
  1533.     } else if(classid == 6) {
  1534.  
  1535.     gTeam[playerid] = TEAM_MEDIC;
  1536.  
  1537.     } else if(classid == 7) {
  1538.  
  1539.     gTeam[playerid] = TEAM_SWAT;
  1540.    
  1541.     } else if(classid == 8) {
  1542.  
  1543.     gTeam[playerid] = TEAM_HICK;
  1544.    
  1545.     } else if(classid == 9) {
  1546.  
  1547.     gTeam[playerid] = TEAM_PILOT;
  1548.    
  1549.     } else if(classid == 10) {
  1550.  
  1551.     gTeam[playerid] = TEAM_TORENO;
  1552.    
  1553.     } else if(classid == 11) {
  1554.  
  1555.     gTeam[playerid] = TEAM_NANG;
  1556.    
  1557.     } else if(classid == 12) {
  1558.  
  1559.     gTeam[playerid] = TEAM_CHICKEN;
  1560.    
  1561.     } else if(classid == 13) {
  1562.  
  1563.     gTeam[playerid] = TEAM_ARMY;
  1564.  
  1565.     }
  1566.  
  1567. }
  1568.  
  1569. public SettingPlayerTeam()
  1570. {
  1571.     for(new i; i < MAX_PLAYERS; i++)
  1572.     {
  1573.         if(IsPlayerConnected(i))
  1574.         {
  1575.             SetPlayerTeam(i, gTeam[i]);
  1576.         }
  1577.     }
  1578. }
  1579.  
  1580. public DropPlayerWeapons(playerid)
  1581. {
  1582.     new playerweapons[13][2];
  1583.     new Float:x,Float:y,Float:z;
  1584.     GetPlayerPos(playerid, x, y, z);
  1585.  
  1586.     for(new i=0; i<13; i++)
  1587.     {
  1588.         GetPlayerWeaponData(playerid, i, playerweapons[i][0], playerweapons[i][1]);
  1589.         new model = GetWeaponModel(playerweapons[i][0]);
  1590.         new times = floatround(playerweapons[i][1]/10.0001);
  1591.         new Float:X = x + (random(3) - random(3));
  1592.         new Float:Y = y + (random(3) - random(3));
  1593.         if(playerweapons[i][1] != 0 && model != -1)
  1594.         {
  1595.             if(times > DropLimit) times = DropLimit;
  1596.             for(new a=0; a<times; a++)
  1597.             {
  1598.                 new pickupid = CreatePickup(model, 3, X, Y, z);
  1599.                 SetTimerEx("DeletePickup", DeleteTime*1000, false, "d", pickupid);
  1600.             }
  1601.         }
  1602.     }
  1603.     return 1;
  1604. }
  1605.  
  1606. public DeletePickup(pickupid)
  1607. {
  1608.     DestroyPickup(pickupid);
  1609.     return 1;
  1610. }
  1611.  
  1612. GetWeaponModel(weaponid)
  1613. {
  1614.     switch(weaponid)
  1615.     {
  1616.         case 1: return 331; case 2: return 333; case 3: return 334;
  1617.         case 4: return 335; case 5: return 336; case 6: return 337;
  1618.         case 7: return 338; case 8: return 339; case 9: return 341;
  1619.         case 10: return 321; case 11: return 322; case 12: return 323;
  1620.         case 13: return 324; case 14: return 325; case 15: return 326;
  1621.         case 16: return 342; case 17: return 343; case 18: return 344;
  1622.         case 22: return 346; case 23: return 347; case 24: return 348;
  1623.         case 25: return 349; case 26: return 350; case 27: return 351;
  1624.         case 28: return 352; case 29: return 353; case 30: return 355;
  1625.         case 31: return 356; case 32: return 372; case 33: return 357;
  1626.         case 34: return 358; case 35: return 359; case 36: return 360;
  1627.         case 37: return 361; case 38: return 362; case 39: return 363;
  1628.         case 41: return 365; case 42: return 366; case 46: return 371;
  1629.     }
  1630.     return -1;
  1631. }
  1632.  
  1633. public OnPlayerPickUpPickup(playerid, pickupid)
  1634. {
  1635.     DestroyPickup(pickupid);
  1636.     return 1;
  1637. }
  1638.  
  1639. // spectating
  1640. public StopSpeccing(playerid)
  1641. {
  1642.     Killed[playerid] = -1;
  1643.     gSpectateID[playerid] = INVALID_PLAYER_ID;
  1644.     TogglePlayerSpectating(playerid, 0);
  1645.     TextDrawHideForPlayer (playerid, Textdraw0);
  1646. }
  1647.        
  1648. public SpecUpdate(playerid)
  1649. {
  1650.     for(new i=0; i<MAX_PLAYERS; i++)
  1651.     {
  1652.         if(IsPlayerConnected(i))
  1653.         {
  1654.             if(gSpectateID[i] == playerid)
  1655.             {
  1656.                 if(IsPlayerInAnyVehicle(playerid)) PlayerSpectateVehicle(i, GetPlayerVehicleID(playerid));
  1657.                 else PlayerSpectatePlayer(i, playerid);
  1658.             }
  1659.         }
  1660.     }
  1661.     return 1;
  1662. }
  1663.  
  1664. //-------------------commands----------
  1665. public OnPlayerCommandText(playerid, cmdtext[])
  1666. {
  1667.     new cmd[256];
  1668.     new string[256];
  1669.     new idx;
  1670.  
  1671.     cmd = strtok(cmdtext, idx);
  1672.  
  1673.     //commands
  1674.     if(strcmp(cmdtext, "/commands", true) == 0 || strcmp(cmdtext, "/help", true) == 0)
  1675.     {
  1676.        SendClientMessage(playerid, COLOR_YELLOW, "Commands: /buy, /report, /pm, /id, /me, /givecash, /turfhelp");
  1677.        return 1;
  1678.     }
  1679.  
  1680.     //kill
  1681.     if(strcmp(cmdtext, "/kill", true) == 0)
  1682.     {
  1683.        SetPlayerHealth(playerid, 0.0);
  1684.        return 1;
  1685.     }
  1686.  
  1687.     if(strcmp(cmdtext, "/turfhelp", true) == 0)
  1688.     {
  1689.        SendClientMessage(playerid, COLOR_RED, "_______________________________[TURF HELP]_________________________________");
  1690.        SendClientMessage(playerid, COLOR_YELLOW, "To take over a turf you need 3 team members on enemy's turf to start a war.");
  1691.        SendClientMessage(playerid, COLOR_YELLOW, "Your team must hold the turf for 4 minutes to win. If all of your team members");
  1692.        SendClientMessage(playerid, COLOR_YELLOW, "die or leave the turf, you will fail. If your team stays on the turf for 4 minutes,");
  1693.        SendClientMessage(playerid, COLOR_YELLOW, "turf will be taken over and you will receive +2 score.");
  1694.        return 1;
  1695.     }
  1696.  
  1697.     if(strcmp(cmd, "/stats", true) == 0)
  1698.      {
  1699.         new idplayer;
  1700.         tmp2 = strtok(cmdtext, idx);
  1701.         if(!strlen(tmp2))
  1702.         {
  1703.             ShowStats(playerid);
  1704.             return 1;
  1705.         }
  1706.         idplayer = strval(tmp2);
  1707.  
  1708.         if(IsPlayerConnected(idplayer))
  1709.         {
  1710.             new playername[MAX_PLAYER_NAME];
  1711.             GetPlayerName(idplayer, playername, sizeof(playername));
  1712.             format(string, sizeof(string), "%s's Stats:  Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d",playername,pInfo[idplayer][pKills],pInfo[idplayer][pDeaths],Float:pInfo[idplayer][pKills]/Float:pInfo[idplayer][pDeaths],GetPlayerMoney(idplayer));
  1713.             SendClientMessage(playerid, COLOR_GREEN, string);
  1714.             return 1;
  1715.         }
  1716.         else
  1717.         {
  1718.             SendClientMessage(playerid, COLOR_RED, "Player Not Connected!");
  1719.             return 1;
  1720.         }
  1721.     }
  1722.      
  1723.     dcmd(login,5,cmdtext);
  1724.     dcmd(register,8,cmdtext);
  1725.     dcmd(report, 6, cmdtext);
  1726.     dcmd(givecash, 8, cmdtext);
  1727.     dcmd(id, 2, cmdtext);
  1728.     dcmd(me, 2, cmdtext);
  1729.    
  1730.     dcmd(kick, 4, cmdtext);
  1731.     dcmd(ban, 3, cmdtext);
  1732.     dcmd(banip, 5, cmdtext);
  1733.     dcmd(unbanip, 7, cmdtext);
  1734.     dcmd(freeze, 6, cmdtext);
  1735.     dcmd(unfreeze, 8, cmdtext);
  1736.     dcmd(killplayer, 10, cmdtext);
  1737.     dcmd(jail, 4, cmdtext);
  1738.     dcmd(unjail, 6, cmdtext);
  1739.     dcmd(slap, 4, cmdtext);
  1740.     dcmd(mute, 4, cmdtext);
  1741.     dcmd(unmute, 6, cmdtext);
  1742.     dcmd(explodeplayer, 13, cmdtext);
  1743.     dcmd(resetweapons, 12, cmdtext);
  1744.     dcmd(restart, 7, cmdtext);
  1745.     dcmd(lockserver, 10, cmdtext);
  1746.     dcmd(unlockserver, 12, cmdtext);
  1747.     dcmd(spec, 4, cmdtext);
  1748.     dcmd(specvehicle, 11, cmdtext);
  1749.     dcmd(specoff, 7, cmdtext);
  1750.     dcmd(settime, 7, cmdtext);
  1751.     dcmd(cs, 2, cmdtext);
  1752.     dcmd(setweather, 10, cmdtext);
  1753.     dcmd(setgravity, 10, cmdtext);
  1754.     dcmd(whois, 5, cmdtext);
  1755.     dcmd(skick, 5, cmdtext);
  1756.     dcmd(sban, 4, cmdtext);
  1757.     dcmd(sbanip, 6, cmdtext);
  1758.     dcmd(sfreeze, 7, cmdtext);
  1759.     dcmd(sunfreeze, 9, cmdtext);
  1760.     dcmd(skillplayer, 11, cmdtext);
  1761.     dcmd(sjail, 5, cmdtext);
  1762.     dcmd(sunjail, 7, cmdtext);
  1763.     dcmd(sslap, 5, cmdtext);
  1764.     dcmd(smute, 5, cmdtext);
  1765.     dcmd(sunmute, 7, cmdtext);
  1766.     dcmd(sexplodeplayer, 14, cmdtext);
  1767.     dcmd(sresetweapons, 13, cmdtext);
  1768.     dcmd(createmoney, 11, cmdtext);
  1769.     dcmd(deletemoney, 11, cmdtext);
  1770.     dcmd(srestart, 8, cmdtext);
  1771.     dcmd(slockserver, 11, cmdtext);
  1772.     dcmd(sunlockserver, 13, cmdtext);
  1773.     dcmd(setadmin, 8, cmdtext);
  1774.     dcmd(setkills, 8, cmdtext);
  1775.     dcmd(ahelp, 5, cmdtext);
  1776.     dcmd(goto, 4, cmdtext);
  1777.    
  1778.     return 0;
  1779. }
  1780.  
  1781. dcmd_register(playerid,params[])
  1782. {
  1783.     new playername[MAX_PLAYER_NAME];
  1784.     GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  1785.     if(udb_Exists(playername)) return SystemMsg(playerid,"Account already exists, please use '/login password'.");
  1786.     if(strlen(params)==0) return SystemMsg(playerid,"Correct usage: '/register password'");
  1787.     if(udb_Create(playername,params))
  1788.     {
  1789.         SystemMsg(playerid,"Account successfully created. Login with '/login password' now.");
  1790.         GivePlayerMoney(playerid,5000);
  1791.     }
  1792.     return 1;
  1793. }
  1794.  
  1795. dcmd_login(playerid,params[])
  1796. {
  1797.     if(LoggedIn[playerid] == 1) return SystemMsg(playerid,"You are already logged in!");
  1798.     new playername[MAX_PLAYER_NAME];
  1799.     GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  1800.     if(!udb_Exists(playername)) return SystemMsg(playerid,"Account doesn't exist, please use '/register password'.");
  1801.     if(strlen(params)==0) return SystemMsg(playerid,"Correct usage: '/login password'");
  1802.     if(udb_CheckLogin(playername,params)) // Login was correct
  1803.     {
  1804.         LoggedIn[playerid] = 1;
  1805.         GivePlayerMoney(playerid,dUserINT(playername).("money"));
  1806.         pInfo[playerid][pAdmin] = dUserINT(playername).("Admin");
  1807.         pInfo[playerid][pDeaths] = dUserINT(playername).("deaths");
  1808.         pInfo[playerid][pKills] = dUserINT(playername).("kills");
  1809.         SetPlayerScore(playerid,pInfo[playerid][pKills] + GetPlayerScore(playerid));
  1810.         SetPlayerWantedLevel(playerid,dUserINT(playername).("Wantedlvl"));
  1811.  
  1812.         if(pInfo[playerid][pAdmin] == 0 )
  1813.         {
  1814.             SystemMsg(playerid,"You can now spawn");
  1815.             return 1;
  1816.         }
  1817.         else if(pInfo[playerid][pAdmin] == 1)
  1818.         {
  1819.             SystemMsg(playerid,"Welcome back Moderator Lvl[1]");
  1820.             return 1;
  1821.         }
  1822.         else if(pInfo[playerid][pAdmin] == 2)
  1823.         {
  1824.             SystemMsg(playerid,"Welcome back Chief Moderator Lvl[2]");
  1825.             return 1;
  1826.         }
  1827.         else if(pInfo[playerid][pAdmin] == 3)
  1828.         {
  1829.             SystemMsg(playerid,"Welcome back Administrator Lvl[3]");
  1830.             return 1;
  1831.         }
  1832.         else if(pInfo[playerid][pAdmin] == 4)
  1833.         {
  1834.             SystemMsg(playerid,"Welcome back Chief Administrator Lvl[4]");
  1835.             return 1;
  1836.         }
  1837.         else if(pInfo[playerid][pAdmin] == 5)
  1838.         {
  1839.             SystemMsg(playerid,"Welcome back Server Owner Lvl[5]");
  1840.             return 1;
  1841.         }
  1842.         return SystemMsg(playerid,"You have successfully logged into your account!");
  1843.     }
  1844.     return SystemMsg(playerid,"Login failed!");
  1845.  
  1846. }
  1847.  
  1848. dcmd_report(playerid, params[])
  1849. {
  1850.     new index = 0;
  1851.     tmp2 = strtok(params, index);
  1852.     if(!strlen(tmp2))
  1853.     {
  1854.         SystemMessage(playerid, "Correct usage: '/report [playername] [reason]'");
  1855.         return 1;
  1856.     }
  1857.     new string[MAX_STRING];
  1858.     new second, minute, hour, day, month, year;
  1859.     giveplayerid = ReturnUser(tmp2);
  1860.     if (IsPlayerConnected(giveplayerid))
  1861.     {
  1862.         format(string, sizeof(string), "Report was sent to currently administrators/moderators online.");
  1863.         SystemMessage(giveplayerid, string);
  1864.         format(string, sizeof(string), "Report: %s has reported %s. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), params);
  1865.         SendMessageToAdmins(string);
  1866.         print(string);
  1867.         gettime(hour, minute, second);
  1868.         getdate(year, month, day);
  1869.         format(string, sizeof(string), "Player %s reported player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  1870.         ServerLog(string);
  1871.     }
  1872.     else
  1873.     {
  1874.         SystemMessage(playerid, "That player is not active.");
  1875.     }
  1876.     return 1;
  1877. }
  1878.  
  1879. dcmd_givecash(playerid, params[])
  1880. {
  1881.     new amount, str[128];
  1882.     if(sscanf(params, "ud", giveplayerid, amount)) return SystemMessage(playerid, "Correct usage: '/givecash [playername] [amount]'");
  1883.     if(!IsPlayerConnected(giveplayerid) || giveplayerid == playerid) return SystemMessage(playerid, "This player is not active.");
  1884.     if(amount < 1 || amount > GetPlayerMoney(playerid)) return SystemMessage(playerid, "Invalid amount!");
  1885.     GetName(playerid, playername);
  1886.     GetName(giveplayerid, giveplayer);
  1887.     GivePlayerMoney(playerid, -amount);
  1888.     GivePlayerMoney(giveplayerid, amount);
  1889.     format(str, sizeof(str), "You have sent $%d to %s (%d)", amount, giveplayer, giveplayerid);
  1890.     SystemMessage(playerid, str);
  1891.     format(str, sizeof(str), "%s (%d) has sent you $%d", playername, playerid, amount);
  1892.     SystemMessage(giveplayerid, str);
  1893.     return 1;
  1894. }
  1895.  
  1896. dcmd_me(playerid, params[])
  1897. {
  1898.     new message[128], str[128];
  1899.     if(sscanf(params, "s", message)) return SystemMessage(playerid, "Correct usage: '/me [message]'");
  1900.     new pName[MAX_PLAYER_NAME];
  1901.     GetPlayerName(playerid, pName, sizeof(pName));
  1902.     format(str, sizeof(str), "*** %s %s", pName, message);
  1903.     SendClientMessageToAll(COLOR_ORANGE, str);
  1904.     return 1;
  1905. }
  1906.  
  1907. dcmd_id(playerid, params[])
  1908. {
  1909.     new pid, str[128];
  1910.     if(sscanf(params, "u", pid)) return SystemMessage(playerid, "Correct usage: '/id [playername]'");
  1911.     if(!IsPlayerConnected(pid)) return SystemMessage(playerid, "That player is not active.");
  1912.     format(str, sizeof(str), "ID: (%d) %s", pid, PlayerName(pid));
  1913.     SendClientMessage(playerid, COLOR_GREY, str);
  1914.     return 1;
  1915. }
  1916.  
  1917. dcmd_kick(playerid, params[])
  1918. {
  1919.     new index = 0;
  1920.     tmp2 = strtok(params, index);
  1921.     if (pInfo[playerid][pAdmin] == 0)
  1922.     {
  1923.         SystemMessage(playerid, "You are not Administrator.");
  1924.         return 1;
  1925.     }
  1926.     if(!strlen(tmp2))
  1927.     {
  1928.         SystemMessage(playerid, "Correct usage: '/kick [playername] [reason]'");
  1929.         return 1;
  1930.     }
  1931.     new string[MAX_STRING];
  1932.     new second, minute, hour, day, month, year;
  1933.     giveplayerid = ReturnUser(tmp2);
  1934.     if (IsPlayerConnected(giveplayerid))
  1935.     {
  1936.         format(string, sizeof(string), "You have been kicked by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  1937.         SystemMessage(giveplayerid, string);
  1938.         format(string, sizeof(string), "Player %s has been kicked by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  1939.         SystemMessageToAll(string);
  1940.         format(string, sizeof(string), "%s has been kicked by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  1941.         print(string);
  1942.         gettime(hour, minute, second);
  1943.         getdate(year, month, day);
  1944.         format(string, sizeof(string), "Player %s kicked player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  1945.         ServerLog(string);
  1946.         KickPlayer(giveplayerid, "");
  1947.     }
  1948.     else
  1949.     {
  1950.         SystemMessage(playerid, "That player is not active.");
  1951.     }
  1952.     return 1;
  1953. }
  1954.  
  1955. dcmd_ban(playerid, params[])
  1956. {
  1957.     new index = 0;
  1958.     tmp2 = strtok(params, index);
  1959.     if (pInfo[playerid][pAdmin] == 0)
  1960.     {
  1961.         SystemMessage(playerid, "You are not Administrator.");
  1962.         return 1;
  1963.     }
  1964.     if(!strlen(tmp2))
  1965.     {
  1966.         SystemMessage(playerid, "Correct usage: '/ban [playername] [reason]'");
  1967.         return 1;
  1968.     }
  1969.     new string[MAX_STRING];
  1970.     new second, minute, hour, day, month, year;
  1971.     giveplayerid = ReturnUser(tmp2);
  1972.     if (IsPlayerConnected(giveplayerid))
  1973.     {
  1974.         format(string, sizeof(string), "You have been banned by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  1975.         SystemMessage(giveplayerid, string);
  1976.         if(dini_Exists(KICKPORTAL))
  1977.         {
  1978.             new File:fhandle;
  1979.             new temp[256];
  1980.             fhandle = fopen(KICKPORTAL, io_append);
  1981.             format(temp, sizeof(temp), "\n%s", PlayerName(giveplayerid));
  1982.             fwrite(fhandle, temp);
  1983.             fclose(fhandle);
  1984.         }
  1985.         format(string, sizeof(string), "Player %s has been banned by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  1986.         SystemMessageToAll(string);
  1987.         format(string, sizeof(string), "%s has been banned by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  1988.         print(string);
  1989.         gettime(hour, minute, second);
  1990.         getdate(year, month, day);
  1991.         format(string, sizeof(string), "Player %s banned player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  1992.         ServerLog(string);
  1993.         KickPlayer(giveplayerid, "");
  1994.     }
  1995.     else
  1996.     {
  1997.         SystemMessage(playerid, "That player is not active.");
  1998.     }
  1999.     return 1;
  2000. }
  2001.  
  2002. dcmd_banip(playerid, params[])
  2003. {
  2004.     new index = 0;
  2005.     tmp2 = strtok(params, index);
  2006.     if (pInfo[playerid][pAdmin] == 0)
  2007.     {
  2008.         SystemMessage(playerid, "You are not Administrator.");
  2009.         return 1;
  2010.     }
  2011.     if(!strlen(tmp2))
  2012.     {
  2013.         SystemMessage(playerid, "Correct usage: '/banip [playername] [reason]'");
  2014.         return 1;
  2015.     }
  2016.     new string[MAX_STRING];
  2017.     new second, minute, hour, day, month, year;
  2018.     giveplayerid = ReturnUser(tmp2);
  2019.     if (IsPlayerConnected(giveplayerid))
  2020.     {
  2021.         format(string, sizeof(string), "You have been IP banned by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2022.         SendClientMessage(giveplayerid, COLOR_SYSTEM, string);
  2023.         format(string, sizeof(string), "Player %s has been IP banned by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2024.         SendClientMessageToAll(COLOR_SYSTEM, string);
  2025.         format(string, sizeof(string), "%s has been IP banned by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2026.         print(string);
  2027.         gettime(hour, minute, second);
  2028.         getdate(year, month, day);
  2029.         format(string,sizeof(string),"Player %s IP banned player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2030.         ServerLog(string);
  2031.         BanPlayer(giveplayerid, "");
  2032.     }
  2033.     else
  2034.     {
  2035.         SendClientMessage(playerid, COLOR_SYSTEM, "That player is not active.");
  2036.     }
  2037.     return 1;
  2038. }
  2039.  
  2040. dcmd_unbanip(playerid, params[])
  2041. {
  2042.     if (pInfo[playerid][pAdmin] == 0)
  2043.     {
  2044.     SystemMessage(playerid, "You are not Administrator.");
  2045.     return 1;
  2046.     }
  2047.     if(!strlen(params)) return SystemMessage(playerid, "Correct usage: '/unbanip [ip]'");
  2048.     new string[MAX_STRING];
  2049.     format(string, sizeof(string), "IP %s unbanned.", params);
  2050.     SystemMessage(playerid, string);
  2051.     format(string, sizeof(string), "unbanip %s", params);
  2052.     SendRconCommandEx(0, string);
  2053.     return 1;
  2054. }
  2055.  
  2056. dcmd_freeze(playerid, params[])
  2057. {
  2058.     new index = 0;
  2059.     tmp2 = strtok(params, index);
  2060.     if (pInfo[playerid][pAdmin] == 0)
  2061.     {
  2062.     SystemMessage(playerid, "You are not Administrator.");
  2063.     return 1;
  2064.     }
  2065.     if(!strlen(tmp2))
  2066.     {
  2067.     SystemMessage(playerid, "Correct usage: '/freeze [playername] [reason]'");
  2068.     return 1;
  2069.     }
  2070.     new string[MAX_STRING];
  2071.     new second, minute, hour, day, month, year;
  2072.     giveplayerid = ReturnUser(tmp2);
  2073.     if (IsPlayerConnected(giveplayerid))
  2074.     {
  2075.     format(string, sizeof(string), "You have been freezed by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2076.     SystemMessage(giveplayerid, string);
  2077.     FreezePlayer(giveplayerid, "");
  2078.     format(string, sizeof(string), "Player %s has been freezed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2079.     SystemMessageToAll(string);
  2080.     format(string, sizeof(string), "%s has been freezed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2081.     print(string);
  2082.     gettime(hour, minute, second);
  2083.     getdate(year, month, day);
  2084.     format(string, sizeof(string), "Player %s freezed player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2085.     ServerLog(string);
  2086.     }
  2087.     else
  2088.     {
  2089.     SystemMessage(playerid, "That player is not active.");
  2090.     }
  2091.     return 1;
  2092. }
  2093.  
  2094. dcmd_unfreeze(playerid, params[])
  2095. {
  2096.     new index = 0;
  2097.     tmp2 = strtok(params, index);
  2098.     if (pInfo[playerid][pAdmin] == 0)
  2099.     {
  2100.     SystemMessage(playerid, "You are not Administrator.");
  2101.     return 1;
  2102.     }
  2103.     if(!strlen(tmp2))
  2104.     {
  2105.     SystemMessage(playerid, "Correct usage: '/unfreeze [playername] [reason]'");
  2106.     return 1;
  2107.     }
  2108.     new string[MAX_STRING];
  2109.     new second, minute, hour, day, month, year;
  2110.     giveplayerid = ReturnUser(tmp2);
  2111.     if (IsPlayerConnected(giveplayerid))
  2112.     {
  2113.     format(string, sizeof(string), "You have been unfreezed by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2114.     SystemMessage(giveplayerid, string);
  2115.     UnfreezePlayer(giveplayerid, "");
  2116.     format(string, sizeof(string), "Player %s has been unfreezed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2117.     SystemMessageToAll(string);
  2118.     format(string, sizeof(string), "%s has been unfreezed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2119.     print(string);
  2120.     gettime(hour, minute, second);
  2121.     getdate(year, month, day);
  2122.     format(string, sizeof(string), "Player %s unfreezed player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2123.     ServerLog(string);
  2124.     }
  2125.     else
  2126.     {
  2127.     SystemMessage(playerid, "That player is not active.");
  2128.     }
  2129.     return 1;
  2130. }
  2131.  
  2132. dcmd_killplayer(playerid, params[])
  2133. {
  2134.     new index = 0;
  2135.     tmp2 = strtok(params, index);
  2136.     if (pInfo[playerid][pAdmin] == 0)
  2137.     {
  2138.     SystemMessage(playerid, "You are not Administrator.");
  2139.     return 1;
  2140.     }
  2141.     if(!strlen(tmp2))
  2142.     {
  2143.     SystemMessage(playerid, "Correct usage: '/killplayer [playername] [reason]'");
  2144.     return 1;
  2145.     }
  2146.     new string[MAX_STRING];
  2147.     new second, minute, hour, day, month, year;
  2148.     giveplayerid = ReturnUser(tmp2);
  2149.     if (IsPlayerConnected(giveplayerid))
  2150.     {
  2151.     format(string, sizeof(string), "You have been killed by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2152.     SystemMessage(giveplayerid, string);
  2153.     KillPlayer(giveplayerid, "");
  2154.     format(string, sizeof(string), "Player %s has been killed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2155.     SystemMessageToAll(string);
  2156.     format(string, sizeof(string), "%s has been killed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2157.     print(string);
  2158.     gettime(hour, minute, second);
  2159.     getdate(year, month, day);
  2160.     format(string, sizeof(string), "Player %s killed player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2161.     ServerLog(string);
  2162.     }
  2163.     else
  2164.     {
  2165.     SystemMessage(playerid, "That player is not active.");
  2166.     }
  2167.     return 1;
  2168. }
  2169.  
  2170. dcmd_jail(playerid, params[])
  2171. {
  2172.     new index = 0;
  2173.     tmp2 = strtok(params, index);
  2174.     if (pInfo[playerid][pAdmin] == 0)
  2175.     {
  2176.     SystemMessage(playerid, "You are not Administrator.");
  2177.     return 1;
  2178.     }
  2179.     if(!strlen(tmp2))
  2180.     {
  2181.     SystemMessage(playerid, "Correct usage: '/jail [playername] [reason]'");
  2182.     return 1;
  2183.     }
  2184.     new string[MAX_STRING];
  2185.     new second, minute, hour, day, month, year;
  2186.     giveplayerid = ReturnUser(tmp2);
  2187.     if (IsPlayerConnected(giveplayerid))
  2188.     {
  2189.     format(string, sizeof(string), "You have been jailed by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2190.     SystemMessage(giveplayerid, string);
  2191.     JailPlayer(giveplayerid, "");
  2192.     format(string, sizeof(string), "Player %s has been jailed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2193.     SystemMessageToAll(string);
  2194.     format(string, sizeof(string), "%s has been jailed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2195.     print(string);
  2196.     gettime(hour, minute, second);
  2197.     getdate(year, month, day);
  2198.     format(string, sizeof(string), "Player %s jailed player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2199.     ServerLog(string);
  2200.     }
  2201.     else
  2202.     {
  2203.     SystemMessage(playerid, "That player is not active.");
  2204.     }
  2205.     return 1;
  2206. }
  2207.  
  2208. dcmd_unjail(playerid, params[])
  2209. {
  2210.     new index = 0;
  2211.     tmp2 = strtok(params, index);
  2212.     if (pInfo[playerid][pAdmin] == 0)
  2213.     {
  2214.     SystemMessage(playerid, "You are not Administrator.");
  2215.     return 1;
  2216.     }
  2217.     if(!strlen(tmp2))
  2218.     {
  2219.     SystemMessage(playerid, "Correct usage: '/unjail [playername] [reason]'");
  2220.     return 1;
  2221.     }
  2222.     new string[MAX_STRING];
  2223.     new second, minute, hour, day, month, year;
  2224.     giveplayerid = ReturnUser(tmp2);
  2225.     if (IsPlayerConnected(giveplayerid))
  2226.     {
  2227.     format(string, sizeof(string), "You have been unjailed by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2228.     SystemMessage(giveplayerid, string);
  2229.     UnjailPlayer(giveplayerid, "");
  2230.     format(string, sizeof(string), "Player %s has been unjailed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2231.     SystemMessageToAll(string);
  2232.     format(string, sizeof(string), "%s has been unjailed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2233.     print(string);
  2234.     gettime(hour, minute, second);
  2235.     getdate(year, month, day);
  2236.     format(string, sizeof(string), "Player %s unjailed player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2237.     ServerLog(string);
  2238.     }
  2239.     else
  2240.     {
  2241.     SystemMessage(playerid, "That player is not active.");
  2242.     }
  2243.     return 1;
  2244. }
  2245.  
  2246. dcmd_slap(playerid, params[])
  2247. {
  2248.     new index = 0;
  2249.     tmp2 = strtok(params, index);
  2250.     if (pInfo[playerid][pAdmin] == 0)
  2251.     {
  2252.     SystemMessage(playerid, "You are not Administrator.");
  2253.     return 1;
  2254.     }
  2255.     if(!strlen(tmp2))
  2256.     {
  2257.     SystemMessage(playerid, "Correct usage: '/slap [playername] [reason]'");
  2258.     return 1;
  2259.     }
  2260.     new string[MAX_STRING];
  2261.     new second, minute, hour, day, month, year;
  2262.     giveplayerid = ReturnUser(tmp2);
  2263.     if (IsPlayerConnected(giveplayerid))
  2264.     {
  2265.     format(string, sizeof(string), "You have been slapped by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2266.     SystemMessage(giveplayerid, string);
  2267.     SlapPlayer(giveplayerid, "");
  2268.     format(string, sizeof(string), "Player %s has been slapped by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2269.     SystemMessageToAll(string);
  2270.     format(string, sizeof(string), "%s has been slapped by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2271.     print(string);
  2272.     gettime(hour, minute, second);
  2273.     getdate(year, month, day);
  2274.     format(string, sizeof(string), "Player %s slapped player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2275.     ServerLog(string);
  2276.     }
  2277.     else
  2278.     {
  2279.     format(string, sizeof(string), "That player is not active.");
  2280.     SystemMessage(playerid, string);
  2281.     }
  2282.     return 1;
  2283. }
  2284.  
  2285. dcmd_mute(playerid, params[])
  2286. {
  2287.     new index = 0;
  2288.     tmp2 = strtok(params, index);
  2289.     if (pInfo[playerid][pAdmin] == 0)
  2290.     {
  2291.     SystemMessage(playerid, "You are not Administrator.");
  2292.     return 1;
  2293.     }
  2294.     if(!strlen(tmp2))
  2295.     {
  2296.     SystemMessage(playerid, "Correct usage: '/mute [playername] [reason]'");
  2297.     return 1;
  2298.     }
  2299.     new string[MAX_STRING];
  2300.     new second, minute, hour, day, month, year;
  2301.     giveplayerid = ReturnUser(tmp2);
  2302.     if (IsPlayerConnected(giveplayerid))
  2303.     {
  2304.     format(string, sizeof(string), "You have been muted by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2305.     SystemMessage(giveplayerid, string);
  2306.     MutePlayer(giveplayerid, "");
  2307.     format(string, sizeof(string), "Player %s has been muted by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2308.     SystemMessageToAll(string);
  2309.     format(string, sizeof(string), "%s has been muted by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2310.     print(string);
  2311.     gettime(hour, minute, second);
  2312.     getdate(year, month, day);
  2313.     format(string, sizeof(string), "Player %s muted player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2314.     ServerLog(string);
  2315.     }
  2316.     else
  2317.     {
  2318.     format(string, sizeof(string), "That player is not active.");
  2319.     SystemMessage(playerid, string);
  2320.     }
  2321.     return 1;
  2322. }
  2323.  
  2324. dcmd_unmute(playerid, params[])
  2325. {
  2326.     new index = 0;
  2327.     tmp2 = strtok(params, index);
  2328.     if (pInfo[playerid][pAdmin] == 0)
  2329.     {
  2330.     SystemMessage(playerid, "You are not Administrator.");
  2331.     return 1;
  2332.     }
  2333.     if(!strlen(tmp2))
  2334.     {
  2335.     SystemMessage(playerid, "Correct usage: '/unmute [playername] [reason]'");
  2336.     return 1;
  2337.     }
  2338.     new string[MAX_STRING];
  2339.     new second, minute, hour, day, month, year;
  2340.     giveplayerid = ReturnUser(tmp2);
  2341.     if (IsPlayerConnected(giveplayerid))
  2342.     {
  2343.     format(string, sizeof(string), "You have been unmuted by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2344.     SystemMessage(giveplayerid, string);
  2345.     UnmutePlayer(giveplayerid, "");
  2346.     format(string, sizeof(string), "Player %s has been unmuted by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2347.     SystemMessageToAll(string);
  2348.     format(string, sizeof(string), "%s has been unmuted by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2349.     print(string);
  2350.     gettime(hour, minute, second);
  2351.     getdate(year, month, day);
  2352.     format(string, sizeof(string), "Player %s unmuted player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2353.     ServerLog(string);
  2354.     }
  2355.     else
  2356.     {
  2357.     format(string, sizeof(string), "That player is not active.");
  2358.     SystemMessage(playerid, string);
  2359.     }
  2360.     return 1;
  2361. }
  2362.  
  2363. dcmd_explodeplayer(playerid, params[])
  2364. {
  2365.     new index = 0;
  2366.     tmp2 = strtok(params, index);
  2367.     if (pInfo[playerid][pAdmin] == 0)
  2368.     {
  2369.     SystemMessage(playerid, "You are not Administrator.");
  2370.     return 1;
  2371.     }
  2372.     if(!strlen(tmp2))
  2373.     {
  2374.     SystemMessage(playerid, "Correct usage: '/explodeplayer [playername] [reason]'");
  2375.     return 1;
  2376.     }
  2377.     new string[MAX_STRING];
  2378.     new second, minute, hour, day, month, year;
  2379.     giveplayerid = ReturnUser(tmp2);
  2380.     if (IsPlayerConnected(giveplayerid))
  2381.     {
  2382.     format(string, sizeof(string), "You have been exploded by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2383.     SystemMessage(giveplayerid, string);
  2384.     ExplodePlayer(giveplayerid, "");
  2385.     format(string, sizeof(string), "Player %s has been exploded by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2386.     SystemMessageToAll(string);
  2387.     format(string, sizeof(string), "%s has been exploded by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2388.     print(string);
  2389.     gettime(hour, minute, second);
  2390.     getdate(year, month, day);
  2391.     format(string, sizeof(string), "Player %s exploded player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2392.     ServerLog(string);
  2393.     }
  2394.     else
  2395.     {
  2396.     format(string, sizeof(string), "That player is not active.");
  2397.     SystemMessage(playerid, string);
  2398.     }
  2399.     return 1;
  2400. }
  2401.  
  2402. dcmd_resetweapons(playerid, params[])
  2403. {
  2404.     new index = 0;
  2405.     tmp2 = strtok(params, index);
  2406.     if (pInfo[playerid][pAdmin] == 0)
  2407.     {
  2408.     SystemMessage(playerid, "You are not Administrator.");
  2409.     return 1;
  2410.     }
  2411.     if(!strlen(tmp2))
  2412.     {
  2413.     SystemMessage(playerid, "Correct usage: '/resetweapons [playername] [reason]'");
  2414.     return 1;
  2415.     }
  2416.     new string[MAX_STRING];
  2417.     new second, minute, hour, day, month, year;
  2418.     giveplayerid = ReturnUser(tmp2);
  2419.     if (IsPlayerConnected(giveplayerid))
  2420.     {
  2421.     format(string, sizeof(string), "Your all weapons have been reseted by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2422.     SystemMessage(giveplayerid, string);
  2423.     ResetPlayerWeapons(giveplayerid);
  2424.     format(string, sizeof(string), "Administrator %s reseted all weapons on player %s. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), params);
  2425.     SystemMessageToAll(string);
  2426.     format(string, sizeof(string), "Administrator %s reseted all weapons on player %s. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), params);
  2427.     print(string);
  2428.     gettime(hour, minute, second);
  2429.     getdate(year, month, day);
  2430.     format(string, sizeof(string), "Player %s reseted all weapons to player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2431.     ServerLog(string);
  2432.     }
  2433.     else
  2434.     {
  2435.     format(string, sizeof(string), "That player is not active.");
  2436.     SystemMessage(playerid, string);
  2437.     }
  2438.     return 1;
  2439. }
  2440.  
  2441. dcmd_restart(playerid, params[])
  2442. {
  2443.     #pragma unused params
  2444.     if (pInfo[playerid][pAdmin] == 0)
  2445.     {
  2446.     SystemMessage(playerid, "You are not Administrator.");
  2447.     return 1;
  2448.     }
  2449.     SystemMessageToAll("Current gamemode will restart in 5 seconds.");
  2450.     SetTimer("Restart", 5000, 0);
  2451.     return 1;
  2452. }
  2453.  
  2454. dcmd_lockserver(playerid, params[])
  2455. {
  2456.     #pragma unused params
  2457.     if (pInfo[playerid][pAdmin] == 0)
  2458.     {
  2459.     SystemMessage(playerid, "You are not Administrator.");
  2460.     return 1;
  2461.     }
  2462.     new string[MAX_STRING];
  2463.     IsServerLocked = true;
  2464.     format(string, sizeof(string), "Server has been locked by Administrator %s.", PlayerName(playerid));
  2465.     SystemMessageToAll(string);
  2466.     print(string);
  2467.     return 1;
  2468. }
  2469.  
  2470. dcmd_unlockserver(playerid, params[])
  2471. {
  2472.     #pragma unused params
  2473.     if (pInfo[playerid][pAdmin] == 0)
  2474.     {
  2475.     SystemMessage(playerid, "You are not Administrator.");
  2476.     return 1;
  2477.     }
  2478.     new string[MAX_STRING];
  2479.     IsServerLocked = false;
  2480.     format(string, sizeof(string), "Server has been unlocked by Administrator %s.", PlayerName(playerid));
  2481.     SystemMessageToAll(string);
  2482.     print(string);
  2483.     return 1;
  2484. }
  2485.  
  2486. dcmd_spec(playerid, params[])
  2487. {
  2488.     new index = 0;
  2489.     tmp2 = strtok(params, index);
  2490.     if (pInfo[playerid][pAdmin] == 0)
  2491.     {
  2492.         SystemMessage(playerid, "You are not Administrator.");
  2493.         return 1;
  2494.     }
  2495.     if(!strlen(tmp2))
  2496.     {
  2497.         SystemMessage(playerid, "Correct usage: '/spec [playername]'");
  2498.         return 1;
  2499.     }
  2500.     new string[MAX_STRING];
  2501.     new second, minute, hour, day, month, year;
  2502.     giveplayerid = ReturnUser(tmp2);
  2503.     if(IsPlayerConnected(giveplayerid))
  2504.     {
  2505.         TogglePlayerSpectating(playerid, 1);
  2506.         if(IsPlayerInAnyVehicle(giveplayerid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(giveplayerid));
  2507.         else PlayerSpectatePlayer(playerid, giveplayerid);
  2508.         SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid));
  2509.         gSpectateID[playerid] = giveplayerid;
  2510.         gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
  2511.         gettime(hour, minute, second);
  2512.         getdate(year, month, day);
  2513.         format(string, sizeof(string), "Player %s started spectating player %s on %d/%d/%d at %d:%d:%d.", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second);
  2514.         ServerLog(string);
  2515.         printf(string);
  2516.     }
  2517.     else
  2518.     {
  2519.     format(string, sizeof(string), "That player is not active.");
  2520.     SystemMessage(playerid, string);
  2521.     }
  2522.     return 1;
  2523. }
  2524.  
  2525. dcmd_specvehicle(playerid, params[])
  2526. {
  2527.     new index = 0;
  2528.     tmp2 = strtok(params, index);
  2529.     new specvehicleid;
  2530.     if (pInfo[playerid][pAdmin] == 0)
  2531.     {
  2532.     SystemMessage(playerid, "You are not Administrator.");
  2533.     return 1;
  2534.     }
  2535.     if(!strlen(tmp2))
  2536.     {
  2537.     SystemMessage(playerid, "Correct usage: '/specvehicle [vehicleid]'");
  2538.     return 1;
  2539.     }
  2540.     specvehicleid = strval(tmp2);
  2541.     if(specvehicleid < MAX_VEHICLES)
  2542.     {
  2543.     TogglePlayerSpectating(playerid, 1);
  2544.     PlayerSpectateVehicle(playerid, specvehicleid);
  2545.     gSpectateID[playerid] = specvehicleid;
  2546.     gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
  2547.     }
  2548.     else
  2549.     {
  2550.     SystemMessage(playerid, "Correct usage: '/specvehicle [vehicleid]'");
  2551.     }
  2552.     return 1;
  2553. }
  2554.  
  2555. dcmd_specoff(playerid, params[])
  2556. {
  2557.     #pragma unused params
  2558.     if (pInfo[playerid][pAdmin] == 0)
  2559.     {
  2560.     SystemMessage(playerid, "You are not Administrator.");
  2561.     return 1;
  2562.     }
  2563.     TogglePlayerSpectating(playerid, 0);
  2564.     gSpectateID[playerid] = INVALID_PLAYER_ID;
  2565.     gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
  2566.     return 1;
  2567. }
  2568.  
  2569. dcmd_settime(playerid, params[])
  2570. {
  2571.     new index = 0;
  2572.     tmp2 = strtok(params, index);
  2573.     new time;
  2574.     if (pInfo[playerid][pAdmin] == 0)
  2575.     {
  2576.     SystemMessage(playerid, "You are not Administrator.");
  2577.     return 1;
  2578.     }
  2579.     if(!strlen(tmp2) || !IsNumeric(tmp2))
  2580.     {
  2581.     SendClientMessage(playerid, COLOR_SYSTEM, "Correct usage: '/settime [hour]'");
  2582.     return 1;
  2583.     }
  2584.     time = strval(tmp2);
  2585.     SetWorldTime(time);
  2586.     SystemMessage(playerid, "New time setted.");
  2587.     return 1;
  2588. }
  2589.  
  2590. dcmd_cs(playerid, params[])
  2591. {
  2592.     new index = 0;
  2593.     tmp2 = strtok(params, index);
  2594.     new skin;
  2595.     if (pInfo[playerid][pAdmin] == 0)
  2596.     {
  2597.         SystemMessage(playerid, "You are not Administrator.");
  2598.         return 1;
  2599.     }
  2600.     if(!strlen(tmp2) || !IsNumeric(tmp2) || IsInvalidSkin(skin))
  2601.     {
  2602.         SystemMessage(playerid, "Correct usage: '/cs [skinid]'");
  2603.         return 1;
  2604.     }
  2605.     if(skin > 299 || skin < 0)
  2606.     {
  2607.         SystemMessage(playerid, "Pick a skin from 0-299.");
  2608.         return 1;
  2609.     }
  2610.     skin = strval(tmp2);
  2611.     SetPlayerSkin(playerid, skin);
  2612.     SystemMessage(playerid, "Skin changed.");
  2613.     return 1;
  2614. }
  2615.  
  2616. dcmd_setweather(playerid, params[])
  2617. {
  2618.     if (pInfo[playerid][pAdmin] == 0)
  2619.     {
  2620.         SystemMessage(playerid, "You are not Administrator.");
  2621.         return 1;
  2622.     }
  2623.     if(!strlen(params)) return SystemMessage(playerid, "Correct usage: '/setweather [weatherid]'");
  2624.     new string[MAX_STRING];
  2625.     new index = 0;
  2626.     tmp2 = strtok(params, index);
  2627.     new toweatherid = strval(tmp2);
  2628.     if(toweatherid < 41 && toweatherid > -1)
  2629.     {
  2630.         format(string, sizeof(string), "Setted new weather. (%d)", toweatherid);
  2631.         SystemMessage(playerid, string);
  2632.         format(string, sizeof(string), "weather %d", toweatherid);
  2633.         SendRconCommandEx(0, string);
  2634.     }
  2635.     else
  2636.     {
  2637.         SystemMessage(playerid, "Enter weather id from 0 to 40.");
  2638.     }
  2639.     return 1;
  2640. }
  2641.  
  2642. dcmd_setgravity(playerid, params[])
  2643. {
  2644.     if (pInfo[playerid][pAdmin] == 0)
  2645.     {
  2646.         SystemMessage(playerid, "You are not Administrator.");
  2647.         return 1;
  2648.     }
  2649.     if(!strlen(params)) return SystemMessage(playerid, "Correct usage: '/setgravity [gravity]'");
  2650.     new string[MAX_STRING];
  2651.     new index = 0;
  2652.     tmp2 = strtok(params, index);
  2653.     new Float:togravityid = floatstr(tmp2);
  2654.     if(togravityid < 41 && togravityid > -1)
  2655.     {
  2656.         format(string, sizeof(string), "Setted new gravity. (%f)", togravityid);
  2657.         SystemMessage(playerid, string);
  2658.         format(string, sizeof(string), "gravity %f", togravityid);
  2659.         SendRconCommandEx(0, string);
  2660.     }
  2661.     else
  2662.     {
  2663.         SystemMessage(playerid, "Enter gravity id from 0 to 40.");
  2664.     }
  2665.     return 1;
  2666. }
  2667.  
  2668. dcmd_whois(playerid, params[])
  2669. {
  2670.     new index = 0;
  2671.     new playermoney;
  2672.     tmp2 = strtok(params, index);
  2673.     if (pInfo[playerid][pAdmin] == 0)
  2674.     {
  2675.         SystemMessage(playerid, "You are not Administrator.");
  2676.         return 1;
  2677.     }
  2678.     if(!strlen(tmp2))
  2679.     {
  2680.         SystemMessage(playerid, "Correct usage: '/whois [playername]'");
  2681.         return 1;
  2682.     }
  2683.     new string[MAX_STRING];
  2684.     giveplayerid = ReturnUser(tmp2);
  2685.     if (IsPlayerConnected(giveplayerid))
  2686.     {
  2687.         playermoney = GetPlayerMoney(giveplayerid);
  2688.         format(string, sizeof(string), "Whois (Name: %s, ID: %d, money: $%d)", PlayerName(giveplayerid), giveplayerid, playermoney);
  2689.         SystemMessage(playerid, string);
  2690.     }
  2691.     else
  2692.     {
  2693.         format(string, sizeof(string), "That player is not active.");
  2694.         SystemMessage(playerid, string);
  2695.     }
  2696.     return 1;
  2697. }
  2698.  
  2699. dcmd_skick(playerid, params[])
  2700. {
  2701.     new index = 0;
  2702.     tmp2 = strtok(params, index);
  2703.     if (pInfo[playerid][pAdmin] == 0)
  2704.     {
  2705.         SystemMessage(playerid, "You are not Administrator.");
  2706.         return 1;
  2707.     }
  2708.     if(!strlen(tmp2))
  2709.     {
  2710.         SystemMessage(playerid, "Correct usage: '/skick [playername] [reason]'");
  2711.         return 1;
  2712.     }
  2713.     new string[MAX_STRING];
  2714.     new second, minute, hour, day, month, year;
  2715.     giveplayerid = ReturnUser(tmp2);
  2716.     if (IsPlayerConnected(giveplayerid))
  2717.     {
  2718.         format(string, sizeof(string), "You have been silently kicked by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2719.         SystemMessage(giveplayerid, string);
  2720.         format(string, sizeof(string), "%s has been silently kicked by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2721.         print(string);
  2722.         gettime(hour, minute, second);
  2723.         getdate(year, month, day);
  2724.         format(string, sizeof(string), "Player %s silently kicked player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2725.         ServerLog(string);
  2726.         KickPlayer(giveplayerid, "");
  2727.     }
  2728.     else
  2729.     {
  2730.         format(string, sizeof(string), "That player is not active.");
  2731.         SystemMessage(playerid, string);
  2732.     }
  2733.     return 1;
  2734. }
  2735.  
  2736. dcmd_sban(playerid, params[])
  2737. {
  2738.     new index = 0;
  2739.     tmp2 = strtok(params, index);
  2740.     if (pInfo[playerid][pAdmin] == 0)
  2741.     {
  2742.         SystemMessage(playerid, "You are not Administrator.");
  2743.         return 1;
  2744.     }
  2745.     if(!strlen(tmp2))
  2746.     {
  2747.         SystemMessage(playerid, "Correct usage: '/sban [playername] [reason]'");
  2748.         return 1;
  2749.     }
  2750.     new string[MAX_STRING];
  2751.     new second, minute, hour, day, month, year;
  2752.     giveplayerid = ReturnUser(tmp2);
  2753.     if (IsPlayerConnected(giveplayerid))
  2754.     {
  2755.         format(string, sizeof(string), "You have been silently banned by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2756.         SystemMessage(giveplayerid, string);
  2757.         if(dini_Exists(KICKPORTAL))
  2758.         {
  2759.             new File:fhandle;
  2760.             new temp[256];
  2761.             fhandle = fopen(KICKPORTAL, io_append);
  2762.             format(temp, sizeof(temp), "\n%s", PlayerName(giveplayerid));
  2763.             fwrite(fhandle, temp);
  2764.             fclose(fhandle);
  2765.         }
  2766.         format(string, sizeof(string), "%s has been silently banned by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2767.         print(string);
  2768.         gettime(hour, minute, second);
  2769.         getdate(year, month, day);
  2770.         format(string, sizeof(string), "Player %s silently banned player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2771.         ServerLog(string);
  2772.         KickPlayer(giveplayerid, "");
  2773.     }
  2774.     else
  2775.     {
  2776.         format(string, sizeof(string), "That player is not active.");
  2777.         SystemMessage(playerid, string);
  2778.     }
  2779.     return 1;
  2780. }
  2781.  
  2782. dcmd_sbanip(playerid, params[])
  2783. {
  2784.     new index = 0;
  2785.     tmp2 = strtok(params, index);
  2786.     if (pInfo[playerid][pAdmin] == 0)
  2787.     {
  2788.         SystemMessage(playerid, "You are not Administrator.");
  2789.         return 1;
  2790.     }
  2791.     if(!strlen(tmp2))
  2792.     {
  2793.         SystemMessage(playerid, "Correct usage: '/sbanip [playername] [reason]'");
  2794.         return 1;
  2795.     }
  2796.     new string[MAX_STRING];
  2797.     new second, minute, hour, day, month, year;
  2798.     giveplayerid = ReturnUser(tmp2);
  2799.     if (IsPlayerConnected(giveplayerid))
  2800.     {
  2801.         format(string, sizeof(string), "You have been silently IP banned by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2802.         SendClientMessage(giveplayerid, COLOR_SYSTEM, string);
  2803.         format(string, sizeof(string), "%s has been silently IP banned by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2804.         print(string);
  2805.         gettime(hour, minute, second);
  2806.         getdate(year, month, day);
  2807.         format(string,sizeof(string),"Player %s silently IP banned player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2808.         ServerLog(string);
  2809.         BanPlayer(giveplayerid, "");
  2810.     }
  2811.     else
  2812.     {
  2813.         format(string, sizeof(string), "That player is not active.");
  2814.         SendClientMessage(playerid, COLOR_SYSTEM, string);
  2815.     }
  2816.     return 1;
  2817. }
  2818.  
  2819. dcmd_sfreeze(playerid, params[])
  2820. {
  2821.     new index = 0;
  2822.     tmp2 = strtok(params, index);
  2823.     if (pInfo[playerid][pAdmin] == 0)
  2824.     {
  2825.         SystemMessage(playerid, "You are not Administrator.");
  2826.         return 1;
  2827.     }
  2828.     if(!strlen(tmp2))
  2829.     {
  2830.         SystemMessage(playerid, "Correct usage: '/sfreeze [playername] [reason]'");
  2831.         return 1;
  2832.     }
  2833.     new string[MAX_STRING];
  2834.     new second, minute, hour, day, month, year;
  2835.     giveplayerid = ReturnUser(tmp2);
  2836.     if (IsPlayerConnected(giveplayerid))
  2837.     {
  2838.         format(string, sizeof(string), "You have been silently freezed by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2839.         SystemMessage(giveplayerid, string);
  2840.         FreezePlayer(giveplayerid, "");
  2841.         format(string, sizeof(string), "%s has been silently freezed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2842.         print(string);
  2843.         gettime(hour, minute, second);
  2844.         getdate(year, month, day);
  2845.         format(string, sizeof(string), "Player %s silently freezed player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2846.         ServerLog(string);
  2847.     }
  2848.     else
  2849.     {
  2850.         format(string, sizeof(string), "That player is not active.");
  2851.         SystemMessage(playerid, string);
  2852.     }
  2853.     return 1;
  2854. }
  2855.  
  2856. dcmd_sunfreeze(playerid, params[])
  2857. {
  2858.     new index = 0;
  2859.     tmp2 = strtok(params, index);
  2860.     if (pInfo[playerid][pAdmin] == 0)
  2861.     {
  2862.         SystemMessage(playerid, "You are not Administrator.");
  2863.         return 1;
  2864.     }
  2865.     if(!strlen(tmp2))
  2866.     {
  2867.         SystemMessage(playerid, "Correct usage: '/sunfreeze [playername] [reason]'");
  2868.         return 1;
  2869.     }
  2870.     new string[MAX_STRING];
  2871.     new second, minute, hour, day, month, year;
  2872.     giveplayerid = ReturnUser(tmp2);
  2873.     if (IsPlayerConnected(giveplayerid))
  2874.     {
  2875.         format(string, sizeof(string), "You have been silently unfreezed by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2876.         SystemMessage(giveplayerid, string);
  2877.         UnfreezePlayer(giveplayerid, "");
  2878.         format(string, sizeof(string), "%s has been silently unfreezed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2879.         print(string);
  2880.         gettime(hour, minute, second);
  2881.         getdate(year, month, day);
  2882.         format(string, sizeof(string), "Player %s silently unfreezed player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2883.         ServerLog(string);
  2884.     }
  2885.     else
  2886.     {
  2887.         format(string, sizeof(string), "That player is not active.");
  2888.         SystemMessage(playerid, string);
  2889.     }
  2890.     return 1;
  2891. }
  2892.  
  2893. dcmd_skillplayer(playerid, params[])
  2894. {
  2895.     new index = 0;
  2896.     tmp2 = strtok(params, index);
  2897.     if (pInfo[playerid][pAdmin] == 0)
  2898.     {
  2899.         SystemMessage(playerid, "You are not Administrator.");
  2900.         return 1;
  2901.     }
  2902.     if(!strlen(tmp2))
  2903.     {
  2904.         SystemMessage(playerid, "Correct usage: '/skillplayer [playername] [reason]'");
  2905.         return 1;
  2906.     }
  2907.     new string[MAX_STRING];
  2908.     new second, minute, hour, day, month, year;
  2909.     giveplayerid = ReturnUser(tmp2);
  2910.     if (IsPlayerConnected(giveplayerid))
  2911.     {
  2912.         format(string, sizeof(string), "You have been silently killed by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2913.         SystemMessage(giveplayerid, string);
  2914.         KillPlayer(giveplayerid, "");
  2915.         format(string, sizeof(string), "%s has been silently killed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2916.         print(string);
  2917.         gettime(hour, minute, second);
  2918.         getdate(year, month, day);
  2919.         format(string, sizeof(string), "Player %s silently killed player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2920.         ServerLog(string);
  2921.     }
  2922.     else
  2923.     {
  2924.         format(string, sizeof(string), "That player is not active.");
  2925.         SystemMessage(playerid, string);
  2926.     }
  2927.     return 1;
  2928. }
  2929.  
  2930. dcmd_sjail(playerid, params[])
  2931. {
  2932.     new index = 0;
  2933.     tmp2 = strtok(params, index);
  2934.     if (pInfo[playerid][pAdmin] == 0)
  2935.     {
  2936.         SystemMessage(playerid, "You are not Administrator.");
  2937.         return 1;
  2938.     }
  2939.     if(!strlen(tmp2))
  2940.     {
  2941.         SystemMessage(playerid, "Correct usage: '/sjail [playername] [reason]'");
  2942.         return 1;
  2943.     }
  2944.     new string[MAX_STRING];
  2945.     new second, minute, hour, day, month, year;
  2946.     giveplayerid = ReturnUser(tmp2);
  2947.     if (IsPlayerConnected(giveplayerid))
  2948.     {
  2949.         format(string, sizeof(string), "You have been silently jailed by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2950.         SystemMessage(giveplayerid, string);
  2951.         JailPlayer(giveplayerid, "");
  2952.         format(string, sizeof(string), "%s has been silently jailed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2953.         print(string);
  2954.         gettime(hour, minute, second);
  2955.         getdate(year, month, day);
  2956.         format(string, sizeof(string), "Player %s silently jailed player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2957.         ServerLog(string);
  2958.     }
  2959.     else
  2960.     {
  2961.         format(string, sizeof(string), "That player is not active.");
  2962.         SystemMessage(playerid, string);
  2963.     }
  2964.     return 1;
  2965. }
  2966.  
  2967. dcmd_sunjail(playerid, params[])
  2968. {
  2969.     new index = 0;
  2970.     tmp2 = strtok(params, index);
  2971.     if (pInfo[playerid][pAdmin] == 0)
  2972.     {
  2973.         SystemMessage(playerid, "You are not Administrator.");
  2974.         return 1;
  2975.     }
  2976.     if(!strlen(tmp2))
  2977.     {
  2978.         SystemMessage(playerid, "Correct usage: '/sunjail [playername] [reason]'");
  2979.         return 1;
  2980.     }
  2981.     new string[MAX_STRING];
  2982.     new second, minute, hour, day, month, year;
  2983.     giveplayerid = ReturnUser(tmp2);
  2984.     if (IsPlayerConnected(giveplayerid))
  2985.     {
  2986.         format(string, sizeof(string), "You have been silently unjailed by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  2987.         SystemMessage(giveplayerid, string);
  2988.         UnjailPlayer(giveplayerid, "");
  2989.         format(string, sizeof(string), "%s has been silently unjailed by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  2990.         print(string);
  2991.         gettime(hour, minute, second);
  2992.         getdate(year, month, day);
  2993.         format(string, sizeof(string), "Player %s silently unjailed player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  2994.         ServerLog(string);
  2995.     }
  2996.     else
  2997.     {
  2998.         format(string, sizeof(string), "That player is not active.");
  2999.         SystemMessage(playerid, string);
  3000.     }
  3001.     return 1;
  3002. }
  3003.  
  3004. dcmd_sslap(playerid, params[])
  3005. {
  3006.     new index = 0;
  3007.     tmp2 = strtok(params, index);
  3008.     if (pInfo[playerid][pAdmin] == 0)
  3009.     {
  3010.         SystemMessage(playerid, "You are not Administrator.");
  3011.         return 1;
  3012.     }
  3013.     if(!strlen(tmp2))
  3014.     {
  3015.         SystemMessage(playerid, "Correct usage: '/sslap [playername] [reason]'");
  3016.         return 1;
  3017.     }
  3018.     new string[MAX_STRING];
  3019.     new second, minute, hour, day, month, year;
  3020.     giveplayerid = ReturnUser(tmp2);
  3021.     if (IsPlayerConnected(giveplayerid))
  3022.     {
  3023.         format(string, sizeof(string), "You have been silently slapped by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  3024.         SystemMessage(giveplayerid, string);
  3025.         SlapPlayer(giveplayerid, "");
  3026.         format(string, sizeof(string), "%s has been silently slapped by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  3027.         print(string);
  3028.         gettime(hour, minute, second);
  3029.         getdate(year, month, day);
  3030.         format(string, sizeof(string), "Player %s silently slapped player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  3031.         ServerLog(string);
  3032.     }
  3033.     else
  3034.     {
  3035.         format(string, sizeof(string), "That player is not active.");
  3036.         SystemMessage(playerid, string);
  3037.     }
  3038.     return 1;
  3039. }
  3040.  
  3041. dcmd_smute(playerid, params[])
  3042. {
  3043.     new index = 0;
  3044.     tmp2 = strtok(params, index);
  3045.     if (pInfo[playerid][pAdmin] == 0)
  3046.     {
  3047.         SystemMessage(playerid, "You are not Administrator.");
  3048.         return 1;
  3049.     }
  3050.     if(!strlen(tmp2))
  3051.     {
  3052.         SystemMessage(playerid, "Correct usage: '/smute [playername] [reason]'");
  3053.         return 1;
  3054.     }
  3055.     new string[MAX_STRING];
  3056.     new second, minute, hour, day, month, year;
  3057.     giveplayerid = ReturnUser(tmp2);
  3058.     if (IsPlayerConnected(giveplayerid))
  3059.     {
  3060.         format(string, sizeof(string), "You have been silently muted by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  3061.         SystemMessage(giveplayerid, string);
  3062.         MutePlayer(giveplayerid, "");
  3063.         format(string, sizeof(string), "%s has been silently muted by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  3064.         print(string);
  3065.         gettime(hour, minute, second);
  3066.         getdate(year, month, day);
  3067.         format(string, sizeof(string), "Player %s silently muted player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  3068.         ServerLog(string);
  3069.     }
  3070.     else
  3071.     {
  3072.         format(string, sizeof(string), "That player is not active.");
  3073.         SystemMessage(playerid, string);
  3074.     }
  3075.     return 1;
  3076. }
  3077.  
  3078. dcmd_sunmute(playerid, params[])
  3079. {
  3080.     new index = 0;
  3081.     tmp2 = strtok(params, index);
  3082.     if (pInfo[playerid][pAdmin] == 0)
  3083.     {
  3084.         SystemMessage(playerid, "You are not Administrator.");
  3085.         return 1;
  3086.     }
  3087.     if(!strlen(tmp2))
  3088.     {
  3089.         SystemMessage(playerid, "Correct usage: '/sunmute [playername] [reason]'");
  3090.         return 1;
  3091.     }
  3092.     new string[MAX_STRING];
  3093.     new second, minute, hour, day, month, year;
  3094.     giveplayerid = ReturnUser(tmp2);
  3095.     if (IsPlayerConnected(giveplayerid))
  3096.     {
  3097.         format(string, sizeof(string), "You have been silently unmuted by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  3098.         SystemMessage(giveplayerid, string);
  3099.         UnmutePlayer(giveplayerid, "");
  3100.         format(string, sizeof(string), "%s has been silently unmuted by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  3101.         print(string);
  3102.         gettime(hour, minute, second);
  3103.         getdate(year, month, day);
  3104.         format(string, sizeof(string), "Player %s silently unmuted player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  3105.         ServerLog(string);
  3106.     }
  3107.     else
  3108.     {
  3109.         format(string, sizeof(string), "That player is not active.");
  3110.         SystemMessage(playerid, string);
  3111.     }
  3112.     return 1;
  3113. }
  3114.  
  3115. dcmd_sexplodeplayer(playerid, params[])
  3116. {
  3117.     new index = 0;
  3118.     tmp2 = strtok(params, index);
  3119.     if (pInfo[playerid][pAdmin] == 0)
  3120.     {
  3121.         SystemMessage(playerid, "You are not Administrator.");
  3122.         return 1;
  3123.     }
  3124.     if(!strlen(tmp2))
  3125.     {
  3126.         SystemMessage(playerid, "Correct usage: '/sexplodeplayer [playername] [reason]'");
  3127.         return 1;
  3128.     }
  3129.     new string[MAX_STRING];
  3130.     new second, minute, hour, day, month, year;
  3131.     giveplayerid = ReturnUser(tmp2);
  3132.     if (IsPlayerConnected(giveplayerid))
  3133.     {
  3134.         format(string, sizeof(string), "You have been silently exploded by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  3135.         SystemMessage(giveplayerid, string);
  3136.         ExplodePlayer(giveplayerid, "");
  3137.         format(string, sizeof(string), "%s has been silently exploded by Administrator %s. (Reason: '%s')", PlayerName(giveplayerid), PlayerName(playerid), params);
  3138.         print(string);
  3139.         gettime(hour, minute, second);
  3140.         getdate(year, month, day);
  3141.         format(string, sizeof(string), "Player %s silently exploded player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  3142.         ServerLog(string);
  3143.     }
  3144.     else
  3145.     {
  3146.         format(string, sizeof(string), "That player is not active.");
  3147.         SystemMessage(playerid, string);
  3148.     }
  3149.     return 1;
  3150. }
  3151.  
  3152. dcmd_sresetweapons(playerid, params[])
  3153. {
  3154.     new index = 0;
  3155.     tmp2 = strtok(params, index);
  3156.     if (pInfo[playerid][pAdmin] == 0)
  3157.     {
  3158.         SystemMessage(playerid, "You are not Administrator.");
  3159.         return 1;
  3160.     }
  3161.     if(!strlen(tmp2))
  3162.     {
  3163.         SystemMessage(playerid, "Correct usage: '/sresetweapons [playername] [reason]'");
  3164.         return 1;
  3165.     }
  3166.     new string[MAX_STRING];
  3167.     new second, minute, hour, day, month, year;
  3168.     giveplayerid = ReturnUser(tmp2);
  3169.     if (IsPlayerConnected(giveplayerid))
  3170.     {
  3171.         format(string, sizeof(string), "Your all weapons have been silently reseted by Administrator %s. (Reason: '%s')", PlayerName(playerid), params);
  3172.         SystemMessage(giveplayerid, string);
  3173.         ResetPlayerWeapons(giveplayerid);
  3174.         format(string, sizeof(string), "Administrator %s silently reseted all weapons on player %s. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), params);
  3175.         print(string);
  3176.         gettime(hour, minute, second);
  3177.         getdate(year, month, day);
  3178.         format(string, sizeof(string), "Player %s silently reseted all weapons to player %s on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), PlayerName(giveplayerid), month, day, year, hour, minute, second, params);
  3179.         ServerLog(string);
  3180.     }
  3181.     else
  3182.     {
  3183.         format(string, sizeof(string), "That player is not active.");
  3184.         SystemMessage(playerid, string);
  3185.     }
  3186.     return 1;
  3187. }
  3188.  
  3189. dcmd_createmoney(playerid, params[])
  3190. {
  3191.     new index = 0;
  3192.     tmp2 = strtok(params, index);
  3193.     new createmoney;
  3194.     new string[MAX_STRING];
  3195.     if (pInfo[playerid][pAdmin] == 0)
  3196.     {
  3197.         SystemMessage(playerid, "You are not Administrator.");
  3198.         return 1;
  3199.     }
  3200.     if(!strlen(params))
  3201.     {
  3202.         SystemMessage(playerid, "Correct usage: '/createmoney [amount]'");
  3203.         return 1;
  3204.     }
  3205.     if (createmoney < 0)
  3206.     {
  3207.         SystemMessage(playerid, "Correct usage: '/createmoney [amount]'");
  3208.         return 1;
  3209.     }
  3210.     createmoney = strval(tmp2);
  3211.     format(string, sizeof(string), "You created $%d.", createmoney);
  3212.     SystemMessage(playerid, string);
  3213.     GivePlayerMoney(playerid, createmoney);
  3214.     return 1;
  3215. }
  3216.  
  3217. dcmd_deletemoney(playerid, params[])
  3218. {
  3219.     new index = 0;
  3220.     tmp2 = strtok(params, index);
  3221.     new deletemoney;
  3222.     new string[MAX_STRING];
  3223.     if (pInfo[playerid][pAdmin] == 0)
  3224.     {
  3225.         SystemMessage(playerid, "You are not Administrator.");
  3226.         return 1;
  3227.     }
  3228.     if(!strlen(params))
  3229.     {
  3230.         SystemMessage(playerid, "Correct usage: '/deletemoney [amount]'");
  3231.         return 1;
  3232.     }
  3233.     if (deletemoney < 0)
  3234.     {
  3235.         SystemMessage(playerid, "Correct usage: '/deletemoney [amount]'");
  3236.         return 1;
  3237.     }
  3238.     if (deletemoney > GetPlayerMoney(playerid))
  3239.     {
  3240.         SystemMessage(playerid, "You don't have that much money to delete.");
  3241.         return 1;
  3242.     }
  3243.     deletemoney = strval(tmp2);
  3244.     format(string, sizeof(string), "You deleted $%d.", deletemoney);
  3245.     SystemMessage(playerid, string);
  3246.     GivePlayerMoney(playerid, -deletemoney);
  3247.     return 1;
  3248. }
  3249.  
  3250. dcmd_srestart(playerid, params[])
  3251. {
  3252.     #pragma unused params
  3253.     if (pInfo[playerid][pAdmin] == 0)
  3254.     {
  3255.         SystemMessage(playerid, "You are not Administrator.");
  3256.         return 1;
  3257.     }
  3258.     SystemMessage(playerid, "Current server gamemode will now silently restart in 5 seconds.");
  3259.     SetTimer("Restart", 5000, 0);
  3260.     return 1;
  3261. }
  3262.  
  3263. dcmd_slockserver(playerid, params[])
  3264. {
  3265.     #pragma unused params
  3266.     if (pInfo[playerid][pAdmin] == 0)
  3267.     {
  3268.         SystemMessage(playerid, "You are not Administrator.");
  3269.         return 1;
  3270.     }
  3271.     IsServerLocked = true;
  3272.     SystemMessage(playerid, "You have silently locked server.");
  3273.     return 1;
  3274. }
  3275.  
  3276. dcmd_sunlockserver(playerid, params[])
  3277. {
  3278.     #pragma unused params
  3279.     if (pInfo[playerid][pAdmin] == 0)
  3280.     {
  3281.         SystemMessage(playerid, "You are not Administrator.");
  3282.         return 1;
  3283.     }
  3284.     IsServerLocked = false;
  3285.     SystemMessage(playerid, "You have silently unlocked server.");
  3286.     return 1;
  3287. }
  3288.  
  3289. dcmd_setadmin(playerid, params[])
  3290. {
  3291.     if(pInfo[playerid][pAdmin] == 0) return SystemMessage(playerid, "You are not Administrator.");
  3292.     new alevel, str[128];
  3293.     if(sscanf(params, "ud", giveplayerid, alevel)) return SystemMessage(playerid, "Correct usage: '/setadmin [playername] [level]'");
  3294.     if(!IsPlayerConnected(giveplayerid)) return SystemMessage(playerid, "This player is not active.");
  3295.     if(alevel < 0) return SystemMessage(playerid, "Invalid level!");
  3296.     GetName(giveplayerid, playername);
  3297.     GetName(playerid, adminname);
  3298.     pInfo[giveplayerid][pAdmin] = alevel;
  3299.     format(str, sizeof(str), "Administrator %s (%d) has set your admin level to %d", adminname, playerid, alevel);
  3300.     SystemMessage(giveplayerid, str);
  3301.     format(str, sizeof(str), "You have set %s (%d) admin level to %d", playername, giveplayerid, alevel);
  3302.     SystemMessage(playerid, str);
  3303.     return 1;
  3304. }
  3305.  
  3306. dcmd_setkills(playerid, params[])
  3307. {
  3308.     if(pInfo[playerid][pAdmin] == 0) return SystemMessage(playerid, "You are not Administrator.");
  3309.     new amount, str[128];
  3310.     if(sscanf(params, "ud", giveplayerid, amount)) return SystemMessage(playerid, "Correct usage: '/setkills [playername] [amount]'");
  3311.     if(!IsPlayerConnected(giveplayerid)) return SystemMessage(playerid, "This player is not active.");
  3312.     if(amount < 0) return SystemMessage(playerid, "Invalid amount!");
  3313.     GetName(giveplayerid, playername);
  3314.     GetName(playerid, adminname);
  3315.     pInfo[giveplayerid][pKills] = amount;
  3316.     SetPlayerScore(giveplayerid, amount);
  3317.     format(str, sizeof(str), "Administrator %s (%d) has set your kills to %d", adminname, playerid, amount);
  3318.     SystemMessage(giveplayerid, str);
  3319.     format(str, sizeof(str), "You have set %s (%d) kills to %d", playername, giveplayerid, amount);
  3320.     SystemMessage(playerid, str);
  3321.     return 1;
  3322. }
  3323.  
  3324. dcmd_ahelp(playerid, params[])
  3325. {
  3326.     #pragma unused params
  3327.     if(pInfo[playerid][pAdmin] == 0) return SystemMessage(playerid, "You are not Administrator.");
  3328.     SystemMessage(playerid, "  /kick  /ban  /banip  /unbanip  /freeze  /unfreeze  /killplayer  /jail  /unjail  /slap  /mute  /unmute");
  3329.     SystemMessage(playerid, "  /explodeplayer  /resetweapons  /restart  /lockserver  /unlockserver  /spec  /specvehicle  /specoff");
  3330.     SystemMessage(playerid, "  /settime  /setweather  /setgravity  /cs  whois  /skick  /sban  /sbanip  /sfreeze  /sunfreeze  /skillplayer");
  3331.     SystemMessage(playerid, "  /sjail  /sunjail  /sslap  /smute  /sunmute  /sexplodeplayer  /sresetweapons  /createmoney  /deletemoney");
  3332.     SystemMessage(playerid, "  /srestart  /slockserver  /sunlockserver  /setadmin  /setkills  /goto");
  3333.     return 1;
  3334. }
  3335.  
  3336. dcmd_goto(playerid, params[])
  3337. {
  3338.     if(pInfo[playerid][pAdmin] == 0) return SystemMessage(playerid, "You are not Administrator.");
  3339.     if(sscanf(params, "u", giveplayerid)) return SystemMessage(playerid, "Correct usage: '/goto [playername]'");
  3340.     if(!IsPlayerConnected(giveplayerid) || giveplayerid == playerid) return SystemMessage(playerid, "This player is not active.");
  3341.     new str[128];
  3342.     GetName(giveplayerid, playername);
  3343.     new Float:posx, Float:posy, Float:posz;
  3344.     GetPlayerPos(giveplayerid, posx, posy, posz);
  3345.     SetPlayerPos(playerid, posx+1, posy+1, posz);
  3346.     SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid));
  3347.     format(str, sizeof(str), "You have teleported to %s (%d)", playername, giveplayerid);
  3348.     SystemMessage(playerid, str);
  3349.     return 1;
  3350. }
  3351.  
  3352. stock GetRandomID()
  3353. {
  3354.     new randn;
  3355.     do
  3356.     {
  3357.         randn = random(MAX_PLAYERS);
  3358.     }
  3359.     while(!IsPlayerConnected(randn));
  3360.     return randn;
  3361. }
  3362.  
  3363. public OnPlayerText(playerid, text[])
  3364. {
  3365.     if (IsPlayerMuted[playerid] == 1)
  3366.     {
  3367.         SystemMessage(playerid, "You can't speak while you are muted!");
  3368.         return 0;
  3369.     }
  3370.     if(text[0] == ';')
  3371.     {
  3372.         new str[128];
  3373.         new playername[MAX_PLAYER_NAME];
  3374.         GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  3375.         format(str, sizeof(str), "[TEAM] %s: %s", playername, text[1]);
  3376.         for(new i = 0; i < MAX_PLAYERS; i++)
  3377.             if(IsPlayerConnected(i) && gTeam[i] == gTeam[playerid])
  3378.                 SendClientMessage(i, 0xFFFF30FF, str);
  3379.         return 0;
  3380.     }
  3381.     return 1;
  3382. }
  3383.  
  3384. public Information()
  3385. {
  3386.     switch(InfoMessage)
  3387.     {
  3388.         case 0:
  3389.         {
  3390.             SendClientMessageToAll(COLOR_YELLOW, "If you spot a cheater/abuser, please use /report to report them");
  3391.             InfoMessage = 1;
  3392.         }
  3393.         case 1:
  3394.         {
  3395.             SendClientMessageToAll(COLOR_YELLOW, "Type /commands to see available commands");
  3396.             InfoMessage = 2;
  3397.         }
  3398.         case 2:
  3399.         {
  3400.             SendClientMessageToAll(COLOR_YELLOW, "Put ; in front of your text for team chat");
  3401.             InfoMessage = 3;
  3402.         }
  3403.         case 3:
  3404.         {
  3405.             SendClientMessageToAll(COLOR_YELLOW, "Visit our forums at http://www.sampatwar.com");
  3406.             InfoMessage = 0;
  3407.         }
  3408.     }
  3409.     return 1;
  3410. }
  3411. /*
  3412. public SaveAllStats()
  3413. {
  3414.     new playername[MAX_PLAYER_NAME];
  3415.     for(new i=0; i<MAX_PLAYERS; i++)
  3416.     {
  3417.         if(IsPlayerConnected(i))
  3418.         {
  3419.             if(Registered[i])
  3420.             {
  3421.                 GetPlayerName(i, playername, MAX_PLAYER_NAME);
  3422.                 dUserSetINT(playername).("Money",GetPlayerMoney(i));
  3423.                 dUserSetINT(playername).("Kills",pInfo[i][pKills]);
  3424.                 dUserSetINT(playername).("Deaths",pInfo[i][pDeaths]);
  3425.                 dUserSetINT(playername).("Admin",pInfo[i][pAdmin]);
  3426.                 dUserSetINT(playername).("Wantedlvl",GetPlayerWantedLevel(i));
  3427.             }
  3428.         }
  3429.     }
  3430.     print("All players stats saved!");
  3431. }*/
  3432.  
  3433. //PlayerName
  3434. stock PlayerName(playerid)
  3435. {
  3436.     new name[MAX_PLAYER_NAME];
  3437.     GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  3438.     return name;
  3439. }
  3440.  
  3441. //SystemMsg
  3442. public SystemMsg(playerid,msg[])
  3443. {
  3444.     if((IsPlayerConnected(playerid))&&(strlen(msg)>0))
  3445.     {
  3446.         SendClientMessage(playerid,COLOR_RED,msg);
  3447.     }
  3448.     return 1;
  3449. }
  3450.  
  3451. //------------------------------------------------------------------------------
  3452.  
  3453. ShowStats(playerid)
  3454. {
  3455.     new tmpTotal[128];
  3456.     new playername[MAX_PLAYER_NAME];
  3457.     GetPlayerName(playerid, playername, sizeof(playername));
  3458.     format(tmpTotal, sizeof(tmpTotal), "%s's Stats: Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d",playername,pInfo[playerid][pKills],pInfo[playerid][pDeaths], (Float:pInfo[playerid][pKills]/Float:pInfo[playerid][pDeaths]),GetPlayerMoney(playerid));
  3459.     SendClientMessage(playerid,COLOR_GREEN, tmpTotal);
  3460. }
  3461.  
  3462. stock IsNumeric(const string[])
  3463. {
  3464.     for (new i = 0, j = strlen(string); i < j; i++)
  3465.     if (string[i] > '9' || string[i] < '0') return 0;
  3466.     return 1;
  3467. }
  3468.  
  3469. stock ReturnPlayerID(PlayerName[])
  3470. {
  3471.     for(new i = 0; i < MAX_PLAYERS; i++)
  3472.     if(IsPlayerConnected(i))
  3473.     {
  3474.         new name[MAX_PLAYER_NAME];
  3475.         GetPlayerName(i,name,MAX_PLAYER_NAME);
  3476.         if(strfind(name,PlayerName,true) != -1) return i;
  3477.     }
  3478.     return INVALID_PLAYER_ID;
  3479. }
  3480.  
  3481. stock ReturnWeaponID(WeaponName[])
  3482. {
  3483.     if(strfind("molotov",WeaponName,true) != -1) return 18;
  3484.     for(new i = 0; i <= 46; i++)
  3485.     {
  3486.         switch(i)
  3487.         {
  3488.             case 0,19,20,21,44,45: continue;
  3489.             default:
  3490.             {
  3491.                 new name[24];
  3492.                 GetWeaponName(i,name,24);
  3493.                 if(strfind(name,WeaponName,true) != -1) return i;
  3494.             }
  3495.         }
  3496.     }
  3497.     return -1;
  3498. }
  3499.  
  3500. stock SystemMessage(playerid, message[])
  3501. {
  3502.     if ((IsPlayerConnected(playerid)) && (strlen(message) > 0))
  3503.     {
  3504.         SendClientMessage(playerid, COLOR_SYSTEM, message);
  3505.     }
  3506.     return 1;
  3507. }
  3508.  
  3509. stock SystemMessageEx(playerid, time, message[])
  3510. {
  3511.     if ((IsPlayerConnected(playerid)) && (strlen(message) > 0))
  3512.     {
  3513.         Wait(time);
  3514.         SystemMessage(playerid, message);
  3515.     }
  3516.     return 1;
  3517. }
  3518.  
  3519. stock SystemMessageToAll(message[])
  3520. {
  3521.     if(strlen(message) > 0)
  3522.     {
  3523.         for(new i=0; i<MAX_PLAYERS; i++)
  3524.         {
  3525.             if (IsPlayerConnected(i))
  3526.             {
  3527.                 SendClientMessage(i, COLOR_SYSTEM, message);
  3528.             }
  3529.         }
  3530.     }
  3531.     return 1;
  3532. }
  3533.  
  3534. stock SendMessageToAdmins(string[])
  3535. {
  3536.     for (new i = 0; i < MAX_PLAYERS; i++)
  3537.     {
  3538.         if (IsPlayerConnected(i))
  3539.         {
  3540.             if (pInfo[i][pAdmin] > 0)
  3541.             {
  3542.                 SystemMessage(i, string);
  3543.             }
  3544.         }
  3545.     }
  3546.     return 1;
  3547. }
  3548.  
  3549. stock PlayerIp(playerid)
  3550. {
  3551.     new ip[16];
  3552.     GetPlayerIp(playerid, ip, sizeof(ip));
  3553.     return ip;
  3554. }
  3555.  
  3556. stock PlayerPing(playerid)
  3557. {
  3558.     if (!IsPlayerConnected(playerid)) return 0;
  3559.     new ping = GetPlayerPing(playerid);
  3560.     return ping;
  3561. }
  3562.  
  3563. stock ServerLog(message[])
  3564. {
  3565.     new File:fhnd;
  3566.     if (fexist("ServerLog.log.txt")) fhnd = fopen("ServerLog.log.txt", io_append);
  3567.     else fhnd = fopen("ServerLog.log.txt", io_write);
  3568.     fwrite(fhnd, message);
  3569.     fputchar(fhnd, 13);
  3570.     fputchar(fhnd, 10);
  3571.     fclose(fhnd);
  3572. }
  3573.  
  3574. stock KickPlayer(playerid, reason[])
  3575. {
  3576.     if (IsPlayerConnected(playerid))
  3577.     {
  3578.         SystemMessage(playerid, reason);
  3579.         TogglePlayerControllable(playerid, 0);
  3580.         Kick(playerid);
  3581.     }
  3582.     return 1;
  3583. }
  3584.  
  3585. stock BanPlayer(playerid, reason[])
  3586. {
  3587.     if (IsPlayerConnected(playerid))
  3588.     {
  3589.         SystemMessage(playerid, reason);
  3590.         TogglePlayerControllable(playerid, 0);
  3591.         Ban(playerid);
  3592.     }
  3593.     return 1;
  3594. }
  3595.  
  3596. stock FreezePlayer(playerid, reason[])
  3597. {
  3598.     if (IsPlayerConnected(playerid))
  3599.     {
  3600.         SystemMessage(playerid, reason);
  3601.         TogglePlayerControllable(playerid, 0);
  3602.     }
  3603.     return 1;
  3604. }
  3605.  
  3606. stock UnfreezePlayer(playerid, reason[])
  3607. {
  3608.     if (IsPlayerConnected(playerid))
  3609.     {
  3610.         SystemMessage(playerid, reason);
  3611.         TogglePlayerControllable(playerid, 1);
  3612.     }
  3613.     return 1;
  3614. }
  3615.  
  3616. stock KillPlayer(playerid, reason[])
  3617. {
  3618.     if (IsPlayerConnected(playerid))
  3619.     {
  3620.         SystemMessage(playerid, reason);
  3621.         SetPlayerHealth(playerid, 0.0);
  3622.     }
  3623.     return 1;
  3624. }
  3625.  
  3626. stock JailPlayer(playerid, reason[])
  3627. {
  3628.     if (IsPlayerConnected(playerid))
  3629.     {
  3630.         SystemMessage(playerid, reason);
  3631.         SetPlayerFacingAngle(playerid, 177.0350);
  3632.         SetCameraBehindPlayer(playerid);
  3633.         SetPlayerInterior(playerid, 3);
  3634.         SetPlayerPos(playerid, 197.7029,174.8801,1003.0234);
  3635.     }
  3636.     return 1;
  3637. }
  3638.  
  3639. stock UnjailPlayer(playerid, reason[])
  3640. {
  3641.     if (IsPlayerConnected(playerid))
  3642.     {
  3643.         SystemMessage(playerid, reason);
  3644.         SpawnPlayer(playerid);
  3645.     }
  3646.     return 1;
  3647. }
  3648.  
  3649. stock SlapPlayer(playerid, reason[])
  3650. {
  3651.     if (IsPlayerConnected(playerid))
  3652.     {
  3653.         SystemMessage(playerid, reason);
  3654.         new Float:phealth;
  3655.         GetPlayerHealth(playerid, phealth);
  3656.         SetPlayerHealth(playerid, phealth-20);
  3657.     }
  3658.     return 1;
  3659. }
  3660.  
  3661. stock MutePlayer(playerid, reason[])
  3662. {
  3663.     if (IsPlayerConnected(playerid))
  3664.     {
  3665.         SystemMessage(playerid, reason);
  3666.         IsPlayerMuted[playerid] = 1;
  3667.     }
  3668.     return 1;
  3669. }
  3670.  
  3671. stock UnmutePlayer(playerid, reason[])
  3672. {
  3673.     if (IsPlayerConnected(playerid))
  3674.     {
  3675.         SystemMessage(playerid, reason);
  3676.         IsPlayerMuted[playerid] = 0;
  3677.     }
  3678.     return 1;
  3679. }
  3680.  
  3681. stock ExplodePlayer(playerid, reason[])
  3682. {
  3683.     if (IsPlayerConnected(playerid))
  3684.     {
  3685.         SystemMessage(playerid, reason);
  3686.         new Float:XPOS;
  3687.         new Float:YPOS;
  3688.         new Float:ZPOS;
  3689.         GetPlayerPos(playerid, XPOS, YPOS, ZPOS);
  3690.         CreateExplosion(XPOS, YPOS, ZPOS, 3, 5);
  3691.     }
  3692.     return 1;
  3693. }
  3694.  
  3695. stock fsearch(filename[], search[], bool:caps = false)
  3696. {
  3697.     if(fexist(filename))
  3698.     {
  3699.         new File:fhandle = fopen(filename, io_read);
  3700.         new temp[255];
  3701.         while(fread(fhandle, temp))
  3702.         {
  3703.             StripNewLine(temp);
  3704.             if(equal(temp, search, caps)) return 1;
  3705.         }
  3706.     }
  3707.     return 0;
  3708. }
  3709.  
  3710. ReturnUser(text[], playerid = INVALID_PLAYER_ID)
  3711. {
  3712.     new pos = 0;
  3713.     while (text[pos] < 0x21)
  3714.     {
  3715.         if (text[pos] == 0) return INVALID_PLAYER_ID;
  3716.         pos++;
  3717.     }
  3718.     new userid = INVALID_PLAYER_ID;
  3719.     if (IsNumeric(text[pos]))
  3720.     {
  3721.         userid = strval(text[pos]);
  3722.         if (userid >=0 && userid < MAX_PLAYERS)
  3723.         {
  3724.             if(!IsPlayerConnected(userid))
  3725.             {
  3726.                 userid = INVALID_PLAYER_ID;
  3727.             }
  3728.             else
  3729.             {
  3730.                 return userid;
  3731.             }
  3732.         }
  3733.     }
  3734.     new len = strlen(text[pos]);
  3735.     new count = 0;
  3736.     new name[MAX_PLAYER_NAME];
  3737.     for (new i = 0; i < MAX_PLAYERS; i++)
  3738.     {
  3739.         if (IsPlayerConnected(i))
  3740.         {
  3741.             GetPlayerName(i, name, sizeof (name));
  3742.             if (strcmp(name, text[pos], true, len) == 0)
  3743.             {
  3744.                 if (len == strlen(name))
  3745.                 {
  3746.                     return i;
  3747.                 }
  3748.                 else
  3749.                 {
  3750.                     count++;
  3751.                     userid = i;
  3752.                 }
  3753.             }
  3754.         }
  3755.     }
  3756.     if (count != 1)
  3757.     {
  3758.         if (playerid != INVALID_PLAYER_ID)
  3759.         {
  3760.             if (count)
  3761.             {
  3762.                 SendClientMessage(playerid, COLOR_SYSTEM, "There are multiple users, enter full playername.");
  3763.             }
  3764.             else
  3765.             {
  3766.                 SendClientMessage(playerid, COLOR_SYSTEM, "Playername not found.");
  3767.             }
  3768.         }
  3769.         userid = INVALID_PLAYER_ID;
  3770.     }
  3771.     return userid;
  3772. }
  3773.  
  3774. stock IsInvalidSkin(skinid)
  3775. {
  3776.     new badSkins[22] = {3, 4, 5, 6, 8, 42, 65, 74, 86,119, 149,
  3777.     208, 265, 266,267,268, 269, 270, 271, 272, 273, 289};
  3778.     for (new i = 0; i < 22; i++)
  3779.     {
  3780.         if (skinid == badSkins[i]) return true;
  3781.     }
  3782.     return false;
  3783. }
  3784.  
  3785. stock Wait(time)
  3786. {
  3787.     new stamp = tickcount();
  3788.     while (tickcount() - stamp < time){}
  3789.     return 1;
  3790. }
  3791.  
  3792. stock SendRconCommandEx(time, command[])
  3793. {
  3794.     Wait(time);
  3795.     SendRconCommand(command);
  3796.     return 1;
  3797. }
  3798.  
  3799. public CLOCK_EverySecondTimer()
  3800. {
  3801.     CLOCK_minute++;
  3802.     if(CLOCK_minute == 60)
  3803.     {
  3804.         CLOCK_minute = 0;
  3805.         CLOCK_hour++;
  3806.         SetWorldTime(CLOCK_hour);
  3807.     }
  3808.     if(CLOCK_hour == 24)
  3809.     {
  3810.         CLOCK_hour = 0;
  3811.     }
  3812.     new clockstr[32];
  3813.     format(clockstr,sizeof(clockstr),"%02d:%02d",CLOCK_hour,CLOCK_minute);
  3814.     TextDrawSetString(Clock, clockstr);
  3815. }
  3816.  
  3817. stock GetHour()
  3818. {
  3819.     return CLOCK_hour;
  3820. }
  3821.  
  3822. stock Minute()
  3823. {
  3824.     return CLOCK_minute;
  3825. }
  3826.  
  3827. stock sscanf(string[], format[], {Float,_}:...)
  3828. {
  3829.     #if defined isnull
  3830.         if (isnull(string))
  3831.     #else
  3832.         if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  3833.     #endif
  3834.         {
  3835.             return format[0];
  3836.         }
  3837.     #pragma tabsize 4
  3838.     new
  3839.         formatPos = 0,
  3840.         stringPos = 0,
  3841.         paramPos = 2,
  3842.         paramCount = numargs(),
  3843.         delim = ' ';
  3844.     while (string[stringPos] && string[stringPos] <= ' ')
  3845.     {
  3846.         stringPos++;
  3847.     }
  3848.     while (paramPos < paramCount && string[stringPos])
  3849.     {
  3850.         switch (format[formatPos++])
  3851.         {
  3852.             case '\0':
  3853.             {
  3854.                 return 0;
  3855.             }
  3856.             case 'i', 'd':
  3857.             {
  3858.                 new
  3859.                     neg = 1,
  3860.                     num = 0,
  3861.                     ch = string[stringPos];
  3862.                 if (ch == '-')
  3863.                 {
  3864.                     neg = -1;
  3865.                     ch = string[++stringPos];
  3866.                 }
  3867.                 do
  3868.                 {
  3869.                     stringPos++;
  3870.                     if ('0' <= ch <= '9')
  3871.                     {
  3872.                         num = (num * 10) + (ch - '0');
  3873.                     }
  3874.                     else
  3875.                     {
  3876.                         return -1;
  3877.                     }
  3878.                 }
  3879.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  3880.                 setarg(paramPos, 0, num * neg);
  3881.             }
  3882.             case 'h', 'x':
  3883.             {
  3884.                 new
  3885.                     num = 0,
  3886.                     ch = string[stringPos];
  3887.                 do
  3888.                 {
  3889.                     stringPos++;
  3890.                     switch (ch)
  3891.                     {
  3892.                         case 'x', 'X':
  3893.                         {
  3894.                             num = 0;
  3895.                             continue;
  3896.                         }
  3897.                         case '0' .. '9':
  3898.                         {
  3899.                             num = (num << 4) | (ch - '0');
  3900.                         }
  3901.                         case 'a' .. 'f':
  3902.                         {
  3903.                             num = (num << 4) | (ch - ('a' - 10));
  3904.                         }
  3905.                         case 'A' .. 'F':
  3906.                         {
  3907.                             num = (num << 4) | (ch - ('A' - 10));
  3908.                         }
  3909.                         default:
  3910.                         {
  3911.                             return -1;
  3912.                         }
  3913.                     }
  3914.                 }
  3915.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  3916.                 setarg(paramPos, 0, num);
  3917.             }
  3918.             case 'c':
  3919.             {
  3920.                 setarg(paramPos, 0, string[stringPos++]);
  3921.             }
  3922.             case 'f':
  3923.             {
  3924.                 setarg(paramPos, 0, _:floatstr(string[stringPos]));
  3925.             }
  3926.             case 'p':
  3927.             {
  3928.                 delim = format[formatPos++];
  3929.                 continue;
  3930.             }
  3931.             case '\'':
  3932.             {
  3933.                 new
  3934.                     end = formatPos - 1,
  3935.                     ch;
  3936.                 while ((ch = format[++end]) && ch != '\'') {}
  3937.                 if (!ch)
  3938.                 {
  3939.                     return -1;
  3940.                 }
  3941.                 format[end] = '\0';
  3942.                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  3943.                 {
  3944.                     if (format[end + 1])
  3945.                     {
  3946.                         return -1;
  3947.                     }
  3948.                     return 0;
  3949.                 }
  3950.                 format[end] = '\'';
  3951.                 stringPos = ch + (end - formatPos);
  3952.                 formatPos = end + 1;
  3953.             }
  3954.             case 'u':
  3955.             {
  3956.                 new
  3957.                     end = stringPos - 1,
  3958.                     id = 0,
  3959.                     bool:num = true,
  3960.                     ch;
  3961.                 while ((ch = string[++end]) && ch != delim)
  3962.                 {
  3963.                     if (num)
  3964.                     {
  3965.                         if ('0' <= ch <= '9')
  3966.                         {
  3967.                             id = (id * 10) + (ch - '0');
  3968.                         }
  3969.                         else
  3970.                         {
  3971.                             num = false;
  3972.                         }
  3973.                     }
  3974.                 }
  3975.                 if (num && IsPlayerConnected(id))
  3976.                 {
  3977.                     setarg(paramPos, 0, id);
  3978.                 }
  3979.                 else
  3980.                 {
  3981.                     #if !defined foreach
  3982.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  3983.                         #define __SSCANF_FOREACH__
  3984.                     #endif
  3985.                     string[end] = '\0';
  3986.                     num = false;
  3987.                     new
  3988.                         name[MAX_PLAYER_NAME];
  3989.                     id = end - stringPos;
  3990.                     foreach (Player, playerid)
  3991.                     {
  3992.                         GetPlayerName(playerid, name, sizeof (name));
  3993.                         if (!strcmp(name, string[stringPos], true, id))
  3994.                         {
  3995.                             setarg(paramPos, 0, playerid);
  3996.                             num = true;
  3997.                             break;
  3998.                         }
  3999.                     }
  4000.                     if (!num)
  4001.                     {
  4002.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  4003.                     }
  4004.                     string[end] = ch;
  4005.                     #if defined __SSCANF_FOREACH__
  4006.                         #undef foreach
  4007.                         #undef __SSCANF_FOREACH__
  4008.                     #endif
  4009.                 }
  4010.                 stringPos = end;
  4011.             }
  4012.             case 's', 'z':
  4013.             {
  4014.                 new
  4015.                     i = 0,
  4016.                     ch;
  4017.                 if (format[formatPos])
  4018.                 {
  4019.                     while ((ch = string[stringPos++]) && ch != delim)
  4020.                     {
  4021.                         setarg(paramPos, i++, ch);
  4022.                     }
  4023.                     if (!i)
  4024.                     {
  4025.                         return -1;
  4026.                     }
  4027.                 }
  4028.                 else
  4029.                 {
  4030.                     while ((ch = string[stringPos++]))
  4031.                     {
  4032.                         setarg(paramPos, i++, ch);
  4033.                     }
  4034.                 }
  4035.                 stringPos--;
  4036.                 setarg(paramPos, i, '\0');
  4037.             }
  4038.             default:
  4039.             {
  4040.                 continue;
  4041.             }
  4042.         }
  4043.         while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  4044.         {
  4045.             stringPos++;
  4046.         }
  4047.         while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  4048.         {
  4049.             stringPos++;
  4050.         }
  4051.         paramPos++;
  4052.     }
  4053.     do
  4054.     {
  4055.         if ((delim = format[formatPos++]) > ' ')
  4056.         {
  4057.             if (delim == '\'')
  4058.             {
  4059.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  4060.             }
  4061.             else if (delim != 'z')
  4062.             {
  4063.                 return delim;
  4064.             }
  4065.         }
  4066.     }
  4067.     while (delim > ' ');
  4068.     return 0;
  4069. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement