Advertisement
Guest User

LAdmin4v2

a guest
May 5th, 2011
816
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 338.14 KB | None | 0 0
  1. #include <a_samp>
  2. #include <lethaldudb2>
  3. #include <IsPlayerLAdmin>
  4. #include <Dini>
  5. #include <dudb>
  6. #include <dutils>
  7. #include <YSI/y_ini>
  8. #include <dini>
  9. #pragma dynamic 145000
  10.  
  11. /*
  12. |===============================================|
  13. | --== LethaL Adminscript ==-- |
  14. | -== Version 4.2 ==-- |
  15. | ladmin4v2.pwn |
  16. |===============================================|
  17. */
  18.  
  19. //-----------------------------------------------------------------------------------//
  20.  
  21. #define USE_MENUS // Comment to remove all menus. Uncomment to enable menus
  22. #define DISPLAY_CONFIG // displays configuration in console window on filterscript load
  23. #define SAVE_LOGS // Comment if your server runs linux (logs wont be saved)
  24. #define SAVE_SCORE
  25. #define ENABLE_SPEC // Comment if you are using a spectate system already
  26. #define USE_STATS // Comment to disable /stats
  27. #define ANTI_MINIGUN // Displays who has a minigun
  28. //#define USE_AREGISTER // Changes /register, /login etc to /areister, /alogin etc
  29. //#define HIDE_ADMINS // Displays number of admins online instead of level and names
  30. #define ENABLE_FAKE_CMDS // Comment to disable /fakechat, /fakedeath, /fakecmd commanads
  31.  
  32. //-----------------------------------------------------------------------------------//
  33.  
  34. #define MAX_WARNINGS 4 // /warn command
  35.  
  36. #define MAX_REPORTS 7
  37. #define MAX_CHAT_LINES 3
  38.  
  39. #define SPAM_MAX_MSGS 3
  40. #define SPAM_TIMELIMIT 3 // SECONDS
  41.  
  42. #define PING_MAX_EXCEEDS 4
  43. #define PING_TIMELIMIT 60 // SECONDS
  44.  
  45. #define MAX_FAIL_LOGINS 4
  46.  
  47. forward OnPlayerPrivmsg(playerid, recieverid, text[]);
  48.  
  49. // Admin Area
  50. new AdminArea[6] = {
  51. 377, // X
  52. 170, // Y
  53. 1008, // Z
  54. 90, // Angle
  55. 3, // Interior
  56. 0 // Virtual World
  57. };
  58.  
  59. //-=Main colours=-
  60. #define blue 0x375FFFFF
  61. #define red 0xFF0000AA
  62. #define green 0x33FF33AA
  63. #define yellow 0xFFFF00AA
  64. #define grey 0xC0C0C0AA
  65. #define blue1 0x2641FEAA
  66. #define lightblue 0x33CCFFAA
  67. #define orange 0xFF9900AA
  68. #define black 0x2C2727AA
  69. #define COLOR_GREEN 0x33AA33AA
  70. #define COLOR_PINK 0xFF66FFAA
  71. #define COLOR_BLUE 0x0000BBAA
  72. #define COLOR_PURPLE 0x800080AA
  73. #define COLOR_BLACK 0x000000AA
  74. #define COLOR_WHITE 0xFFFFFFAA
  75. #define COLOR_GREEN1 0x33AA33AA
  76. #define COLOR_BROWN 0xA52A2AAA
  77.  
  78. // DCMD
  79. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  80.  
  81. // Caps
  82. #define UpperToLower(%1) for ( new ToLowerChar; ToLowerChar < strlen( %1 ); ToLowerChar ++ ) if ( %1[ ToLowerChar ]> 64 && %1[ ToLowerChar ] < 91 ) %1[ ToLowerChar ] += 32
  83.  
  84. // Spec
  85. #define ADMIN_SPEC_TYPE_NONE 0
  86. #define ADMIN_SPEC_TYPE_PLAYER 1
  87. #define ADMIN_SPEC_TYPE_VEHICLE 2
  88.  
  89. forward MessageToPlayerVIP(color,const string[]);
  90.  
  91. // Enums
  92. enum PlayerData
  93. {
  94. pVip,
  95. Invis,
  96. Registered,
  97. LoggedIn,
  98. Level,
  99. Score,
  100. Muted,
  101. Caps,
  102. Jailed,
  103. JailTime,
  104. Frozen,
  105. FreezeTime,
  106. Kills,
  107. Deaths,
  108. hours,
  109. mins,
  110. secs,
  111. TotalTime,
  112. ConnectTime,
  113. MuteWarnings,
  114. Warnings,
  115. Spawned,
  116. TimesSpawned,
  117. God,
  118. GodCar,
  119. DoorsLocked,
  120. SpamCount,
  121. SpamTime,
  122. PingCount,
  123. PingTime,
  124. BotPing,
  125. pPing[PING_MAX_EXCEEDS],
  126. blip,
  127. blipS,
  128. pColour,
  129. pCar,
  130. SpecID,
  131. SpecType,
  132. bool:AllowedIn,
  133. FailLogin,
  134.  
  135. };
  136. new PlayerInfo[MAX_PLAYERS][PlayerData];
  137.  
  138. enum ServerData
  139. {
  140. MaxPing,
  141. ReadPMs,
  142. ReadCmds,
  143. MaxAdminLevel,
  144. AdminOnlySkins,
  145. AdminSkin,
  146. AdminSkin2,
  147. NameKick,
  148. PartNameKick,
  149. AntiBot,
  150. AntiSpam,
  151. AntiSwear,
  152. NoCaps,
  153. Locked,
  154. Password[128],
  155. GiveWeap,
  156. GiveMoney,
  157. ConnectMessages,
  158. AdminCmdMsg,
  159. AutoLogin,
  160. MaxMuteWarnings,
  161. DisableChat,
  162. MustLogin,
  163. MustRegister,
  164. SetScore,
  165. };
  166. new ServerInfo[ServerData];
  167.  
  168. new Float:Pos[MAX_PLAYERS][4];
  169. // rcon
  170. new Chat[MAX_CHAT_LINES][128];
  171.  
  172. //Timers
  173. new PingTimer;
  174. new GodTimer;
  175. new BlipTimer[MAX_PLAYERS];
  176. new JailTimer[MAX_PLAYERS];
  177. new FreezeTimer[MAX_PLAYERS];
  178. new LockKickTimer[MAX_PLAYERS];
  179. new InvisTimer;
  180.  
  181. //Duel
  182. new CountDown = -1, cdt[MAX_PLAYERS] = -1;
  183. new InDuel[MAX_PLAYERS];
  184.  
  185. // Menus
  186. #if defined USE_MENUS
  187. new Menu:LMainMenu, Menu:AdminEnable, Menu:AdminDisable,
  188. Menu:LVehicles, Menu:twodoor, Menu:fourdoor, Menu:fastcar, Menu:Othercars,
  189. Menu:bikes, Menu:boats, Menu:planes, Menu:helicopters,
  190. Menu:XWeapons, Menu:XWeaponsBig, Menu:XWeaponsSmall, Menu:XWeaponsMore,
  191. Menu:LWeather,Menu:LTime,
  192. Menu:LTuneMenu, Menu:PaintMenu, Menu:LCars, Menu:LCars2,
  193. Menu:LTele, Menu:LasVenturasMenu, Menu:LosSantosMenu, Menu:SanFierroMenu,
  194. Menu:DesertMenu, Menu:FlintMenu, Menu:MountChiliadMenu, Menu:InteriorsMenu;
  195. #endif
  196.  
  197. // Forbidden Names & Words
  198. new BadNames[100][100], // Whole Names
  199. BadNameCount = 0,
  200. BadPartNames[100][100], // Part of name
  201. BadPartNameCount = 0,
  202. ForbiddenWords[100][100],
  203. ForbiddenWordCount = 0;
  204.  
  205. // Report
  206. new Reports[MAX_REPORTS][128];
  207.  
  208. // Ping Kick
  209. new PingPos;
  210.  
  211. new VehicleNames[212][] = {
  212. "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  213. "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
  214. "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  215. "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  216. "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  217. "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
  218. "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
  219. "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
  220. "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
  221. "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  222. "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
  223. "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
  224. "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
  225. "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
  226. "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  227. "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  228. "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  229. };
  230.  
  231. //==============================================================================
  232.  
  233. public OnFilterScriptInit()
  234. {
  235. print("\n________________________________________");
  236. print("________________________________________");
  237. print(" LAdmin Loading... ");
  238. print("________________________________________");
  239.  
  240. if(!fexist("ladmin/"))
  241. {
  242. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  243. SetTimerEx("PrintWarning",2500,0,"s","ladmin");
  244. return 1;
  245. }
  246. if(!fexist("ladmin/logs/"))
  247. {
  248. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  249. SetTimerEx("PrintWarning",2500,0,"s","ladmin/logs");
  250. return 1;
  251. }
  252. if(!fexist("ladmin/config/"))
  253. {
  254. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  255. SetTimerEx("PrintWarning",2500,0,"s","ladmin/config");
  256. return 1;
  257. }
  258. if(!fexist("ladmin/users/"))
  259. {
  260. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  261. SetTimerEx("PrintWarning",2500,0,"s","ladmin/users");
  262. return 1;
  263. }
  264.  
  265. UpdateConfig();
  266.  
  267. #if defined DISPLAY_CONFIG
  268. ConfigInConsole();
  269. #endif
  270.  
  271.  
  272.  
  273.  
  274. //===================== [ The Menus ]===========================//
  275. #if defined USE_MENUS
  276.  
  277. LMainMenu = CreateMenu("Main Menu", 2, 55.0, 200.0, 100.0, 80.0);
  278. SetMenuColumnHeader(LMainMenu, 0, "Choose an option below");
  279. AddMenuItem(LMainMenu, 0, "Enable");
  280. AddMenuItem(LMainMenu, 0, "Disable");
  281. AddMenuItem(LMainMenu, 0, "Server Weather");
  282. AddMenuItem(LMainMenu, 0, "Server Time");
  283. AddMenuItem(LMainMenu, 0, "All Vehicles");
  284. AddMenuItem(LMainMenu, 0, "Admin Cars");
  285. AddMenuItem(LMainMenu, 0, "Tuning Menu");
  286. AddMenuItem(LMainMenu, 0, "Choose Weapon");
  287. AddMenuItem(LMainMenu, 0, "Teleports");
  288. AddMenuItem(LMainMenu, 0, "Exit Menu");//
  289.  
  290. AdminEnable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
  291. SetMenuColumnHeader(AdminEnable, 0, "Enable");
  292. AddMenuItem(AdminEnable, 0, "Anti Swear");
  293. AddMenuItem(AdminEnable, 0, "Bad Name Kick");
  294. AddMenuItem(AdminEnable, 0, "Anti Spam");
  295. AddMenuItem(AdminEnable, 0, "Ping Kick");
  296. AddMenuItem(AdminEnable, 0, "Read Cmds");
  297. AddMenuItem(AdminEnable, 0, "Read PMs");
  298. AddMenuItem(AdminEnable, 0, "Capital Letters");
  299. AddMenuItem(AdminEnable, 0, "ConnectMessages");
  300. AddMenuItem(AdminEnable, 0, "AdminCmdMessages");
  301. AddMenuItem(AdminEnable, 0, "Auto Login");
  302. AddMenuItem(AdminEnable, 0, "Return");
  303.  
  304. AdminDisable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
  305. SetMenuColumnHeader(AdminDisable, 0, "Disable");
  306. AddMenuItem(AdminDisable, 0, "Anti Swear");
  307. AddMenuItem(AdminDisable, 0, "Bad Name Kick");
  308. AddMenuItem(AdminDisable, 0, "Anti Spam");
  309. AddMenuItem(AdminDisable, 0, "Ping Kick");
  310. AddMenuItem(AdminDisable, 0, "Read Cmds");
  311. AddMenuItem(AdminDisable, 0, "Read PMs");
  312. AddMenuItem(AdminDisable, 0, "Capital Letters");
  313. AddMenuItem(AdminDisable, 0, "ConnectMessages");
  314. AddMenuItem(AdminDisable, 0, "AdminCmdMessages");
  315. AddMenuItem(AdminDisable, 0, "Auto Login");
  316. AddMenuItem(AdminDisable, 0, "Return");
  317.  
  318. LWeather = CreateMenu("~b~Weather ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  319. SetMenuColumnHeader(LWeather, 0, "Set Weather");
  320. AddMenuItem(LWeather, 0, "Clear Blue Sky");
  321. AddMenuItem(LWeather, 0, "Sand Storm");
  322. AddMenuItem(LWeather, 0, "Thunderstorm");
  323. AddMenuItem(LWeather, 0, "Foggy");
  324. AddMenuItem(LWeather, 0, "Cloudy");
  325. AddMenuItem(LWeather, 0, "High Tide");
  326. AddMenuItem(LWeather, 0, "Purple Sky");
  327. AddMenuItem(LWeather, 0, "Black/White Sky");
  328. AddMenuItem(LWeather, 0, "Dark, Green Sky");
  329. AddMenuItem(LWeather, 0, "Heatwave");
  330. AddMenuItem(LWeather,0,"Return");
  331.  
  332. LTime = CreateMenu("~b~Time ~g~ Menu", 2, 55.0, 200.0, 100.0, 80.0);
  333. SetMenuColumnHeader(LTime, 0, "Set Time");
  334. AddMenuItem(LTime, 0, "Morning");
  335. AddMenuItem(LTime, 0, "Mid day");
  336. AddMenuItem(LTime, 0, "Afternoon");
  337. AddMenuItem(LTime, 0, "Evening");
  338. AddMenuItem(LTime, 0, "Midnight");
  339. AddMenuItem(LTime, 0, "Return");
  340.  
  341. LCars = CreateMenu("~b~LethaL ~g~Cars", 2, 55.0, 150.0, 100.0, 80.0);
  342. SetMenuColumnHeader(LCars, 0, "Choose a car");
  343. AddMenuItem(LCars, 0, "Turismo");
  344. AddMenuItem(LCars, 0, "Bandito");
  345. AddMenuItem(LCars, 0, "Vortex");
  346. AddMenuItem(LCars, 0, "NRG");
  347. AddMenuItem(LCars, 0, "S.W.A.T");
  348. AddMenuItem(LCars, 0, "Hunter");
  349. AddMenuItem(LCars, 0, "Jetmax (boat)");
  350. AddMenuItem(LCars, 0, "Rhino");
  351. AddMenuItem(LCars, 0, "Monster Truck");
  352. AddMenuItem(LCars, 0, "Sea Sparrow");
  353. AddMenuItem(LCars, 0, "More");
  354. AddMenuItem(LCars, 0, "Return");
  355.  
  356. LCars2 = CreateMenu("~b~LethaL ~g~Cars", 2, 55.0, 150.0, 100.0, 80.0);
  357. SetMenuColumnHeader(LCars2, 0, "Choose a car");
  358. AddMenuItem(LCars2, 0, "Dumper");
  359. AddMenuItem(LCars2, 0, "RC Tank");
  360. AddMenuItem(LCars2, 0, "RC Bandit");
  361. AddMenuItem(LCars2, 0, "RC Baron");
  362. AddMenuItem(LCars2, 0, "RC Goblin");
  363. AddMenuItem(LCars2, 0, "RC Raider");
  364. AddMenuItem(LCars2, 0, "RC Cam");
  365. AddMenuItem(LCars2, 0, "Tram");
  366. AddMenuItem(LCars2, 0, "Return");
  367.  
  368. LTuneMenu = CreateMenu("~b~Tuning ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  369. SetMenuColumnHeader(LTuneMenu, 0, "Add to car");
  370. AddMenuItem(LTuneMenu,0,"NOS");
  371. AddMenuItem(LTuneMenu,0,"Hydraulics");
  372. AddMenuItem(LTuneMenu,0,"Wire Wheels");
  373. AddMenuItem(LTuneMenu,0,"Twist Wheels");
  374. AddMenuItem(LTuneMenu,0,"Access Wheels");
  375. AddMenuItem(LTuneMenu,0,"Mega Wheels");
  376. AddMenuItem(LTuneMenu,0,"Import Wheels");
  377. AddMenuItem(LTuneMenu,0,"Atomic Wheels");
  378. AddMenuItem(LTuneMenu,0,"Offroad Wheels");
  379. AddMenuItem(LTuneMenu,0,"Classic Wheels");
  380. AddMenuItem(LTuneMenu,0,"Paint Jobs");
  381. AddMenuItem(LTuneMenu,0,"Return");
  382.  
  383. PaintMenu = CreateMenu("~b~Paint Job ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  384. SetMenuColumnHeader(PaintMenu, 0, "Choose paint");
  385. AddMenuItem(PaintMenu,0,"Paint Job 1");
  386. AddMenuItem(PaintMenu,0,"Paint Job 2");
  387. AddMenuItem(PaintMenu,0,"Paint Job 3");
  388. AddMenuItem(PaintMenu,0,"Paint Job 4");
  389. AddMenuItem(PaintMenu,0,"Paint Job 5");
  390. AddMenuItem(PaintMenu,0,"Black");
  391. AddMenuItem(PaintMenu,0,"White");
  392. AddMenuItem(PaintMenu,0,"Blue");
  393. AddMenuItem(PaintMenu,0,"Pink");
  394. AddMenuItem(PaintMenu,0,"Return");
  395.  
  396. LVehicles = CreateMenu("~b~Vehicles ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  397. SetMenuColumnHeader(LVehicles, 0, "Choose a car");
  398. AddMenuItem(LVehicles,0,"2-door Cars");
  399. AddMenuItem(LVehicles,0,"4-door Cars");
  400. AddMenuItem(LVehicles,0,"Fast Cars");
  401. AddMenuItem(LVehicles,0,"Other Vehicles");
  402. AddMenuItem(LVehicles,0,"Bikes");
  403. AddMenuItem(LVehicles,0,"Boats");
  404. AddMenuItem(LVehicles,0,"Planes");
  405. AddMenuItem(LVehicles,0,"Helicopters");
  406. AddMenuItem(LVehicles,0,"Return");
  407.  
  408. twodoor = CreateMenu("~b~2-door Cars",2, 55.0, 200.0, 100.0, 80.0);
  409. SetMenuColumnHeader(twodoor, 0, "Choose a car");
  410. AddMenuItem(twodoor,0,"Feltzer");//533
  411. AddMenuItem(twodoor,0,"Stallion");//139
  412. AddMenuItem(twodoor,0,"Windsor");//555
  413. AddMenuItem(twodoor,0,"Bobcat");//422
  414. AddMenuItem(twodoor,0,"Yosemite");//554
  415. AddMenuItem(twodoor,0,"Broadway");//575
  416. AddMenuItem(twodoor,0,"Blade");//536
  417. AddMenuItem(twodoor,0,"Slamvan");//535
  418. AddMenuItem(twodoor,0,"Tornado");//576
  419. AddMenuItem(twodoor,0,"Bravura");//401
  420. AddMenuItem(twodoor,0,"Fortune");//526
  421. AddMenuItem(twodoor,0,"Return");
  422.  
  423. fourdoor = CreateMenu("~b~4-door Cars",2, 55.0, 200.0, 100.0, 80.0);
  424. SetMenuColumnHeader(fourdoor, 0, "Choose a car");
  425. AddMenuItem(fourdoor,0,"Perenniel");//404
  426. AddMenuItem(fourdoor,0,"Tahoma");//566
  427. AddMenuItem(fourdoor,0,"Voodoo");//412
  428. AddMenuItem(fourdoor,0,"Admiral");//445
  429. AddMenuItem(fourdoor,0,"Elegant");//507
  430. AddMenuItem(fourdoor,0,"Glendale");//466
  431. AddMenuItem(fourdoor,0,"Intruder");//546
  432. AddMenuItem(fourdoor,0,"Merit");//551
  433. AddMenuItem(fourdoor,0,"Oceanic");//467
  434. AddMenuItem(fourdoor,0,"Premier");//426
  435. AddMenuItem(fourdoor,0,"Sentinel");//405
  436. AddMenuItem(fourdoor,0,"Return");
  437.  
  438. fastcar = CreateMenu("~b~Fast Cars",2, 55.0, 200.0, 100.0, 80.0);
  439. SetMenuColumnHeader(fastcar, 0, "Choose a car");
  440. AddMenuItem(fastcar,0,"Comet");//480
  441. AddMenuItem(fastcar,0,"Buffalo");//402
  442. AddMenuItem(fastcar,0,"Cheetah");//415
  443. AddMenuItem(fastcar,0,"Euros");//587
  444. AddMenuItem(fastcar,0,"Hotring Racer");//494
  445. AddMenuItem(fastcar,0,"Infernus");//411
  446. AddMenuItem(fastcar,0,"Phoenix");//603
  447. AddMenuItem(fastcar,0,"Super GT");//506
  448. AddMenuItem(fastcar,0,"Turismo");//451
  449. AddMenuItem(fastcar,0,"ZR-350");//477
  450. AddMenuItem(fastcar,0,"Bullet");//541
  451. AddMenuItem(fastcar,0,"Return");
  452.  
  453. Othercars = CreateMenu("~b~Other Vehicles",2, 55.0, 200.0, 100.0, 80.0);
  454. SetMenuColumnHeader(Othercars, 0, "Choose a car?");
  455. AddMenuItem(Othercars,0,"Monster Truck");//556
  456. AddMenuItem(Othercars,0,"Trashmaster");//408
  457. AddMenuItem(Othercars,0,"Bus");//431
  458. AddMenuItem(Othercars,0,"Coach");//437
  459. AddMenuItem(Othercars,0,"Enforcer");//427
  460. AddMenuItem(Othercars,0,"Rhino (Tank)");//432
  461. AddMenuItem(Othercars,0,"S.W.A.T.Truck");//601
  462. AddMenuItem(Othercars,0,"Cement Truck");//524
  463. AddMenuItem(Othercars,0,"Flatbed");//455
  464. AddMenuItem(Othercars,0,"BF Injection");//424
  465. AddMenuItem(Othercars,0,"Dune");//573
  466. AddMenuItem(Othercars,0,"Return");
  467.  
  468. bikes = CreateMenu("~b~Bikes",2, 55.0, 200.0, 100.0, 80.0);
  469. SetMenuColumnHeader(bikes, 0, "Choose a bike");
  470. AddMenuItem(bikes,0,"BF-400");
  471. AddMenuItem(bikes,0,"BMX");
  472. AddMenuItem(bikes,0,"Faggio");
  473. AddMenuItem(bikes,0,"FCR-900");
  474. AddMenuItem(bikes,0,"Freeway");
  475. AddMenuItem(bikes,0,"NRG-500");
  476. AddMenuItem(bikes,0,"PCJ-600");
  477. AddMenuItem(bikes,0,"Pizzaboy");
  478. AddMenuItem(bikes,0,"Quad");
  479. AddMenuItem(bikes,0,"Sanchez");
  480. AddMenuItem(bikes,0,"Wayfarer");
  481. AddMenuItem(bikes,0,"Return");
  482.  
  483. boats = CreateMenu("~b~Boats",2, 55.0, 200.0, 100.0, 80.0);
  484. SetMenuColumnHeader(boats, 0, "Choose a boat");
  485. AddMenuItem(boats,0,"Coastguard");//472
  486. AddMenuItem(boats,0,"Dingy");//473
  487. AddMenuItem(boats,0,"Jetmax");//493
  488. AddMenuItem(boats,0,"Launch");//595
  489. AddMenuItem(boats,0,"Marquis");//484
  490. AddMenuItem(boats,0,"Predator");//430
  491. AddMenuItem(boats,0,"Reefer");//453
  492. AddMenuItem(boats,0,"Speeder");//452
  493. AddMenuItem(boats,0,"Squallo");//446
  494. AddMenuItem(boats,0,"Tropic");//454
  495. AddMenuItem(boats,0,"Return");
  496.  
  497. planes = CreateMenu("~b~Planes",2, 55.0, 200.0, 100.0, 80.0);
  498. SetMenuColumnHeader(planes, 0, "Choose a plane");
  499. AddMenuItem(planes,0,"Andromada");//592
  500. AddMenuItem(planes,0,"AT400");//577
  501. AddMenuItem(planes,0,"Beagle");//511
  502. AddMenuItem(planes,0,"Cropduster");//512
  503. AddMenuItem(planes,0,"Dodo");//593
  504. AddMenuItem(planes,0,"Hydra");//520
  505. AddMenuItem(planes,0,"Nevada");//553
  506. AddMenuItem(planes,0,"Rustler");//476
  507. AddMenuItem(planes,0,"Shamal");//519
  508. AddMenuItem(planes,0,"Skimmer");//460
  509. AddMenuItem(planes,0,"Stuntplane");//513
  510. AddMenuItem(planes,0,"Return");
  511.  
  512. helicopters = CreateMenu("~b~Helicopters",2, 55.0, 200.0, 100.0, 80.0);
  513. SetMenuColumnHeader(helicopters, 0, "Choose a helicopter");
  514. AddMenuItem(helicopters,0,"Cargobob");//
  515. AddMenuItem(helicopters,0,"Hunter");//
  516. AddMenuItem(helicopters,0,"Leviathan");//
  517. AddMenuItem(helicopters,0,"Maverick");//
  518. AddMenuItem(helicopters,0,"News Chopper");//
  519. AddMenuItem(helicopters,0,"Police Maverick");//
  520. AddMenuItem(helicopters,0,"Raindance");//
  521. AddMenuItem(helicopters,0,"Seasparrow");//
  522. AddMenuItem(helicopters,0,"Sparrow");//
  523. AddMenuItem(helicopters,0,"Return");
  524.  
  525. XWeapons = CreateMenu("~b~Weapons ~g~Main Menu",2, 55.0, 200.0, 100.0, 80.0);
  526. SetMenuColumnHeader(XWeapons, 0, "Choose a weapon");
  527. AddMenuItem(XWeapons,0,"Desert Eagle");//0
  528. AddMenuItem(XWeapons,0,"M4");
  529. AddMenuItem(XWeapons,0,"Sawnoff Shotgun");
  530. AddMenuItem(XWeapons,0,"Combat Shotgun");
  531. AddMenuItem(XWeapons,0,"UZI");
  532. AddMenuItem(XWeapons,0,"Rocket Launcher");
  533. AddMenuItem(XWeapons,0,"Minigun");//6
  534. AddMenuItem(XWeapons,0,"Sniper Rifle");
  535. AddMenuItem(XWeapons,0,"Big Weapons");
  536. AddMenuItem(XWeapons,0,"Small Weapons");//9
  537. AddMenuItem(XWeapons,0,"More");
  538. AddMenuItem(XWeapons,0,"Return");//11
  539.  
  540. XWeaponsBig = CreateMenu("~b~Weapons ~g~Big Weapons",2, 55.0, 200.0, 100.0, 80.0);
  541. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  542. AddMenuItem(XWeaponsBig,0,"Shotgun");
  543. AddMenuItem(XWeaponsBig,0,"AK-47");
  544. AddMenuItem(XWeaponsBig,0,"Country Rifle");
  545. AddMenuItem(XWeaponsBig,0,"HS Rocket Launcher");
  546. AddMenuItem(XWeaponsBig,0,"Flamethrower");
  547. AddMenuItem(XWeaponsBig,0,"SMG");
  548. AddMenuItem(XWeaponsBig,0,"TEC9");
  549. AddMenuItem(XWeaponsBig,0,"Return");
  550.  
  551. XWeaponsSmall = CreateMenu("~b~Weapons ~g~Small Weapons",2, 55.0, 200.0, 100.0, 80.0);
  552. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  553. AddMenuItem(XWeaponsSmall,0,"9mm");
  554. AddMenuItem(XWeaponsSmall,0,"Silenced 9mm");
  555. AddMenuItem(XWeaponsSmall,0,"Molotov Cocktail");
  556. AddMenuItem(XWeaponsSmall,0,"Fire Extinguisher");
  557. AddMenuItem(XWeaponsSmall,0,"Spraycan");
  558. AddMenuItem(XWeaponsSmall,0,"Frag Grenades");
  559. AddMenuItem(XWeaponsSmall,0,"Katana");
  560. AddMenuItem(XWeaponsSmall,0,"Chainsaw");
  561. AddMenuItem(XWeaponsSmall,0,"Return");
  562.  
  563. XWeaponsMore = CreateMenu("~b~Weapons ~g~More Weapons",2, 55.0, 200.0, 100.0, 80.0);
  564. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  565. AddMenuItem(XWeaponsMore,0,"Jetpack");
  566. AddMenuItem(XWeaponsMore,0,"Knife");
  567. AddMenuItem(XWeaponsMore,0,"Flowers");
  568. AddMenuItem(XWeaponsMore,0,"Camera");
  569. AddMenuItem(XWeaponsMore,0,"Pool Cue");
  570. AddMenuItem(XWeaponsMore,0,"Baseball Bat");
  571. AddMenuItem(XWeaponsMore,0,"Golf Club");
  572. AddMenuItem(XWeaponsMore,0,"MAX AMMO");
  573. AddMenuItem(XWeaponsMore,0,"Return");
  574.  
  575. LTele = CreateMenu("Teleports", 2, 55.0, 200.0, 100.0, 80.0);
  576. SetMenuColumnHeader(LTele, 0, "Teleport to where?");
  577. AddMenuItem(LTele, 0, "Las Venturas");//0
  578. AddMenuItem(LTele, 0, "Los Santos");//1
  579. AddMenuItem(LTele, 0, "San Fierro");//2
  580. AddMenuItem(LTele, 0, "The Desert");//3
  581. AddMenuItem(LTele, 0, "Flint Country");//4
  582. AddMenuItem(LTele, 0, "Mount Chiliad");//5
  583. AddMenuItem(LTele, 0, "Interiors");//6
  584. AddMenuItem(LTele, 0, "Return");//8
  585.  
  586. LasVenturasMenu = CreateMenu("Las Venturas", 2, 55.0, 200.0, 100.0, 80.0);
  587. SetMenuColumnHeader(LasVenturasMenu, 0, "Teleport to where?");
  588. AddMenuItem(LasVenturasMenu, 0, "The Strip");//0
  589. AddMenuItem(LasVenturasMenu, 0, "Come-A-Lot");//1
  590. AddMenuItem(LasVenturasMenu, 0, "LV Airport");//2
  591. AddMenuItem(LasVenturasMenu, 0, "KACC Military Fuels");//3
  592. AddMenuItem(LasVenturasMenu, 0, "Yellow Bell Golf Club");//4
  593. AddMenuItem(LasVenturasMenu, 0, "Baseball Pitch");//5
  594. AddMenuItem(LasVenturasMenu, 0, "Return");//6
  595.  
  596. LosSantosMenu = CreateMenu("Los Santos", 2, 55.0, 200.0, 100.0, 80.0);
  597. SetMenuColumnHeader(LosSantosMenu, 0, "Teleport to where?");
  598. AddMenuItem(LosSantosMenu, 0, "Ganton");//0
  599. AddMenuItem(LosSantosMenu, 0, "LS Airport");//1
  600. AddMenuItem(LosSantosMenu, 0, "Ocean Docks");//2
  601. AddMenuItem(LosSantosMenu, 0, "Pershing Square");//3
  602. AddMenuItem(LosSantosMenu, 0, "Verdant Bluffs");//4
  603. AddMenuItem(LosSantosMenu, 0, "Santa Maria Beach");//5
  604. AddMenuItem(LosSantosMenu, 0, "Mulholland");//6
  605. AddMenuItem(LosSantosMenu, 0, "Richman");//7
  606. AddMenuItem(LosSantosMenu, 0, "Return");//8
  607.  
  608. SanFierroMenu = CreateMenu("San Fierro", 2, 55.0, 200.0, 100.0, 80.0);
  609. SetMenuColumnHeader(SanFierroMenu, 0, "Teleport to where?");
  610. AddMenuItem(SanFierroMenu, 0, "SF Station");//0
  611. AddMenuItem(SanFierroMenu, 0, "SF Airport");//1
  612. AddMenuItem(SanFierroMenu, 0, "Ocean Flats");//2
  613. AddMenuItem(SanFierroMenu, 0, "Avispa Country Club");//3
  614. AddMenuItem(SanFierroMenu, 0, "Easter Basin (docks)");//4
  615. AddMenuItem(SanFierroMenu, 0, "Esplanade North");//5
  616. AddMenuItem(SanFierroMenu, 0, "Battery Point");//6
  617. AddMenuItem(SanFierroMenu, 0, "Return");//7
  618.  
  619. DesertMenu = CreateMenu("The Desert", 2, 55.0, 200.0, 100.0, 80.0);
  620. SetMenuColumnHeader(DesertMenu, 0, "Teleport to where?");
  621. AddMenuItem(DesertMenu, 0, "Aircraft Graveyard");//0
  622. AddMenuItem(DesertMenu, 0, "Area 51");//1
  623. AddMenuItem(DesertMenu, 0, "The Big Ear");//2
  624. AddMenuItem(DesertMenu, 0, "The Sherman Dam");//3
  625. AddMenuItem(DesertMenu, 0, "Las Barrancas");//4
  626. AddMenuItem(DesertMenu, 0, "El Quebrados");//5
  627. AddMenuItem(DesertMenu, 0, "Octane Springs");//6
  628. AddMenuItem(DesertMenu, 0, "Return");//7
  629.  
  630. FlintMenu = CreateMenu("Flint Country", 2, 55.0, 200.0, 100.0, 80.0);
  631. SetMenuColumnHeader(FlintMenu, 0, "Teleport to where?");
  632. AddMenuItem(FlintMenu, 0, "The Lake");//0
  633. AddMenuItem(FlintMenu, 0, "Leafy Hollow");//1
  634. AddMenuItem(FlintMenu, 0, "The Farm");//2
  635. AddMenuItem(FlintMenu, 0, "Shady Cabin");//3
  636. AddMenuItem(FlintMenu, 0, "Flint Range");//4
  637. AddMenuItem(FlintMenu, 0, "Becon Hill");//5
  638. AddMenuItem(FlintMenu, 0, "Fallen Tree");//6
  639. AddMenuItem(FlintMenu, 0, "Return");//7
  640.  
  641. MountChiliadMenu = CreateMenu("Mount Chiliad", 2, 55.0, 200.0, 100.0, 80.0);
  642. SetMenuColumnHeader(MountChiliadMenu, 0, "Teleport to where?");
  643. AddMenuItem(MountChiliadMenu, 0, "Chiliad Jump");//0
  644. AddMenuItem(MountChiliadMenu, 0, "Bottom Of Chiliad");//1
  645. AddMenuItem(MountChiliadMenu, 0, "Highest Point");//2
  646. AddMenuItem(MountChiliadMenu, 0, "Chiliad Path");//3
  647. AddMenuItem(MountChiliadMenu, 0, "Return");//7
  648.  
  649. InteriorsMenu = CreateMenu("Interiors", 2, 55.0, 200.0, 130.0, 80.0);
  650. SetMenuColumnHeader(InteriorsMenu, 0, "Teleport to where?");
  651. AddMenuItem(InteriorsMenu, 0, "Planning Department");//0
  652. AddMenuItem(InteriorsMenu, 0, "LV PD");//1
  653. AddMenuItem(InteriorsMenu, 0, "Pizza Stack");//2
  654. AddMenuItem(InteriorsMenu, 0, "RC Battlefield");//3
  655. AddMenuItem(InteriorsMenu, 0, "Caligula's Casino");//4
  656. AddMenuItem(InteriorsMenu, 0, "Big Smoke's Crack Palace");//5
  657. AddMenuItem(InteriorsMenu, 0, "Madd Dogg's Mansion");//6
  658. AddMenuItem(InteriorsMenu, 0, "Dirtbike Stadium");//7
  659. AddMenuItem(InteriorsMenu, 0, "Vice Stadium (duel)");//8
  660. AddMenuItem(InteriorsMenu, 0, "Ammu-nation");//9
  661. AddMenuItem(InteriorsMenu, 0, "Atrium");//7
  662. AddMenuItem(InteriorsMenu, 0, "Return");//8
  663. #endif
  664.  
  665. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);
  666. for(new i = 1; i < MAX_CHAT_LINES; i++) Chat[i] = "<none>";
  667. for(new i = 1; i < MAX_REPORTS; i++) Reports[i] = "<none>";
  668.  
  669. PingTimer = SetTimer("PingKick",5000,1);
  670. GodTimer = SetTimer("GodUpdate",2000,1);
  671.  
  672. new year,month,day; getdate(year, month, day);
  673. new hour,minute,second; gettime(hour,minute,second);
  674.  
  675. print("________________________________________");
  676. print(" LAdmin Version 4.0 ");
  677. print(" Loaded ");
  678. print("________________________________________");
  679. printf(" Date: %d/%d/%d Time: %d:%d :%d ",day,month,year, hour, minute, second);
  680. print("________________________________________");
  681. print("________________________________________\n");
  682. return 1;
  683. }
  684. //==============================================================================
  685. public OnFilterScriptExit()
  686. {
  687. KillTimer(PingTimer);
  688. KillTimer(GodTimer);
  689. #if defined USE_MENUS
  690. DestroyAllMenus();
  691. #endif
  692.  
  693. new year,month,day; getdate(year, month, day);
  694. new hour,minute,second; gettime(hour,minute,second);
  695. print("\n________________________________________");
  696. print("________________________________________");
  697. print(" LAdmin Unloaded ");
  698. print("________________________________________");
  699. printf(" Date: %d/%d/%d Time: %d:%d :%d ",day,month,year, hour, minute, second);
  700. print("________________________________________");
  701. print("________________________________________\n");
  702. return 1;
  703. }
  704.  
  705. //==============================================================================
  706. public OnPlayerConnect(playerid)
  707. {
  708.  
  709. PlayerInfo[playerid][Score] = 0;
  710. PlayerInfo[playerid][Deaths] = 0;
  711. PlayerInfo[playerid][Kills] = 0;
  712. PlayerInfo[playerid][Jailed] = 0;
  713. PlayerInfo[playerid][Frozen] = 0;
  714. PlayerInfo[playerid][Level] = 0;
  715. PlayerInfo[playerid][LoggedIn] = 0;
  716. PlayerInfo[playerid][Registered] = 0;
  717. PlayerInfo[playerid][God] = 0;
  718. PlayerInfo[playerid][GodCar] = 0;
  719. PlayerInfo[playerid][TimesSpawned] = 0;
  720. PlayerInfo[playerid][Muted] = 0;
  721. PlayerInfo[playerid][MuteWarnings] = 0;
  722. PlayerInfo[playerid][Warnings] = 0;
  723. PlayerInfo[playerid][Caps] = 0;
  724. PlayerInfo[playerid][DoorsLocked] = 0;
  725. PlayerInfo[playerid][pCar] = -1;
  726. for(new i; i<PING_MAX_EXCEEDS; i++) PlayerInfo[playerid][pPing][i] = 0;
  727. PlayerInfo[playerid][SpamCount] = 0;
  728. PlayerInfo[playerid][SpamTime] = 0;
  729. PlayerInfo[playerid][PingCount] = 0;
  730. PlayerInfo[playerid][PingTime] = 0;
  731. PlayerInfo[playerid][FailLogin] = 0;
  732. PlayerInfo[playerid][ConnectTime] = gettime();
  733. //------------------------------------------------------
  734. new PlayerName[MAX_PLAYER_NAME], string[128], str[128], file[256];
  735. GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
  736. new tmp3[50]; GetPlayerIp(playerid,tmp3,50);
  737. //-----------------------------------------------------
  738. if(ServerInfo[ConnectMessages] == 1)
  739. {
  740. new pAKA[256]; pAKA = dini_Get("ladmin/config/aka.txt",tmp3);
  741. if (strlen(pAKA) < 3) format(str,sizeof(str),"*** %s (%d) has joined the server", PlayerName, playerid);
  742. else if (!strcmp(pAKA,PlayerName,false)) format(str,sizeof(str),"*** %s (%d) has joined the server", PlayerName, playerid);
  743. else format(str,sizeof(str),"*** %s (%d) has joined the server (aka %s)", PlayerName, playerid, pAKA );
  744.  
  745. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && playerid != i)
  746. {
  747. if(PlayerInfo[i][Level] > 5) SendClientMessage(i,grey,str);
  748. else {
  749. format(string,sizeof(string),"*** %s (%d) has joined the server", PlayerName, playerid);
  750. SendClientMessage(i,grey,string);
  751. }
  752. }
  753. }
  754. //-----------------------------------------------------
  755. if (dUserINT(PlayerName2(playerid)).("banned") == 1)
  756. {
  757. SendClientMessage(playerid, red, "This name is banned from this server!");
  758. format(string,sizeof(string),"%s ID:%d was auto kicked. Reason: Name banned from server",PlayerName,playerid);
  759. SendClientMessageToAll(grey, string); print(string);
  760. SaveToFile("KickLog",string); Kick(playerid);
  761. }
  762. //-----------------------------------------------------
  763. if(ServerInfo[NameKick] == 1) {
  764. for(new s = 0; s < BadNameCount; s++) {
  765. if(!strcmp(BadNames[s],PlayerName,true)) {
  766. SendClientMessage(playerid,red, "Your name is on our black list, you have been kicked.");
  767. format(string,sizeof(string),"%s ID:%d was auto kicked. (Reason: Forbidden name)",PlayerName,playerid);
  768. SendClientMessageToAll(grey, string); print(string);
  769. SaveToFile("KickLog",string); Kick(playerid);
  770. return 1;
  771. }
  772. }
  773. }
  774. //-----------------------------------------------------
  775. if(ServerInfo[PartNameKick] == 1) {
  776. for(new s = 0; s < BadPartNameCount; s++) {
  777. new pos;
  778. while((pos = strfind(PlayerName,BadPartNames[s],true)) != -1) for(new i = pos, j = pos + strlen(BadPartNames[s]); i < j; i++)
  779. {
  780. SendClientMessage(playerid,red, "Your name is not allowed on this server, you have been kicked.");
  781. format(string,sizeof(string),"%s ID:%d was auto kicked. (Reason: Forbidden name)",PlayerName,playerid);
  782. SendClientMessageToAll(grey, string); print(string);
  783. SaveToFile("KickLog",string); Kick(playerid);
  784. return 1;
  785. }
  786. }
  787. }
  788. //-----------------------------------------------------
  789. if(ServerInfo[Locked] == 1) {
  790. PlayerInfo[playerid][AllowedIn] = true;
  791. SendClientMessage(playerid,red,"Server is Locked! You have 20 seconds to enter the server password before you are kicked!");
  792. SendClientMessage(playerid,red," Type /password [password]");
  793. LockKickTimer[playerid] = SetTimerEx("AutoKick", 20000, 0, "i", playerid);
  794. }
  795. //-----------------------------------------------------
  796. if(strlen(dini_Get("ladmin/config/aka.txt", tmp3)) == 0) dini_Set("ladmin/config/aka.txt", tmp3, PlayerName);
  797. else
  798. {
  799. if( strfind( dini_Get("ladmin/config/aka.txt", tmp3), PlayerName, true) == -1 )
  800. {
  801. format(string,sizeof(string),"%s,%s", dini_Get("ladmin/config/aka.txt",tmp3), PlayerName);
  802. dini_Set("ladmin/config/aka.txt", tmp3, string);
  803. }
  804. }
  805. //-----------------------------------------------------
  806. if(!udb_Exists(PlayerName2(playerid))) SendClientMessage(playerid,orange, "ACCOUNT: Type /register [password] to create an account");
  807. else
  808. {
  809. PlayerInfo[playerid][Registered] = 1;
  810. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName));
  811. new tmp2[256]; tmp2 = dini_Get(file,"ip");
  812. if( (!strcmp(tmp3,tmp2,true)) && (ServerInfo[AutoLogin] == 1) )
  813. {
  814. LoginPlayer(playerid);
  815. {
  816. if(ServerInfo[SetScore] == 1) SetPlayerScore(playerid, dUserINT(PlayerName2(playerid)).("score") );
  817. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  818. }
  819. if(PlayerInfo[playerid][Level] > 0)
  820. {
  821. format(string,sizeof(string),"ACCOUNT: You have been automatically logged in. (Level %d)", PlayerInfo[playerid][Level] );
  822. SendClientMessage(playerid,green,string);
  823. }
  824. else SendClientMessage(playerid,green,"ACCOUNT: You have been automatically logged in.");
  825. }
  826. else SendClientMessage(playerid, green, "ACCOUNT: This nickname is registed, you can now login by typing /login [password]");
  827. }
  828. return 1;
  829. }
  830.  
  831.  
  832.  
  833. //==============================================================================
  834.  
  835. forward AutoKick(playerid);
  836. public AutoKick(playerid)
  837. {
  838. if( IsPlayerConnected(playerid) && ServerInfo[Locked] == 1 && PlayerInfo[playerid][AllowedIn] == false) {
  839. new string[128];
  840. SendClientMessage(playerid,grey,"You have been automatically kicked. Reason: Server Locked");
  841. format(string,sizeof(string),"%s ID:%d has been automatically kicked. Reason: Server Locked",PlayerName2(playerid),playerid);
  842. SaveToFile("KickLog",string); Kick(playerid);
  843. SendClientMessageToAll(grey, string); print(string);
  844. }
  845. return 1;
  846. }
  847.  
  848. //==============================================================================
  849.  
  850. public OnPlayerDisconnect(playerid, reason)
  851. {
  852. new PlayerName[MAX_PLAYER_NAME], str[128];
  853. GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  854.  
  855. if(ServerInfo[ConnectMessages] == 1)
  856. {
  857. switch (reason) {
  858. case 0: format(str, sizeof(str), "*** %s (%d) has left the server (Timeout)", PlayerName, playerid);
  859. case 1: format(str, sizeof(str), "*** %s (%d) has left the server (Leaving)", PlayerName, playerid);
  860. case 2: format(str, sizeof(str), "*** %s (%d) has left the server (Kicked/Banned)", PlayerName, playerid);
  861. }
  862. SendClientMessageToAll(grey, str);
  863. }
  864.  
  865. if(PlayerInfo[playerid][LoggedIn] == 1)
  866. SavePlayer(playerid);
  867. {
  868. dUserSetINT(PlayerName2(playerid)).("score",GetPlayerScore(playerid));
  869. dUserSetINT(PlayerName2(playerid)).("money",GetPlayerMoney(playerid));
  870. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  871. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  872. }
  873. if(udb_Exists(PlayerName2(playerid))) dUserSetINT(PlayerName2(playerid)).("loggedin",0);
  874. PlayerInfo[playerid][LoggedIn] = 0;
  875. PlayerInfo[playerid][Level] = 0;
  876. PlayerInfo[playerid][Jailed] = 0;
  877. PlayerInfo[playerid][Frozen] = 0;
  878. PlayerInfo[playerid][Kills] = 1;
  879. PlayerInfo[playerid][Score] = 1;
  880. if(PlayerInfo[playerid][Jailed] == 1) KillTimer( JailTimer[playerid] );
  881. if(PlayerInfo[playerid][Frozen] == 1) KillTimer( FreezeTimer[playerid] );
  882. if(ServerInfo[Locked] == 1) KillTimer( LockKickTimer[playerid] );
  883.  
  884. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  885.  
  886. #if defined ENABLE_SPEC
  887. for(new x=0; x<MAX_PLAYERS; x++)
  888. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
  889. AdvanceSpectate(x);
  890. #endif
  891.  
  892. return 1;
  893. }
  894.  
  895. forward DelayKillPlayer(playerid);
  896. public DelayKillPlayer(playerid)
  897. {
  898. SetPlayerHealth(playerid,0.0);
  899. ForceClassSelection(playerid);
  900. }
  901.  
  902. //==============================================================================
  903. public OnPlayerSpawn(playerid)
  904. {
  905. if(ServerInfo[Locked] == 1 && PlayerInfo[playerid][AllowedIn] == false)
  906. {
  907. GameTextForPlayer(playerid,"~r~Server Locked~n~You must enter password before spawning~n~/password <password>",4000,3);
  908. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  909. return 1;
  910. }
  911.  
  912. if(ServerInfo[MustLogin] == 1 && PlayerInfo[playerid][Registered] == 1 && PlayerInfo[playerid][LoggedIn] == 0)
  913. {
  914. GameTextForPlayer(playerid,"~r~You must login before playing!",4000,3);
  915. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  916. return 1;
  917. }
  918.  
  919. if(ServerInfo[MustRegister] == 1 && PlayerInfo[playerid][Registered] == 0)
  920. {
  921. GameTextForPlayer(playerid,"~r~You must register before playing!",4000,3);
  922. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  923. return 1;
  924. }
  925.  
  926. PlayerInfo[playerid][Spawned] = 1;
  927.  
  928. if(PlayerInfo[playerid][Frozen] == 1) {
  929. TogglePlayerControllable(playerid,false); return SendClientMessage(playerid,red,"You cant escape your punishment. You Are Still Frozen");
  930. }
  931.  
  932. if(PlayerInfo[playerid][Jailed] == 1) {
  933. SetTimerEx("JailPlayer",3000,0,"d",playerid); return SendClientMessage(playerid,red,"You cant escape your punishment. You Are Still In Jail");
  934. }
  935.  
  936. if(ServerInfo[AdminOnlySkins] == 1) {
  937. if( (GetPlayerSkin(playerid) == ServerInfo[AdminSkin]) || (GetPlayerSkin(playerid) == ServerInfo[AdminSkin2]) ) {
  938. if(PlayerInfo[playerid][Level] >= 1)
  939. GameTextForPlayer(playerid,"~b~Welcome~n~~w~Admin",3000,1);
  940. else {
  941. GameTextForPlayer(playerid,"~r~This Skin Is For~n~Administrators~n~Only",4000,1);
  942. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  943. return 1;
  944. }
  945. }
  946. }
  947.  
  948. if((dUserINT(PlayerName2(playerid)).("UseSkin")) == 1)
  949. if((PlayerInfo[playerid][Level] >= 1) && (PlayerInfo[playerid][LoggedIn] == 1))
  950. SetPlayerSkin(playerid,(dUserINT(PlayerName2(playerid)).("FavSkin")) );
  951.  
  952. if(ServerInfo[GiveWeap] == 1) {
  953. if(PlayerInfo[playerid][LoggedIn] == 1) {
  954. PlayerInfo[playerid][TimesSpawned]++;
  955. if(PlayerInfo[playerid][TimesSpawned] == 1)
  956. {
  957. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap1"), dUserINT(PlayerName2(playerid)).("weap1ammo") );
  958. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap2"), dUserINT(PlayerName2(playerid)).("weap2ammo") );
  959. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap3"), dUserINT(PlayerName2(playerid)).("weap3ammo") );
  960. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap4"), dUserINT(PlayerName2(playerid)).("weap4ammo") );
  961. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap5"), dUserINT(PlayerName2(playerid)).("weap5ammo") );
  962. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap6"), dUserINT(PlayerName2(playerid)).("weap6ammo") );
  963. }
  964. }
  965. }
  966. return 1;
  967. }
  968.  
  969. //==============================================================================
  970.  
  971. public OnPlayerDeath(playerid, killerid, reason)
  972. {
  973. #if defined USE_STATS
  974. PlayerInfo[playerid][Deaths]++;
  975. #endif
  976. InDuel[playerid] = 0;
  977.  
  978. if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
  979. {
  980. #if defined USE_STATS
  981. PlayerInfo[killerid][Kills]++;
  982. #endif
  983.  
  984. if(InDuel[playerid] == 1 && InDuel[killerid] == 1)
  985. {
  986. GameTextForPlayer(playerid,"Loser !",3000,3);
  987. GameTextForPlayer(killerid,"Winner !",3000,3);
  988. InDuel[killerid] = 0;
  989. SetPlayerPos(killerid, 0.0, 0.0, 0.0);
  990. SpawnPlayer(killerid);
  991. }
  992. else if(InDuel[playerid] == 1 && InDuel[killerid] == 0)
  993. {
  994. GameTextForPlayer(playerid,"Loser !",3000,3);
  995. }
  996. }
  997.  
  998. #if defined ENABLE_SPEC
  999. for(new x=0; x<MAX_PLAYERS; x++)
  1000. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
  1001. AdvanceSpectate(x);
  1002. #endif
  1003.  
  1004.  
  1005. return 1;
  1006. }
  1007.  
  1008. //==============================================================================
  1009.  
  1010. public OnPlayerText(playerid, text[])
  1011. {
  1012. new str[256];
  1013. new is1 = 0;
  1014. new r = 0;
  1015. while(strlen(text[is1]))
  1016. {
  1017. if('0'<=text[is1]<='9')
  1018. {
  1019. new is2=is1+1;
  1020. new p=0;
  1021. while(p==0)
  1022. {
  1023. if('0'<=text[is2]<='9'&&strlen(text[is2])) is2++;
  1024. else
  1025. {
  1026. strmid(str[r],text,is1,is2,255);
  1027. if(strval(str[r])<255) r++;
  1028. is1 = is2;
  1029. p = 1;
  1030. }
  1031. }
  1032. }
  1033. is1++;
  1034. }
  1035. if(r>=4)
  1036. {
  1037. for(new z=0;z<r;z++)
  1038. {
  1039. new pr2;
  1040. while((pr2=strfind(text,str[z],true))!=-1) for(new i=pr2,j=pr2+strlen(str[z]);i<j;i++) text[i]='*';
  1041. }
  1042. }
  1043.  
  1044.  
  1045. if(text[0] == '#' && PlayerInfo[playerid][Level] >= 1) {
  1046. new string[128]; GetPlayerName(playerid,string,sizeof(string));
  1047. format(string,sizeof(string),"Admin Chat: %s: %s",string,text[1]); MessageToAdmins(green,string);
  1048. return 0;
  1049. }
  1050.  
  1051. if(ServerInfo[DisableChat] == 1) {
  1052. SendClientMessage(playerid,red,"Chat has been disabled");
  1053. return 0;
  1054. }
  1055.  
  1056. if(PlayerInfo[playerid][Muted] == 1)
  1057. {
  1058. PlayerInfo[playerid][MuteWarnings]++;
  1059. new string[128];
  1060. if(PlayerInfo[playerid][MuteWarnings] < ServerInfo[MaxMuteWarnings]) {
  1061. format(string, sizeof(string),"WARNING: You are muted, if you continue to speak you will be kicked. (%d / %d)", PlayerInfo[playerid][MuteWarnings], ServerInfo[MaxMuteWarnings] );
  1062. SendClientMessage(playerid,red,string);
  1063. } else {
  1064. SendClientMessage(playerid,red,"You have been warned ! Now you have been kicked");
  1065. format(string, sizeof(string),"***%s (ID %d) was kicked for exceeding mute warnings", PlayerName2(playerid), playerid);
  1066. SendClientMessageToAll(grey,string);
  1067. SaveToFile("KickLog",string); Kick(playerid);
  1068. } return 0;
  1069. }
  1070.  
  1071. if(ServerInfo[AntiSpam] == 1 && (PlayerInfo[playerid][Level] == 0 && !IsPlayerAdmin(playerid)) )
  1072. {
  1073. if(PlayerInfo[playerid][SpamCount] == 0) PlayerInfo[playerid][SpamTime] = TimeStamp();
  1074.  
  1075. PlayerInfo[playerid][SpamCount]++;
  1076. if(TimeStamp() - PlayerInfo[playerid][SpamTime] > SPAM_TIMELIMIT) { // Its OK your messages were far enough apart
  1077. PlayerInfo[playerid][SpamCount] = 0;
  1078. PlayerInfo[playerid][SpamTime] = TimeStamp();
  1079. }
  1080. else if(PlayerInfo[playerid][SpamCount] == SPAM_MAX_MSGS) {
  1081. new string[64]; format(string,sizeof(string),"%s has been kicked (Flood/Spam Protection)", PlayerName2(playerid));
  1082. SendClientMessageToAll(grey,string); print(string);
  1083. SaveToFile("KickLog",string);
  1084. Kick(playerid);
  1085. }
  1086. else if(PlayerInfo[playerid][SpamCount] == SPAM_MAX_MSGS-1) {
  1087. SendClientMessage(playerid,red,"Anti Spam Warning! Next is a kick.");
  1088. return 0;
  1089. }
  1090. }
  1091.  
  1092. if(ServerInfo[AntiSwear] == 1 && PlayerInfo[playerid][Level] < ServerInfo[MaxAdminLevel])
  1093. for(new s = 0; s < ForbiddenWordCount; s++)
  1094. {
  1095. new pos;
  1096. while((pos = strfind(text,ForbiddenWords[s],true)) != -1) for(new i = pos, j = pos + strlen(ForbiddenWords[s]); i < j; i++) text[i] = '*';
  1097. }
  1098.  
  1099. if(PlayerInfo[playerid][Caps] == 1) UpperToLower(text);
  1100. if(ServerInfo[NoCaps] == 1) UpperToLower(text);
  1101.  
  1102. for(new i = 1; i < MAX_CHAT_LINES-1; i++) Chat[i] = Chat[i+1];
  1103. new ChatSTR[128]; GetPlayerName(playerid,ChatSTR,sizeof(ChatSTR)); format(ChatSTR,128,"[lchat]%s: %s",ChatSTR, text[0] );
  1104. Chat[MAX_CHAT_LINES-1] = ChatSTR;
  1105. return 1;
  1106. }
  1107.  
  1108. //==============================================================================
  1109. public OnPlayerPrivmsg(playerid, recieverid, text[])
  1110. {
  1111. if(ServerInfo[ReadPMs] == 1 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel])
  1112. {
  1113. new string[128],recievername[MAX_PLAYER_NAME];
  1114. GetPlayerName(playerid, string, sizeof(string)); GetPlayerName(recieverid, recievername, sizeof(recievername));
  1115. format(string, sizeof(string), "***PM: %s To %s: %s", string, recievername, text);
  1116. for (new a = 0; a < MAX_PLAYERS; a++) if (IsPlayerConnected(a) && (PlayerInfo[a][Level] >= ServerInfo[MaxAdminLevel]) && a != playerid)
  1117. SendClientMessage(a, grey, string);
  1118. }
  1119.  
  1120. if(PlayerInfo[playerid][Muted] == 1)
  1121. {
  1122. new string[128];
  1123. PlayerInfo[playerid][MuteWarnings]++;
  1124. if(PlayerInfo[playerid][MuteWarnings] < ServerInfo[MaxMuteWarnings]) {
  1125. format(string, sizeof(string),"WARNING: You are muted, if you continue to speak you will be kicked (Warning: %d/%d)", PlayerInfo[playerid][MuteWarnings], ServerInfo[MaxMuteWarnings] );
  1126. SendClientMessage(playerid,red,string);
  1127. } else {
  1128. SendClientMessage(playerid,red,"You have been warned! Now you have been kicked");
  1129. GetPlayerName(playerid, string, sizeof(string));
  1130. format(string, sizeof(string),"%s [ID %d] Kicked for exceeding mute warnings", string, playerid);
  1131. SendClientMessageToAll(grey,string);
  1132. SaveToFile("KickLog",string); Kick(playerid);
  1133. } return 0;
  1134. }
  1135. return 1;
  1136. }
  1137.  
  1138. forward HighLight(playerid);
  1139. public HighLight(playerid)
  1140. {
  1141. if(!IsPlayerConnected(playerid)) return 1;
  1142. if(PlayerInfo[playerid][blipS] == 0) { SetPlayerColor(playerid, 0xFF0000AA); PlayerInfo[playerid][blipS] = 1; }
  1143. else { SetPlayerColor(playerid, 0x33FF33AA); PlayerInfo[playerid][blipS] = 0; }
  1144. return 0;
  1145. }
  1146.  
  1147. //===================== [ DCMD Commands ]=======================================
  1148.  
  1149. dcmd_giveweapon(playerid,params[]) {
  1150. if(PlayerInfo[playerid][Level] >= 1) {
  1151. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  1152. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /giveweapon [playerid] [weapon id/weapon name] [ammo]");
  1153. new player1 = strval(tmp), weap, ammo, WeapName[32], string[128];
  1154. if(!strlen(tmp3) || !IsNumeric(tmp3) || strval(tmp3) <= 0 || strval(tmp3) > 99999) ammo = 99999; else ammo = strval(tmp3);
  1155. if(!IsNumeric(tmp2)) weap = GetWeaponIDFromName(tmp2); else weap = strval(tmp2);
  1156. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1157. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid weapon ID");
  1158. CMDMessageToAdmins(playerid,"GIVEWEAPON");
  1159. GetWeaponName(weap,WeapName,32);
  1160. format(string, sizeof(string), "You have given \"%s\" a %s (%d) with %d rounds of ammo", PlayerName2(player1), WeapName, weap, ammo); SendClientMessage(playerid,blue,string);
  1161. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has given you a %s (%d) with %d rounds of ammo", PlayerName2(playerid), WeapName, weap, ammo); SendClientMessage(player1,blue,string); }
  1162. return GivePlayerWeapon(player1, weap, ammo);
  1163. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1164. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1165. }
  1166.  
  1167. dcmd_sethealth(playerid,params[]) {
  1168. if(PlayerInfo[playerid][Level] >= 1) {
  1169. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1170. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /sethealth [playerid] [amount]");
  1171. if(strval(tmp2) < 0 || strval(tmp2) > 100 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid, red, "ERROR: Invaild health amount");
  1172. new player1 = strval(tmp), health = strval(tmp2), string[128];
  1173. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1174. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1175. CMDMessageToAdmins(playerid,"SETHEALTH");
  1176. format(string, sizeof(string), "You have set \"%s's\" health to '%d", pName(player1), health); SendClientMessage(playerid,blue,string);
  1177. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your health to '%d'", pName(playerid), health); SendClientMessage(player1,blue,string); }
  1178. return SetPlayerHealth(player1, health);
  1179. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1180. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1181. }
  1182.  
  1183. dcmd_setarmour(playerid,params[]) {
  1184. if(PlayerInfo[playerid][Level] >= 1) {
  1185. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1186. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setarmour [playerid] [amount]");
  1187. if(strval(tmp2) < 0 || strval(tmp2) > 100 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid, red, "ERROR: Invaild health amount");
  1188. new player1 = strval(tmp), armour = strval(tmp2), string[128];
  1189. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1190. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1191. CMDMessageToAdmins(playerid,"SETARMOUR");
  1192. format(string, sizeof(string), "You have set \"%s's\" armour to '%d", pName(player1), armour); SendClientMessage(playerid,blue,string);
  1193. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your armour to '%d'", pName(playerid), armour); SendClientMessage(player1,blue,string); }
  1194. return SetPlayerArmour(player1, armour);
  1195. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1196. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1197. }
  1198.  
  1199. dcmd_setcash(playerid,params[]) {
  1200. if(PlayerInfo[playerid][Level] >= 4) {
  1201. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1202. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setcash [playerid] [amount]");
  1203. new player1 = strval(tmp), cash = strval(tmp2), string[128];
  1204. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1205. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1206. CMDMessageToAdmins(playerid,"SETCASH");
  1207. format(string, sizeof(string), "You have set \"%s's\" cash to '$%d", pName(player1), cash); SendClientMessage(playerid,blue,string);
  1208. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your cash to '$%d'", pName(playerid), cash); SendClientMessage(player1,blue,string); }
  1209. ResetPlayerMoney(player1);
  1210. return GivePlayerMoney(player1, cash);
  1211. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1212. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1213. }
  1214.  
  1215. dcmd_setscore(playerid,params[]) {
  1216. if(PlayerInfo[playerid][Level] >= 5) {
  1217. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1218. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setscore [playerid] [score]");
  1219. new player1 = strval(tmp), score = strval(tmp2), string[128];
  1220. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1221. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1222. CMDMessageToAdmins(playerid,"SETSCORE");
  1223. format(string, sizeof(string), "You have set \"%s's\" score to '%d' ", pName(player1), score); SendClientMessage(playerid,blue,string);
  1224. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your score to '%d'", pName(playerid), score); SendClientMessage(player1,blue,string); }
  1225. return SetPlayerScore(player1, score);
  1226. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1227. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1228. }
  1229.  
  1230. dcmd_setskin(playerid,params[]) {
  1231. if(PlayerInfo[playerid][Level] >= 1) {
  1232. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1233. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setskin [playerid] [skin id]");
  1234. new player1 = strval(tmp), skin = strval(tmp2), string[128];
  1235. if(!IsValidSkin(skin)) return SendClientMessage(playerid, red, "ERROR: Invaild Skin ID");
  1236. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1237. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1238. CMDMessageToAdmins(playerid,"SETSKIN");
  1239. format(string, sizeof(string), "You have set \"%s's\" skin to '%d", pName(player1), skin); SendClientMessage(playerid,blue,string);
  1240. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your skin to '%d'", pName(playerid), skin); SendClientMessage(player1,blue,string); }
  1241. return SetPlayerSkin(player1, skin);
  1242. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1243. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1244. }
  1245.  
  1246. dcmd_setwanted(playerid,params[]) {
  1247. if(PlayerInfo[playerid][Level] >= 1) {
  1248. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1249. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setwanted [playerid] [level]");
  1250. new player1 = strval(tmp), wanted = strval(tmp2), string[128];
  1251. // if(wanted > 6) return SendClientMessage(playerid, red, "ERROR: Invaild wanted level");
  1252. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1253. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1254. CMDMessageToAdmins(playerid,"SETWANTED");
  1255. format(string, sizeof(string), "You have set \"%s's\" wanted level to '%d", pName(player1), wanted); SendClientMessage(playerid,blue,string);
  1256. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your wanted level to '%d'", pName(playerid), wanted); SendClientMessage(player1,blue,string); }
  1257. return SetPlayerWantedLevel(player1, wanted);
  1258. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1259. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1260. }
  1261.  
  1262. dcmd_setname(playerid,params[]) {
  1263. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  1264. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1265. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
  1266. new player1 = strval(tmp), length = strlen(tmp2), string[128];
  1267. if(length < 3 || length > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
  1268. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1269. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1270. CMDMessageToAdmins(playerid,"SETNAME");
  1271. format(string, sizeof(string), "You have set \"%s's\" name to \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
  1272. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
  1273. SetPlayerName(player1, tmp2);
  1274. return OnPlayerConnect(player1);
  1275. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1276. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1277. }
  1278.  
  1279. dcmd_setcolour(playerid,params[]) {
  1280. if(PlayerInfo[playerid][Level] >= 1) {
  1281. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1282. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) {
  1283. SendClientMessage(playerid, red, "USAGE: /setcolour [playerid] [Colour]");
  1284. return SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  1285. }
  1286. new player1 = strval(tmp), Colour = strval(tmp2), string[128], colour[24];
  1287. if(Colour > 9) return SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  1288. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1289. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1290. CMDMessageToAdmins(playerid,"SETCOLOUR");
  1291. switch (Colour)
  1292. {
  1293. case 0: { SetPlayerColor(player1,black); colour = "Black"; }
  1294. case 1: { SetPlayerColor(player1,COLOR_WHITE); colour = "White"; }
  1295. case 2: { SetPlayerColor(player1,red); colour = "Red"; }
  1296. case 3: { SetPlayerColor(player1,orange); colour = "Orange"; }
  1297. case 4: { SetPlayerColor(player1,orange); colour = "Yellow"; }
  1298. case 5: { SetPlayerColor(player1,COLOR_GREEN1); colour = "Green"; }
  1299. case 6: { SetPlayerColor(player1,COLOR_BLUE); colour = "Blue"; }
  1300. case 7: { SetPlayerColor(player1,COLOR_PURPLE); colour = "Purple"; }
  1301. case 8: { SetPlayerColor(player1,COLOR_BROWN); colour = "Brown"; }
  1302. case 9: { SetPlayerColor(player1,COLOR_PINK); colour = "Pink"; }
  1303. }
  1304. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set colour to '%s' ", pName(playerid), colour); SendClientMessage(player1,blue,string); }
  1305. format(string, sizeof(string), "You have set \"%s's\" colour to '%s' ", pName(player1), colour);
  1306. return SendClientMessage(playerid,blue,string);
  1307. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1308. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1309. }
  1310.  
  1311. dcmd_setweather(playerid,params[]) {
  1312. if(PlayerInfo[playerid][Level] >= 3) {
  1313. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1314. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setweather [playerid] [weather id]");
  1315. new player1 = strval(tmp), weather = strval(tmp2), string[128];
  1316. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1317. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1318. CMDMessageToAdmins(playerid,"SETWEATHER");
  1319. format(string, sizeof(string), "You have set \"%s's\" weather to '%d", pName(player1), weather); SendClientMessage(playerid,blue,string);
  1320. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your weather to '%d'", pName(playerid), weather); SendClientMessage(player1,blue,string); }
  1321. SetPlayerWeather(player1,weather); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1322. return PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  1323. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1324. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1325. }
  1326.  
  1327. dcmd_settime(playerid,params[]) {
  1328. if(PlayerInfo[playerid][Level] >= 3) {
  1329. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1330. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /settime [playerid] [hour]");
  1331. new player1 = strval(tmp), time = strval(tmp2), string[128];
  1332. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1333. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1334. CMDMessageToAdmins(playerid,"SETTIME");
  1335. format(string, sizeof(string), "You have set \"%s's\" time to %d:00", pName(player1), time); SendClientMessage(playerid,blue,string);
  1336. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your time to %d:00", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1337. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1338. return SetPlayerTime(player1, time, 0);
  1339. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1340. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1341. }
  1342.  
  1343. dcmd_setworld(playerid,params[]) {
  1344. if(PlayerInfo[playerid][Level] >= 3) {
  1345. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1346. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setworld [playerid] [virtual world]");
  1347. new player1 = strval(tmp), time = strval(tmp2), string[128];
  1348. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1349. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1350. CMDMessageToAdmins(playerid,"SETWORLD");
  1351. format(string, sizeof(string), "You have set \"%s's\" virtual world to '%d'", pName(player1), time); SendClientMessage(playerid,blue,string);
  1352. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your virtual world to '%d' ", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1353. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1354. return SetPlayerVirtualWorld(player1, time);
  1355. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1356. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1357. }
  1358.  
  1359. dcmd_setinterior(playerid,params[]) {
  1360. if(PlayerInfo[playerid][Level] >= 3) {
  1361. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1362. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setinterior [playerid] [interior]");
  1363. new player1 = strval(tmp), time = strval(tmp2), string[128];
  1364. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1365. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1366. CMDMessageToAdmins(playerid,"SETINTERIOR");
  1367. format(string, sizeof(string), "You have set \"%s's\" interior to '%d' ", pName(player1), time); SendClientMessage(playerid,blue,string);
  1368. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your interior to '%d' ", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1369. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1370. return SetPlayerInterior(player1, time);
  1371. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1372. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1373. }
  1374.  
  1375. dcmd_setmytime(playerid,params[]) {
  1376. if(PlayerInfo[playerid][Level] >= 1) {
  1377. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setmytime [hour]");
  1378. new time = strval(params), string[128];
  1379. CMDMessageToAdmins(playerid,"SETMYTIME");
  1380. format(string,sizeof(string),"You have set your time to %d:00", time); SendClientMessage(playerid,blue,string);
  1381. return SetPlayerTime(playerid, time, 0);
  1382. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1383. }
  1384.  
  1385. dcmd_force(playerid,params[]) {
  1386. if(PlayerInfo[playerid][Level] >= 3) {
  1387. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /force [playerid]");
  1388. new player1 = strval(params), string[128];
  1389. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1390. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1391. CMDMessageToAdmins(playerid,"FORCE");
  1392. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has forced you into class selection", pName(playerid) ); SendClientMessage(player1,blue,string); }
  1393. format(string,sizeof(string),"You have forced \"%s\" into class selection", pName(player1)); SendClientMessage(playerid,blue,string);
  1394. ForceClassSelection(player1);
  1395. return SetPlayerHealth(player1,0.0);
  1396. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1397. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1398. }
  1399.  
  1400. dcmd_eject(playerid,params[]) {
  1401. if(PlayerInfo[playerid][Level] >= 1) {
  1402. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /eject [playerid]");
  1403. new player1 = strval(params), string[128], Float:x, Float:y, Float:z;
  1404. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1405. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1406. if(IsPlayerInAnyVehicle(player1)) {
  1407. CMDMessageToAdmins(playerid,"EJECT");
  1408. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has ejected you from your vehicle", pName(playerid) ); SendClientMessage(player1,blue,string); }
  1409. format(string,sizeof(string),"You have ejected \"%s\" from their vehicle", pName(player1)); SendClientMessage(playerid,blue,string);
  1410. GetPlayerPos(player1,x,y,z);
  1411. return SetPlayerPos(player1,x,y,z+3);
  1412. } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  1413. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1414. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1415. }
  1416.  
  1417. dcmd_lockcar(playerid,params[]) {
  1418. #pragma unused params
  1419. if(PlayerInfo[playerid][Level] >= 1) {
  1420. if(IsPlayerInAnyVehicle(playerid)) {
  1421. for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,true);
  1422. CMDMessageToAdmins(playerid,"LOCKCAR");
  1423. PlayerInfo[playerid][DoorsLocked] = 1;
  1424. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has locked his car", pName(playerid));
  1425. return SendClientMessageToAll(blue,string);
  1426. } else return SendClientMessage(playerid,red,"ERROR: You need to be in a vehicle to lock the doors");
  1427. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1428. }
  1429.  
  1430. dcmd_unlockcar(playerid,params[]) {
  1431. #pragma unused params
  1432. if(PlayerInfo[playerid][Level] >= 2) {
  1433. if(IsPlayerInAnyVehicle(playerid)) {
  1434. for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,false);
  1435. CMDMessageToAdmins(playerid,"UNLOCKCAR");
  1436. PlayerInfo[playerid][DoorsLocked] = 0;
  1437. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unlocked his car", pName(playerid));
  1438. return SendClientMessageToAll(blue,string);
  1439. } else return SendClientMessage(playerid,red,"ERROR: You need to be in a vehicle to lock the doors");
  1440. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1441. }
  1442.  
  1443. dcmd_burn(playerid,params[]) {
  1444. if(PlayerInfo[playerid][Level] >= 2) {
  1445. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /burn [playerid]");
  1446. new player1 = strval(params), string[128], Float:x, Float:y, Float:z;
  1447. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1448. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1449. CMDMessageToAdmins(playerid,"BURN");
  1450. format(string, sizeof(string), "You have burnt \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1451. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has burnt you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1452. GetPlayerPos(player1, x, y, z);
  1453. return CreateExplosion(x, y , z + 3, 1, 10);
  1454. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1455. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1456. }
  1457.  
  1458. dcmd_spawnplayer(playerid,params[])
  1459. {
  1460. return dcmd_spawn(playerid,params);
  1461. }
  1462.  
  1463. dcmd_spawn(playerid,params[]) {
  1464. if(PlayerInfo[playerid][Level] >= 2) {
  1465. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /spawn [playerid]");
  1466. new player1 = strval(params), string[128];
  1467. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1468. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1469. CMDMessageToAdmins(playerid,"SPAWN");
  1470. format(string, sizeof(string), "You have spawned \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1471. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has spawned you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1472. SetPlayerPos(player1, 0.0, 0.0, 0.0);
  1473. return SpawnPlayer(player1);
  1474. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1475. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1476. }
  1477.  
  1478. dcmd_disarm(playerid,params[]) {
  1479. if(PlayerInfo[playerid][Level] >= 2) {
  1480. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /disarm [playerid]");
  1481. new player1 = strval(params), string[128];
  1482. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1483. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1484. CMDMessageToAdmins(playerid,"DISARM"); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1485. format(string, sizeof(string), "You have disarmed \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1486. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has disarmed you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1487. ResetPlayerWeapons(player1);
  1488. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1489. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1490. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1491. }
  1492.  
  1493. dcmd_crash(playerid,params[]) {
  1494. if(PlayerInfo[playerid][Level] >= 4) {
  1495. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /crash [playerid]");
  1496. new player1 = strval(params), string[128], Float:X,Float:Y,Float:Z;
  1497. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1498. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1499. CMDMessageToAdmins(playerid,"CRASH");
  1500. GetPlayerPos(player1,X,Y,Z);
  1501. new objectcrash = CreatePlayerObject(player1,11111111,X,Y,Z,0,0,0);
  1502. DestroyObject(objectcrash);
  1503. format(string, sizeof(string), "You have crashed \"%s's\" game", pName(player1) );
  1504. return SendClientMessage(playerid,blue, string);
  1505. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1506. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1507. }
  1508.  
  1509. dcmd_ip(playerid,params[]) {
  1510. if(PlayerInfo[playerid][Level] >= 1) {
  1511. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ip [playerid]");
  1512. new player1 = strval(params), string[128];
  1513. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1514. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1515. CMDMessageToAdmins(playerid,"IP");
  1516. new tmp3[50]; GetPlayerIp(player1,tmp3,50);
  1517. format(string,sizeof(string),"\"%s's\" ip is '%s'", pName(player1), tmp3);
  1518. return SendClientMessage(playerid,blue,string);
  1519. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1520. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1521. }
  1522.  
  1523. dcmd_bankrupt(playerid,params[]) {
  1524. if(PlayerInfo[playerid][Level] >= 3) {
  1525. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /bankrupt [playerid]");
  1526. new player1 = strval(params), string[128];
  1527. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1528. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1529. CMDMessageToAdmins(playerid,"BANKRUPT");
  1530. format(string, sizeof(string), "You have reset \"%s's\" cash", pName(player1)); SendClientMessage(playerid,blue,string);
  1531. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has reset your cash'", pName(playerid)); SendClientMessage(player1,blue,string); }
  1532. return ResetPlayerMoney(player1);
  1533. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1534. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1535. }
  1536.  
  1537. dcmd_sbankrupt(playerid,params[]) {
  1538. if(PlayerInfo[playerid][Level] >= 3) {
  1539. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /sbankrupt [playerid]");
  1540. new player1 = strval(params), string[128];
  1541. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1542. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1543. CMDMessageToAdmins(playerid,"BANKRUPT");
  1544. format(string, sizeof(string), "You have silently reset \"%s's\" cash", pName(player1)); SendClientMessage(playerid,blue,string);
  1545. return ResetPlayerMoney(player1);
  1546. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1547. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1548. }
  1549.  
  1550. dcmd_kill(playerid,params[]) {
  1551. #pragma unused params
  1552. return SetPlayerHealth(playerid,0.0);
  1553. }
  1554.  
  1555. dcmd_time(playerid,params[]) {
  1556. #pragma unused params
  1557. new string[64], hour,minuite,second; gettime(hour,minuite,second);
  1558. format(string, sizeof(string), "~g~|~w~%d:%d~g~|", hour, minuite);
  1559. return GameTextForPlayer(playerid, string, 5000, 1);
  1560. }
  1561.  
  1562. dcmd_ubound(playerid,params[]) {
  1563. if(PlayerInfo[playerid][Level] >= 3) {
  1564. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ubound [playerid]");
  1565. new string[128], player1 = strval(params);
  1566.  
  1567. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1568. CMDMessageToAdmins(playerid,"UBOUND");
  1569. SetPlayerWorldBounds(player1, 9999.9, -9999.9, 9999.9, -9999.9 );
  1570. format(string, sizeof(string), "Administrator %s has removed your world boundaries", PlayerName2(playerid)); if(player1 != playerid) SendClientMessage(player1,blue,string);
  1571. format(string,sizeof(string),"You have removed %s's world boundaries", PlayerName2(player1));
  1572. return SendClientMessage(playerid,blue,string);
  1573. } else return SendClientMessage(playerid, red, "Player is not connected");
  1574. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1575. }
  1576.  
  1577. dcmd_lhelp(playerid,params[]) {
  1578. #pragma unused params
  1579. if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] >= 1) {
  1580. SendClientMessage(playerid,blue,"--== [ LAdmin Help ] ==--");
  1581. SendClientMessage(playerid,blue, "For admin commands type: /lcommands | Credits: /lcredits");
  1582. SendClientMessage(playerid,blue, "Account commands are: /register, /login, /changepass, /stats, /resetstats. Also /time, /report");
  1583. SendClientMessage(playerid,blue, "There are 5 levels. Level 5 admins are immune from commands");
  1584. SendClientMessage(playerid,blue, "IMPORTANT: The filterscript must be reloaded if you change gamemodes");
  1585. }
  1586. else if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] < 1) {
  1587. SendClientMessage(playerid,green, "Your commands are: /register, /login, /report, /stats, /time, /changepass, /resetstats, /getid");
  1588. }
  1589. else if(PlayerInfo[playerid][LoggedIn] == 0) {
  1590. SendClientMessage(playerid,green, "Your commands are: /time, /getid (You are not logged in, log in for more commands)");
  1591. } return 1;
  1592. }
  1593.  
  1594. dcmd_lcmds(playerid,params[]) {
  1595. #pragma unused params
  1596. if(PlayerInfo[playerid][Level] > 1)
  1597. {
  1598. SendClientMessage(playerid,blue," ---= [ Most Useful Admin Commands ] ==---");
  1599. SendClientMessage(playerid,lightblue,"GENERAL: getinfo, lmenu, announce, write, miniguns, richlist, lspec(off), move, lweaps, adminarea, countdown, duel, giveweapon");
  1600. SendClientMessage(playerid,lightblue,"GENERAL: slap, burn, warn, kick, ban, explode, jail, freeze, mute, crash, ubound, god, godcar, ping");
  1601. SendClientMessage(playerid,lightblue,"GENERAL: setping, enable/disable, setlevel, setinterior, givecar, jetpack, force, spawn");
  1602. SendClientMessage(playerid,lightblue,"VEHICLE: flip, fix, repair, lockcar, eject, ltc, car, lcar, lbike, lplane, lheli, lboat, lnos, cm");
  1603. SendClientMessage(playerid,lightblue,"TELE: goto, gethere, get, teleplayer, ltele, vgoto, lgoto, moveplayer");
  1604. SendClientMessage(playerid,lightblue,"SET: set(cash/health/armour/gravity/name/time/weather/skin/colour/wanted/templevel)");
  1605. SendClientMessage(playerid,lightblue,"SETALL: setall(world/weather/wanted/time/score/cash)");
  1606. SendClientMessage(playerid,lightblue,"ALL: giveallweapon, healall, armourall, freezeall, kickall, ejectall, killall, disarmall, slapall, spawnall");
  1607. }
  1608. return 1;
  1609. }
  1610.  
  1611. dcmd_lcommands(playerid,params[]) {
  1612. #pragma unused params
  1613. if(PlayerInfo[playerid][Level] > 0)
  1614. {
  1615. SendClientMessage(playerid,blue," ---= All Admin Commands =---");
  1616. SendClientMessage(playerid,lightblue," /level1, /level2, /level3, /level4, /level5, /rcon ladmin");
  1617. SendClientMessage(playerid,lightblue,"Player Commands: /register, /login, /report, /stats, /time, /changepass, /resetstats, /getid");
  1618. }
  1619. return 1;
  1620. }
  1621.  
  1622. dcmd_level1(playerid,params[]) {
  1623. #pragma unused params
  1624. if(PlayerInfo[playerid][Level] > 0)
  1625. {
  1626. SendClientMessage(playerid,blue," ---=Level 1 Admin Commands =---");
  1627. SendClientMessage(playerid,lightblue,"lweaps, giveweapon, lslowmo, getinfo, weaps, vr, repair, ltune, lhy, lnos, lp, asay, ping, lslowmo, ltc,");
  1628. SendClientMessage(playerid,lightblue,"morning, adminarea, reports, richlist, miniguns, saveplacae, gotoplace,");
  1629. SendClientMessage(playerid,lightblue,"saveskin, useskin, dontuseskin, setmytime, ip, lconfig.");
  1630. }
  1631. return 1;
  1632. }
  1633.  
  1634. dcmd_level2(playerid,params[]) {
  1635. #pragma unused params
  1636. if(PlayerInfo[playerid][Level] > 0)
  1637. {
  1638. SendClientMessage(playerid,blue," ---=Level 2 Admin Commands =---");
  1639. SendClientMessage(playerid,lightblue,"giveweapon, setcolour, lockcar, unlockcar, burn, spawn, disarm, lcar, lbike,");
  1640. SendClientMessage(playerid,lightblue,"lheli, lboat, lplane, hightlight, announce, announce2, screen, jetpack, flip,");
  1641. SendClientMessage(playerid,lightblue,"goto, vgoto, lgoto, fu, warn, slap, jailed, frozen, mute, unmute, muted,");
  1642. SendClientMessage(playerid,lightblue,"laston, lspec, lspecoff, lspecvehicle, clearchat, lmenu, ltele, cm, ltmenu,");
  1643. SendClientMessage(playerid,lightblue,"write.");
  1644. }
  1645. return 1;
  1646. }
  1647.  
  1648. dcmd_level3(playerid,params[]) {
  1649. #pragma unused params
  1650. if(PlayerInfo[playerid][Level] > 0)
  1651. {
  1652. SendClientMessage(playerid,blue," ---=Level 3 Admin Commands =---");
  1653. SendClientMessage(playerid,lightblue,"sethealth, setarmour, setcash, setscore, setskin, setwanted, setname, setweather,");
  1654. SendClientMessage(playerid,lightblue,"settime, setworld, setinterior, force, eject, bankrupt, sbankrupt, ubound, lweaps,");
  1655. SendClientMessage(playerid,lightblue,"lammo, countdown, duel, car, carhealth, carcolour, setping, setgravity, destroycar,");
  1656. SendClientMessage(playerid,lightblue,"teleplayer, vget, givecar, gethere, get, kick, explode, jail, unjail, freeze, ");
  1657. SendClientMessage(playerid,lightblue,"unfreeze, akill,aka, disablechat, clearallchat, caps, move, moveplayer, healall,");
  1658. SendClientMessage(playerid,lightblue,"armourall, setallskin, setallwanted, setallweather, setalltime, setallworld,");
  1659. SendClientMessage(playerid,lightblue,"setallscore, setallcash, giveallcash, giveallweapon, lweather, ltime, lweapons, setpass");
  1660. }
  1661. return 1;
  1662. }
  1663.  
  1664. dcmd_level4(playerid,params[]) {
  1665. #pragma unused params
  1666. if(PlayerInfo[playerid][Level] > 0)
  1667. {
  1668. SendClientMessage(playerid,blue," ---=Level 4 Admin Commands =---");
  1669. SendClientMessage(playerid,lightblue,"enable, disable, ban, crash, spam, god, godcar, die, uconfig,");
  1670. SendClientMessage(playerid,lightblue,"botcheck, forbidname, forbidword, ");
  1671. SendClientMessage(playerid,lightblue,"fakedeath, spawnall, muteall, unmuteall, getall, killall, freezeall,");
  1672. SendClientMessage(playerid,lightblue,"unfreezeall, kickall, slapall, explodeall, disarmall, ejectall.");
  1673. }
  1674. return 1;
  1675. }
  1676.  
  1677. dcmd_level5(playerid,params[]) {
  1678. #pragma unused params
  1679. if(PlayerInfo[playerid][Level] > 0)
  1680. {
  1681. SendClientMessage(playerid,blue," ---=Level 5 Admin Commands =---");
  1682. SendClientMessage(playerid,lightblue,"god, sgod, settemplevel, setlevel, pickup, rban, lockserver, unlockserver object, fakechat.");
  1683. }
  1684. return 1;
  1685. }
  1686.  
  1687. dcmd_lconfig(playerid,params[]) {
  1688. #pragma unused params
  1689. if(PlayerInfo[playerid][Level] > 5)
  1690. {
  1691. new string[128];
  1692. SendClientMessage(playerid,blue," ---=== LAdmin Configuration ===---");
  1693. format(string, sizeof(string), "Max Ping: %dms | ReadPms %d | ReadCmds %d | Max Admin Level %d | AdminOnlySkins %d", ServerInfo[MaxPing], ServerInfo[ReadPMs], ServerInfo[ReadCmds], ServerInfo[MaxAdminLevel], ServerInfo[AdminOnlySkins] );
  1694. SendClientMessage(playerid,blue,string);
  1695. format(string, sizeof(string), "AdminSkin1 %d | AdminSkin2 %d | NameKick %d | AntiBot %d | AntiSpam %d | AntiSwear %d", ServerInfo[AdminSkin], ServerInfo[AdminSkin2], ServerInfo[NameKick], ServerInfo[AntiBot], ServerInfo[AntiSpam], ServerInfo[AntiSwear] );
  1696. SendClientMessage(playerid,blue,string);
  1697. format(string, sizeof(string), "NoCaps %d | Locked %d | Pass %s | SaveWeaps %d | SaveMoney %d | ConnectMessages %d | AdminCmdMsgs %d", ServerInfo[NoCaps], ServerInfo[Locked], ServerInfo[Password], ServerInfo[GiveWeap], ServerInfo[GiveMoney], ServerInfo[ConnectMessages], ServerInfo[AdminCmdMsg] );
  1698. SendClientMessage(playerid,blue,string);
  1699. format(string, sizeof(string), "AutoLogin %d | MaxMuteWarnings %d | ChatDisabled %d | MustLogin %d | MustRegister %d", ServerInfo[AutoLogin], ServerInfo[MaxMuteWarnings], ServerInfo[DisableChat], ServerInfo[MustLogin], ServerInfo[MustRegister] );
  1700. SendClientMessage(playerid,blue,string);
  1701. }
  1702. return 1;
  1703. }
  1704.  
  1705. dcmd_getinfo(playerid,params[]) {
  1706. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  1707. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /getinfo [playerid]");
  1708. new player1, string[128];
  1709. player1 = strval(params);
  1710.  
  1711. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1712. new Float:player1health, Float:player1armour, playerip[128], Float:x, Float:y, Float:z, tmp2[256], file[256],
  1713. year, month, day, P1Jailed[4], P1Frozen[4], P1Logged[4], P1Register[4], RegDate[256], TimesOn;
  1714.  
  1715. GetPlayerHealth(player1,player1health);
  1716. GetPlayerArmour(player1,player1armour);
  1717. GetPlayerIp(player1, playerip, sizeof(playerip));
  1718. GetPlayerPos(player1,x,y,z);
  1719. getdate(year, month, day);
  1720. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(player1)));
  1721.  
  1722. if(PlayerInfo[player1][Jailed] == 1) P1Jailed = "Yes"; else P1Jailed = "No";
  1723. if(PlayerInfo[player1][Frozen] == 1) P1Frozen = "Yes"; else P1Frozen = "No";
  1724. if(PlayerInfo[player1][LoggedIn] == 1) P1Logged = "Yes"; else P1Logged = "No";
  1725. if(fexist(file)) P1Register = "Yes"; else P1Register = "No";
  1726. if(dUserINT(PlayerName2(player1)).("LastOn")==0) tmp2 = "Never"; else tmp2 = dini_Get(file,"LastOn");
  1727. if(strlen(dini_Get(file,"RegisteredDate")) < 3) RegDate = "n/a"; else RegDate = dini_Get(file,"RegisteredDate");
  1728. TimesOn = dUserINT(PlayerName2(player1)).("TimesOnServer");
  1729.  
  1730. new Sum, Average, w;
  1731. while (w < PING_MAX_EXCEEDS) {
  1732. Sum += PlayerInfo[player1][pPing][w];
  1733. w++;
  1734. }
  1735. Average = (Sum / PING_MAX_EXCEEDS);
  1736.  
  1737. format(string, sizeof(string),"(Player Info) ---====> Name: %s ID: %d <====---", PlayerName2(player1), player1);
  1738. SendClientMessage(playerid,lightblue,string);
  1739. format(string, sizeof(string),"Health: %d Armour: %d Score: %d Cash: %d Skin: %d IP: %s Ping: %d Average Ping: %d",floatround(player1health),floatround(player1armour),
  1740. GetPlayerScore(player1),GetPlayerMoney(player1),GetPlayerSkin(player1),playerip,GetPlayerPing(player1), Average );
  1741. SendClientMessage(playerid,red,string);
  1742. format(string, sizeof(string),"Interior: %d Virtual World: %d Wanted Level: %d X %0.1f Y %0.1f Z %0.1f", GetPlayerInterior(player1), GetPlayerVirtualWorld(player1), GetPlayerWantedLevel(player1), Float:x,Float:y,Float:z);
  1743. SendClientMessage(playerid,orange,string);
  1744. format(string, sizeof(string),"Times On Server: %d Kills: %d Deaths: %d Ratio: %0.2f AdminLevel: %d", TimesOn, PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths], Float:PlayerInfo[player1][Kills]/Float:PlayerInfo[player1][Deaths], PlayerInfo[player1][Level] );
  1745. SendClientMessage(playerid,yellow,string);
  1746. format(string, sizeof(string),"Registered: %s Logged In: %s In Jail: %s Frozen: %s", P1Register, P1Logged, P1Jailed, P1Frozen );
  1747. SendClientMessage(playerid,green,string);
  1748. format(string, sizeof(string),"Last On Server: %s Register Date: %s Todays Date: %d/%d/%d", tmp2, RegDate, day,month,year );
  1749. SendClientMessage(playerid,COLOR_GREEN,string);
  1750.  
  1751. if(IsPlayerInAnyVehicle(player1)) {
  1752. new Float:VHealth, carid = GetPlayerVehicleID(playerid); GetVehicleHealth(carid,VHealth);
  1753. format(string, sizeof(string),"VehicleID: %d Model: %d Vehicle Name: %s Vehicle Health: %d",carid, GetVehicleModel(carid), VehicleNames[GetVehicleModel(carid)-400], floatround(VHealth) );
  1754. SendClientMessage(playerid,COLOR_BLUE,string);
  1755. }
  1756.  
  1757. new slot, ammo, weap, Count, WeapName[24], WeapSTR[128], p; WeapSTR = "Weaps: ";
  1758. for (slot = 0; slot < 14; slot++) { GetPlayerWeaponData(player1, slot, weap, ammo); if( ammo != 0 && weap != 0) Count++; }
  1759. if(Count < 1) return SendClientMessage(playerid,lightblue,"Player has no weapons");
  1760. else {
  1761. for (slot = 0; slot < 14; slot++)
  1762. {
  1763. GetPlayerWeaponData(player1, slot, weap, ammo);
  1764. if (ammo > 0 && weap > 0)
  1765. {
  1766. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  1767. if (ammo == 65535 || ammo == 1) format(WeapSTR,sizeof(WeapSTR),"%s%s (1)",WeapSTR, WeapName);
  1768. else format(WeapSTR,sizeof(WeapSTR),"%s%s (%d)",WeapSTR, WeapName, ammo);
  1769. p++;
  1770. if(p >= 5) { SendClientMessage(playerid, lightblue, WeapSTR); format(WeapSTR, sizeof(WeapSTR), "Weaps: "); p = 0;
  1771. } else format(WeapSTR, sizeof(WeapSTR), "%s, ", WeapSTR);
  1772. }
  1773. }
  1774. if(p <= 4 && p > 0) {
  1775. string[strlen(string)-3] = '.';
  1776. SendClientMessage(playerid, lightblue, WeapSTR);
  1777. }
  1778. }
  1779. return 1;
  1780. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1781. } else return SendClientMessage(playerid,red,"ERROR: You need to be administrator level 2 to use this command");
  1782. }
  1783.  
  1784. dcmd_disable(playerid,params[]) {
  1785. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  1786. if(!strlen(params)) {
  1787. SendClientMessage(playerid,red,"USAGE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps / admincmdmsgs");
  1788. return SendClientMessage(playerid,red," /connectmsgs / autologin ]");
  1789. }
  1790. new string[128], file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  1791. if(strcmp(params,"antiswear",true) == 0) {
  1792. ServerInfo[AntiSwear] = 0;
  1793. dini_IntSet(file,"AntiSwear",0);
  1794. format(string,sizeof(string),"Administrator %s has disabled antiswear", PlayerName2(playerid));
  1795. SendClientMessageToAll(blue,string);
  1796. } else if(strcmp(params,"namekick",true) == 0) {
  1797. ServerInfo[NameKick] = 0;
  1798. dini_IntSet(file,"NameKick",0);
  1799. format(string,sizeof(string),"Administrator %s has disabled namekick", PlayerName2(playerid));
  1800. SendClientMessageToAll(blue,string);
  1801. } else if(strcmp(params,"antispam",true) == 0) {
  1802. ServerInfo[AntiSpam] = 0;
  1803. dini_IntSet(file,"AntiSpam",0);
  1804. format(string,sizeof(string),"Administrator %s has disabled antispam", PlayerName2(playerid));
  1805. SendClientMessageToAll(blue,string);
  1806. } else if(strcmp(params,"ping",true) == 0) {
  1807. ServerInfo[MaxPing] = 0;
  1808. dini_IntSet(file,"MaxPing",0);
  1809. format(string,sizeof(string),"Administrator %s has disabled ping kick", PlayerName2(playerid));
  1810. SendClientMessageToAll(blue,string);
  1811. } else if(strcmp(params,"readcmds",true) == 0) {
  1812. ServerInfo[ReadCmds] = 0;
  1813. dini_IntSet(file,"ReadCMDs",0);
  1814. format(string,sizeof(string),"Administrator %s has disabled reading commands", PlayerName2(playerid));
  1815. MessageToAdmins(blue,string);
  1816. } else if(strcmp(params,"readpms",true) == 0) {
  1817. ServerInfo[ReadPMs] = 0;
  1818. dini_IntSet(file,"ReadPMs",0);
  1819. format(string,sizeof(string),"Administrator %s has disabled reading pms", PlayerName2(playerid));
  1820. MessageToAdmins(blue,string);
  1821. } else if(strcmp(params,"caps",true) == 0) {
  1822. ServerInfo[NoCaps] = 1;
  1823. dini_IntSet(file,"NoCaps",1);
  1824. format(string,sizeof(string),"Administrator %s has prevented captial letters in chat", PlayerName2(playerid));
  1825. SendClientMessageToAll(blue,string);
  1826. } else if(strcmp(params,"admincmdmsgs",true) == 0) {
  1827. ServerInfo[AdminCmdMsg] = 0;
  1828. dini_IntSet(file,"AdminCMDMessages",0);
  1829. format(string,sizeof(string),"Administrator %s has disabled admin command messages", PlayerName2(playerid));
  1830. MessageToAdmins(green,string);
  1831. } else if(strcmp(params,"connectmsgs",true) == 0) {
  1832. ServerInfo[ConnectMessages] = 0;
  1833. dini_IntSet(file,"ConnectMessages",0);
  1834. format(string,sizeof(string),"Administrator %s has disabled connect & disconnect messages", PlayerName2(playerid));
  1835. MessageToAdmins(green,string);
  1836. } else if(strcmp(params,"autologin",true) == 0) {
  1837. ServerInfo[AutoLogin] = 0;
  1838. dini_IntSet(file,"AutoLogin",0);
  1839. format(string,sizeof(string),"Administrator %s has disabled auto login", PlayerName2(playerid));
  1840. MessageToAdmins(green,string);
  1841. } else {
  1842. SendClientMessage(playerid,red,"USAGE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps /cmdmsg ]");
  1843. } return 1;
  1844. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1845. }
  1846.  
  1847. dcmd_enable(playerid,params[]) {
  1848. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  1849. if(!strlen(params)) {
  1850. SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps / admincmdmsgs");
  1851. return SendClientMessage(playerid,red," /connectmsgs / autologin ]");
  1852. }
  1853. new string[128], file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  1854. if(strcmp(params,"antiswear",true) == 0) {
  1855. ServerInfo[AntiSwear] = 1;
  1856. dini_IntSet(file,"AntiSwear",1);
  1857. format(string,sizeof(string),"Administrator %s has enabled antiswear", PlayerName2(playerid));
  1858. SendClientMessageToAll(blue,string);
  1859. } else if(strcmp(params,"namekick",true) == 0) {
  1860. ServerInfo[NameKick] = 1;
  1861. format(string,sizeof(string),"Administrator %s has enabled namekick", PlayerName2(playerid));
  1862. SendClientMessageToAll(blue,string);
  1863. } else if(strcmp(params,"antispam",true) == 0) {
  1864. ServerInfo[AntiSpam] = 1;
  1865. dini_IntSet(file,"AntiSpam",1);
  1866. format(string,sizeof(string),"Administrator %s has enabled antispam", PlayerName2(playerid));
  1867. SendClientMessageToAll(blue,string);
  1868. } else if(strcmp(params,"ping",true) == 0) {
  1869. ServerInfo[MaxPing] = 800;
  1870. dini_IntSet(file,"MaxPing",800);
  1871. format(string,sizeof(string),"Administrator %s has enabled ping kick", PlayerName2(playerid));
  1872. SendClientMessageToAll(blue,string);
  1873. } else if(strcmp(params,"readcmds",true) == 0) {
  1874. ServerInfo[ReadCmds] = 1;
  1875. dini_IntSet(file,"ReadCMDs",1);
  1876. format(string,sizeof(string),"Administrator %s has enabled reading commands", PlayerName2(playerid));
  1877. MessageToAdmins(blue,string);
  1878. } else if(strcmp(params,"readpms",true) == 0) {
  1879. ServerInfo[ReadPMs] = 1;
  1880. dini_IntSet(file,"ReadPMs",1);
  1881. format(string,sizeof(string),"Administrator %s has enabled reading pms", PlayerName2(playerid));
  1882. MessageToAdmins(blue,string);
  1883. } else if(strcmp(params,"caps",true) == 0) {
  1884. ServerInfo[NoCaps] = 0;
  1885. dini_IntSet(file,"NoCaps",0);
  1886. format(string,sizeof(string),"Administrator %s has allowed captial letters in chat", PlayerName2(playerid));
  1887. SendClientMessageToAll(blue,string);
  1888. } else if(strcmp(params,"admincmdmsgs",true) == 0) {
  1889. ServerInfo[AdminCmdMsg] = 1;
  1890. dini_IntSet(file,"AdminCmdMessages",1);
  1891. format(string,sizeof(string),"Administrator %s has enabled admin command messages", PlayerName2(playerid));
  1892. MessageToAdmins(green,string);
  1893. } else if(strcmp(params,"connectmsgs",true) == 0) {
  1894. ServerInfo[ConnectMessages] = 1;
  1895. dini_IntSet(file,"ConnectMessages",1);
  1896. format(string,sizeof(string),"Administrator %s has enabled connect & disconnect messages", PlayerName2(playerid));
  1897. MessageToAdmins(green,string);
  1898. } else if(strcmp(params,"autologin",true) == 0) {
  1899. ServerInfo[AutoLogin] = 1;
  1900. dini_IntSet(file,"AutoLogin",1);
  1901. format(string,sizeof(string),"Administrator %s has enabled auto login", PlayerName2(playerid));
  1902. MessageToAdmins(green,string);
  1903. } else {
  1904. SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps /cmdmsg ]");
  1905. } return 1;
  1906. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1907. }
  1908.  
  1909. dcmd_lweaps(playerid,params[]) {
  1910. #pragma unused params
  1911. if(PlayerInfo[playerid][Level] >= 1) {
  1912. GivePlayerWeapon(playerid,28,1000); GivePlayerWeapon(playerid,31,1000); GivePlayerWeapon(playerid,34,1000);
  1913. GivePlayerWeapon(playerid,38,1000); GivePlayerWeapon(playerid,16,1000); GivePlayerWeapon(playerid,42,1000);
  1914. GivePlayerWeapon(playerid,14,1000); GivePlayerWeapon(playerid,46,1000); GivePlayerWeapon(playerid,9,1);
  1915. GivePlayerWeapon(playerid,24,1000); GivePlayerWeapon(playerid,26,1000); return 1;
  1916. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  1917. }
  1918.  
  1919.  
  1920.  
  1921. dcmd_duel(playerid,params[]) {
  1922. if(PlayerInfo[playerid][Level] >= 0) {
  1923. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  1924. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp) || !IsNumeric(tmp2)) {
  1925. SendClientMessage(playerid, red, "USAGE: /duel [player1 id] [player2 id] [location] (Locations: 1, 2, 3]");
  1926. return SendClientMessage(playerid, red, "If location isnt stated then players duel at their present location");
  1927. }
  1928. new player1 = strval(tmp), player2 = strval(tmp2), location, string[128];
  1929. if(!strlen(tmp3)) location = 0; else location = strval(tmp3);
  1930. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1931. if(PlayerInfo[player2][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1932. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1933. if(IsPlayerConnected(player2) && player2 != INVALID_PLAYER_ID) {
  1934. if(InDuel[player1] == 1) return SendClientMessage(playerid,red,"ERROR: Player1 is already in a duel");
  1935. if(InDuel[player2] == 1) return SendClientMessage(playerid,red,"ERROR: Player2 is already in a duel");
  1936.  
  1937. if(location == 1) {
  1938. SetPlayerInterior(player1,16); SetPlayerPos(player1,-1404.067, 1270.3706, 1042.8672);
  1939. SetPlayerInterior(player2,16); SetPlayerPos(player2,-1395.067, 1261.3706, 1042.8672);
  1940. } else if(location == 2) {
  1941. SetPlayerInterior(player1,0); SetPlayerPos(player1,1353.407,2188.155,11.02344);
  1942. SetPlayerInterior(player2,0); SetPlayerPos(player2,1346.255,2142.843,11.01563);
  1943. } else if(location == 3) {
  1944. SetPlayerInterior(player1,10); SetPlayerPos(player1,-1041.037,1078.729,1347.678); SetPlayerFacingAngle(player1,135);
  1945. SetPlayerInterior(player2,10); SetPlayerPos(player2,-1018.061,1052.502,1346.327); SetPlayerFacingAngle(player2,45);
  1946. }
  1947. InDuel[player1] = 1;
  1948. InDuel[player2] = 1;
  1949. CMDMessageToAdmins(playerid,"DUEL");
  1950. cdt[player1] = 6;
  1951. SetTimerEx("Duel",1000,0,"dd", player1, player2);
  1952. format(string, sizeof(string), "Administrator \"%s\" has started a duel between \"%s\" and \"%s\" ", pName(playerid), pName(player1), pName(player2) );
  1953. SendClientMessage(player1, blue, string); SendClientMessage(player2, blue, string);
  1954. return SendClientMessage(playerid, blue, string);
  1955. } else return SendClientMessage(playerid, red, "Player2 is not connected");
  1956. } else return SendClientMessage(playerid, red, "Player1 is not connected");
  1957. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1958. }
  1959.  
  1960. dcmd_lammo(playerid,params[]) {
  1961. #pragma unused params
  1962. if(PlayerInfo[playerid][Level] >= 1) {
  1963. MaxAmmo(playerid);
  1964. return CMDMessageToAdmins(playerid,"LAMMO");
  1965. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  1966. }
  1967.  
  1968. dcmd_vr(playerid,params[]) {
  1969. #pragma unused params
  1970. if(PlayerInfo[playerid][Level] >= 1) {
  1971. if (IsPlayerInAnyVehicle(playerid)) {
  1972. SetVehicleHealth(GetPlayerVehicleID(playerid),1250.0);
  1973. return SendClientMessage(playerid,blue,"Vehicle Fixed");
  1974. } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  1975. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  1976. }
  1977.  
  1978. dcmd_fix(playerid,params[])
  1979. {
  1980. return dcmd_vr(playerid, params);
  1981. }
  1982.  
  1983. dcmd_repair(playerid,params[]) {
  1984. #pragma unused params
  1985. if(PlayerInfo[playerid][Level] >= 1) {
  1986. if (IsPlayerInAnyVehicle(playerid)) {
  1987. GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  1988. GetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[playerid][3]);
  1989. SetPlayerCameraPos(playerid, 1929.0, 2137.0, 11.0);
  1990. SetPlayerCameraLookAt(playerid,1935.0, 2138.0, 11.5);
  1991. SetVehiclePos(GetPlayerVehicleID(playerid), 1974.0,2162.0,11.0);
  1992. SetVehicleZAngle(GetPlayerVehicleID(playerid), -90);
  1993. SetTimerEx("RepairCar",5000,0,"i",playerid);
  1994. return SendClientMessage(playerid,blue,"Your car will be ready in 5 seconds");
  1995. } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  1996. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  1997. }
  1998.  
  1999. dcmd_ltune(playerid,params[]) {
  2000. #pragma unused params
  2001. if(PlayerInfo[playerid][Level] >= 1) {
  2002. if(IsPlayerInAnyVehicle(playerid)) {
  2003. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  2004. switch(LModel)
  2005. {
  2006. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  2007. return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle");
  2008. }
  2009. CMDMessageToAdmins(playerid,"LTUNE");
  2010. SetVehicleHealth(LVehicleID,2000.0);
  2011. TuneLCar(LVehicleID);
  2012. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  2013. } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  2014. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  2015. }
  2016.  
  2017. dcmd_lhy(playerid,params[]) {
  2018. #pragma unused params
  2019. if(PlayerInfo[playerid][Level] >= 1) {
  2020. if(IsPlayerInAnyVehicle(playerid)) {
  2021. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  2022. switch(LModel)
  2023. {
  2024. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  2025. return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!");
  2026. }
  2027. AddVehicleComponent(LVehicleID, 1087);
  2028. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  2029. } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  2030. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  2031. }
  2032.  
  2033. dcmd_lcar(playerid,params[]) {
  2034. #pragma unused params
  2035. if(PlayerInfo[playerid][Level] >= 1) {
  2036. if (!IsPlayerInAnyVehicle(playerid)) {
  2037. CarSpawner(playerid,415);
  2038. CMDMessageToAdmins(playerid,"LCAR");
  2039. return SendClientMessage(playerid,blue,"Enjoy your new car");
  2040. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2041. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2042. }
  2043.  
  2044. dcmd_lbike(playerid,params[]) {
  2045. #pragma unused params
  2046. if(PlayerInfo[playerid][Level] >= 2) {
  2047. if (!IsPlayerInAnyVehicle(playerid)) {
  2048. CarSpawner(playerid,522);
  2049. CMDMessageToAdmins(playerid,"LBIKE");
  2050. return SendClientMessage(playerid,blue,"Enjoy your new bike");
  2051. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2052. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2053. }
  2054.  
  2055. dcmd_lheli(playerid,params[]) {
  2056. #pragma unused params
  2057. if(PlayerInfo[playerid][Level] >= 1) {
  2058. if (!IsPlayerInAnyVehicle(playerid)) {
  2059. CarSpawner(playerid,487);
  2060. CMDMessageToAdmins(playerid,"LHELI");
  2061. return SendClientMessage(playerid,blue,"Enjoy your new helicopter");
  2062. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2063. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2064. }
  2065.  
  2066. dcmd_lboat(playerid,params[]) {
  2067. #pragma unused params
  2068. if(PlayerInfo[playerid][Level] >= 1) {
  2069. if (!IsPlayerInAnyVehicle(playerid)) {
  2070. CarSpawner(playerid,493);
  2071. CMDMessageToAdmins(playerid,"LBOAT");
  2072. return SendClientMessage(playerid,blue,"Enjoy your new boat");
  2073. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2074. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2075. }
  2076.  
  2077. dcmd_lplane(playerid,params[]) {
  2078. #pragma unused params
  2079. if(PlayerInfo[playerid][Level] >= 1) {
  2080. if (!IsPlayerInAnyVehicle(playerid)) {
  2081. CarSpawner(playerid,513);
  2082. CMDMessageToAdmins(playerid,"LPLANE");
  2083. return SendClientMessage(playerid,blue,"Enjoy your new plane");
  2084. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2085. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2086. }
  2087.  
  2088. dcmd_lnos(playerid,params[]) {
  2089. #pragma unused params
  2090. if(PlayerInfo[playerid][Level] >= 1) {
  2091. if(IsPlayerInAnyVehicle(playerid)) {
  2092. switch(GetVehicleModel( GetPlayerVehicleID(playerid) )) {
  2093. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  2094. return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!");
  2095. }
  2096. AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  2097. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  2098. } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  2099. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2100. }
  2101.  
  2102. dcmd_linkcar(playerid,params[]) {
  2103. #pragma unused params
  2104. if(IsPlayerInAnyVehicle(playerid)) {
  2105. LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(playerid));
  2106. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playerid));
  2107. return SendClientMessage(playerid,lightblue, "Your vehicle is now in your virtual world and interior");
  2108. } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  2109. }
  2110.  
  2111. dcmd_car(playerid,params[]) {
  2112. if(PlayerInfo[playerid][Level] >= 1) {
  2113. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2114. if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /car [Modelid/Name] [colour1] [colour2]");
  2115. new car, colour1, colour2, string[128];
  2116. if(!IsNumeric(tmp)) car = GetVehicleModelIDFromName(tmp); else car = strval(tmp);
  2117. if(car < 400 || car > 611) return SendClientMessage(playerid, red, "ERROR: Invalid Vehicle Model");
  2118. if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
  2119. if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
  2120. if(PlayerInfo[playerid][pCar] != -1 && !IsPlayerAdmin(playerid) ) CarDeleter(PlayerInfo[playerid][pCar]);
  2121. new LVehicleID,Float:X,Float:Y,Float:Z, Float:Angle,int1; GetPlayerPos(playerid, X,Y,Z); GetPlayerFacingAngle(playerid,Angle); int1 = GetPlayerInterior(playerid);
  2122. LVehicleID = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, -1); LinkVehicleToInterior(LVehicleID,int1);
  2123. PlayerInfo[playerid][pCar] = LVehicleID;
  2124. CMDMessageToAdmins(playerid,"CAR");
  2125. format(string, sizeof(string), "%s spawned a \"%s\" (Model:%d) colour (%d, %d), at %0.2f, %0.2f, %0.2f", pName(playerid), VehicleNames[car-400], car, colour1, colour2, X, Y, Z);
  2126. SaveToFile("CarSpawns",string);
  2127. format(string, sizeof(string), "You have spawned a \"%s\" (Model:%d) colour (%d, %d)", VehicleNames[car-400], car, colour1, colour2);
  2128. return SendClientMessage(playerid,lightblue, string);
  2129. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  2130. }
  2131.  
  2132. dcmd_carhealth(playerid,params[]) {
  2133. if(PlayerInfo[playerid][Level] >= 1) {
  2134. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2135. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /carhealth [playerid] [amount]");
  2136. new player1 = strval(tmp), health = strval(tmp2), string[128];
  2137. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2138. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2139. if(IsPlayerInAnyVehicle(player1)) {
  2140. CMDMessageToAdmins(playerid,"CARHEALTH");
  2141. format(string, sizeof(string), "You have set \"%s's\" vehicle health to '%d", pName(player1), health); SendClientMessage(playerid,blue,string);
  2142. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your vehicle's health to '%d'", pName(playerid), health); SendClientMessage(player1,blue,string); }
  2143. return SetVehicleHealth(GetPlayerVehicleID(player1), health);
  2144. } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  2145. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  2146. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2147. }
  2148.  
  2149. dcmd_carcolour(playerid,params[]) {
  2150. if(PlayerInfo[playerid][Level] >= 1) {
  2151. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2152. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /carcolour [playerid] [colour1] [colour2]");
  2153. new player1 = strval(tmp), colour1, colour2, string[128];
  2154. if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
  2155. if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
  2156. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2157. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2158. if(IsPlayerInAnyVehicle(player1)) {
  2159. CMDMessageToAdmins(playerid,"CARCOLOUR");
  2160. format(string, sizeof(string), "You have changed the colour of \"%s's\" %s to '%d,%d'", pName(player1), VehicleNames[GetVehicleModel(GetPlayerVehicleID(player1))-400], colour1, colour2 ); SendClientMessage(playerid,blue,string);
  2161. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has changed the colour of your %s to '%d,%d''", pName(playerid), VehicleNames[GetVehicleModel(GetPlayerVehicleID(player1))-400], colour1, colour2 ); SendClientMessage(player1,blue,string); }
  2162. return ChangeVehicleColor(GetPlayerVehicleID(player1), colour1, colour2);
  2163. } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  2164. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  2165. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2166. }
  2167.  
  2168. dcmd_god(playerid,params[]) {
  2169. #pragma unused params
  2170. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  2171. if(PlayerInfo[playerid][God] == 0) {
  2172. PlayerInfo[playerid][God] = 1;
  2173. SetPlayerHealth(playerid,100000);
  2174. GivePlayerWeapon(playerid,16,50000); GivePlayerWeapon(playerid,26,50000);
  2175. SendClientMessage(playerid,green,"GODMODE ON");
  2176. return CMDMessageToAdmins(playerid,"GOD");
  2177. } else {
  2178. PlayerInfo[playerid][God] = 0;
  2179. SendClientMessage(playerid,red,"GODMODE OFF");
  2180. SetPlayerHealth(playerid, 100);
  2181. } return GivePlayerWeapon(playerid,35,0);
  2182. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  2183. }
  2184.  
  2185. dcmd_sgod(playerid,params[]) {
  2186. #pragma unused params
  2187. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  2188. if(PlayerInfo[playerid][God] == 0) {
  2189. PlayerInfo[playerid][God] = 1;
  2190. SetPlayerHealth(playerid,100000);
  2191. GivePlayerWeapon(playerid,16,50000); GivePlayerWeapon(playerid,26,50000);
  2192. return SendClientMessage(playerid,green,"GODMODE ON");
  2193. } else {
  2194. PlayerInfo[playerid][God] = 0;
  2195. SendClientMessage(playerid,red,"GODMODE OFF");
  2196. SetPlayerHealth(playerid, 100); return GivePlayerWeapon(playerid,35,0); }
  2197. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 5 to use this command");
  2198. }
  2199.  
  2200. dcmd_godcar(playerid,params[]) {
  2201. #pragma unused params
  2202. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2203. if(IsPlayerInAnyVehicle(playerid)) {
  2204. if(PlayerInfo[playerid][GodCar] == 0) {
  2205. PlayerInfo[playerid][GodCar] = 1;
  2206. CMDMessageToAdmins(playerid,"GODCAR");
  2207. return SendClientMessage(playerid,green,"GODCARMODE ON");
  2208. } else {
  2209. PlayerInfo[playerid][GodCar] = 0;
  2210. return SendClientMessage(playerid,red,"GODCARMODE OFF"); }
  2211. } else return SendClientMessage(playerid,red,"ERROR: You need to be in a car to use this command");
  2212. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  2213. }
  2214.  
  2215. dcmd_die(playerid,params[]) {
  2216. #pragma unused params
  2217. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  2218. new Float:x, Float:y, Float:z ;
  2219. GetPlayerPos( playerid, Float:x, Float:y, Float:z );
  2220. CreateExplosion(Float:x+10, Float:y, Float:z, 8,10.0);
  2221. CreateExplosion(Float:x-10, Float:y, Float:z, 8,10.0);
  2222. CreateExplosion(Float:x, Float:y+10, Float:z, 8,10.0);
  2223. CreateExplosion(Float:x, Float:y-10, Float:z, 8,10.0);
  2224. CreateExplosion(Float:x+10, Float:y+10, Float:z, 8,10.0);
  2225. CreateExplosion(Float:x-10, Float:y+10, Float:z, 8,10.0);
  2226. return CreateExplosion(Float:x-10, Float:y-10, Float:z, 8,10.0);
  2227. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  2228. }
  2229.  
  2230. dcmd_getid(playerid,params[]) {
  2231. if(!strlen(params)) return SendClientMessage(playerid,blue,"Correct Usage: /getid [part of nick]");
  2232. new found, string[128], playername[MAX_PLAYER_NAME];
  2233. format(string,sizeof(string),"Searched for: \"%s\" ",params);
  2234. SendClientMessage(playerid,blue,string);
  2235. for(new i=0; i <= MAX_PLAYERS; i++)
  2236. {
  2237. if(IsPlayerConnected(i))
  2238. {
  2239. GetPlayerName(i, playername, MAX_PLAYER_NAME);
  2240. new namelen = strlen(playername);
  2241. new bool:searched=false;
  2242. for(new pos=0; pos <= namelen; pos++)
  2243. {
  2244. if(searched != true)
  2245. {
  2246. if(strfind(playername,params,true) == pos)
  2247. {
  2248. found++;
  2249. format(string,sizeof(string),"%d. %s (ID %d)",found,playername,i);
  2250. SendClientMessage(playerid, green ,string);
  2251. searched = true;
  2252. }
  2253. }
  2254. }
  2255. }
  2256. }
  2257. if(found == 0) SendClientMessage(playerid, lightblue, "No players have this in their nick");
  2258. return 1;
  2259. }
  2260.  
  2261. dcmd_asay(playerid,params[]) {
  2262. #pragma unused params
  2263. if(PlayerInfo[playerid][Level] >= 1) {
  2264. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /asay [text]");
  2265. new string[128]; format(string, sizeof(string), "**Admin %s: %s", PlayerName2(playerid), params[0] );
  2266. return SendClientMessageToAll(COLOR_PINK,string);
  2267. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2268. }
  2269.  
  2270. dcmd_setping(playerid,params[]) {
  2271. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  2272. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setping [ping] Set to 0 to disable");
  2273. new string[128], ping = strval(params);
  2274. ServerInfo[MaxPing] = ping;
  2275. CMDMessageToAdmins(playerid,"SETPING");
  2276. new file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  2277. dini_IntSet(file,"MaxPing",ping);
  2278. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayerPlaySound(i,1057,0.0,0.0,0.0);
  2279. if(ping == 0) format(string,sizeof(string),"Administrator %s has disabled maximum ping", PlayerName2(playerid), ping);
  2280. else format(string,sizeof(string),"Administrator %s has set the maximum ping to %d", PlayerName2(playerid), ping);
  2281. return SendClientMessageToAll(blue,string);
  2282. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  2283. }
  2284.  
  2285. dcmd_ping(playerid,params[]) {
  2286. if(PlayerInfo[playerid][Level] >= 1) {
  2287. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ping [playerid]");
  2288. new player1 = strval(params), string[128];
  2289. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2290. new Sum, Average, x;
  2291. while (x < PING_MAX_EXCEEDS) {
  2292. Sum += PlayerInfo[player1][pPing][x];
  2293. x++;
  2294. }
  2295. Average = (Sum / PING_MAX_EXCEEDS);
  2296. format(string, sizeof(string), "\"%s\" (id %d) Average Ping: %d (Last ping readings: %d, %d, %d, %d)", PlayerName2(player1), player1, Average, PlayerInfo[player1][pPing][0], PlayerInfo[player1][pPing][1], PlayerInfo[player1][pPing][2], PlayerInfo[player1][pPing][3] );
  2297. return SendClientMessage(playerid,blue,string);
  2298. } else return SendClientMessage(playerid, red, "Player is not connected");
  2299. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2300. }
  2301.  
  2302. dcmd_highlight(playerid,params[]) {
  2303. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2304. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /highlight [playerid]");
  2305. new player1, playername[MAX_PLAYER_NAME], string[128];
  2306. player1 = strval(params);
  2307.  
  2308. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2309. GetPlayerName(player1, playername, sizeof(playername));
  2310. if(PlayerInfo[player1][blip] == 0) {
  2311. CMDMessageToAdmins(playerid,"HIGHLIGHT");
  2312. PlayerInfo[player1][pColour] = GetPlayerColor(player1);
  2313. PlayerInfo[player1][blip] = 1;
  2314. BlipTimer[player1] = SetTimerEx("HighLight", 1000, 1, "i", player1);
  2315. format(string,sizeof(string),"You have highlighted %s's marker", playername);
  2316. } else {
  2317. KillTimer( BlipTimer[player1] );
  2318. PlayerInfo[player1][blip] = 0;
  2319. SetPlayerColor(player1, PlayerInfo[player1][pColour] );
  2320. format(string,sizeof(string),"You have stopped highlighting %s's marker", playername);
  2321. }
  2322. return SendClientMessage(playerid,blue,string);
  2323. } else return SendClientMessage(playerid, red, "Player is not connected");
  2324. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2325. }
  2326.  
  2327. dcmd_setgravity(playerid,params[]) {
  2328. if(PlayerInfo[playerid][Level] >= 5) {
  2329. if(!strlen(params)||!(strval(params)<=50&&strval(params)>=-50)) return SendClientMessage(playerid,red,"USAGE: /setgravity <-50.0 - 50.0>");
  2330. CMDMessageToAdmins(playerid,"SETGRAVITY");
  2331. new string[128],adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname)); new Float:Gravity = floatstr(params);format(string,sizeof(string),"Admnistrator %s has set the gravity to %f",adminname,Gravity);
  2332. SetGravity(Gravity); return SendClientMessageToAll(blue,string);
  2333. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2334. }
  2335.  
  2336. dcmd_lcredits(playerid,params[]) {
  2337. #pragma unused params
  2338. return SendClientMessage(playerid,green,"LAdmin. Adminscript for sa-mp 0.2.x. Created by LethaL. Version: 4. Released: 07/2008");
  2339. }
  2340.  
  2341. dcmd_serverinfo(playerid,params[]) {
  2342. #pragma unused params
  2343. new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000); DestroyVehicle(TotalVehicles);
  2344. new numo = CreateObject(1245,0,0,1000,0,0,0); DestroyObject(numo);
  2345. new nump = CreatePickup(371,2,0,0,1000); DestroyPickup(nump);
  2346. new gz = GangZoneCreate(3,3,5,5); GangZoneDestroy(gz);
  2347.  
  2348. new model[250], nummodel;
  2349. for(new i=1;i<TotalVehicles;i++) model[GetVehicleModel(i)-400]++;
  2350. for(new i=0;i<250;i++) if(model[i]!=0) nummodel++;
  2351.  
  2352. new string[256];
  2353. format(string,sizeof(string),"Server Info: [ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
  2354. SendClientMessage(playerid,green,string);
  2355. format(string,sizeof(string),"Server Info: [ Vehicles: %d || Models %d || Players In Vehicle: %d || InCar %d / OnBike %d ]",TotalVehicles-1,nummodel, InVehCount(),InCarCount(),OnBikeCount() );
  2356. SendClientMessage(playerid,green,string);
  2357. format(string,sizeof(string),"Server Info: [ Objects: %d || Pickups %d || Gangzones %d ]",numo-1, nump, gz);
  2358. SendClientMessage(playerid,green,string);
  2359. format(string,sizeof(string),"Server Info: [ Players In Jail %d || Players Frozen %d || Muted %d ]",JailedPlayers(),FrozenPlayers(), MutedPlayers() );
  2360. return SendClientMessage(playerid,green,string);
  2361. }
  2362.  
  2363. dcmd_announce(playerid,params[]) {
  2364. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2365. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /announce <text>");
  2366. CMDMessageToAdmins(playerid,"ANNOUNCE");
  2367. return GameTextForAll(params,4000,3);
  2368. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2369. }
  2370.  
  2371. dcmd_announce2(playerid,params[]) {
  2372. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2373. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index) ,tmp3 = strtok(params,Index);
  2374. if(!strlen(tmp)||!strlen(tmp2)||!strlen(tmp3)) return SendClientMessage(playerid,red,"USAGE: /announce <style> <time> <text>");
  2375. if(!(strval(tmp) >= 0 && strval(tmp) <= 6) || strval(tmp) == 2) return SendClientMessage(playerid,red,"ERROR: Invalid gametext style. Range: 0 - 6");
  2376. CMDMessageToAdmins(playerid,"ANNOUNCE2");
  2377. return GameTextForAll(tmp3,strval(tmp2),strval(tmp) );
  2378. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2379. }
  2380.  
  2381. dcmd_lslowmo(playerid,params[]) {
  2382. #pragma unused params
  2383. if(PlayerInfo[playerid][Level] >= 1) {
  2384. new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); CreatePickup(1241, 4, x, y, z);
  2385. return CMDMessageToAdmins(playerid,"LSLOWMO");
  2386. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2387. }
  2388.  
  2389. dcmd_jetpack(playerid,params[]) {
  2390. if(!strlen(params)) {
  2391. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2392. SendClientMessage(playerid,blue,"Jetpack Spawned.");
  2393. CMDMessageToAdmins(playerid,"JETPACK");
  2394. return SetPlayerSpecialAction(playerid, 2);
  2395. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2396. } else {
  2397. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2398. player1 = strval(params);
  2399. if(PlayerInfo[playerid][Level] >= 4) {
  2400. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2401. CMDMessageToAdmins(playerid,"JETPACK"); SetPlayerSpecialAction(player1, 2);
  2402. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2403. format(string,sizeof(string),"Administrator \"%s\" has given you a jetpack",adminname); SendClientMessage(player1,blue,string);
  2404. format(string,sizeof(string),"You have given %s a jetpack", playername);
  2405. return SendClientMessage(playerid,blue,string);
  2406. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2407. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2408. }
  2409. }
  2410.  
  2411. dcmd_flip(playerid,params[]) {
  2412. if(PlayerInfo[playerid][Level] >= 0 || IsPlayerAdmin(playerid)) {
  2413. if(!strlen(params)) {
  2414. if(IsPlayerInAnyVehicle(playerid)) {
  2415. new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(playerid, X, Y, Z); VehicleID = GetPlayerVehicleID(playerid);
  2416. GetVehicleZAngle(VehicleID, Angle); SetVehiclePos(VehicleID, X, Y, Z); SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1000.0);
  2417. CMDMessageToAdmins(playerid,"FLIP"); return SendClientMessage(playerid, blue,"Vehicle Flipped. You can also do /flip [playerid]");
  2418. } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle. You can also do /flip [playerid]");
  2419. }
  2420. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2421. player1 = strval(params);
  2422.  
  2423. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2424. CMDMessageToAdmins(playerid,"FLIP");
  2425. if (IsPlayerInAnyVehicle(player1)) {
  2426. new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(player1, X, Y, Z); VehicleID = GetPlayerVehicleID(player1);
  2427. GetVehicleZAngle(VehicleID, Angle); SetVehiclePos(VehicleID, X, Y, Z); SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1000.0);
  2428. CMDMessageToAdmins(playerid,"FLIP");
  2429. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2430. format(string,sizeof(string),"Administrator %s flipped your vehicle",adminname); SendClientMessage(player1,blue,string);
  2431. format(string,sizeof(string),"You have flipped %s's vehicle", playername);
  2432. return SendClientMessage(playerid, blue,string);
  2433. } else return SendClientMessage(playerid,red,"Error: This player isn't in a vehicle");
  2434. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2435. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2436. }
  2437.  
  2438. dcmd_destroycar(playerid,params[]) {
  2439. #pragma unused params
  2440. if(PlayerInfo[playerid][Level] >= 3) return EraseVehicle(GetPlayerVehicleID(playerid));
  2441. else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2442. }
  2443. dcmd_ltc(playerid,params[]) {
  2444. #pragma unused params
  2445. if(PlayerInfo[playerid][Level] >= 1) {
  2446. if(!IsPlayerInAnyVehicle(playerid)) {
  2447. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  2448. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  2449. LVehicleIDt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,LVehicleIDt,0); CMDMessageToAdmins(playerid,"LTunedCar"); AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138);
  2450. AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  2451. AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  2452. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,0);
  2453. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  2454. return PlayerInfo[playerid][pCar] = LVehicleIDt;
  2455. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2456. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  2457. }
  2458.  
  2459. dcmd_warp(playerid,params[])
  2460. {
  2461. return dcmd_teleplayer(playerid,params);
  2462. }
  2463.  
  2464. dcmd_teleplayer(playerid,params[]) {
  2465. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2466. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2467. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /teleplayer [playerid] to [playerid]");
  2468. new player1 = strval(tmp), player2 = strval(tmp2), string[128], Float:plocx,Float:plocy,Float:plocz;
  2469. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2470. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2471. if(IsPlayerConnected(player2) && player2 != INVALID_PLAYER_ID) {
  2472. CMDMessageToAdmins(playerid,"TELEPLAYER");
  2473. GetPlayerPos(player2, plocx, plocy, plocz);
  2474. new intid = GetPlayerInterior(player2); SetPlayerInterior(player1,intid);
  2475. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(player2));
  2476. if (GetPlayerState(player1) == PLAYER_STATE_DRIVER)
  2477. {
  2478. new VehicleID = GetPlayerVehicleID(player1);
  2479. SetVehiclePos(VehicleID, plocx, plocy+4, plocz); LinkVehicleToInterior(VehicleID,intid);
  2480. SetVehicleVirtualWorld(VehicleID, GetPlayerVirtualWorld(player2) );
  2481. }
  2482. else SetPlayerPos(player1,plocx,plocy+2, plocz);
  2483. format(string,sizeof(string),"Administrator \"%s\" has teleported \"%s\" to \"%s's\" location", pName(playerid), pName(player1), pName(player2) );
  2484. SendClientMessage(player1,blue,string); SendClientMessage(player2,blue,string);
  2485. format(string,sizeof(string),"You have teleported \"%s\" to \"%s's\" location", pName(player1), pName(player2) );
  2486. return SendClientMessage(playerid,blue,string);
  2487. } else return SendClientMessage(playerid, red, "Player2 is not connected");
  2488. } else return SendClientMessage(playerid, red, "Player1 is not connected");
  2489. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2490. }
  2491.  
  2492. dcmd_goto(playerid,params[]) {
  2493. if(PlayerInfo[playerid][Level] >= 0 || IsPlayerAdmin(playerid)) {
  2494. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /goto [playerid]");
  2495. new player1, string[128];
  2496. if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
  2497. else player1 = strval(params);
  2498. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2499. CMDMessageToAdmins(playerid,"GOTO");
  2500. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z); SetPlayerInterior(playerid,GetPlayerInterior(player1));
  2501. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
  2502. if(GetPlayerState(playerid) == 2) {
  2503. SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z); LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(player1));
  2504. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(player1));
  2505. } else SetPlayerPos(playerid,x+2,y,z);
  2506. format(string,sizeof(string),"You have teleported to \"%s\"", pName(player1));
  2507. return SendClientMessage(playerid,blue,string);
  2508. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2509. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2510. }
  2511.  
  2512. dcmd_vgoto(playerid,params[]) {
  2513. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  2514. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /vgoto [vehicleid]");
  2515. new player1, string[128];
  2516. player1 = strval(params);
  2517. CMDMessageToAdmins(playerid,"VGOTO");
  2518. new Float:x, Float:y, Float:z; GetVehiclePos(player1,x,y,z);
  2519. SetPlayerVirtualWorld(playerid,GetVehicleVirtualWorld(player1));
  2520. if(GetPlayerState(playerid) == 2) {
  2521. SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z);
  2522. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetVehicleVirtualWorld(player1) );
  2523. } else SetPlayerPos(playerid,x+2,y,z);
  2524. format(string,sizeof(string),"You have teleported to vehicle id %d", player1);
  2525. return SendClientMessage(playerid,blue,string);
  2526. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2527. }
  2528.  
  2529. dcmd_vget(playerid,params[]) {
  2530. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  2531. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /vget [vehicleid]");
  2532. new player1, string[128];
  2533. player1 = strval(params);
  2534. CMDMessageToAdmins(playerid,"VGET");
  2535. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z);
  2536. SetVehiclePos(player1,x+3,y,z);
  2537. SetVehicleVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2538. format(string,sizeof(string),"You have brough vehicle id %d to your location", player1);
  2539. return SendClientMessage(playerid,blue,string);
  2540. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2541. }
  2542.  
  2543. dcmd_lgoto(playerid,params[]) {
  2544. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  2545. new Float:x, Float:y, Float:z;
  2546. new tmp[256], tmp2[256], tmp3[256];
  2547. new string[128], Index; tmp = strtok(params,Index); tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2548. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid,red,"USAGE: /lgoto [x] [y] [z]");
  2549. x = strval(tmp); y = strval(tmp2); z = strval(tmp3);
  2550. CMDMessageToAdmins(playerid,"LGOTO");
  2551. if(GetPlayerState(playerid) == 2) SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
  2552. else SetPlayerPos(playerid,x,y,z);
  2553. format(string,sizeof(string),"You have teleported to %f, %f, %f", x,y,z); return SendClientMessage(playerid,blue,string);
  2554. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2555. }
  2556.  
  2557. dcmd_givecar(playerid,params[]) {
  2558. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  2559. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /givecar [playerid]");
  2560. new player1 = strval(params), playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2561. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2562. if(IsPlayerInAnyVehicle(player1)) return SendClientMessage(playerid,red,"ERROR: Player already has a vehicle");
  2563. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2564. CMDMessageToAdmins(playerid,"GIVECAR");
  2565. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  2566. CarSpawner(player1,415);
  2567. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2568. format(string,sizeof(string),"Administrator %s has given you a car",adminname); SendClientMessage(player1,blue,string);
  2569. format(string,sizeof(string),"You have given %s a car", playername); return SendClientMessage(playerid,blue,string);
  2570. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2571. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2572. }
  2573.  
  2574. dcmd_gethere(playerid,params[]) {
  2575. if(PlayerInfo[playerid][Level] >= 1) {
  2576. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /gethere [playerid]");
  2577. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2578. player1 = strval(params);
  2579. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2580. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2581. CMDMessageToAdmins(playerid,"GETHERE");
  2582. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
  2583. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2584. if(GetPlayerState(player1) == 2) {
  2585. new VehicleID = GetPlayerVehicleID(player1);
  2586. SetVehiclePos(VehicleID,x+3,y,z); LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  2587. SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
  2588. } else SetPlayerPos(player1,x+2,y,z);
  2589. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2590. format(string,sizeof(string),"You have been teleported to Administrator %s's location",adminname); SendClientMessage(player1,blue,string);
  2591. format(string,sizeof(string),"You have teleported %s to your location", playername); return SendClientMessage(playerid,blue,string);
  2592. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2593. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2594. }
  2595.  
  2596. dcmd_get(playerid,params[]) {
  2597. if(PlayerInfo[playerid][Level] >= 1|| IsPlayerAdmin(playerid)) {
  2598. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /get [playerid]");
  2599. new player1, string[128];
  2600. if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
  2601. else player1 = strval(params);
  2602. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2603. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2604. CMDMessageToAdmins(playerid,"GET");
  2605. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
  2606. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2607. if(GetPlayerState(player1) == 2) {
  2608. new VehicleID = GetPlayerVehicleID(player1);
  2609. SetVehiclePos(VehicleID,x+3,y,z); LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  2610. SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
  2611. } else SetPlayerPos(player1,x+2,y,z);
  2612. format(string,sizeof(string),"You have been teleported to Administrator \"%s's\" location", pName(playerid) ); SendClientMessage(player1,blue,string);
  2613. format(string,sizeof(string),"You have teleported \"%s\" to your location", pName(player1) );
  2614. return SendClientMessage(playerid,blue,string);
  2615. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2616. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2617. }
  2618.  
  2619. dcmd_fu(playerid,params[]) {
  2620. if(PlayerInfo[playerid][Level] >= 5) {
  2621. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /fu [playerid]");
  2622. new player1 = strval(params), string[128], NewName[MAX_PLAYER_NAME];
  2623. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2624. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2625. CMDMessageToAdmins(playerid,"FU");
  2626. SetPlayerHealth(player1,1.0); SetPlayerArmour(player1,0.0); ResetPlayerWeapons(player1);ResetPlayerMoney(player1);GivePlayerWeapon(player1,12,1);
  2627. SetPlayerSkin(player1, 137); SetPlayerScore(player1, 0); SetPlayerColor(player1,COLOR_PINK); SetPlayerWeather(player1,19); SetPlayerWantedLevel(player1,6);
  2628. format(NewName,sizeof(NewName),"[N00B]%s", pName(player1) ); SetPlayerName(player1,NewName);
  2629. if(IsPlayerInAnyVehicle(player1)) EraseVehicle(GetPlayerVehicleID(player1));
  2630. if(player1 != playerid) { format(string,sizeof(string),"~w~%s: ~r~Fuck You", pName(playerid) ); GameTextForPlayer(player1, string, 2500, 3); }
  2631. format(string,sizeof(string),"Fuck you \"%s\"", pName(player1) ); return SendClientMessage(playerid,blue,string);
  2632. } else return SendClientMessage(playerid, red, "Player is not connected");
  2633. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2634. }
  2635.  
  2636. dcmd_warn(playerid,params[]) {
  2637. if(PlayerInfo[playerid][Level] >= 2) {
  2638. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2639. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /warn [playerid] [reason]");
  2640. new warned = strval(tmp), str[128];
  2641. if(PlayerInfo[warned][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2642. if(IsPlayerConnected(warned) && warned != INVALID_PLAYER_ID) {
  2643. if(warned != playerid) {
  2644. CMDMessageToAdmins(playerid,"WARN");
  2645. PlayerInfo[warned][Warnings]++;
  2646. if( PlayerInfo[warned][Warnings] == MAX_WARNINGS) {
  2647. format(str, sizeof (str), "***Administrator \"%s\" has kicked \"%s\". (Reason: %s) (Warning: %d/%d)***", pName(playerid), pName(warned), params[1+strlen(tmp)], PlayerInfo[warned][Warnings], MAX_WARNINGS);
  2648. SendClientMessageToAll(grey, str);
  2649. SaveToFile("KickLog",str); Kick(warned);
  2650. return PlayerInfo[warned][Warnings] = 0;
  2651. } else {
  2652. format(str, sizeof (str), "***Administrator \"%s\" has given \"%s\" a warning. (Reason: %s) (Warning: %d/%d)***", pName(playerid), pName(warned), params[1+strlen(tmp)], PlayerInfo[warned][Warnings], MAX_WARNINGS);
  2653. return SendClientMessageToAll(yellow, str);
  2654. }
  2655. } else return SendClientMessage(playerid, red, "ERROR: You cannot warn yourself");
  2656. } else return SendClientMessage(playerid, red, "ERROR: Player is not connected");
  2657. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2658. }
  2659.  
  2660. dcmd_kick(playerid,params[]) {
  2661. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2662. if(PlayerInfo[playerid][Level] >= 3) {
  2663. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2664. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /kick [playerid] [reason]");
  2665. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2666. player1 = strval(tmp);
  2667.  
  2668. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2669. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2670. CMDMessageToAdmins(playerid,"KICK");
  2671. if(!strlen(tmp2)) {
  2672. format(string,sizeof(string),"%s has been kicked by Administrator %s [no reason given] ",playername,adminname); SendClientMessageToAll(grey,string);
  2673. SaveToFile("KickLog",string); print(string); return Kick(player1);
  2674. } else {
  2675. format(string,sizeof(string),"%s has been kicked by Administrator %s [reason: %s] ",playername,adminname,params[2]); SendClientMessageToAll(grey,string);
  2676. SaveToFile("KickLog",string); print(string); return Kick(player1); }
  2677. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2678. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2679. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2680. }
  2681.  
  2682. dcmd_ban(playerid,params[]) {
  2683. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2684. if(PlayerInfo[playerid][Level] >= 4) {
  2685. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2686. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ban [playerid] [reason]");
  2687. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "ERROR: You must give a reason");
  2688. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2689. player1 = strval(tmp);
  2690.  
  2691. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2692. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2693. new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
  2694. CMDMessageToAdmins(playerid,"BAN");
  2695. format(string,sizeof(string),"%s has been banned by Administrator %s [Reason: %s] [Date: %d/%d/%d] [Time: %d:%d]",playername,adminname,params[2],day,month,year,hour,minuite);
  2696. SendClientMessageToAll(grey,string);
  2697. SaveToFile("BanLog",string);
  2698. print(string);
  2699. if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
  2700. format(string,sizeof(string),"banned by Administrator %s. Reason: %s", adminname, params[2] );
  2701. return BanEx(player1, string);
  2702. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2703. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2704. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2705. }
  2706.  
  2707. dcmd_rban(playerid,params[]) {
  2708. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2709. if(PlayerInfo[playerid][Level] >= 5) {
  2710. new ip[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2711. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /rban [playerid] [reason]");
  2712. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "ERROR: You must give a reason");
  2713. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2714. player1 = strval(tmp);
  2715.  
  2716. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2717. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2718. new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
  2719. CMDMessageToAdmins(playerid,"RBAN");
  2720. format(string,sizeof(string),"%s has been range banned by Administrator %s [Reason: %s] [Date: %d/%d/%d] [Time: %d:%d]",playername,adminname,params[2],day,month,year,hour,minuite);
  2721. SendClientMessageToAll(grey,string);
  2722. SaveToFile("BanLog",string);
  2723. print(string);
  2724. if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
  2725. GetPlayerIp(player1,ip,sizeof(ip));
  2726. strdel(ip,strlen(ip)-2,strlen(ip));
  2727. format(ip,128,"%s**",ip);
  2728. format(ip,128,"banip %s",ip);
  2729. SendRconCommand(ip);
  2730. return 1;
  2731. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2732. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2733. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2734. }
  2735.  
  2736. dcmd_slap(playerid,params[]) {
  2737. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2738. if(PlayerInfo[playerid][Level] >= 1) {
  2739. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2740. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /slap [playerid] [reason/with]");
  2741. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2742. player1 = strval(tmp);
  2743.  
  2744. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2745. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2746. CMDMessageToAdmins(playerid,"SLAP");
  2747. new Float:Health, Float:x, Float:y, Float:z; GetPlayerHealth(player1,Health); SetPlayerHealth(player1,Health-50);
  2748. GetPlayerPos(player1,x,y,z); SetPlayerPos(player1,x,y,z+100); PlayerPlaySound(playerid,1190,0.0,0.0,0.0); PlayerPlaySound(player1,1190,0.0,0.0,0.0);
  2749.  
  2750. if(strlen(tmp2)) {
  2751. format(string,sizeof(string),"You have been slapped by Administrator %s %s ",adminname,params[2]); SendClientMessage(player1,red,string);
  2752. format(string,sizeof(string),"You have slapped %s %s ",playername,params[2]); return SendClientMessage(playerid,blue,string);
  2753. } else {
  2754. format(string,sizeof(string),"You have been slapped by Administrator %s ",adminname); SendClientMessage(player1,red,string);
  2755. format(string,sizeof(string),"You have slapped %s",playername); return SendClientMessage(playerid,blue,string); }
  2756. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2757. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2758. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2759. }
  2760.  
  2761. dcmd_explode(playerid,params[]) {
  2762. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2763. if(PlayerInfo[playerid][Level] >= 3) {
  2764. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2765. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /explode [playerid] [reason]");
  2766. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2767. player1 = strval(tmp);
  2768.  
  2769. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2770. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2771. CMDMessageToAdmins(playerid,"EXPLODE");
  2772. new Float:burnx, Float:burny, Float:burnz; GetPlayerPos(player1,burnx, burny, burnz); CreateExplosion(burnx, burny , burnz, 7,10.0);
  2773.  
  2774. if(strlen(tmp2)) {
  2775. format(string,sizeof(string),"You have been exploded by Administrator %s [reason: %s]",adminname,params[2]); SendClientMessage(player1,blue,string);
  2776. format(string,sizeof(string),"You have exploded %s [reason: %s]", playername,params[2]); return SendClientMessage(playerid,blue,string);
  2777. } else {
  2778. format(string,sizeof(string),"You have been exploded by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2779. format(string,sizeof(string),"You have exploded %s", playername); return SendClientMessage(playerid,blue,string); }
  2780. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2781. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2782. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2783. }
  2784.  
  2785. dcmd_jail(playerid,params[]) {
  2786. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2787. if(PlayerInfo[playerid][Level] >= 3) {
  2788. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  2789. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid] [minutes] [reason]");
  2790. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2791. player1 = strval(tmp);
  2792.  
  2793. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2794. if(PlayerInfo[player1][Jailed] == 0) {
  2795. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2796. new jtime = strval(tmp2);
  2797. if(jtime == 0) jtime = 9999;
  2798.  
  2799. CMDMessageToAdmins(playerid,"JAIL");
  2800. PlayerInfo[player1][JailTime] = jtime*1000*60;
  2801. SetTimerEx("JailPlayer",5000,0,"d",player1);
  2802. SetTimerEx("Jail1",1000,0,"d",player1);
  2803. PlayerInfo[player1][Jailed] = 1;
  2804.  
  2805. if(jtime == 9999) {
  2806. if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has jailed %s ",adminname, playername);
  2807. else format(string,sizeof(string),"Administrator %s has jailed %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
  2808. } else {
  2809. if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes",adminname, playername, jtime);
  2810. else format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes [reason: %s]",adminname, playername, jtime, params[strlen(tmp2)+strlen(tmp)+1] );
  2811. }
  2812. return SendClientMessageToAll(blue,string);
  2813. } else return SendClientMessage(playerid, red, "Player is already in jail");
  2814. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2815. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2816. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2817. }
  2818.  
  2819. dcmd_unjail(playerid,params[]) {
  2820. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2821. if(PlayerInfo[playerid][Level] >= 3) {
  2822. new tmp[256], Index; tmp = strtok(params,Index);
  2823. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid]");
  2824. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2825. player1 = strval(tmp);
  2826.  
  2827. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2828. if(PlayerInfo[player1][Jailed] == 1) {
  2829. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2830. format(string,sizeof(string),"Administrator %s has unjailed you",adminname); SendClientMessage(player1,blue,string);
  2831. format(string,sizeof(string),"Administrator %s has unjailed %s",adminname, playername);
  2832. JailRelease(player1);
  2833. return SendClientMessageToAll(blue,string);
  2834. } else return SendClientMessage(playerid, red, "Player is not in jail");
  2835. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2836. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2837. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2838. }
  2839.  
  2840. dcmd_jailed(playerid,params[]) {
  2841. #pragma unused params
  2842. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2843. if(PlayerInfo[playerid][Level] >= 2) {
  2844. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2845. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed]) Count++;
  2846. if(Count == 0) return SendClientMessage(playerid,red, "No players are jailed");
  2847.  
  2848. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed]) {
  2849. GetPlayerName(i, adminname, sizeof(adminname));
  2850. if(!First2) { format(string, sizeof(string), "Jailed Players: (%d)%s", i,adminname); First2 = true; }
  2851. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2852. }
  2853. return SendClientMessage(playerid,COLOR_WHITE,string);
  2854. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2855. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2856. }
  2857.  
  2858. dcmd_freeze(playerid,params[]) {
  2859. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2860. if(PlayerInfo[playerid][Level] >= 3) {
  2861. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  2862. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /freeze [playerid] [minutes] [reason]");
  2863. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2864. player1 = strval(tmp);
  2865.  
  2866. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2867. if(PlayerInfo[player1][Frozen] == 0) {
  2868. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2869. new ftime = strval(tmp2);
  2870. if(ftime == 0) ftime = 9999;
  2871.  
  2872. CMDMessageToAdmins(playerid,"FREEZE");
  2873. TogglePlayerControllable(player1,false); PlayerInfo[player1][Frozen] = 1; PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  2874. PlayerInfo[player1][FreezeTime] = ftime*1000*60;
  2875. FreezeTimer[player1] = SetTimerEx("UnFreezeMe",PlayerInfo[player1][FreezeTime],0,"d",player1);
  2876.  
  2877. if(ftime == 9999) {
  2878. if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has frozen %s ",adminname, playername);
  2879. else format(string,sizeof(string),"Administrator %s has frozen %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
  2880. } else {
  2881. if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has frozen %s for %d minutes",adminname, playername, ftime);
  2882. else format(string,sizeof(string),"Administrator %s has frozen %s for %d minutes [reason: %s]",adminname, playername, ftime, params[strlen(tmp2)+strlen(tmp)+1] );
  2883. }
  2884. return SendClientMessageToAll(blue,string);
  2885. } else return SendClientMessage(playerid, red, "Player is already frozen");
  2886. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2887. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2888. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2889. }
  2890.  
  2891. dcmd_unfreeze(playerid,params[]) {
  2892. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2893. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2894. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /unfreeze [playerid]");
  2895. new player1, string[128];
  2896. player1 = strval(params);
  2897.  
  2898. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2899. if(PlayerInfo[player1][Frozen] == 1) {
  2900. CMDMessageToAdmins(playerid,"UNFREEZE");
  2901. UnFreezeMe(player1);
  2902. format(string,sizeof(string),"Administrator %s has unfrozen you", PlayerName2(playerid) ); SendClientMessage(player1,blue,string);
  2903. format(string,sizeof(string),"Administrator %s has unfrozen %s", PlayerName2(playerid), PlayerName2(player1));
  2904. return SendClientMessageToAll(blue,string);
  2905. } else return SendClientMessage(playerid, red, "Player is not frozen");
  2906. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2907. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2908. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2909. }
  2910.  
  2911. dcmd_frozen(playerid,params[]) {
  2912. #pragma unused params
  2913. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2914. if(PlayerInfo[playerid][Level] >= 2) {
  2915. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2916. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen]) Count++;
  2917. if(Count == 0) return SendClientMessage(playerid,red, "No players are frozen");
  2918.  
  2919. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen]) {
  2920. GetPlayerName(i, adminname, sizeof(adminname));
  2921. if(!First2) { format(string, sizeof(string), "Frozen Players: (%d)%s", i,adminname); First2 = true; }
  2922. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2923. }
  2924. return SendClientMessage(playerid,COLOR_WHITE,string);
  2925. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2926. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2927. }
  2928.  
  2929. dcmd_mute(playerid,params[]) {
  2930. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2931. if(PlayerInfo[playerid][Level] >= 2) {
  2932. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2933. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /mute [playerid] [reason]");
  2934. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2935. player1 = strval(tmp);
  2936.  
  2937. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2938. if(PlayerInfo[player1][Muted] == 0) {
  2939. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2940. CMDMessageToAdmins(playerid,"MUTE");
  2941. PlayerPlaySound(player1,1057,0.0,0.0,0.0); PlayerInfo[player1][Muted] = 1; PlayerInfo[player1][MuteWarnings] = 0;
  2942.  
  2943. if(strlen(tmp2)) {
  2944. format(string,sizeof(string),"You have been muted by Administrator %s [reason: %s]",adminname,params[2]); SendClientMessage(player1,blue,string);
  2945. format(string,sizeof(string),"You have muted %s [reason: %s]", playername,params[2]); return SendClientMessage(playerid,blue,string);
  2946. } else {
  2947. format(string,sizeof(string),"You have been muted by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2948. format(string,sizeof(string),"You have muted %s", playername); return SendClientMessage(playerid,blue,string); }
  2949. } else return SendClientMessage(playerid, red, "Player is already muted");
  2950. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2951. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2952. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2953. }
  2954.  
  2955. dcmd_unmute(playerid,params[]) {
  2956. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2957. if(PlayerInfo[playerid][Level] >= 2) {
  2958. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /unmute [playerid]");
  2959. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2960. player1 = strval(params);
  2961.  
  2962. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2963. if(PlayerInfo[player1][Muted] == 1) {
  2964. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2965. CMDMessageToAdmins(playerid,"UNMUTE");
  2966. PlayerPlaySound(player1,1057,0.0,0.0,0.0); PlayerInfo[player1][Muted] = 0; PlayerInfo[player1][MuteWarnings] = 0;
  2967. format(string,sizeof(string),"You have been unmuted by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2968. format(string,sizeof(string),"You have unmuted %s", playername); return SendClientMessage(playerid,blue,string);
  2969. } else return SendClientMessage(playerid, red, "Player is not muted");
  2970. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2971. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2972. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2973. }
  2974.  
  2975. dcmd_muted(playerid,params[]) {
  2976. #pragma unused params
  2977. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2978. if(PlayerInfo[playerid][Level] >= 2) {
  2979. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2980. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted]) Count++;
  2981. if(Count == 0) return SendClientMessage(playerid,red, "No players are muted");
  2982.  
  2983. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted]) {
  2984. GetPlayerName(i, adminname, sizeof(adminname));
  2985. if(!First2) { format(string, sizeof(string), "Muted Players: (%d)%s", i,adminname); First2 = true; }
  2986. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2987. }
  2988. return SendClientMessage(playerid,COLOR_WHITE,string);
  2989. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2990. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2991. }
  2992.  
  2993. dcmd_akill(playerid,params[]) {
  2994. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2995. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2996. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /akill [playerid]");
  2997. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2998. player1 = strval(params);
  2999.  
  3000. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3001. if( (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel] ) )
  3002. return SendClientMessage(playerid, red, "You cannot akill the highest level admin");
  3003. CMDMessageToAdmins(playerid,"AKILL");
  3004. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3005. format(string,sizeof(string),"Administrator %s has killed you",adminname); SendClientMessage(player1,blue,string);
  3006. format(string,sizeof(string),"You have killed %s",playername); SendClientMessage(playerid,blue,string);
  3007. return SetPlayerHealth(player1,0.0);
  3008. } else return SendClientMessage(playerid, red, "Player is not connected");
  3009. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3010. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3011. }
  3012.  
  3013. dcmd_weaps(playerid,params[]) {
  3014. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  3015. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /weaps [playerid]");
  3016. new player1, string[128], string2[64], WeapName[24], slot, weap, ammo, Count, x;
  3017. player1 = strval(params);
  3018.  
  3019. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3020. format(string2,sizeof(string2),"[>> %s Weapons (id:%d) <<]", PlayerName2(player1), player1); SendClientMessage(playerid,blue,string2);
  3021. for (slot = 0; slot < 14; slot++) { GetPlayerWeaponData(player1, slot, weap, ammo); if( ammo != 0 && weap != 0) Count++; }
  3022. if(Count < 1) return SendClientMessage(playerid,blue,"Player has no weapons");
  3023.  
  3024. if(Count >= 1)
  3025. {
  3026. for (slot = 0; slot < 14; slot++)
  3027. {
  3028. GetPlayerWeaponData(player1, slot, weap, ammo);
  3029. if( ammo != 0 && weap != 0)
  3030. {
  3031. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  3032. if(ammo == 65535 || ammo == 1) format(string,sizeof(string),"%s%s (1)",string, WeapName );
  3033. else format(string,sizeof(string),"%s%s (%d)",string, WeapName, ammo );
  3034. x++;
  3035. if(x >= 5)
  3036. {
  3037. SendClientMessage(playerid, blue, string);
  3038. x = 0;
  3039. format(string, sizeof(string), "");
  3040. }
  3041. else format(string, sizeof(string), "%s, ", string);
  3042. }
  3043. }
  3044. if(x <= 4 && x > 0) {
  3045. string[strlen(string)-3] = '.';
  3046. SendClientMessage(playerid, blue, string);
  3047. }
  3048. }
  3049. return 1;
  3050. } else return SendClientMessage(playerid, red, "Player is not connected");
  3051. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3052. }
  3053.  
  3054. dcmd_aka(playerid,params[]) {
  3055. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  3056. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /aka [playerid]");
  3057. new player1, playername[MAX_PLAYER_NAME], str[128], tmp3[50];
  3058. player1 = strval(params);
  3059. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3060. GetPlayerIp(player1,tmp3,50);
  3061. GetPlayerName(player1, playername, sizeof(playername));
  3062. format(str,sizeof(str),"AKA: [%s id:%d] [%s] %s", playername, player1, tmp3, dini_Get("ladmin/config/aka.txt",tmp3) );
  3063. return SendClientMessage(playerid,blue,str);
  3064. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  3065. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3066. }
  3067.  
  3068. dcmd_screen(playerid,params[]) {
  3069. if(PlayerInfo[playerid][Level] >= 2) {
  3070. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3071. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /screen [playerid] [text]");
  3072. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3073. player1 = strval(params);
  3074.  
  3075. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  3076. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3077. CMDMessageToAdmins(playerid,"SCREEN");
  3078. format(string,sizeof(string),"Administrator %s has sent you a screen message",adminname); SendClientMessage(player1,blue,string);
  3079. format(string,sizeof(string),"You have sent %s a screen message (%s)", playername, params[2]); SendClientMessage(playerid,blue,string);
  3080. return GameTextForPlayer(player1, params[2],4000,3);
  3081. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  3082. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3083. }
  3084.  
  3085. dcmd_laston(playerid,params[]) {
  3086. if(PlayerInfo[playerid][Level] >= 2) {
  3087. new tmp2[256], file[256],player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], str[128];
  3088. GetPlayerName(playerid, adminname, sizeof(adminname));
  3089.  
  3090. if(!strlen(params)) {
  3091. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(adminname));
  3092. if(!fexist(file)) return SendClientMessage(playerid, red, "Error: File doesnt exist, player isnt registered");
  3093. if(dUserINT(PlayerName2(playerid)).("LastOn")==0) { format(str, sizeof(str),"Never"); tmp2 = str;
  3094. } else { tmp2 = dini_Get(file,"LastOn"); }
  3095. format(str, sizeof(str),"You were last on the server on %s",tmp2);
  3096. return SendClientMessage(playerid, red, str);
  3097. }
  3098. player1 = strval(params);
  3099. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  3100. CMDMessageToAdmins(playerid,"LASTON");
  3101. GetPlayerName(player1,playername,sizeof(playername)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(playername));
  3102. if(!fexist(file)) return SendClientMessage(playerid, red, "Error: File doesnt exist, player isnt registered");
  3103. if(dUserINT(PlayerName2(player1)).("LastOn")==0) { format(str, sizeof(str),"Never"); tmp2 = str;
  3104. } else { tmp2 = dini_Get(file,"LastOn"); }
  3105. format(str, sizeof(str),"%s was last on the server on %s",playername,tmp2);
  3106. return SendClientMessage(playerid, red, str);
  3107. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  3108. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3109. }
  3110.  
  3111. dcmd_admins(playerid,params[]) {
  3112. #pragma unused params
  3113. new Count[2], i, string[128];
  3114. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
  3115. {
  3116. if(PlayerInfo[i][Level] > 0) Count[0]++;
  3117. if(IsPlayerAdmin(i)) Count[1]++;
  3118. }
  3119.  
  3120. #if defined HIDE_ADMINS
  3121. if(PlayerInfo[playerid][Level] == 0) {
  3122. if(Count[0] >= 1) {
  3123. format(string, sizeof(string), "There are %d Administrators online. Use /report <id> <reason> if you suspect a player of cheating", Count[0]);
  3124. return SendClientMessage(playerid, blue, string);
  3125. } else return SendClientMessage(playerid, blue, "No Administrators online");
  3126. }
  3127. #endif
  3128.  
  3129. if( (Count[0] == 0 && Count[1] == 0) || (Count[0] == 0 && Count[1] >= 1 && PlayerInfo[playerid][Level] == 0) ) return SendClientMessage(playerid, blue, "No Administrators online");
  3130.  
  3131. if(Count[0] == 1) {
  3132. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] > 0) {
  3133. format(string, sizeof(string), "Admin: (%d)%s [%d]", i, PlayerName2(i), PlayerInfo[i][Level] ); SendClientMessage(playerid, blue, string);
  3134. }
  3135. }
  3136.  
  3137. if(Count[0] > 1) {
  3138. new x; format(string, sizeof(string), "Admins: ");
  3139. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] > 0)
  3140. {
  3141. format(string,sizeof(string),"%s(%d)%s [%d]",string,i,PlayerName2(i),PlayerInfo[i][Level]);
  3142. x++;
  3143. if(x >= 5) {
  3144. SendClientMessage(playerid, blue, string); format(string, sizeof(string), "Admins: "); x = 0;
  3145. }
  3146. else format(string, sizeof(string), "%s, ", string);
  3147. }
  3148. if(x <= 4 && x > 0) {
  3149. string[strlen(string)-3] = '.';
  3150. SendClientMessage(playerid, blue, string);
  3151. }
  3152. }
  3153.  
  3154. if( (Count[1] == 1) && (PlayerInfo[playerid][Level] > 0) ) {
  3155. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) {
  3156. format(string, sizeof(string), "RCON Admin: (%d)%s", i, PlayerName2(i)); SendClientMessage(playerid, COLOR_WHITE, string);
  3157. }
  3158. }
  3159. if(Count[1] > 1) {
  3160. new x; format(string, sizeof(string), "RCON Admins: ");
  3161. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i))
  3162. {
  3163. format(string,sizeof(string),"%s(%d)%s",string,i,PlayerName2(i));
  3164. x++;
  3165. if(x >= 5) {
  3166. SendClientMessage(playerid, COLOR_WHITE, string); format(string, sizeof(string), "RCON Admins: "); x = 0;
  3167. }
  3168. else format(string, sizeof(string), "%s, ", string);
  3169. }
  3170. if(x <= 4 && x > 0) {
  3171. string[strlen(string)-3] = '.';
  3172. SendClientMessage(playerid, COLOR_WHITE, string);
  3173. }
  3174. }
  3175. return 1;
  3176. }
  3177.  
  3178. dcmd_morning(playerid,params[]) {
  3179. #pragma unused params
  3180. if(PlayerInfo[playerid][Level] >= 1) {
  3181. CMDMessageToAdmins(playerid,"MORNING");
  3182. return SetPlayerTime(playerid,7,0);
  3183. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  3184. }
  3185.  
  3186. dcmd_adminarea(playerid,params[]) {
  3187. #pragma unused params
  3188. if(PlayerInfo[playerid][Level] >= 1) {
  3189. CMDMessageToAdmins(playerid,"ADMINAREA");
  3190. SetPlayerPos(playerid, AdminArea[0], AdminArea[1], AdminArea[2]);
  3191. SetPlayerFacingAngle(playerid, AdminArea[3]);
  3192. SetPlayerInterior(playerid, AdminArea[4]);
  3193. SetPlayerVirtualWorld(playerid, AdminArea[5]);
  3194. return GameTextForPlayer(playerid,"Welcome Admin",1000,3);
  3195. } else {
  3196. SetPlayerHealth(playerid,1.0);
  3197. new string[100]; format(string, sizeof(string),"%s has used adminarea (non admin)", PlayerName2(playerid) );
  3198. MessageToAdmins(red,string);
  3199. } return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command.");
  3200. }
  3201.  
  3202. dcmd_setlevel(playerid,params[]) {
  3203. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3204. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3205. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3206. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");
  3207. new player1, level, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3208. player1 = strval(tmp);
  3209. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");
  3210. level = strval(tmp2);
  3211.  
  3212. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3213. if(PlayerInfo[player1][LoggedIn] == 1) {
  3214. if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
  3215. if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  3216. CMDMessageToAdmins(playerid,"SETLEVEL");
  3217. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3218. new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  3219.  
  3220. if(level > 0) format(string,sizeof(string),"Administrator %s has set you to Administrator Status [level %d]",adminname, level);
  3221. else format(string,sizeof(string),"Administrator %s has set you to Player Status [level %d]",adminname, level);
  3222. SendClientMessage(player1,blue,string);
  3223.  
  3224. if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"Promoted", 2000, 3);
  3225. else GameTextForPlayer(player1,"Demoted", 2000, 3);
  3226.  
  3227. format(string,sizeof(string),"You have made %s Level %d on %d/%d/%d at %d:%d:%d", playername, level, day, month, year, hour, minute, second); SendClientMessage(playerid,blue,string);
  3228. format(string,sizeof(string),"Administrator %s has made %s Level %d on %d/%d/%d at %d:%d:%d",adminname, playername, level, day, month, year, hour, minute, second);
  3229. SaveToFile("AdminLog",string);
  3230. dUserSetINT(PlayerName2(player1)).("level",(level));
  3231. PlayerInfo[player1][Level] = level;
  3232. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  3233. } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to become admin");
  3234. } else return SendClientMessage(playerid, red, "Player is not connected");
  3235. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3236. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3237. }
  3238.  
  3239.  
  3240.  
  3241.  
  3242. dcmd_settemplevel(playerid,params[]) {
  3243. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3244. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3245. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3246. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /settemplevel [playerid] [level]");
  3247. new player1, level, string[128];
  3248. player1 = strval(tmp);
  3249. level = strval(tmp2);
  3250.  
  3251. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3252. if(PlayerInfo[player1][LoggedIn] == 1) {
  3253. if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
  3254. if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  3255. CMDMessageToAdmins(playerid,"SETTEMPLEVEL");
  3256. new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  3257.  
  3258. if(level > 0) format(string,sizeof(string),"Administrator %s has temporarily set you to Administrator Status [level %d]", pName(playerid), level);
  3259. else format(string,sizeof(string),"Administrator %s has temporarily set you to Player Status [level %d]", pName(playerid), level);
  3260. SendClientMessage(player1,blue,string);
  3261.  
  3262. if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"Promoted", 2000, 3);
  3263. else GameTextForPlayer(player1,"Demoted", 2000, 3);
  3264.  
  3265. format(string,sizeof(string),"You have made %s Level %d on %d/%d/%d at %d:%d:%d", pName(player1), level, day, month, year, hour, minute, second); SendClientMessage(playerid,blue,string);
  3266. format(string,sizeof(string),"Administrator %s has made %s temp Level %d on %d/%d/%d at %d:%d:%d",pName(playerid), pName(player1), level, day, month, year, hour, minute, second);
  3267. SaveToFile("TempAdminLog",string);
  3268. PlayerInfo[player1][Level] = level;
  3269. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  3270. } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
  3271. } else return SendClientMessage(playerid, red, "Player is not connected");
  3272. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3273. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3274. }
  3275.  
  3276. dcmd_report(playerid,params[]) {
  3277. new reported, tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3278. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /report [playerid] [reason]");
  3279. reported = strval(tmp);
  3280.  
  3281. if(IsPlayerConnected(reported) && reported != INVALID_PLAYER_ID) {
  3282. if(PlayerInfo[reported][Level] == ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot report this administrator");
  3283. if(playerid == reported) return SendClientMessage(playerid,red,"ERROR: You Cannot report yourself");
  3284. if(strlen(params) > 7) {
  3285. new reportedname[MAX_PLAYER_NAME], reporter[MAX_PLAYER_NAME], str[128], hour,minute,second; gettime(hour,minute,second);
  3286. GetPlayerName(reported, reportedname, sizeof(reportedname)); GetPlayerName(playerid, reporter, sizeof(reporter));
  3287. format(str, sizeof(str), "||NewReport|| %s(%d) reported %s(%d) Reason: %s |@%d:%d:%d|", reporter,playerid, reportedname, reported, params[strlen(tmp)+1], hour,minute,second);
  3288. MessageToAdmins(COLOR_WHITE,str);
  3289. SaveToFile("ReportLog",str);
  3290. format(str, sizeof(str), "Report(%d:%d:%d): %s(%d) reported %s(%d) Reason: %s", hour,minute,second, reporter,playerid, reportedname, reported, params[strlen(tmp)+1]);
  3291. for(new i = 1; i < MAX_REPORTS-1; i++) Reports[i] = Reports[i+1];
  3292. Reports[MAX_REPORTS-1] = str;
  3293. return SendClientMessage(playerid,yellow, "Your report has been sent to online administrators.");
  3294. } else return SendClientMessage(playerid,red,"ERROR: Must be a valid reason");
  3295. } else return SendClientMessage(playerid, red, "Player is not connected");
  3296. }
  3297.  
  3298. dcmd_reports(playerid,params[]) {
  3299. #pragma unused params
  3300. if(PlayerInfo[playerid][Level] >= 1) {
  3301. new ReportCount;
  3302. for(new i = 1; i < MAX_REPORTS; i++)
  3303. {
  3304. if(strcmp( Reports[i], "<none>", true) != 0) { ReportCount++; SendClientMessage(playerid,COLOR_WHITE,Reports[i]); }
  3305. }
  3306. if(ReportCount == 0) SendClientMessage(playerid,COLOR_WHITE,"There have been no reports");
  3307. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  3308. return 1;
  3309. }
  3310.  
  3311. dcmd_richlist(playerid,params[]) {
  3312. #pragma unused params
  3313. if(PlayerInfo[playerid][Level] >= 1) {
  3314. new string[128], Slot1 = -1, Slot2 = -1, Slot3 = -1, Slot4 = -1, HighestCash = -9999;
  3315. SendClientMessage(playerid,COLOR_WHITE,"Rich List:");
  3316.  
  3317. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x)) if (GetPlayerMoney(x) >= HighestCash) {
  3318. HighestCash = GetPlayerMoney(x);
  3319. Slot1 = x;
  3320. }
  3321. HighestCash = -9999;
  3322. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1) if (GetPlayerMoney(x) >= HighestCash) {
  3323. HighestCash = GetPlayerMoney(x);
  3324. Slot2 = x;
  3325. }
  3326. HighestCash = -9999;
  3327. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1 && x != Slot2) if (GetPlayerMoney(x) >= HighestCash) {
  3328. HighestCash = GetPlayerMoney(x);
  3329. Slot3 = x;
  3330. }
  3331. HighestCash = -9999;
  3332. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1 && x != Slot2 && x != Slot3) if (GetPlayerMoney(x) >= HighestCash) {
  3333. HighestCash = GetPlayerMoney(x);
  3334. Slot4 = x;
  3335. }
  3336. format(string, sizeof(string), "(%d) %s - $%d", Slot1,PlayerName2(Slot1),GetPlayerMoney(Slot1) );
  3337. SendClientMessage(playerid,COLOR_WHITE,string);
  3338. if(Slot2 != -1) {
  3339. format(string, sizeof(string), "(%d) %s - $%d", Slot2,PlayerName2(Slot2),GetPlayerMoney(Slot2) );
  3340. SendClientMessage(playerid,COLOR_WHITE,string);
  3341. }
  3342. if(Slot3 != -1) {
  3343. format(string, sizeof(string), "(%d) %s - $%d", Slot3,PlayerName2(Slot3),GetPlayerMoney(Slot3) );
  3344. SendClientMessage(playerid,COLOR_WHITE,string);
  3345. }
  3346. if(Slot4 != -1) {
  3347. format(string, sizeof(string), "(%d) %s - $%d", Slot4,PlayerName2(Slot4),GetPlayerMoney(Slot4) );
  3348. SendClientMessage(playerid,COLOR_WHITE,string);
  3349. }
  3350. return 1;
  3351. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3352. }
  3353.  
  3354. dcmd_miniguns(playerid,params[]) {
  3355. #pragma unused params
  3356. if(PlayerInfo[playerid][Level] >= 1) {
  3357. new bool:First2 = false, Count, string[128], i, slot, weap, ammo;
  3358. for(i = 0; i < MAX_PLAYERS; i++) {
  3359. if(IsPlayerConnected(i)) {
  3360. for(slot = 0; slot < 14; slot++) {
  3361. GetPlayerWeaponData(i, slot, weap, ammo);
  3362. if(ammo != 0 && weap == 38) {
  3363. Count++;
  3364. if(!First2) { format(string, sizeof(string), "Minigun: (%d)%s(ammo%d)", i, PlayerName2(i), ammo); First2 = true; }
  3365. else format(string,sizeof(string),"%s, (%d)%s(ammo%d) ",string, i, PlayerName2(i), ammo);
  3366. }
  3367. }
  3368. }
  3369. }
  3370. if(Count == 0) return SendClientMessage(playerid,COLOR_WHITE,"No players have a minigun"); else return SendClientMessage(playerid,COLOR_WHITE,string);
  3371. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3372. }
  3373.  
  3374. dcmd_uconfig(playerid,params[]) {
  3375. #pragma unused params
  3376. if(PlayerInfo[playerid][Level] >= 4)
  3377. {
  3378. UpdateConfig();
  3379. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  3380. return CMDMessageToAdmins(playerid,"UCONFIG");
  3381. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3382. }
  3383.  
  3384. dcmd_botcheck(playerid,params[]) {
  3385. #pragma unused params
  3386. if(PlayerInfo[playerid][Level] >= 4) {
  3387. for(new i=0; i<MAX_PLAYERS; i++) BotCheck(i);
  3388. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  3389. return CMDMessageToAdmins(playerid,"BOTCHECK");
  3390. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3391. }
  3392.  
  3393. dcmd_lockserver(playerid,params[]) {
  3394. if(PlayerInfo[playerid][Level] >= 5) {
  3395. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /lockserver [password]");
  3396. new adminname[MAX_PLAYER_NAME], string[128];
  3397. ServerInfo[Locked] = 1;
  3398. strmid(ServerInfo[Password], params[0], 0, strlen(params[0]), 128);
  3399. GetPlayerName(playerid, adminname, sizeof(adminname));
  3400. format(string, sizeof(string), "Administrator \"%s\" has locked the server",adminname);
  3401. SendClientMessageToAll(red,"________________________________________");
  3402. SendClientMessageToAll(red," ");
  3403. SendClientMessageToAll(red,string);
  3404. SendClientMessageToAll(red,"________________________________________");
  3405. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][AllowedIn] = true; }
  3406. CMDMessageToAdmins(playerid,"LOCKSERVER");
  3407. format(string, sizeof(string), "Administrator \"%s\" has set the server password to '%s'",adminname, ServerInfo[Password] );
  3408. return MessageToAdmins(COLOR_WHITE, string);
  3409. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3410. }
  3411.  
  3412. dcmd_unlockserver(playerid,params[]) {
  3413. #pragma unused params
  3414. if(PlayerInfo[playerid][Level] >= 5) {
  3415. if(ServerInfo[Locked] == 1) {
  3416. new adminname[MAX_PLAYER_NAME], string[128];
  3417. ServerInfo[Locked] = 0;
  3418. strmid(ServerInfo[Password], "", 0, strlen(""), 128);
  3419. GetPlayerName(playerid, adminname, sizeof(adminname));
  3420. format(string, sizeof(string), "Administrator \"%s\" has unlocked the server",adminname);
  3421. SendClientMessageToAll(green,"________________________________________");
  3422. SendClientMessageToAll(green," ");
  3423. SendClientMessageToAll(green,string);
  3424. SendClientMessageToAll(green,"________________________________________");
  3425. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][AllowedIn] = true; }
  3426. return CMDMessageToAdmins(playerid,"UNLOCKSERVER");
  3427. } else return SendClientMessage(playerid,red,"ERROR: Server is not locked");
  3428. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3429. }
  3430.  
  3431. dcmd_password(playerid,params[]) {
  3432. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /password [password]");
  3433. if(ServerInfo[Locked] == 1) {
  3434. if(PlayerInfo[playerid][AllowedIn] == false) {
  3435. if(!strcmp(ServerInfo[Password],params[0],true)) {
  3436. KillTimer( LockKickTimer[playerid] );
  3437. PlayerInfo[playerid][AllowedIn] = true;
  3438. new string[128];
  3439. SendClientMessage(playerid,COLOR_WHITE,"You have successsfully entered the server password and may now spawn");
  3440. format(string, sizeof(string), "%s has successfully entered server password",PlayerName2(playerid));
  3441. return MessageToAdmins(COLOR_WHITE, string);
  3442. } else return SendClientMessage(playerid,red,"ERROR: Incorrect server password");
  3443. } else return SendClientMessage(playerid,red,"ERROR: You are already logged in");
  3444. } else return SendClientMessage(playerid,red,"ERROR: Server isnt Locked");
  3445. }
  3446.  
  3447. //------------------------------------------------------------------------------
  3448. dcmd_forbidname(playerid,params[]) {
  3449. if(PlayerInfo[playerid][Level] >= 4) {
  3450. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /forbidname [nickname]");
  3451. new File:BLfile, string[128];
  3452. BLfile = fopen("ladmin/config/ForbiddenNames.cfg",io_append);
  3453. format(string,sizeof(string),"%s\r\n",params[1]);
  3454. fwrite(BLfile,string);
  3455. fclose(BLfile);
  3456. UpdateConfig();
  3457. CMDMessageToAdmins(playerid,"FORBIDNAME");
  3458. format(string, sizeof(string), "Administrator \"%s\" has added the name \"%s\" to the forbidden name list", pName(playerid), params );
  3459. return MessageToAdmins(green,string);
  3460. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3461. }
  3462.  
  3463. dcmd_forbidword(playerid,params[]) {
  3464. if(PlayerInfo[playerid][Level] >= 4) {
  3465. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /forbidword [word]");
  3466. new File:BLfile, string[128];
  3467. BLfile = fopen("ladmin/config/ForbiddenWords.cfg",io_append);
  3468. format(string,sizeof(string),"%s\r\n",params[1]);
  3469. fwrite(BLfile,string);
  3470. fclose(BLfile);
  3471. UpdateConfig();
  3472. CMDMessageToAdmins(playerid,"FORBIDWORD");
  3473. format(string, sizeof(string), "Administrator \"%s\" has added the word \"%s\" to the forbidden word list", pName(playerid), params );
  3474. return MessageToAdmins(green,string);
  3475. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3476. }
  3477.  
  3478. //==========================[ Spectate Commands ]===============================
  3479. #if defined ENABLE_SPEC
  3480.  
  3481. dcmd_lspec(playerid,params[]) {
  3482. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3483. if(!strlen(params) || !IsNumeric(params)) return SendClientMessage(playerid, red, "USAGE: /lspec [playerid]");
  3484. new specplayerid = strval(params);
  3485. if(PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3486. if(IsPlayerConnected(specplayerid) && specplayerid != INVALID_PLAYER_ID) {
  3487. if(specplayerid == playerid) return SendClientMessage(playerid, red, "ERROR: You cannot spectate yourself");
  3488. if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && PlayerInfo[specplayerid][SpecID] != INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "Spectate: Player spectating someone else");
  3489. if(GetPlayerState(specplayerid) != 1 && GetPlayerState(specplayerid) != 2 && GetPlayerState(specplayerid) != 3) return SendClientMessage(playerid, red, "Spectate: Player not spawned");
  3490. if( (PlayerInfo[specplayerid][Level] != ServerInfo[MaxAdminLevel]) || (PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] == ServerInfo[MaxAdminLevel]) ) {
  3491. StartSpectate(playerid, specplayerid);
  3492. CMDMessageToAdmins(playerid,"LSPEC");
  3493. GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  3494. GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  3495. return SendClientMessage(playerid,blue,"Now Spectating");
  3496. } else return SendClientMessage(playerid,red,"ERROR: You cannot spectate the highest level admin");
  3497. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3498. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3499. }
  3500.  
  3501. dcmd_lspecvehicle(playerid,params[]) {
  3502. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3503. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /lspecvehicle [vehicleid]");
  3504. new specvehicleid = strval(params);
  3505. if(specvehicleid < MAX_VEHICLES) {
  3506. TogglePlayerSpectating(playerid, 1);
  3507. PlayerSpectateVehicle(playerid, specvehicleid);
  3508. PlayerInfo[playerid][SpecID] = specvehicleid;
  3509. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  3510. CMDMessageToAdmins(playerid,"SPEC VEHICLE");
  3511. GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  3512. GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  3513. return SendClientMessage(playerid,blue,"Now Spectating");
  3514. } else return SendClientMessage(playerid,red, "ERROR: Invalid Vehicle ID");
  3515. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3516. }
  3517. dcmd_lspecoff(playerid,params[]) {
  3518. #pragma unused params
  3519. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3520. if(PlayerInfo[playerid][SpecType] != ADMIN_SPEC_TYPE_NONE) {
  3521. StopSpectate(playerid);
  3522. SetTimerEx("PosAfterSpec",3000,0,"d",playerid);
  3523. return SendClientMessage(playerid,blue,"No Longer Spectating");
  3524. } else return SendClientMessage(playerid,red,"ERROR: You are not spectating");
  3525. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3526. }
  3527.  
  3528. #endif
  3529.  
  3530. //==========================[ CHAT COMMANDS ]===================================
  3531.  
  3532. dcmd_disablechat(playerid,params[]) {
  3533. #pragma unused params
  3534. if(PlayerInfo[playerid][Level] >= 5) {
  3535. CMDMessageToAdmins(playerid,"DISABLECHAT");
  3536. new string[128];
  3537. if(ServerInfo[DisableChat] == 0) {
  3538. ServerInfo[DisableChat] = 1;
  3539. format(string,sizeof(string),"Administrator \"%s\" has disabled chat", pName(playerid) );
  3540. } else {
  3541. ServerInfo[DisableChat] = 0;
  3542. format(string,sizeof(string),"Administrator \"%s\" has enabled chat", pName(playerid) );
  3543. } return SendClientMessageToAll(blue,string);
  3544. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3545. }
  3546.  
  3547. dcmd_clearchat(playerid,params[]) {
  3548. #pragma unused params
  3549. if(PlayerInfo[playerid][Level] >= 2) {
  3550. CMDMessageToAdmins(playerid,"CLEARCHAT");
  3551. for(new i = 0; i < 11; i++) SendClientMessageToAll(green," "); return 1;
  3552. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3553. }
  3554.  
  3555. dcmd_clearallchat(playerid,params[]) {
  3556. #pragma unused params
  3557. if(PlayerInfo[playerid][Level] >= 3) {
  3558. CMDMessageToAdmins(playerid,"CLEARALLCHAT");
  3559. for(new i = 0; i < 50; i++) SendClientMessageToAll(green," "); return 1;
  3560. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3561. }
  3562.  
  3563. dcmd_caps(playerid,params[]) {
  3564. if(PlayerInfo[playerid][Level] >= 3) {
  3565. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3566. if(!strlen(tmp) || !strlen(tmp2) || IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [\"on\" / \"off\"]");
  3567. new player1 = strval(tmp), string[128];
  3568. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3569. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3570. if(strcmp(tmp2,"on",true) == 0) {
  3571. CMDMessageToAdmins(playerid,"CAPS");
  3572. PlayerInfo[player1][Caps] = 0;
  3573. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has allowed you to use capitals in chat", pName(playerid) ); SendClientMessage(playerid,blue,string); }
  3574. format(string,sizeof(string),"You have allowed \"%s\" to use capitals in chat", pName(player1) ); return SendClientMessage(playerid,blue,string);
  3575. } else if(strcmp(tmp2,"off",true) == 0) {
  3576. CMDMessageToAdmins(playerid,"CAPS");
  3577. PlayerInfo[player1][Caps] = 1;
  3578. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has prevented you from using capitals in chat", pName(playerid) ); SendClientMessage(playerid,blue,string); }
  3579. format(string,sizeof(string),"You have prevented \"%s\" from using capitals in chat", pName(player1) ); return SendClientMessage(playerid,blue,string);
  3580. } else return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [\"on\" / \"off\"]");
  3581. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3582. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3583. }
  3584.  
  3585. //==================[ Object & Pickup ]=========================================
  3586. dcmd_pickup(playerid,params[]) {
  3587. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3588. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /pickup [pickup id]");
  3589. new pickup = strval(params), string[128], Float:x, Float:y, Float:z, Float:a;
  3590. CMDMessageToAdmins(playerid,"PICKUP");
  3591. GetPlayerPos(playerid, x, y, z);
  3592. GetPlayerFacingAngle(playerid, a);
  3593. x += (3 * floatsin(-a, degrees));
  3594. y += (3 * floatcos(-a, degrees));
  3595. CreatePickup(pickup, 2, x+2, y, z);
  3596. format(string, sizeof(string), "CreatePickup(%d, 2, %0.2f, %0.2f, %0.2f);", pickup, x+2, y, z);
  3597. SaveToFile("Pickups",string);
  3598. return SendClientMessage(playerid,yellow, string);
  3599. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3600. }
  3601.  
  3602. dcmd_object(playerid,params[]) {
  3603. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3604. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /object [object id]");
  3605. new object = strval(params), string[128], Float:x, Float:y, Float:z, Float:a;
  3606. CMDMessageToAdmins(playerid,"OBJECT");
  3607. GetPlayerPos(playerid, x, y, z);
  3608. GetPlayerFacingAngle(playerid, a);
  3609. x += (3 * floatsin(-a, degrees));
  3610. y += (3 * floatcos(-a, degrees));
  3611. CreateObject(object, x, y, z, 0.0, 0.0, a);
  3612. format(string, sizeof(string), "CreateObject(%d, %0.2f, %0.2f, %0.2f, 0.00, 0.00, %0.2f);", object, x, y, z, a);
  3613. SaveToFile("Objects",string);
  3614. format(string, sizeof(string), "You Have Created Object %d, at %0.2f, %0.2f, %0.2f Angle %0.2f", object, x, y, z, a);
  3615. return SendClientMessage(playerid,yellow, string);
  3616. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3617. }
  3618.  
  3619. //===================[ Move ]===================================================
  3620.  
  3621. dcmd_move(playerid,params[]) {
  3622. if(PlayerInfo[playerid][Level] >= 3) {
  3623. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /move [up / down / +x / -x / +y / -y / off]");
  3624. new Float:X, Float:Y, Float:Z;
  3625. if(strcmp(params,"up",true) == 0) {
  3626. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z+5); SetCameraBehindPlayer(playerid); }
  3627. else if(strcmp(params,"down",true) == 0) {
  3628. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z-5); SetCameraBehindPlayer(playerid); }
  3629. else if(strcmp(params,"+x",true) == 0) {
  3630. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X+5,Y,Z); }
  3631. else if(strcmp(params,"-x",true) == 0) {
  3632. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X-5,Y,Z); }
  3633. else if(strcmp(params,"+y",true) == 0) {
  3634. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y+5,Z); }
  3635. else if(strcmp(params,"-y",true) == 0) {
  3636. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y-5,Z); }
  3637. else if(strcmp(params,"off",true) == 0) {
  3638. TogglePlayerControllable(playerid,true); }
  3639. else return SendClientMessage(playerid,red,"USAGE: /move [up / down / +x / -x / +y / -y / off]");
  3640. return 1;
  3641. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3642. }
  3643.  
  3644. dcmd_moveplayer(playerid,params[]) {
  3645. if(PlayerInfo[playerid][Level] >= 3) {
  3646. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3647. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp)) return SendClientMessage(playerid, red, "USAGE: /moveplayer [playerid] [up / down / +x / -x / +y / -y / off]");
  3648. new Float:X, Float:Y, Float:Z, player1 = strval(tmp);
  3649. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3650. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3651. if(strcmp(tmp2,"up",true) == 0) {
  3652. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y,Z+5); SetCameraBehindPlayer(player1); }
  3653. else if(strcmp(tmp2,"down",true) == 0) {
  3654. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y,Z-5); SetCameraBehindPlayer(player1); }
  3655. else if(strcmp(tmp2,"+x",true) == 0) {
  3656. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X+5,Y,Z); }
  3657. else if(strcmp(tmp2,"-x",true) == 0) {
  3658. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X-5,Y,Z); }
  3659. else if(strcmp(tmp2,"+y",true) == 0) {
  3660. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y+5,Z); }
  3661. else if(strcmp(tmp2,"-y",true) == 0) {
  3662. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y-5,Z); }
  3663. else SendClientMessage(playerid,red,"USAGE: /moveplayer [up / down / +x / -x / +y / -y / off]");
  3664. return 1;
  3665. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3666. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3667. }
  3668.  
  3669. //===================[ Fake ]===================================================
  3670.  
  3671. #if defined ENABLE_FAKE_CMDS
  3672. dcmd_fakedeath(playerid,params[]) {
  3673. if(PlayerInfo[playerid][Level] >= 1) {
  3674. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  3675. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid, red, "USAGE: /fakedeath [killer] [killee] [weapon]");
  3676. new killer = strval(tmp), killee = strval(tmp2), weap = strval(tmp3);
  3677. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid Weapon ID");
  3678. if(PlayerInfo[killer][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3679. if(PlayerInfo[killee][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3680.  
  3681. if(IsPlayerConnected(killer) && killer != INVALID_PLAYER_ID) {
  3682. if(IsPlayerConnected(killee) && killee != INVALID_PLAYER_ID) {
  3683. CMDMessageToAdmins(playerid,"FAKEDEATH");
  3684. SendDeathMessage(killer,killee,weap);
  3685. return SendClientMessage(playerid,blue,"Fake death message sent");
  3686. } else return SendClientMessage(playerid,red,"ERROR: Killee is not connected");
  3687. } else return SendClientMessage(playerid,red,"ERROR: Killer is not connected");
  3688. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3689. }
  3690.  
  3691. dcmd_fakechat(playerid,params[]) {
  3692. if(PlayerInfo[playerid][Level] >= 3) {
  3693. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3694. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /fakechat [playerid] [text]");
  3695. new player1 = strval(tmp);
  3696. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3697. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3698. CMDMessageToAdmins(playerid,"FAKECHAT");
  3699. SendPlayerMessageToAll(player1, params[strlen(tmp)+1]);
  3700. return SendClientMessage(playerid,blue,"Fake message sent");
  3701. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3702. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3703. }
  3704.  
  3705. dcmd_fakecmd(playerid,params[]) {
  3706. if(PlayerInfo[playerid][Level] >= 5) {
  3707. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3708. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /fakecmd [playerid] [command]");
  3709. new player1 = strval(tmp);
  3710. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3711. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3712. CMDMessageToAdmins(playerid,"FAKECMD");
  3713. CallRemoteFunction("OnPlayerCommandText", "is", player1, tmp2);
  3714. return SendClientMessage(playerid,blue,"Fake command sent");
  3715. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3716. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3717. }
  3718. #endif
  3719.  
  3720. //----------------------------------------------------------------------------//
  3721. // /all Commands //
  3722. //----------------------------------------------------------------------------//
  3723.  
  3724. dcmd_spawnall(playerid,params[]) {
  3725. #pragma unused params
  3726. if(PlayerInfo[playerid][Level] >= 4) {
  3727. CMDMessageToAdmins(playerid,"SPAWNAll");
  3728. for(new i = 0; i < MAX_PLAYERS; i++) {
  3729. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3730. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerPos(i, 0.0, 0.0, 0.0); SpawnPlayer(i);
  3731. }
  3732. }
  3733. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has spawned all players", pName(playerid) );
  3734. return SendClientMessageToAll(blue, string);
  3735. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3736. }
  3737.  
  3738. dcmd_muteall(playerid,params[]) {
  3739. #pragma unused params
  3740. if(PlayerInfo[playerid][Level] >= 4) {
  3741. CMDMessageToAdmins(playerid,"MUTEALL");
  3742. for(new i = 0; i < MAX_PLAYERS; i++) {
  3743. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3744. PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][Muted] = 1; PlayerInfo[i][MuteWarnings] = 0;
  3745. }
  3746. }
  3747. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has muted all players", pName(playerid) );
  3748. return SendClientMessageToAll(blue, string);
  3749. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3750. }
  3751.  
  3752. dcmd_unmuteall(playerid,params[]) {
  3753. #pragma unused params
  3754. if(PlayerInfo[playerid][Level] >= 4) {
  3755. CMDMessageToAdmins(playerid,"UNMUTEAll");
  3756. for(new i = 0; i < MAX_PLAYERS; i++) {
  3757. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3758. PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][Muted] = 0; PlayerInfo[i][MuteWarnings] = 0;
  3759. }
  3760. }
  3761. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unmuted all players", pName(playerid) );
  3762. return SendClientMessageToAll(blue, string);
  3763. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3764. }
  3765.  
  3766. dcmd_getall(playerid,params[]) {
  3767. #pragma unused params
  3768. if(PlayerInfo[playerid][Level] >= 4) {
  3769. CMDMessageToAdmins(playerid,"GETAll");
  3770. new Float:x,Float:y,Float:z, interior = GetPlayerInterior(playerid);
  3771. GetPlayerPos(playerid,x,y,z);
  3772. for(new i = 0; i < MAX_PLAYERS; i++) {
  3773. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3774. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerPos(i,x+(playerid/4)+1,y+(playerid/4),z); SetPlayerInterior(i,interior);
  3775. }
  3776. }
  3777. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has teleported all players", pName(playerid) );
  3778. return SendClientMessageToAll(blue, string);
  3779. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3780. }
  3781.  
  3782. dcmd_healall(playerid,params[]) {
  3783. #pragma unused params
  3784. if(PlayerInfo[playerid][Level] >= 3) {
  3785. CMDMessageToAdmins(playerid,"HEALALL");
  3786. for(new i = 0; i < MAX_PLAYERS; i++) {
  3787. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3788. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerHealth(i,100.0);
  3789. }
  3790. }
  3791. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has healed all players", pName(playerid) );
  3792. return SendClientMessageToAll(blue, string);
  3793. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3794. }
  3795.  
  3796. dcmd_armourall(playerid,params[]) {
  3797. #pragma unused params
  3798. if(PlayerInfo[playerid][Level] >= 3) {
  3799. CMDMessageToAdmins(playerid,"ARMOURALL");
  3800. for(new i = 0; i < MAX_PLAYERS; i++) {
  3801. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3802. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerArmour(i,100.0);
  3803. }
  3804. }
  3805. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has restored all players armour", pName(playerid) );
  3806. return SendClientMessageToAll(blue, string);
  3807. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3808. }
  3809.  
  3810. dcmd_killall(playerid,params[]) {
  3811. #pragma unused params
  3812. if(PlayerInfo[playerid][Level] >= 4) {
  3813. CMDMessageToAdmins(playerid,"KILLALL");
  3814. for(new i = 0; i < MAX_PLAYERS; i++) {
  3815. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3816. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerHealth(i,0.0);
  3817. }
  3818. }
  3819. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has killed all players", pName(playerid) );
  3820. return SendClientMessageToAll(blue, string);
  3821. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3822. }
  3823.  
  3824. dcmd_freezeall(playerid,params[]) {
  3825. #pragma unused params
  3826. if(PlayerInfo[playerid][Level] >= 4) {
  3827. CMDMessageToAdmins(playerid,"FREEZEALL");
  3828. for(new i = 0; i < MAX_PLAYERS; i++) {
  3829. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3830. PlayerPlaySound(i,1057,0.0,0.0,0.0); TogglePlayerControllable(playerid,false); PlayerInfo[i][Frozen] = 1;
  3831. }
  3832. }
  3833. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has frozen all players", pName(playerid) );
  3834. return SendClientMessageToAll(blue, string);
  3835. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3836. }
  3837.  
  3838. dcmd_unfreezeall(playerid,params[]) {
  3839. #pragma unused params
  3840. if(PlayerInfo[playerid][Level] >= 4) {
  3841. CMDMessageToAdmins(playerid,"UNFREEZEALL");
  3842. for(new i = 0; i < MAX_PLAYERS; i++) {
  3843. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3844. PlayerPlaySound(i,1057,0.0,0.0,0.0); TogglePlayerControllable(playerid,true); PlayerInfo[i][Frozen] = 0;
  3845. }
  3846. }
  3847. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unfrozen all players", pName(playerid) );
  3848. return SendClientMessageToAll(blue, string);
  3849. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3850. }
  3851.  
  3852. dcmd_kickall(playerid,params[]) {
  3853. #pragma unused params
  3854. if(PlayerInfo[playerid][Level] >= 4) {
  3855. CMDMessageToAdmins(playerid,"KICKALL");
  3856. for(new i = 0; i < MAX_PLAYERS; i++) {
  3857. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3858. PlayerPlaySound(i,1057,0.0,0.0,0.0); Kick(i);
  3859. }
  3860. }
  3861. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has kicked all players", pName(playerid) );
  3862. SaveToFile("KickLog",string);
  3863. return SendClientMessageToAll(blue, string);
  3864. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3865. }
  3866.  
  3867. dcmd_slapall(playerid,params[]) {
  3868. #pragma unused params
  3869. if(PlayerInfo[playerid][Level] >= 4) {
  3870. CMDMessageToAdmins(playerid,"SLAPALL");
  3871. new Float:x, Float:y, Float:z;
  3872. for(new i = 0; i < MAX_PLAYERS; i++) {
  3873. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3874. PlayerPlaySound(i,1190,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); SetPlayerPos(i,x,y,z+4);
  3875. }
  3876. }
  3877. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has slapped all players", pName(playerid) );
  3878. return SendClientMessageToAll(blue, string);
  3879. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3880. }
  3881.  
  3882. dcmd_explodeall(playerid,params[]) {
  3883. #pragma unused params
  3884. if(PlayerInfo[playerid][Level] >= 4) {
  3885. CMDMessageToAdmins(playerid,"EXPLODEALL");
  3886. new Float:x, Float:y, Float:z;
  3887. for(new i = 0; i < MAX_PLAYERS; i++) {
  3888. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3889. PlayerPlaySound(i,1190,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); CreateExplosion(x, y , z, 7, 10.0);
  3890. }
  3891. }
  3892. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has exploded all players", pName(playerid) );
  3893. return SendClientMessageToAll(blue, string);
  3894. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3895. }
  3896.  
  3897. dcmd_disarmall(playerid,params[]) {
  3898. #pragma unused params
  3899. if(PlayerInfo[playerid][Level] >= 4) {
  3900. CMDMessageToAdmins(playerid,"DISARMALL");
  3901. for(new i = 0; i < MAX_PLAYERS; i++) {
  3902. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3903. PlayerPlaySound(i,1057,0.0,0.0,0.0); ResetPlayerWeapons(i);
  3904. }
  3905. }
  3906. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has disarmed all players", pName(playerid) );
  3907. return SendClientMessageToAll(blue, string);
  3908. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3909. }
  3910.  
  3911. dcmd_ejectall(playerid,params[]) {
  3912. #pragma unused params
  3913. if(PlayerInfo[playerid][Level] >= 4) {
  3914. CMDMessageToAdmins(playerid,"EJECTALL");
  3915. new Float:x, Float:y, Float:z;
  3916. for(new i = 0; i < MAX_PLAYERS; i++) {
  3917. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3918. if(IsPlayerInAnyVehicle(i)) {
  3919. PlayerPlaySound(i,1057,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); SetPlayerPos(i,x,y,z+3);
  3920. }
  3921. }
  3922. }
  3923. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has ejected all players", pName(playerid) );
  3924. return SendClientMessageToAll(blue, string);
  3925. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3926. }
  3927.  
  3928. //-------------==== Set All Commands ====-------------//
  3929.  
  3930. dcmd_setallskin(playerid,params[]) {
  3931. if(PlayerInfo[playerid][Level] >= 3) {
  3932. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallskin [skinid]");
  3933. new var = strval(params), string[128];
  3934. if(!IsValidSkin(var)) return SendClientMessage(playerid, red, "ERROR: Invaild Skin ID");
  3935. CMDMessageToAdmins(playerid,"SETALLSKIN");
  3936. for(new i = 0; i < MAX_PLAYERS; i++) {
  3937. if(IsPlayerConnected(i)) {
  3938. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3939. SetPlayerSkin(i,var);
  3940. }
  3941. }
  3942. format(string,sizeof(string),"Administrator \"%s\" has set all players skin to '%d'", pName(playerid), var );
  3943. return SendClientMessageToAll(blue, string);
  3944. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3945. }
  3946.  
  3947. dcmd_setallwanted(playerid,params[]) {
  3948. if(PlayerInfo[playerid][Level] >= 3) {
  3949. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallwanted [wanted level]");
  3950. new var = strval(params), string[128];
  3951. CMDMessageToAdmins(playerid,"SETALLWANTED");
  3952. for(new i = 0; i < MAX_PLAYERS; i++) {
  3953. if(IsPlayerConnected(i)) {
  3954. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3955. SetPlayerWantedLevel(i,var);
  3956. }
  3957. }
  3958. format(string,sizeof(string),"Administrator \"%s\" has set all players wanted level to '%d'", pName(playerid), var );
  3959. return SendClientMessageToAll(blue, string);
  3960. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3961. }
  3962.  
  3963. dcmd_setallweather(playerid,params[]) {
  3964. if(PlayerInfo[playerid][Level] >= 3) {
  3965. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallweather [weather ID]");
  3966. new var = strval(params), string[128];
  3967. CMDMessageToAdmins(playerid,"SETALLWEATHER");
  3968. for(new i = 0; i < MAX_PLAYERS; i++) {
  3969. if(IsPlayerConnected(i)) {
  3970. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3971. SetPlayerWeather(i, var);
  3972. }
  3973. }
  3974. format(string,sizeof(string),"Administrator \"%s\" has set all players weather to '%d'", pName(playerid), var );
  3975. return SendClientMessageToAll(blue, string);
  3976. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3977. }
  3978.  
  3979. dcmd_setalltime(playerid,params[]) {
  3980. if(PlayerInfo[playerid][Level] >= 3) {
  3981. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setalltime [hour]");
  3982. new var = strval(params), string[128];
  3983. if(var > 24) return SendClientMessage(playerid, red, "ERROR: Invalid hour");
  3984. CMDMessageToAdmins(playerid,"SETALLTIME");
  3985. for(new i = 0; i < MAX_PLAYERS; i++) {
  3986. if(IsPlayerConnected(i)) {
  3987. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3988. SetPlayerTime(i, var, 0);
  3989. }
  3990. }
  3991. format(string,sizeof(string),"Administrator \"%s\" has set all players time to '%d:00'", pName(playerid), var );
  3992. return SendClientMessageToAll(blue, string);
  3993. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3994. }
  3995.  
  3996. dcmd_setallworld(playerid,params[]) {
  3997. if(PlayerInfo[playerid][Level] >= 3) {
  3998. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallworld [virtual world]");
  3999. new var = strval(params), string[128];
  4000. CMDMessageToAdmins(playerid,"SETALLWORLD");
  4001. for(new i = 0; i < MAX_PLAYERS; i++) {
  4002. if(IsPlayerConnected(i)) {
  4003. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4004. SetPlayerVirtualWorld(i,var);
  4005. }
  4006. }
  4007. format(string,sizeof(string),"Administrator \"%s\" has set all players virtual worlds to '%d'", pName(playerid), var );
  4008. return SendClientMessageToAll(blue, string);
  4009. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4010. }
  4011.  
  4012. dcmd_setallscore(playerid,params[]) {
  4013. if(PlayerInfo[playerid][Level] >= 3) {
  4014. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallscore [score]");
  4015. new var = strval(params), string[128];
  4016. CMDMessageToAdmins(playerid,"SETALLSCORE");
  4017. for(new i = 0; i < MAX_PLAYERS; i++) {
  4018. if(IsPlayerConnected(i)) {
  4019. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4020. SetPlayerScore(i,var);
  4021. }
  4022. }
  4023. format(string,sizeof(string),"Administrator \"%s\" has set all players scores to '%d'", pName(playerid), var );
  4024. return SendClientMessageToAll(blue, string);
  4025. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4026. }
  4027.  
  4028. dcmd_setallcash(playerid,params[]) {
  4029. if(PlayerInfo[playerid][Level] >= 3) {
  4030. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallcash [Amount]");
  4031. new var = strval(params), string[128];
  4032. CMDMessageToAdmins(playerid,"SETALLCASH");
  4033. for(new i = 0; i < MAX_PLAYERS; i++) {
  4034. if(IsPlayerConnected(i)) {
  4035. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4036. ResetPlayerMoney(i);
  4037. GivePlayerMoney(i,var);
  4038. }
  4039. }
  4040. format(string,sizeof(string),"Administrator \"%s\" has set all players cash to '$%d'", pName(playerid), var );
  4041. return SendClientMessageToAll(blue, string);
  4042. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4043. }
  4044.  
  4045. dcmd_giveallcash(playerid,params[]) {
  4046. if(PlayerInfo[playerid][Level] >= 3) {
  4047. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /giveallcash [Amount]");
  4048. new var = strval(params), string[128];
  4049. CMDMessageToAdmins(playerid,"GIVEALLCASH");
  4050. for(new i = 0; i < MAX_PLAYERS; i++) {
  4051. if(IsPlayerConnected(i)) {
  4052. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4053. GivePlayerMoney(i,var);
  4054. }
  4055. }
  4056. format(string,sizeof(string),"Administrator \"%s\" has given all players '$%d'", pName(playerid), var );
  4057. return SendClientMessageToAll(blue, string);
  4058. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4059. }
  4060.  
  4061. dcmd_giveallweapon(playerid,params[]) {
  4062. if(PlayerInfo[playerid][Level] >= 3) {
  4063. new tmp[256], tmp2[256], Index, ammo, weap, WeapName[32], string[128]; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4064. if(!strlen(tmp) ) return SendClientMessage(playerid, red, "USAGE: /giveallweapon [weapon id/weapon name] [ammo]");
  4065. if(!strlen(tmp2) || !IsNumeric(tmp2) || strval(tmp2) <= 0 || strval(tmp2) > 99999) ammo = 500;
  4066. if(!IsNumeric(tmp)) weap = GetWeaponIDFromName(tmp); else weap = strval(tmp);
  4067. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid weapon ID");
  4068. CMDMessageToAdmins(playerid,"GIVEALLWEAPON");
  4069. for(new i = 0; i < MAX_PLAYERS; i++) {
  4070. if(IsPlayerConnected(i)) {
  4071. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4072. GivePlayerWeapon(i,weap,ammo);
  4073. }
  4074. }
  4075. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  4076. format(string,sizeof(string),"Administrator \"%s\" has given all players a %s (%d) with %d rounds of ammo", pName(playerid), WeapName, weap, ammo);
  4077. return SendClientMessageToAll(blue, string);
  4078. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4079. }
  4080.  
  4081.  
  4082. //================================[ Menu Commands ]=============================
  4083.  
  4084. #if defined USE_MENUS
  4085.  
  4086. dcmd_lmenu(playerid,params[]) {
  4087. #pragma unused params
  4088. if(PlayerInfo[playerid][Level] >= 2) {
  4089. if(IsPlayerInAnyVehicle(playerid)) {
  4090. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LMainMenu,playerid);
  4091. } else return ShowMenuForPlayer(LMainMenu,playerid);
  4092. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4093. }
  4094. dcmd_ltele(playerid,params[]) {
  4095. #pragma unused params
  4096. if(PlayerInfo[playerid][Level] >= 2) {
  4097. if(IsPlayerInAnyVehicle(playerid)) {
  4098. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTele,playerid);
  4099. } else return ShowMenuForPlayer(LTele,playerid);
  4100. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4101. }
  4102. dcmd_lweather(playerid,params[]) {
  4103. #pragma unused params
  4104. if(PlayerInfo[playerid][Level] >= 3) {
  4105. if(IsPlayerInAnyVehicle(playerid)) {
  4106. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LWeather,playerid);
  4107. } else return ShowMenuForPlayer(LWeather,playerid);
  4108. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4109. }
  4110. dcmd_ltime(playerid,params[]) {
  4111. #pragma unused params
  4112. if(PlayerInfo[playerid][Level] >= 3) {
  4113. if(IsPlayerInAnyVehicle(playerid)) {
  4114. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTime,playerid);
  4115. } else return ShowMenuForPlayer(LTime,playerid);
  4116. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4117. }
  4118. dcmd_cm(playerid,params[]) {
  4119. #pragma unused params
  4120. if(PlayerInfo[playerid][Level] >= 2) {
  4121. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You already have a car.");
  4122. else { ShowMenuForPlayer(LCars,playerid); return TogglePlayerControllable(playerid,false); }
  4123. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4124. }
  4125. dcmd_ltmenu(playerid,params[]) {
  4126. #pragma unused params
  4127. if(PlayerInfo[playerid][Level] >= 2) {
  4128. if(IsPlayerInAnyVehicle(playerid)) {
  4129. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  4130. switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586,449: return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!"); }
  4131. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTuneMenu,playerid);
  4132. } else return SendClientMessage(playerid,red,"ERROR: You do not have a vehicle to tune");
  4133. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4134. }
  4135. dcmd_lweapons(playerid,params[]) {
  4136. #pragma unused params
  4137. if(PlayerInfo[playerid][Level] >= 3) {
  4138. if(IsPlayerInAnyVehicle(playerid)) {
  4139. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(XWeapons,playerid);
  4140. } else return ShowMenuForPlayer(XWeapons,playerid);
  4141. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4142. }
  4143. dcmd_lvehicle(playerid,params[]) {
  4144. #pragma unused params
  4145. if(PlayerInfo[playerid][Level] >= 2) {
  4146. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You already have a car.");
  4147. else { ShowMenuForPlayer(LVehicles,playerid); return TogglePlayerControllable(playerid,false); }
  4148. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4149. }
  4150.  
  4151. #endif
  4152.  
  4153. //----------------------===== Place & Skin Saving =====-------------------------
  4154. dcmd_gotoplace(playerid,params[]) {
  4155. #pragma unused params
  4156. if(PlayerInfo[playerid][LoggedIn] == 1 && PlayerInfo[playerid][Level] >= 1) {
  4157. if (dUserINT(PlayerName2(playerid)).("x")!=0) {
  4158. PutAtPos(playerid);
  4159. SetPlayerVirtualWorld(playerid, (dUserINT(PlayerName2(playerid)).("world")) );
  4160. return SendClientMessage(playerid,yellow,"You have successfully teleported to your saved place");
  4161. } else return SendClientMessage(playerid,red,"ERROR: You must save a place before you can teleport to it");
  4162. } else return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");
  4163. }
  4164.  
  4165. dcmd_saveplace(playerid,params[]) {
  4166. #pragma unused params
  4167. if(PlayerInfo[playerid][LoggedIn] == 1 && PlayerInfo[playerid][Level] >= 1) {
  4168. new Float:x,Float:y,Float:z, interior;
  4169. GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
  4170. dUserSetINT(PlayerName2(playerid)).("x",floatround(x));
  4171. dUserSetINT(PlayerName2(playerid)).("y",floatround(y));
  4172. dUserSetINT(PlayerName2(playerid)).("z",floatround(z));
  4173. dUserSetINT(PlayerName2(playerid)).("interior",interior);
  4174. dUserSetINT(PlayerName2(playerid)).("world", (GetPlayerVirtualWorld(playerid)) );
  4175. return SendClientMessage(playerid,yellow,"You have successfully saved these coordinates");
  4176. } else return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");
  4177. }
  4178.  
  4179. dcmd_saveskin(playerid,params[]) {
  4180. if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4181. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /saveskin [skinid]");
  4182. new string[128], SkinID = strval(params);
  4183. if((SkinID == 0)||(SkinID == 7)||(SkinID >= 9 && SkinID <= 41)||(SkinID >= 43 && SkinID <= 64)||(SkinID >= 66 && SkinID <= 73)||(SkinID >= 75 && SkinID <= 85)||(SkinID >= 87 && SkinID <= 118)||(SkinID >= 120 && SkinID <= 148)||(SkinID >= 150 && SkinID <= 207)||(SkinID >= 209 && SkinID <= 264)||(SkinID >= 274 && SkinID <= 288)||(SkinID >= 290 && SkinID <= 299))
  4184. {
  4185. dUserSetINT(PlayerName2(playerid)).("FavSkin",SkinID);
  4186. format(string, sizeof(string), "You have successfully saved this skin (ID %d)",SkinID);
  4187. SendClientMessage(playerid,yellow,string);
  4188. SendClientMessage(playerid,yellow,"Type: /useskin to use this skin when you spawn or /dontuseskin to stop using skin");
  4189. dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
  4190. return CMDMessageToAdmins(playerid,"SAVESKIN");
  4191. } else return SendClientMessage(playerid, green, "ERROR: Invalid Skin ID");
  4192. } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4193. }
  4194.  
  4195. dcmd_useskin(playerid,params[]) {
  4196. #pragma unused params
  4197. if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4198. dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
  4199. SetPlayerSkin(playerid,dUserINT(PlayerName2(playerid)).("FavSkin"));
  4200. return SendClientMessage(playerid,yellow,"Skin now in use");
  4201. } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4202. }
  4203.  
  4204. dcmd_dontuseskin(playerid,params[]) {
  4205. #pragma unused params
  4206. if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4207. dUserSetINT(PlayerName2(playerid)).("UseSkin",0);
  4208. return SendClientMessage(playerid,yellow,"Skin will no longer be used");
  4209. } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4210. }
  4211.  
  4212. //====================== [REGISTER & LOGIN] ==================================
  4213. #if defined USE_AREGISTER
  4214.  
  4215. dcmd_aregister(playerid,params[])
  4216. {
  4217. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already registered and logged in.");
  4218. if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: This account already exists, please use '/alogin [password]'.");
  4219. if (strlen(params) == 0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/aregister [password]'");
  4220. if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,red,"ACCOUNT: Password length must be greater than three characters");
  4221. if (udb_Create(PlayerName2(playerid),params))
  4222. {
  4223. new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  4224. new strdate[20], year,month,day; getdate(year, month, day);
  4225. GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  4226. GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  4227. // dini_Set(file,"password",params);
  4228. dUserSetINT(PlayerName2(playerid)).("registered",1);
  4229. format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  4230. dini_Set(file,"RegisteredDate",strdate);
  4231. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4232. dUserSetINT(PlayerName2(playerid)).("banned",0);
  4233. dUserSetINT(PlayerName2(playerid)).("level",0);
  4234. dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  4235. dUserSetINT(PlayerName2(playerid)).("money",0);
  4236. dUserSetINT(PlayerName2(playerid)).("kills",0);
  4237. dUserSetINT(PlayerName2(playerid)).("deaths",0);
  4238. PlayerInfo[playerid][LoggedIn] = 1;
  4239. PlayerInfo[playerid][Registered] = 1;
  4240. SendClientMessage(playerid, green, "ACCOUNT: You are now registered, and have been automaticaly logged in");
  4241. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4242. return 1;
  4243. }
  4244. return 1;
  4245. }
  4246.  
  4247. dcmd_alogin(playerid,params[])
  4248. {
  4249. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
  4250. if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/aregister [password]'.");
  4251. if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/alogin [password]'");
  4252. if (udb_CheckLogin(PlayerName2(playerid),params))
  4253. {
  4254. new file[256], tmp3[100], string[128];
  4255. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  4256. GetPlayerIp(playerid,tmp3,100);
  4257. dini_Set(file,"ip",tmp3);
  4258. LoginPlayer(playerid);
  4259. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4260. if(PlayerInfo[playerid][Level] > 0) {
  4261. format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
  4262. return SendClientMessage(playerid,green,string);
  4263. } else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
  4264. }
  4265. else {
  4266. PlayerInfo[playerid][FailLogin]++;
  4267. printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
  4268. if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
  4269. {
  4270. new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
  4271. SendClientMessageToAll(grey, string); print(string);
  4272. Kick(playerid);
  4273. }
  4274. return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
  4275. }
  4276. }
  4277.  
  4278. dcmd_achangepass(playerid,params[]) {
  4279. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4280. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /achangepass [new password]");
  4281. if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
  4282. new string[128];
  4283. dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(params) );
  4284. dUserSet(PlayerName2(playerid)).("Password",params);
  4285. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4286. format(string, sizeof(string),"ACCOUNT: You have successfully changed your password to [ %s ]",params);
  4287. return SendClientMessage(playerid,yellow,string);
  4288. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4289. }
  4290.  
  4291. dcmd_asetpass(playerid,params[]) {
  4292. if(PlayerInfo[playerid][Level] >= 3) {
  4293. new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4294. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /asetpass [playername] [new password]");
  4295. if(strlen(tmp2) < 4 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect password length");
  4296. if(udb_Exists(tmp)) {
  4297. dUserSetINT(tmp).("password_hash", udb_hash(tmp2));
  4298. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4299. format(string, sizeof(string),"ACCOUNT: You have successfully set \"%s's\" account password to \"%s\"", tmp, tmp2);
  4300. return SendClientMessage(playerid,yellow,string);
  4301. } else return SendClientMessage(playerid,red, "ERROR: This player doesnt have an account");
  4302. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4303. }
  4304.  
  4305. #if defined USE_STATS
  4306. dcmd_aresetstats(playerid,params[]) {
  4307. #pragma unused params
  4308. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4309. // save as backup
  4310. dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
  4311. dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
  4312. // stats reset
  4313. PlayerInfo[playerid][Kills] = 0;
  4314. PlayerInfo[playerid][Deaths] = 0;
  4315. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  4316. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  4317. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4318. return SendClientMessage(playerid,yellow,"ACCOUNT: You have successfully reset your stats. Your kills and deaths are: 0");
  4319. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4320. }
  4321.  
  4322. dcmd_astats(playerid,params[]) {
  4323. new string[128], pDeaths, player1, h, m, s;
  4324. if(!strlen(params)) player1 = playerid;
  4325. else player1 = strval(params);
  4326.  
  4327. if(IsPlayerConnected(player1)) {
  4328. TotalGameTime(player1, h, m, s);
  4329. if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
  4330. format(string, sizeof(string), "| %s's Stats: Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d | Time: %d hrs %d mins %d secs |",PlayerName2(player1), PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths], Float:PlayerInfo[player1][Kills]/Float:pDeaths,GetPlayerMoney(player1), h, m, s);
  4331. return SendClientMessage(playerid, green, string);
  4332. } else return SendClientMessage(playerid, red, "Player Not Connected!");
  4333. }
  4334. #endif
  4335.  
  4336.  
  4337. #else
  4338.  
  4339.  
  4340. dcmd_register(playerid,params[])
  4341. {
  4342. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already registered and logged in.");
  4343. if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: This account already exists, please use '/login [password]'.");
  4344. if (strlen(params) == 0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/register [password]'");
  4345. if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,red,"ACCOUNT: Password length must be greater than three characters");
  4346. if (udb_Create(PlayerName2(playerid),params))
  4347. {
  4348. new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  4349. new strdate[20], year,month,day; getdate(year, month, day);
  4350. GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  4351. GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  4352. // dini_Set(file,"password",params);
  4353. dUserSetINT(PlayerName2(playerid)).("registered",1);
  4354. format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  4355. dini_Set(file,"RegisteredDate",strdate);
  4356. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4357. dUserSetINT(PlayerName2(playerid)).("banned",0);
  4358. dUserSetINT(PlayerName2(playerid)).("level",0);
  4359. dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  4360. dUserSetINT(PlayerName2(playerid)).("money",0);
  4361. dUserSetINT(PlayerName2(playerid)).("kills",0);
  4362. dUserSetINT(PlayerName2(playerid)).("deaths",0);
  4363. dUserSetINT(PlayerName2(playerid)).("hours",0);
  4364. dUserSetINT(PlayerName2(playerid)).("minutes",0);
  4365. dUserSetINT(PlayerName2(playerid)).("seconds",0);
  4366. PlayerInfo[playerid][LoggedIn] = 1;
  4367. PlayerInfo[playerid][Registered] = 1;
  4368. SendClientMessage(playerid, green, "ACCOUNT: You are now registered, and have been automaticaly logged in");
  4369. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4370. return 1;
  4371. }
  4372. return 1;
  4373. }
  4374.  
  4375. dcmd_login(playerid,params[])
  4376. {
  4377. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
  4378. if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register [password]'.");
  4379. if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/login [password]'");
  4380. if (udb_CheckLogin(PlayerName2(playerid),params))
  4381. {
  4382. new file[256], tmp3[100], string[128];
  4383. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  4384. GetPlayerIp(playerid,tmp3,100);
  4385. dini_Set(file,"ip",tmp3);
  4386. LoginPlayer(playerid);
  4387. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4388. if(PlayerInfo[playerid][Level] > 0) {
  4389. format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
  4390. return SendClientMessage(playerid,green,string);
  4391. } else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
  4392. }
  4393. else {
  4394. PlayerInfo[playerid][FailLogin]++;
  4395. printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
  4396. if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
  4397. {
  4398. new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
  4399. SendClientMessageToAll(grey, string);
  4400. print(string);
  4401. Kick(playerid);
  4402. }
  4403. return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
  4404. }
  4405. }
  4406.  
  4407. dcmd_changepass(playerid,params[]) {
  4408. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4409. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /changepass [new password]");
  4410. if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
  4411. new string[128];
  4412. dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(params) );
  4413. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4414. format(string, sizeof(string),"ACCOUNT: You have successfully changed your password to \"%s\"",params);
  4415. return SendClientMessage(playerid,yellow,string);
  4416. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4417. }
  4418.  
  4419. dcmd_setpass(playerid,params[]) {
  4420. if(PlayerInfo[playerid][Level] >= 3) {
  4421. new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4422. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setpass [playername] [new password]");
  4423. if(strlen(tmp2) < 4 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect password length");
  4424. if(udb_Exists(tmp)) {
  4425. dUserSetINT(tmp).("password_hash", udb_hash(tmp2));
  4426. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4427. format(string, sizeof(string),"ACCOUNT: You have successfully set \"%s's\" account password to \"%s\"", tmp, tmp2);
  4428. return SendClientMessage(playerid,yellow,string);
  4429. } else return SendClientMessage(playerid,red, "ERROR: This player doesnt have an account");
  4430. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4431. }
  4432.  
  4433. #if defined USE_STATS
  4434. dcmd_resetstats(playerid,params[]) {
  4435. #pragma unused params
  4436. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4437. // save as backup
  4438. dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
  4439. dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
  4440. // stats reset
  4441. PlayerInfo[playerid][Kills] = 0;
  4442. PlayerInfo[playerid][Deaths] = 0;
  4443. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  4444. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  4445. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4446. return SendClientMessage(playerid,yellow,"ACCOUNT: You have successfully reset your stats. Your kills and deaths are: 0");
  4447. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4448. }
  4449. #endif
  4450.  
  4451. #if defined USE_STATS
  4452. dcmd_stats(playerid,params[]) {
  4453. new string[128], pDeaths, player1, h, m, s;
  4454. if(!strlen(params)) player1 = playerid;
  4455. else player1 = strval(params);
  4456.  
  4457. if(IsPlayerConnected(player1)) {
  4458. TotalGameTime(player1, h, m, s);
  4459. if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
  4460. format(string, sizeof(string), "| %s's Stats: Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d | Time: %d hrs %d mins %d secs |",PlayerName2(player1), PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths], Float:PlayerInfo[player1][Kills]/Float:pDeaths,GetPlayerMoney(player1), h, m, s);
  4461. return SendClientMessage(playerid, green, string);
  4462. } else return SendClientMessage(playerid, red, "Player Not Connected!");
  4463. }
  4464. #endif
  4465.  
  4466.  
  4467. #endif
  4468.  
  4469.  
  4470. LoginPlayer(playerid)
  4471. {
  4472. if(ServerInfo[GiveMoney] == 1) {ResetPlayerMoney(playerid); GivePlayerMoney(playerid, dUserINT(PlayerName2(playerid)).("money") ); }
  4473. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4474. PlayerInfo[playerid][Deaths] = (dUserINT(PlayerName2(playerid)).("deaths"));
  4475. PlayerInfo[playerid][Kills] = (dUserINT(PlayerName2(playerid)).("kills"));
  4476. PlayerInfo[playerid][Level] = (dUserINT(PlayerName2(playerid)).("level"));
  4477. PlayerInfo[playerid][hours] = dUserINT(PlayerName2(playerid)).("hours");
  4478. PlayerInfo[playerid][mins] = dUserINT(PlayerName2(playerid)).("minutes");
  4479. PlayerInfo[playerid][secs] = dUserINT(PlayerName2(playerid)).("seconds");
  4480. PlayerInfo[playerid][Registered] = 1;
  4481. PlayerInfo[playerid][LoggedIn] = 1;
  4482. }
  4483.  
  4484. //==============================================================================
  4485. public OnPlayerCommandText(playerid, cmdtext[])
  4486. {
  4487. if(PlayerInfo[playerid][Jailed] == 1 && PlayerInfo[playerid][Level] < 1) return
  4488. SendClientMessage(playerid,red,"You cannot use commands in jail");
  4489.  
  4490. new cmd[256], string[128], tmp[256], idx;
  4491. cmd = strtok(cmdtext, idx);
  4492.  
  4493. #if defined USE_AREGISTER
  4494. dcmd(aregister,9,cmdtext);
  4495. dcmd(alogin,6,cmdtext);
  4496. dcmd(achangepass,11,cmdtext);
  4497. dcmd(asetpass,8,cmdtext);
  4498. #if defined USE_STATS
  4499. dcmd(astats,6,cmdtext);
  4500. dcmd(aresetstats,11,cmdtext);
  4501. #endif
  4502.  
  4503. #else
  4504.  
  4505. dcmd(register,8,cmdtext);
  4506. dcmd(login,5,cmdtext);
  4507. dcmd(changepass,10,cmdtext);
  4508. dcmd(setpass,7,cmdtext);
  4509. #if defined USE_STATS
  4510. dcmd(stats,5,cmdtext);
  4511. dcmd(resetstats,10,cmdtext);
  4512. #endif
  4513.  
  4514. #endif
  4515.  
  4516. dcmd(report,6,cmdtext);
  4517. dcmd(reports,7,cmdtext);
  4518.  
  4519. //================ [ Read Comamands ] ===========================//
  4520. if(ServerInfo[ReadCmds] == 1)
  4521. {
  4522. format(string, sizeof(string), "*** %s (%d) typed: %s", pName(playerid),playerid,cmdtext);
  4523. for(new i = 0; i < MAX_PLAYERS; i++) {
  4524. if(IsPlayerConnected(i)) {
  4525. if( (PlayerInfo[i][Level] > PlayerInfo[playerid][Level]) && (PlayerInfo[i][Level] > 1) && (i != playerid) ) {
  4526. SendClientMessage(i, grey, string);
  4527. }
  4528. }
  4529. }
  4530. }
  4531.  
  4532.  
  4533.  
  4534. //-= Spectate Commands =-//
  4535. #if defined ENABLE_SPEC
  4536. dcmd(lspec,5,cmdtext);
  4537. dcmd(lspecoff,8,cmdtext);
  4538. dcmd(lspecvehicle,12,cmdtext);
  4539. #endif
  4540.  
  4541. //-= Chat Commands =-//
  4542. dcmd(disablechat,11,cmdtext);
  4543. dcmd(clearchat,9,cmdtext);
  4544. dcmd(clearallchat,12,cmdtext);
  4545. dcmd(caps,4,cmdtext);
  4546.  
  4547. //-= Vehicle Commands =-//
  4548. dcmd(destroycar,10,cmdtext);
  4549. dcmd(lockcar,7,cmdtext);
  4550. dcmd(unlockcar,9,cmdtext);
  4551. dcmd(carhealth,9,cmdtext);
  4552. dcmd(carcolour,9,cmdtext);
  4553. dcmd(car,3,cmdtext);
  4554. dcmd(vr,2,cmdtext);
  4555. dcmd(fix,3,cmdtext);
  4556. dcmd(repair,6,cmdtext);
  4557. dcmd(ltune,5,cmdtext);
  4558. dcmd(lhy,3,cmdtext);
  4559. dcmd(lcar,4,cmdtext);
  4560. dcmd(lbike,5,cmdtext);
  4561. dcmd(lheli,5,cmdtext);
  4562. dcmd(lboat,5,cmdtext);
  4563. dcmd(lnos,4,cmdtext);
  4564. dcmd(lplane,6,cmdtext);
  4565. dcmd(vgoto,5,cmdtext);
  4566. dcmd(vget,4,cmdtext);
  4567. dcmd(givecar,7,cmdtext);
  4568. dcmd(flip,4,cmdtext);
  4569. dcmd(ltc,3,cmdtext);
  4570. dcmd(linkcar,7,cmdtext);
  4571.  
  4572. //-= Playerid Commands =-//
  4573. dcmd(crash,5,cmdtext);
  4574. dcmd(ip,2,cmdtext);
  4575. dcmd(force,5,cmdtext);
  4576. dcmd(burn,4,cmdtext);
  4577. dcmd(spawn,5,cmdtext);
  4578. dcmd(spawnplayer,11,cmdtext);
  4579. dcmd(disarm,6,cmdtext);
  4580. dcmd(eject,5,cmdtext);
  4581. dcmd(bankrupt,8,cmdtext);
  4582. dcmd(sbankrupt,9,cmdtext);
  4583. dcmd(setworld,8,cmdtext);
  4584. dcmd(setinterior,11,cmdtext);
  4585. dcmd(ubound,6,cmdtext);
  4586. dcmd(setwanted,9,cmdtext);
  4587. dcmd(setcolour,9,cmdtext);
  4588. dcmd(settime,7,cmdtext);
  4589. dcmd(setweather,10,cmdtext);
  4590. dcmd(setname,7,cmdtext);
  4591. dcmd(setskin,7,cmdtext);
  4592. dcmd(setscore,8,cmdtext);
  4593. dcmd(setcash,7,cmdtext);
  4594. dcmd(sethealth,9,cmdtext);
  4595. dcmd(setarmour,9,cmdtext);
  4596. dcmd(giveweapon,10,cmdtext);
  4597. dcmd(warp,4,cmdtext);
  4598. dcmd(teleplayer,10,cmdtext);
  4599. dcmd(goto,4,cmdtext);
  4600. dcmd(gethere,7,cmdtext);
  4601. dcmd(get,3,cmdtext);
  4602. dcmd(setlevel,8,cmdtext);
  4603. dcmd(settemplevel,12,cmdtext);
  4604. dcmd(fu,2,cmdtext);
  4605. dcmd(warn,4,cmdtext);
  4606. dcmd(kick,4,cmdtext);
  4607. dcmd(ban,3,cmdtext);
  4608. dcmd(rban,4,cmdtext);
  4609. dcmd(slap,4,cmdtext);
  4610. dcmd(explode,7,cmdtext);
  4611. dcmd(jail,4,cmdtext);
  4612. dcmd(unjail,6,cmdtext);
  4613. dcmd(jailed,6,cmdtext);
  4614. dcmd(freeze,6,cmdtext);
  4615. dcmd(unfreeze,8,cmdtext);
  4616. dcmd(frozen,6,cmdtext);
  4617. dcmd(mute,4,cmdtext);
  4618. dcmd(unmute,6,cmdtext);
  4619. dcmd(muted,5,cmdtext);
  4620. dcmd(akill,5,cmdtext);
  4621. dcmd(weaps,5,cmdtext);
  4622. dcmd(screen,6,cmdtext);
  4623. dcmd(lgoto,5,cmdtext);
  4624. dcmd(aka,3,cmdtext);
  4625. dcmd(highlight,9,cmdtext);
  4626.  
  4627. //-= /All Commands =-//
  4628. dcmd(healall,7,cmdtext);
  4629. dcmd(armourall,9,cmdtext);
  4630. dcmd(muteall,7,cmdtext);
  4631. dcmd(unmuteall,9,cmdtext);
  4632. dcmd(killall,7,cmdtext);
  4633. dcmd(getall,6,cmdtext);
  4634. dcmd(spawnall,8,cmdtext);
  4635. dcmd(freezeall,9,cmdtext);
  4636. dcmd(unfreezeall,11,cmdtext);
  4637. dcmd(explodeall,10,cmdtext);
  4638. dcmd(kickall,7,cmdtext);
  4639. dcmd(slapall,7,cmdtext);
  4640. dcmd(ejectall,8,cmdtext);
  4641. dcmd(disarmall,9,cmdtext);
  4642. dcmd(setallskin,10,cmdtext);
  4643. dcmd(setallwanted,12,cmdtext);
  4644. dcmd(setallweather,13,cmdtext);
  4645. dcmd(setalltime,10,cmdtext);
  4646. dcmd(setallworld,11,cmdtext);
  4647. dcmd(setallscore,11,cmdtext);
  4648. dcmd(setallcash,10,cmdtext);
  4649. dcmd(giveallcash,11,cmdtext);
  4650. dcmd(giveallweapon,13,cmdtext);
  4651.  
  4652. //-= No params =-//
  4653. dcmd(lslowmo,7,cmdtext);
  4654. dcmd(lweaps,6,cmdtext);
  4655. dcmd(lammo,5,cmdtext);
  4656. dcmd(god,3,cmdtext);
  4657. dcmd(sgod,4,cmdtext);
  4658. dcmd(godcar,6,cmdtext);
  4659. dcmd(die,3,cmdtext);
  4660. dcmd(jetpack,7,cmdtext);
  4661. dcmd(admins,6,cmdtext);
  4662. dcmd(morning,7,cmdtext);
  4663.  
  4664. //-= Admin special =-//
  4665. dcmd(saveplace,9,cmdtext);
  4666. dcmd(gotoplace,9,cmdtext);
  4667. dcmd(saveskin,8,cmdtext);
  4668. dcmd(useskin,7,cmdtext);
  4669. dcmd(dontuseskin,11,cmdtext);
  4670.  
  4671. //-= Config =-//
  4672. dcmd(disable,7,cmdtext);
  4673. dcmd(enable,6,cmdtext);
  4674. dcmd(setping,7,cmdtext);
  4675. dcmd(setgravity,10,cmdtext);
  4676. dcmd(uconfig,7,cmdtext);
  4677. dcmd(lconfig,7,cmdtext);
  4678. dcmd(forbidname,10,cmdtext);
  4679. dcmd(forbidword,10,cmdtext);
  4680.  
  4681. //-= Misc =-//
  4682. dcmd(setmytime,9,cmdtext);
  4683. dcmd(kill,4,cmdtext);
  4684. dcmd(time,4,cmdtext);
  4685. dcmd(lhelp,5,cmdtext);
  4686. dcmd(lcmds,5,cmdtext);
  4687. dcmd(lcommands,9,cmdtext);
  4688. dcmd(level1,6,cmdtext);
  4689. dcmd(level2,6,cmdtext);
  4690. dcmd(level3,6,cmdtext);
  4691. dcmd(level4,6,cmdtext);
  4692. dcmd(level5,6,cmdtext);
  4693. dcmd(lcredits,8,cmdtext);
  4694. dcmd(serverinfo,10,cmdtext);
  4695. dcmd(getid,5,cmdtext);
  4696. dcmd(getinfo,7,cmdtext);
  4697. dcmd(laston,6,cmdtext);
  4698. dcmd(ping,4,cmdtext);
  4699.  
  4700. dcmd(duel,4,cmdtext);
  4701. dcmd(asay,4,cmdtext);
  4702. dcmd(password,8,cmdtext);
  4703. dcmd(lockserver,10,cmdtext);
  4704. dcmd(unlockserver,12,cmdtext);
  4705. dcmd(adminarea,9,cmdtext);
  4706. dcmd(announce,8,cmdtext);
  4707. dcmd(announce2,9,cmdtext);
  4708. dcmd(richlist,8,cmdtext);
  4709. dcmd(miniguns,8,cmdtext);
  4710. dcmd(botcheck,8,cmdtext);
  4711. dcmd(object,6,cmdtext);
  4712. dcmd(pickup,6,cmdtext);
  4713. dcmd(move,4,cmdtext);
  4714. dcmd(moveplayer,10,cmdtext);
  4715.  
  4716. #if defined ENABLE_FAKE_CMDS
  4717. dcmd(fakedeath,9,cmdtext);
  4718. dcmd(fakechat,8,cmdtext);
  4719. dcmd(fakecmd,7,cmdtext);
  4720. #endif
  4721.  
  4722. //-= Menu Commands =-//
  4723. #if defined USE_MENUS
  4724. dcmd(lmenu,5,cmdtext);
  4725. dcmd(ltele,5,cmdtext);
  4726. dcmd(lvehicle,8,cmdtext);
  4727. dcmd(lweapons,8,cmdtext);
  4728. dcmd(lweather,8,cmdtext);
  4729. dcmd(ltmenu,6,cmdtext);
  4730. dcmd(ltime,5,cmdtext);
  4731. dcmd(cm,2,cmdtext);
  4732. #endif
  4733.  
  4734.  
  4735.  
  4736.  
  4737. //========================= [ Car Commands ]====================================
  4738.  
  4739. if(strcmp(cmdtext, "/ltunedcar2", true)==0 || strcmp(cmdtext, "/ltc2", true)==0) {
  4740. if(PlayerInfo[playerid][Level] >= 1) {
  4741. if(IsPlayerInAnyVehicle(playerid)) {
  4742. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4743. } else {
  4744. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4745. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4746. LVehicleIDt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,LVehicleIDt,0); CMDMessageToAdmins(playerid,"LTunedCar"); AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  4747. AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  4748. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,1);
  4749. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  4750. PlayerInfo[playerid][pCar] = LVehicleIDt;
  4751. }
  4752. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4753. return 1; }
  4754. //------------------------------------------------------------------------------
  4755. if(strcmp(cmdtext, "/ltunedcar3", true)==0 || strcmp(cmdtext, "/ltc3", true)==0) {
  4756. if(PlayerInfo[playerid][Level] >= 1) {
  4757. if(IsPlayerInAnyVehicle(playerid)) {
  4758. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4759. } else {
  4760. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4761. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4762. LVehicleIDt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,LVehicleIDt,0); CMDMessageToAdmins(playerid,"LTunedCar"); AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  4763. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,2);
  4764. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  4765. PlayerInfo[playerid][pCar] = LVehicleIDt;
  4766. }
  4767. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4768. return 1; }
  4769. //------------------------------------------------------------------------------
  4770. if(strcmp(cmdtext, "/ltunedcar4", true)==0 || strcmp(cmdtext, "/ltc4", true)==0) {
  4771. if(PlayerInfo[playerid][Level] >= 1) {
  4772. if(IsPlayerInAnyVehicle(playerid)) {
  4773. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4774. } else {
  4775. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4776. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4777. carid = CreateVehicle(559,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4778. AddVehicleComponent(carid,1065); AddVehicleComponent(carid,1067); AddVehicleComponent(carid,1162); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4779. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4780. PlayerInfo[playerid][pCar] = carid;
  4781. }
  4782. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4783. return 1; }
  4784. //------------------------------------------------------------------------------
  4785. if(strcmp(cmdtext, "/ltunedcar5", true)==0 || strcmp(cmdtext, "/ltc5", true)==0) {
  4786. if(PlayerInfo[playerid][Level] >= 1) {
  4787. if(IsPlayerInAnyVehicle(playerid)) {
  4788. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4789. } else {
  4790. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4791. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4792. carid = CreateVehicle(565,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4793. AddVehicleComponent(carid,1046); AddVehicleComponent(carid,1049); AddVehicleComponent(carid,1053); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4794. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4795. PlayerInfo[playerid][pCar] = carid;
  4796. }
  4797. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4798. return 1; }
  4799. //------------------------------------------------------------------------------
  4800. if(strcmp(cmdtext, "/ltunedcar6", true)==0 || strcmp(cmdtext, "/ltc6", true)==0) {
  4801. if(PlayerInfo[playerid][Level] >= 1) {
  4802. if(IsPlayerInAnyVehicle(playerid)) {
  4803. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4804. } else {
  4805. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4806. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4807. carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4808. AddVehicleComponent(carid,1088); AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1139); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4809. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4810. PlayerInfo[playerid][pCar] = carid;
  4811. }
  4812. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4813. return 1; }
  4814. //------------------------------------------------------------------------------
  4815. if(strcmp(cmdtext, "/ltunedcar7", true)==0 || strcmp(cmdtext, "/ltc7", true)==0) {
  4816. if(PlayerInfo[playerid][Level] >= 1) {
  4817. if(IsPlayerInAnyVehicle(playerid)) {
  4818. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4819. } else {
  4820. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4821. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4822. carid = CreateVehicle(561,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4823. AddVehicleComponent(carid,1055); AddVehicleComponent(carid,1058); AddVehicleComponent(carid,1064); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4824. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4825. PlayerInfo[playerid][pCar] = carid;
  4826. }
  4827. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4828. return 1; }
  4829. //------------------------------------------------------------------------------
  4830. if(strcmp(cmdtext, "/ltunedcar8", true)==0 || strcmp(cmdtext, "/ltc8", true)==0) {
  4831. if(PlayerInfo[playerid][Level] >= 1) {
  4832. if(IsPlayerInAnyVehicle(playerid)) {
  4833. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4834. } else {
  4835. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4836. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4837. carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4838. AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4839. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4840. PlayerInfo[playerid][pCar] = carid;
  4841. }
  4842. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4843. return 1; }
  4844. //------------------------------------------------------------------------------
  4845. if(strcmp(cmdtext, "/ltunedcar9", true)==0 || strcmp(cmdtext, "/ltc9", true)==0) {
  4846. if(PlayerInfo[playerid][Level] >= 1) {
  4847. if(IsPlayerInAnyVehicle(playerid)) {
  4848. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4849. } else {
  4850. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4851. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4852. carid = CreateVehicle(567,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4853. AddVehicleComponent(carid,1102); AddVehicleComponent(carid,1129); AddVehicleComponent(carid,1133); AddVehicleComponent(carid,1186); AddVehicleComponent(carid,1188); ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1085); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1086);
  4854. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4855. PlayerInfo[playerid][pCar] = carid;
  4856. }
  4857. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4858. return 1; }
  4859. //------------------------------------------------------------------------------
  4860. if(strcmp(cmdtext, "/ltunedcar10", true)==0 || strcmp(cmdtext, "/ltc10", true)==0) {
  4861. if(PlayerInfo[playerid][Level] >= 1) {
  4862. if(IsPlayerInAnyVehicle(playerid)) {
  4863. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4864. } else {
  4865. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4866. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4867. carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4868. AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1166); AddVehicleComponent(carid,1165); AddVehicleComponent(carid,1090);
  4869. AddVehicleComponent(carid,1094); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1163);//SPOILER
  4870. AddVehicleComponent(carid,1091); ChangeVehiclePaintjob(carid,2);
  4871. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4872. PlayerInfo[playerid][pCar] = carid;
  4873. }
  4874. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4875. return 1; }
  4876. //------------------------------------------------------------------------------
  4877. if(strcmp(cmdtext, "/ltunedcar11", true)==0 || strcmp(cmdtext, "/ltc11", true)==0) {
  4878. if(PlayerInfo[playerid][Level] >= 1) {
  4879. if(IsPlayerInAnyVehicle(playerid)) {
  4880. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4881. } else {
  4882. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4883. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4884. carid = CreateVehicle(557,X,Y,Z,Angle,1,1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4885. AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1081);
  4886. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4887. PlayerInfo[playerid][pCar] = carid;
  4888. }
  4889. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4890. return 1; }
  4891. //------------------------------------------------------------------------------
  4892. if(strcmp(cmdtext, "/ltunedcar12", true)==0 || strcmp(cmdtext, "/ltc12", true)==0) {
  4893. if(PlayerInfo[playerid][Level] >= 1) {
  4894. if(IsPlayerInAnyVehicle(playerid)) {
  4895. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4896. } else {
  4897. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4898. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4899. carid = CreateVehicle(535,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4900. ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1109); AddVehicleComponent(carid,1115); AddVehicleComponent(carid,1117); AddVehicleComponent(carid,1073); AddVehicleComponent(carid,1010);
  4901. AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1114); AddVehicleComponent(carid,1081); AddVehicleComponent(carid,1119); AddVehicleComponent(carid,1121);
  4902. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4903. PlayerInfo[playerid][pCar] = carid;
  4904. }
  4905. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4906. return 1; }
  4907. //------------------------------------------------------------------------------
  4908. if(strcmp(cmdtext, "/ltunedcar13", true)==0 || strcmp(cmdtext, "/ltc13", true)==0) {
  4909. if(PlayerInfo[playerid][Level] >= 1) {
  4910. if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4911. else {
  4912. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4913. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4914. carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4915. AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147);
  4916. AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,0);
  4917. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4918. PlayerInfo[playerid][pCar] = carid;
  4919. }
  4920. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4921. return 1; }
  4922. //------------------------------------------------------------------------------
  4923. if(strcmp(cmd, "/lp", true) == 0) {
  4924. if(PlayerInfo[playerid][Level] >= 1) {
  4925. if (GetPlayerState(playerid) == 2)
  4926. {
  4927. new VehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(VehicleID);
  4928. switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586, 449: return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle"); }
  4929. new str[128], Float:pos[3]; format(str, sizeof(str), "%s", cmdtext[2]);
  4930. SetVehicleNumberPlate(VehicleID, str);
  4931. GetPlayerPos(playerid, pos[0], pos[1], pos[2]); SetPlayerPos(playerid, pos[0]+1, pos[1], pos[2]);
  4932. SetVehicleToRespawn(VehicleID); SetVehiclePos(VehicleID, pos[0], pos[1], pos[2]);
  4933. SetTimerEx("TuneLCar",4000,0,"d",VehicleID); PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  4934. SendClientMessage(playerid, blue, "You have changed your licence plate"); CMDMessageToAdmins(playerid,"LP");
  4935. } else {
  4936. SendClientMessage(playerid,red,"Error: You have to be the driver of a vehicle to change its licence plate"); }
  4937. } else {
  4938. SendClientMessage(playerid,red,"ERROR: You need to be level 1 use this command"); }
  4939. return 1; }
  4940.  
  4941. //------------------------------------------------------------------------------
  4942. if(strcmp(cmd, "/spam", true) == 0) {
  4943. if(PlayerInfo[playerid][Level] >= 5) {
  4944. tmp = strtok(cmdtext, idx);
  4945. if(!strlen(tmp)) {
  4946. SendClientMessage(playerid, red, "USAGE: /spam [Colour] [Text]");
  4947. SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  4948. return 1;
  4949. }
  4950. new Colour = strval(tmp);
  4951. if(Colour > 9 ) return SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  4952. tmp = strtok(cmdtext, idx);
  4953.  
  4954. format(string,sizeof(string),"%s",cmdtext[8]);
  4955.  
  4956. if(Colour == 0) for(new i; i < 50; i++) SendClientMessageToAll(black,string);
  4957. else if(Colour == 1) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_WHITE,string);
  4958. else if(Colour == 2) for(new i; i < 50; i++) SendClientMessageToAll(red,string);
  4959. else if(Colour == 3) for(new i; i < 50; i++) SendClientMessageToAll(orange,string);
  4960. else if(Colour == 4) for(new i; i < 50; i++) SendClientMessageToAll(yellow,string);
  4961. else if(Colour == 5) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_GREEN1,string);
  4962. else if(Colour == 6) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_BLUE,string);
  4963. else if(Colour == 7) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_PURPLE,string);
  4964. else if(Colour == 8) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_BROWN,string);
  4965. else if(Colour == 9) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_PINK,string);
  4966. return 1;
  4967. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 5 to use this command");
  4968. }
  4969.  
  4970. //------------------------------------------------------------------------------
  4971. if(strcmp(cmd, "/write", true) == 0) {
  4972. if(PlayerInfo[playerid][Level] >= 2) {
  4973. tmp = strtok(cmdtext, idx);
  4974. if(!strlen(tmp)) {
  4975. SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
  4976. return SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  4977. }
  4978. new Colour;
  4979. Colour = strval(tmp);
  4980. if(Colour > 9 ) {
  4981. SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
  4982. return SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  4983. }
  4984. tmp = strtok(cmdtext, idx);
  4985.  
  4986. CMDMessageToAdmins(playerid,"WRITE");
  4987.  
  4988. if(Colour == 0) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(black,string); return 1; }
  4989. else if(Colour == 1) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_WHITE,string); return 1; }
  4990. else if(Colour == 2) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(red,string); return 1; }
  4991. else if(Colour == 3) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(orange,string); return 1; }
  4992. else if(Colour == 4) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(yellow,string); return 1; }
  4993. else if(Colour == 5) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_GREEN1,string); return 1; }
  4994. else if(Colour == 6) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BLUE,string); return 1; }
  4995. else if(Colour == 7) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_PURPLE,string); return 1; }
  4996. else if(Colour == 8) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BROWN,string); return 1; }
  4997. else if(Colour == 9) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_PINK,string); return 1; }
  4998. return 1;
  4999. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5000. }
  5001.  
  5002. //------------------------------------------------------------------------------
  5003. if(strcmp(cmdtext,"/invis",true)==0) {
  5004. if(PlayerInfo[playerid][Level] >= 4) {
  5005. if(IsPlayerInAnyVehicle(playerid)) {
  5006. new LVehicleID = GetPlayerVehicleID(playerid); new int1 = GetPlayerInterior(playerid);
  5007. LinkVehicleToInterior(LVehicleID,int1 + 1);
  5008. SendClientMessage(playerid,red,"[Cmd]: You Are Now Invisible"); PlayerInfo[playerid][Invis] = 1;
  5009. CMDMessageToAdmins(playerid,"INVIS");
  5010. if(! (InvisTimer) ) InvisTimer = SetTimer("HideNameTag",100,1);
  5011. } else {
  5012. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleID; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  5013. new int1 = GetPlayerInterior(playerid);
  5014. LVehicleID = CreateVehicle(457,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,LVehicleID,0); LinkVehicleToInterior(LVehicleID,int1 + 1);
  5015. SendClientMessage(playerid,red,"[Cmd]: You Are Now Invisible"); PlayerInfo[playerid][Invis] = 1;
  5016. CMDMessageToAdmins(playerid,"INVIS");
  5017. if(! (InvisTimer) ) InvisTimer = SetTimer("HideNameTag",100,1); }
  5018. } else {
  5019. SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command"); }
  5020. return 1; }
  5021. //------------------------------------------------------------------------------
  5022. if(strcmp(cmdtext,"/vis",true)==0) {
  5023. if(PlayerInfo[playerid][Level] >= 4) {
  5024. if(IsPlayerInAnyVehicle(playerid)) {
  5025. new LVehicleID = GetPlayerVehicleID(playerid); new int1 = GetPlayerInterior(playerid); LinkVehicleToInterior(LVehicleID,int1);
  5026. SendClientMessage(playerid,red,"[Cmd]: You Are Now Visible"); PlayerInfo[playerid][Invis] = 0;
  5027. } else {
  5028. SendClientMessage(playerid,red,"[Cmd]: You Are Now Visible"); PlayerInfo[playerid][Invis] = 0; }
  5029. } else {
  5030. SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command"); }
  5031. return 1; }
  5032.  
  5033. //------------------------------------------------------------------------------
  5034. // Remote Console
  5035. //------------------------------------------------------------------------------
  5036.  
  5037. if(strcmp(cmd, "/loadfs", true) == 0) {
  5038. if(PlayerInfo[playerid][Level] >= 5) {
  5039. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  5040. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5041. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5042. }
  5043.  
  5044. if(strcmp(cmd, "/unloadfs", true) == 0) {
  5045. if(PlayerInfo[playerid][Level] >= 5) {
  5046. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  5047. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5048. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5049. }
  5050.  
  5051. if(strcmp(cmd, "/changemode", true) == 0) {
  5052. if(PlayerInfo[playerid][Level] >= 5) {
  5053. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  5054. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5055. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5056. }
  5057.  
  5058. if(strcmp(cmd, "/restart", true) == 0) {
  5059. if(PlayerInfo[playerid][Level] >= 4) {
  5060. OnFilterScriptExit(); SetTimer("RestartGM",5000,0);
  5061. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5062. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5063. }
  5064.  
  5065. if(strcmp(cmd, "/loadladmin", true) == 0) {
  5066. if(PlayerInfo[playerid][Level] >= 5) {
  5067. SendRconCommand("loadfs ladmin4");
  5068. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5069. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5070. }
  5071.  
  5072. if(strcmp(cmd, "/unloadladmin", true) == 0) {
  5073. if(PlayerInfo[playerid][Level] >= 5) {
  5074. SendRconCommand("unloadfs ladmin4");
  5075. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5076. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5077. }
  5078.  
  5079. if(strcmp(cmd, "/reloadladmin", true) == 0) {
  5080. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid) ) {
  5081. SendRconCommand("reloadfs ladmin4");
  5082. SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5083. return CMDMessageToAdmins(playerid,"RELOADLADMIN");
  5084. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5085. }
  5086.  
  5087.  
  5088. return 0;
  5089. }
  5090.  
  5091.  
  5092. //==============================================================================
  5093. #if defined ENABLE_SPEC
  5094.  
  5095. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  5096. {
  5097. new x = 0;
  5098. while(x!=MAX_PLAYERS) {
  5099. if( IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_SPECTATING &&
  5100. PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_PLAYER )
  5101. {
  5102. SetPlayerInterior(x,newinteriorid);
  5103. }
  5104. x++;
  5105. }
  5106. }
  5107.  
  5108. //==============================================================================
  5109. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  5110. {
  5111. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5112. {
  5113. if(newkeys == KEY_JUMP) AdvanceSpectate(playerid);
  5114. else if(newkeys == KEY_SPRINT) ReverseSpectate(playerid);
  5115. }
  5116. return 1;
  5117. }
  5118.  
  5119. //==============================================================================
  5120. public OnPlayerEnterVehicle(playerid, vehicleid) {
  5121. for(new x=0; x<MAX_PLAYERS; x++) {
  5122. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
  5123. TogglePlayerSpectating(x, 1);
  5124. PlayerSpectateVehicle(x, vehicleid);
  5125. PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  5126. }
  5127. }
  5128. return 1;
  5129. }
  5130.  
  5131. //==============================================================================
  5132. public OnPlayerStateChange(playerid, newstate, oldstate) {
  5133. switch(newstate) {
  5134. case PLAYER_STATE_ONFOOT: {
  5135. switch(oldstate) {
  5136. case PLAYER_STATE_DRIVER: OnPlayerExitVehicle(playerid,255);
  5137. case PLAYER_STATE_PASSENGER: OnPlayerExitVehicle(playerid,255);
  5138. }
  5139. }
  5140. }
  5141. return 1;
  5142. }
  5143.  
  5144. #endif
  5145.  
  5146. //==============================================================================
  5147. public OnPlayerExitVehicle(playerid, vehicleid)
  5148. {
  5149. if(PlayerInfo[playerid][DoorsLocked] == 1) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,false,false);
  5150.  
  5151. #if defined ENABLE_SPEC
  5152. for(new x=0; x<MAX_PLAYERS; x++) {
  5153. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_VEHICLE) {
  5154. TogglePlayerSpectating(x, 1);
  5155. PlayerSpectatePlayer(x, playerid);
  5156. PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
  5157. }
  5158. }
  5159. #endif
  5160.  
  5161. return 1;
  5162. }
  5163.  
  5164. //==============================================================================
  5165. #if defined ENABLE_SPEC
  5166.  
  5167. stock StartSpectate(playerid, specplayerid)
  5168. {
  5169. for(new x=0; x<MAX_PLAYERS; x++) {
  5170. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
  5171. AdvanceSpectate(x);
  5172. }
  5173. }
  5174. SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
  5175. TogglePlayerSpectating(playerid, 1);
  5176.  
  5177. if(IsPlayerInAnyVehicle(specplayerid)) {
  5178. PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
  5179. PlayerInfo[playerid][SpecID] = specplayerid;
  5180. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  5181. }
  5182. else {
  5183. PlayerSpectatePlayer(playerid, specplayerid);
  5184. PlayerInfo[playerid][SpecID] = specplayerid;
  5185. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
  5186. }
  5187. new string[100], Float:hp, Float:ar;
  5188. GetPlayerName(specplayerid,string,sizeof(string));
  5189. GetPlayerHealth(specplayerid, hp); GetPlayerArmour(specplayerid, ar);
  5190. format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~w~%s - id:%d~n~< sprint - jump >~n~hp:%0.1f ar:%0.1f $%d", string,specplayerid,hp,ar,GetPlayerMoney(specplayerid) );
  5191. GameTextForPlayer(playerid,string,25000,3);
  5192. return 1;
  5193. }
  5194.  
  5195. stock StopSpectate(playerid)
  5196. {
  5197. TogglePlayerSpectating(playerid, 0);
  5198. PlayerInfo[playerid][SpecID] = INVALID_PLAYER_ID;
  5199. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_NONE;
  5200. GameTextForPlayer(playerid,"~n~~n~~n~~w~Spectate mode ended",1000,3);
  5201. return 1;
  5202. }
  5203.  
  5204. stock AdvanceSpectate(playerid)
  5205. {
  5206. if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
  5207. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5208. {
  5209. for(new x=PlayerInfo[playerid][SpecID]+1; x<=MAX_PLAYERS; x++)
  5210. {
  5211. if(x == MAX_PLAYERS) x = 0;
  5212. if(IsPlayerConnected(x) && x != playerid)
  5213. {
  5214. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
  5215. {
  5216. continue;
  5217. }
  5218. else
  5219. {
  5220. StartSpectate(playerid, x);
  5221. break;
  5222. }
  5223. }
  5224. }
  5225. }
  5226. return 1;
  5227. }
  5228.  
  5229. stock ReverseSpectate(playerid)
  5230. {
  5231. if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
  5232. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5233. {
  5234. for(new x=PlayerInfo[playerid][SpecID]-1; x>=0; x--)
  5235. {
  5236. if(x == 0) x = MAX_PLAYERS;
  5237. if(IsPlayerConnected(x) && x != playerid)
  5238. {
  5239. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
  5240. {
  5241. continue;
  5242. }
  5243. else
  5244. {
  5245. StartSpectate(playerid, x);
  5246. break;
  5247. }
  5248. }
  5249. }
  5250. }
  5251. return 1;
  5252. }
  5253.  
  5254. //-------------------------------------------
  5255. forward PosAfterSpec(playerid);
  5256. public PosAfterSpec(playerid)
  5257. {
  5258. SetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  5259. SetPlayerFacingAngle(playerid,Pos[playerid][3]);
  5260. }
  5261. #endif
  5262.  
  5263. //==============================================================================
  5264. EraseVehicle(vehicleid)
  5265. {
  5266. for(new players=0;players<=MAX_PLAYERS;players++)
  5267. {
  5268. new Float:X,Float:Y,Float:Z;
  5269. if (IsPlayerInVehicle(players,vehicleid))
  5270. {
  5271. GetPlayerPos(players,X,Y,Z);
  5272. SetPlayerPos(players,X,Y,Z+2);
  5273. SetVehicleToRespawn(vehicleid);
  5274. }
  5275. SetVehicleParamsForPlayer(vehicleid,players,0,1);
  5276. }
  5277. SetTimerEx("VehRes",3000,0,"d",vehicleid);
  5278. return 1;
  5279. }
  5280.  
  5281. forward CarSpawner(playerid,model);
  5282. public CarSpawner(playerid,model)
  5283. {
  5284. if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, red, "You already have a car!");
  5285. else
  5286. {
  5287. new Float:x, Float:y, Float:z, Float:angle;
  5288. GetPlayerPos(playerid, x, y, z);
  5289. GetPlayerFacingAngle(playerid, angle);
  5290. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5291. new vehicleid=CreateVehicle(model, x, y, z, angle, -1, -1, -1);
  5292. PutPlayerInVehicle(playerid, vehicleid, 0);
  5293. SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
  5294. LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid));
  5295. ChangeVehicleColor(vehicleid,0,7);
  5296. PlayerInfo[playerid][pCar] = vehicleid;
  5297. }
  5298. return 1;
  5299. }
  5300.  
  5301. forward CarDeleter(vehicleid);
  5302. public CarDeleter(vehicleid)
  5303. {
  5304. for(new i=0;i<MAX_PLAYERS;i++) {
  5305. new Float:X,Float:Y,Float:Z;
  5306. if(IsPlayerInVehicle(i, vehicleid)) {
  5307. RemovePlayerFromVehicle(i);
  5308. GetPlayerPos(i,X,Y,Z);
  5309. SetPlayerPos(i,X,Y+3,Z);
  5310. }
  5311. SetVehicleParamsForPlayer(vehicleid,i,0,1);
  5312. }
  5313. SetTimerEx("VehRes",1500,0,"i",vehicleid);
  5314. }
  5315.  
  5316. forward VehRes(vehicleid);
  5317. public VehRes(vehicleid)
  5318. {
  5319. DestroyVehicle(vehicleid);
  5320. }
  5321.  
  5322. public OnVehicleSpawn(vehicleid)
  5323. {
  5324. for(new i=0;i<MAX_PLAYERS;i++)
  5325. {
  5326. if(vehicleid==PlayerInfo[i][pCar])
  5327. {
  5328. CarDeleter(vehicleid);
  5329. PlayerInfo[i][pCar]=-1;
  5330. }
  5331. }
  5332. return 1;
  5333. }
  5334. //==============================================================================
  5335. forward TuneLCar(VehicleID);
  5336. public TuneLCar(VehicleID)
  5337. {
  5338. ChangeVehicleColor(VehicleID,0,7);
  5339. AddVehicleComponent(VehicleID, 1010); AddVehicleComponent(VehicleID, 1087);
  5340. }
  5341.  
  5342. //==============================================================================
  5343.  
  5344. public OnRconCommand(cmd[])
  5345. {
  5346. if( strlen(cmd) > 50 || strlen(cmd) == 1 ) return print("Invalid command length (exceeding 50 characters)");
  5347.  
  5348. if(strcmp(cmd, "ladmin", true)==0) {
  5349. print("Rcon Commands");
  5350. print("info, aka, pm, asay, ann, uconfig, chat");
  5351. return true;
  5352. }
  5353.  
  5354. if(strcmp(cmd, "info", true)==0)
  5355. {
  5356. new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000); DestroyVehicle(TotalVehicles);
  5357. new numo = CreateObject(1245,0,0,1000,0,0,0); DestroyObject(numo);
  5358. new nump = CreatePickup(371,2,0,0,1000); DestroyPickup(nump);
  5359. new gz = GangZoneCreate(3,3,5,5); GangZoneDestroy(gz);
  5360.  
  5361. new model[250], nummodel;
  5362. for(new i=1;i<TotalVehicles;i++) model[GetVehicleModel(i)-400]++;
  5363. for(new i=0;i<250;i++) { if(model[i]!=0) { nummodel++; } }
  5364.  
  5365. new string[256];
  5366. print(" ===========================================================================");
  5367. printf(" Server Info:");
  5368. format(string,sizeof(string),"[ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
  5369. printf(string);
  5370. format(string,sizeof(string),"[ Vehicles: %d || Models %d || Players In Vehicle: %d ]",TotalVehicles-1,nummodel, InVehCount() );
  5371. printf(string);
  5372. format(string,sizeof(string),"[ InCar %d || OnBike %d ]",InCarCount(),OnBikeCount() );
  5373. printf(string);
  5374. format(string,sizeof(string),"[ Objects: %d || Pickups %d || Gangzones %d]",numo-1, nump, gz);
  5375. printf(string);
  5376. format(string,sizeof(string),"[ Players In Jail %d || Players Frozen %d || Muted %d ]",JailedPlayers(),FrozenPlayers(), MutedPlayers() );
  5377. printf(string);
  5378. format(string,sizeof(string),"[ Admins online %d RCON admins online %d ]",AdminCount(), RconAdminCount() );
  5379. printf(string);
  5380. print(" ===========================================================================");
  5381. return true;
  5382. }
  5383.  
  5384. if(!strcmp(cmd, "pm", .length = 2))
  5385. {
  5386. new arg_1 = argpos(cmd), arg_2 = argpos(cmd, arg_1),targetid = strval(cmd[arg_1]), message[128];
  5387.  
  5388. if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > MAX_PLAYERS || targetid < 0 || !cmd[arg_2])
  5389. print("Usage: \"pm <playerid> <message>\"");
  5390.  
  5391. else if ( !IsPlayerConnected(targetid) ) print("This player is not connected!");
  5392. else
  5393. {
  5394. format(message, sizeof(message), "[RCON] PM: %s", cmd[arg_2]);
  5395. SendClientMessage(targetid, COLOR_WHITE, message);
  5396. printf("Rcon PM '%s' sent", cmd[arg_1] );
  5397. }
  5398. return true;
  5399. }
  5400.  
  5401. if(!strcmp(cmd, "asay", .length = 4))
  5402. {
  5403. new arg_1 = argpos(cmd), message[128];
  5404.  
  5405. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"asay <message>\" (MessageToAdmins)");
  5406. else
  5407. {
  5408. format(message, sizeof(message), "[RCON] MessageToAdmins: %s", cmd[arg_1]);
  5409. MessageToAdmins(COLOR_WHITE, message);
  5410. printf("Admin Message '%s' sent", cmd[arg_1] );
  5411. }
  5412. return true;
  5413. }
  5414.  
  5415. if(!strcmp(cmd, "ann", .length = 3))
  5416. {
  5417. new arg_1 = argpos(cmd), message[128];
  5418. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"ann <message>\" (GameTextForAll)");
  5419. else
  5420. {
  5421. format(message, sizeof(message), "[RCON]: %s", cmd[arg_1]);
  5422. GameTextForAll(message,3000,3);
  5423. printf("GameText Message '%s' sent", cmd[arg_1] );
  5424. }
  5425. return true;
  5426. }
  5427.  
  5428. if(!strcmp(cmd, "msg", .length = 3))
  5429. {
  5430. new arg_1 = argpos(cmd), message[128];
  5431. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"msg <message>\" (SendClientMessageToAll)");
  5432. else
  5433. {
  5434. format(message, sizeof(message), "[RCON]: %s", cmd[arg_1]);
  5435. SendClientMessageToAll(COLOR_WHITE, message);
  5436. printf("MessageToAll '%s' sent", cmd[arg_1] );
  5437. }
  5438. return true;
  5439. }
  5440.  
  5441. if(strcmp(cmd, "uconfig", true)==0)
  5442. {
  5443. UpdateConfig();
  5444. print("Configuration Successfully Updated");
  5445. return true;
  5446. }
  5447.  
  5448. if(!strcmp(cmd, "aka", .length = 3))
  5449. {
  5450. new arg_1 = argpos(cmd), targetid = strval(cmd[arg_1]);
  5451.  
  5452. if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > MAX_PLAYERS || targetid < 0)
  5453. print("Usage: aka <playerid>");
  5454. else if ( !IsPlayerConnected(targetid) ) print("This player is not connected!");
  5455. else
  5456. {
  5457. new tmp3[50], playername[MAX_PLAYER_NAME];
  5458. GetPlayerIp(targetid,tmp3,50);
  5459. GetPlayerName(targetid, playername, sizeof(playername));
  5460. printf("AKA: [%s id:%d] [%s] %s", playername, targetid, tmp3, dini_Get("ladmin/config/aka.txt",tmp3) );
  5461. }
  5462. return true;
  5463. }
  5464.  
  5465. if(!strcmp(cmd, "chat", .length = 4)) {
  5466. for(new i = 1; i < MAX_CHAT_LINES; i++) print(Chat[i]);
  5467. return true;
  5468. }
  5469.  
  5470. return 0;
  5471. }
  5472.  
  5473. //==============================================================================
  5474. // Menus
  5475. //==============================================================================
  5476.  
  5477. #if defined USE_MENUS
  5478. public OnPlayerSelectedMenuRow(playerid, row) {
  5479. new Menu:Current = GetPlayerMenu(playerid);
  5480. new string[128];
  5481.  
  5482. if(Current == LMainMenu) {
  5483. switch(row)
  5484. {
  5485. case 0:
  5486. {
  5487. if(PlayerInfo[playerid][Level] >= 4) ShowMenuForPlayer(AdminEnable,playerid);
  5488. else {
  5489. SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5490. TogglePlayerControllable(playerid,true);
  5491. }
  5492. }
  5493. case 1:
  5494. {
  5495. if(PlayerInfo[playerid][Level] >= 4) ShowMenuForPlayer(AdminDisable,playerid);
  5496. else {
  5497. SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5498. TogglePlayerControllable(playerid,true);
  5499. }
  5500. }
  5501. case 2: ShowMenuForPlayer(LWeather,playerid);
  5502. case 3: ShowMenuForPlayer(LTime,playerid);
  5503. case 4: ShowMenuForPlayer(LVehicles,playerid);
  5504. case 5: ShowMenuForPlayer(LCars,playerid);
  5505. case 6:
  5506. {
  5507. if(PlayerInfo[playerid][Level] >= 2)
  5508. {
  5509. if(IsPlayerInAnyVehicle(playerid))
  5510. {
  5511. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  5512. switch(LModel)
  5513. {
  5514. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  5515. {
  5516. SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle"); TogglePlayerControllable(playerid,true);
  5517. return 1;
  5518. }
  5519. }
  5520. TogglePlayerControllable(playerid,false); ShowMenuForPlayer(LTuneMenu,playerid);
  5521. }
  5522. else { SendClientMessage(playerid,red,"ERROR: You do not have a vehicle to tune"); TogglePlayerControllable(playerid,true); }
  5523. } else { SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); TogglePlayerControllable(playerid,true); }
  5524. }
  5525. case 7:
  5526. {
  5527. if(PlayerInfo[playerid][Level] >= 3) ShowMenuForPlayer(XWeapons,playerid);
  5528. else SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); TogglePlayerControllable(playerid,true);
  5529. }
  5530. case 8: ShowMenuForPlayer(LTele,playerid);
  5531. case 9:
  5532. {
  5533. new Menu:Currentxmenu = GetPlayerMenu(playerid);
  5534. HideMenuForPlayer(Currentxmenu,playerid); TogglePlayerControllable(playerid,true);
  5535. }
  5536. }
  5537. return 1;
  5538. }//-------------------------------------------------------------------------
  5539. if(Current == AdminEnable) {
  5540. new adminname[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5541. format(file,sizeof(file),"ladmin/config/Config.ini");
  5542. switch(row){
  5543. case 0: { ServerInfo[AntiSwear] = 1; dini_IntSet(file,"AntiSwear",1); format(string,sizeof(string),"Administrator %s has enabled antiswear",adminname); SendClientMessageToAll(blue,string); }
  5544. case 1: { ServerInfo[NameKick] = 1; dini_IntSet(file,"NameKick",1); format(string,sizeof(string),"Administrator %s has enabled namekick",adminname); SendClientMessageToAll(blue,string); }
  5545. case 2: { ServerInfo[AntiSpam] = 1; dini_IntSet(file,"AntiSpam",1); format(string,sizeof(string),"Administrator %s has enabled antispam",adminname); SendClientMessageToAll(blue,string); }
  5546. case 3: { ServerInfo[MaxPing] = 1000; dini_IntSet(file,"MaxPing",1000); format(string,sizeof(string),"Administrator %s has enabled ping kick",adminname); SendClientMessageToAll(blue,string); }
  5547. case 4: { ServerInfo[ReadCmds] = 1; dini_IntSet(file,"ReadCmds",1); format(string,sizeof(string),"Administrator %s has enabled reading commands",adminname); MessageToAdmins(green,string); }
  5548. case 5: { ServerInfo[ReadPMs] = 1; dini_IntSet(file,"ReadPMs",1); format(string,sizeof(string),"Administrator %s has enabled reading pms",adminname); MessageToAdmins(green,string); }
  5549. case 6: { ServerInfo[NoCaps] = 0; dini_IntSet(file,"NoCaps",0); format(string,sizeof(string),"Administrator %s has allowed captial letters in chat",adminname); SendClientMessageToAll(blue,string); }
  5550. case 7: { ServerInfo[ConnectMessages] = 1; dini_IntSet(file,"ConnectMessages",1); format(string,sizeof(string),"Administrator %s has enabled connect messages",adminname); SendClientMessageToAll(blue,string); }
  5551. case 8: { ServerInfo[AdminCmdMsg] = 1; dini_IntSet(file,"AdminCmdMessages",1); format(string,sizeof(string),"Administrator %s has enabled admin command messages",adminname); MessageToAdmins(green,string); }
  5552. case 9: { ServerInfo[AutoLogin] = 1; dini_IntSet(file,"AutoLogin",1); format(string,sizeof(string),"Administrator %s has enabled auto login",adminname); SendClientMessageToAll(blue,string); }
  5553. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5554. }
  5555. return TogglePlayerControllable(playerid,true);
  5556. }//------------------------------------------------------------------------
  5557. if(Current == AdminDisable) {
  5558. new adminname[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5559. format(file,sizeof(file),"ladmin/config/Config.ini");
  5560. switch(row){
  5561. case 0: { ServerInfo[AntiSwear] = 0; dini_IntSet(file,"AntiSwear",0); format(string,sizeof(string),"Administrator %s has disabled antiswear",adminname); SendClientMessageToAll(blue,string); }
  5562. case 1: { ServerInfo[NameKick] = 0; dini_IntSet(file,"NameKick",0); format(string,sizeof(string),"Administrator %s has disabled namekick",adminname); SendClientMessageToAll(blue,string); }
  5563. case 2: { ServerInfo[AntiSpam] = 0; dini_IntSet(file,"AntiSpam",0); format(string,sizeof(string),"Administrator %s has disabled antispam",adminname); SendClientMessageToAll(blue,string); }
  5564. case 3: { ServerInfo[MaxPing] = 0; dini_IntSet(file,"MaxPing",0); format(string,sizeof(string),"Administrator %s has disabled ping kick",adminname); SendClientMessageToAll(blue,string); }
  5565. case 4: { ServerInfo[ReadCmds] = 0; dini_IntSet(file,"ReadCmds",0); format(string,sizeof(string),"Administrator %s has disabled reading commands",adminname); MessageToAdmins(green,string); }
  5566. case 5: { ServerInfo[ReadPMs] = 0; dini_IntSet(file,"ReadPMs",0); format(string,sizeof(string),"Administrator %s has disabled reading pms",adminname); MessageToAdmins(green,string); }
  5567. case 6: { ServerInfo[NoCaps] = 1; dini_IntSet(file,"NoCaps",1); format(string,sizeof(string),"Administrator %s has prevented captial letters in chat",adminname); SendClientMessageToAll(blue,string); }
  5568. case 7: { ServerInfo[ConnectMessages] = 0; dini_IntSet(file,"ConnectMessages",0); format(string,sizeof(string),"Administrator %s has disabled connect messages",adminname); SendClientMessageToAll(blue,string); }
  5569. case 8: { ServerInfo[AdminCmdMsg] = 0; dini_IntSet(file,"AdminCmdMessages",0); format(string,sizeof(string),"Administrator %s has disabled admin command messages",adminname); MessageToAdmins(green,string); }
  5570. case 9: { ServerInfo[AutoLogin] = 0; dini_IntSet(file,"AutoLogin",0); format(string,sizeof(string),"Administrator %s has disabled auto login",adminname); SendClientMessageToAll(blue,string); }
  5571. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5572. }
  5573. return TogglePlayerControllable(playerid,true);
  5574. }//-------------------------------------------------------------------------
  5575. if(Current==LVehicles){
  5576. switch(row){
  5577. case 0: ChangeMenu(playerid,Current,twodoor);
  5578. case 1: ChangeMenu(playerid,Current,fourdoor);
  5579. case 2: ChangeMenu(playerid,Current,fastcar);
  5580. case 3: ChangeMenu(playerid,Current,Othercars);
  5581. case 4: ChangeMenu(playerid,Current,bikes);
  5582. case 5: ChangeMenu(playerid,Current,boats);
  5583. case 6: ChangeMenu(playerid,Current,planes);
  5584. case 7: ChangeMenu(playerid,Current,helicopters);
  5585. case 8: return ChangeMenu(playerid,Current,LMainMenu);
  5586. }
  5587. return 1;
  5588. }
  5589. if(Current==twodoor){
  5590. new vehid;
  5591. switch(row){
  5592. case 0: vehid = 533;
  5593. case 1: vehid = 439;
  5594. case 2: vehid = 555;
  5595. case 3: vehid = 422;
  5596. case 4: vehid = 554;
  5597. case 5: vehid = 575;
  5598. case 6: vehid = 536;
  5599. case 7: vehid = 535;
  5600. case 8: vehid = 576;
  5601. case 9: vehid = 401;
  5602. case 10: vehid = 526;
  5603. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5604. }
  5605. return SelectCar(playerid,vehid,Current);
  5606. }
  5607. if(Current==fourdoor){
  5608. new vehid;
  5609. switch(row){
  5610. case 0: vehid = 404;
  5611. case 1: vehid = 566;
  5612. case 2: vehid = 412;
  5613. case 3: vehid = 445;
  5614. case 4: vehid = 507;
  5615. case 5: vehid = 466;
  5616. case 6: vehid = 546;
  5617. case 7: vehid = 511;
  5618. case 8: vehid = 467;
  5619. case 9: vehid = 426;
  5620. case 10: vehid = 405;
  5621. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5622. }
  5623. return SelectCar(playerid,vehid,Current);
  5624. }
  5625. if(Current==fastcar){
  5626. new vehid;
  5627. switch(row){
  5628. case 0: vehid = 480;
  5629. case 1: vehid = 402;
  5630. case 2: vehid = 415;
  5631. case 3: vehid = 587;
  5632. case 4: vehid = 494;
  5633. case 5: vehid = 411;
  5634. case 6: vehid = 603;
  5635. case 7: vehid = 506;
  5636. case 8: vehid = 451;
  5637. case 9: vehid = 477;
  5638. case 10: vehid = 541;
  5639. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5640. }
  5641. return SelectCar(playerid,vehid,Current);
  5642. }
  5643. if(Current==Othercars){
  5644. new vehid;
  5645. switch(row){
  5646. case 0: vehid = 556;
  5647. case 1: vehid = 408;
  5648. case 2: vehid = 431;
  5649. case 3: vehid = 437;
  5650. case 4: vehid = 427;
  5651. case 5: vehid = 432;
  5652. case 6: vehid = 601;
  5653. case 7: vehid = 524;
  5654. case 8: vehid = 455;
  5655. case 9: vehid = 424;
  5656. case 10: vehid = 573;
  5657. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5658. }
  5659. return SelectCar(playerid,vehid,Current);
  5660. }
  5661. if(Current==bikes){
  5662. new vehid;
  5663. switch(row){
  5664. case 0: vehid = 581;
  5665. case 1: vehid = 481;
  5666. case 2: vehid = 462;
  5667. case 3: vehid = 521;
  5668. case 4: vehid = 463;
  5669. case 5: vehid = 522;
  5670. case 6: vehid = 461;
  5671. case 7: vehid = 448;
  5672. case 8: vehid = 471;
  5673. case 9: vehid = 468;
  5674. case 10: vehid = 586;
  5675. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5676. }
  5677. return SelectCar(playerid,vehid,Current);
  5678. }
  5679. if(Current==boats){
  5680. new vehid;
  5681. switch(row){
  5682. case 0: vehid = 472;
  5683. case 1: vehid = 473;
  5684. case 2: vehid = 493;
  5685. case 3: vehid = 595;
  5686. case 4: vehid = 484;
  5687. case 5: vehid = 430;
  5688. case 6: vehid = 453;
  5689. case 7: vehid = 452;
  5690. case 8: vehid = 446;
  5691. case 9: vehid = 454;
  5692. case 10: return ChangeMenu(playerid,Current,LVehicles);
  5693. }
  5694. return SelectCar(playerid,vehid,Current);
  5695. }
  5696. if(Current==planes){
  5697. new vehid;
  5698. switch(row){
  5699. case 0: vehid = 592;
  5700. case 1: vehid = 577;
  5701. case 2: vehid = 511;
  5702. case 3: vehid = 512;
  5703. case 4: vehid = 593;
  5704. case 5: vehid = 520;
  5705. case 6: vehid = 553;
  5706. case 7: vehid = 476;
  5707. case 8: vehid = 519;
  5708. case 9: vehid = 460;
  5709. case 10: vehid = 513;
  5710. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5711. }
  5712. return SelectCar(playerid,vehid,Current);
  5713. }
  5714. if(Current==helicopters){
  5715. new vehid;
  5716. switch(row){
  5717. case 0: vehid = 548;
  5718. case 1: vehid = 425;
  5719. case 2: vehid = 417;
  5720. case 3: vehid = 487;
  5721. case 4: vehid = 488;
  5722. case 5: vehid = 497;
  5723. case 6: vehid = 563;
  5724. case 7: vehid = 447;
  5725. case 8: vehid = 469;
  5726. case 9: return ChangeMenu(playerid,Current,LVehicles);
  5727. }
  5728. return SelectCar(playerid,vehid,Current);
  5729. }
  5730.  
  5731. if(Current==XWeapons){
  5732. switch(row){
  5733. case 0: { GivePlayerWeapon(playerid,24,500); }
  5734. case 1: { GivePlayerWeapon(playerid,31,500); }
  5735. case 2: { GivePlayerWeapon(playerid,26,500); }
  5736. case 3: { GivePlayerWeapon(playerid,27,500); }
  5737. case 4: { GivePlayerWeapon(playerid,28,500); }
  5738. case 5: { GivePlayerWeapon(playerid,35,500); }
  5739. case 6: { GivePlayerWeapon(playerid,38,1000); }
  5740. case 7: { GivePlayerWeapon(playerid,34,500); }
  5741. case 8: return ChangeMenu(playerid,Current,XWeaponsBig);
  5742. case 9: return ChangeMenu(playerid,Current,XWeaponsSmall);
  5743. case 10: return ChangeMenu(playerid,Current,XWeaponsMore);
  5744. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5745. }
  5746. return TogglePlayerControllable(playerid,true);
  5747. }
  5748.  
  5749. if(Current==XWeaponsBig){
  5750. switch(row){
  5751. case 0: { GivePlayerWeapon(playerid,25,500); }
  5752. case 1: { GivePlayerWeapon(playerid,30,500); }
  5753. case 2: { GivePlayerWeapon(playerid,33,500); }
  5754. case 3: { GivePlayerWeapon(playerid,36,500); }
  5755. case 4: { GivePlayerWeapon(playerid,37,500); }
  5756. case 5: { GivePlayerWeapon(playerid,29,500); }
  5757. case 6: { GivePlayerWeapon(playerid,32,1000); }
  5758. case 7: return ChangeMenu(playerid,Current,XWeapons);
  5759. }
  5760. return TogglePlayerControllable(playerid,true);
  5761. }
  5762.  
  5763. if(Current==XWeaponsSmall){
  5764. switch(row){
  5765. case 0: { GivePlayerWeapon(playerid,22,500); }//9mm
  5766. case 1: { GivePlayerWeapon(playerid,23,500); }//s9
  5767. case 2: { GivePlayerWeapon(playerid,18,500); }// MC
  5768. case 3: { GivePlayerWeapon(playerid,42,500); }//FE
  5769. case 4: { GivePlayerWeapon(playerid,41,500); }//spraycan
  5770. case 5: { GivePlayerWeapon(playerid,16,500); }//grenade
  5771. case 6: { GivePlayerWeapon(playerid,8,500); }//Katana
  5772. case 7: { GivePlayerWeapon(playerid,9,1000); }//chainsaw
  5773. case 8: return ChangeMenu(playerid,Current,XWeapons);
  5774. }
  5775. return TogglePlayerControllable(playerid,true);
  5776. }
  5777.  
  5778. if(Current==XWeaponsMore){
  5779. switch(row){
  5780. case 0: SetPlayerSpecialAction(playerid, 2);
  5781. case 1: GivePlayerWeapon(playerid,4,500);
  5782. case 2: GivePlayerWeapon(playerid,14,500);
  5783. case 3: GivePlayerWeapon(playerid,43,500);
  5784. case 4: GivePlayerWeapon(playerid,7,500);
  5785. case 5: GivePlayerWeapon(playerid,5,500);
  5786. case 6: GivePlayerWeapon(playerid,2,1000);
  5787. case 7: MaxAmmo(playerid);
  5788. case 8: return ChangeMenu(playerid,Current,XWeapons);
  5789. }
  5790. return TogglePlayerControllable(playerid,true);
  5791. }
  5792.  
  5793. if(Current == LTele)
  5794. {
  5795. switch(row)
  5796. {
  5797. case 0: ChangeMenu(playerid,Current,LasVenturasMenu);
  5798. case 1: ChangeMenu(playerid,Current,LosSantosMenu);
  5799. case 2: ChangeMenu(playerid,Current,SanFierroMenu);
  5800. case 3: ChangeMenu(playerid,Current,DesertMenu);
  5801. case 4: ChangeMenu(playerid,Current,FlintMenu);
  5802. case 5: ChangeMenu(playerid,Current,MountChiliadMenu);
  5803. case 6: ChangeMenu(playerid,Current,InteriorsMenu);
  5804. case 7: return ChangeMenu(playerid,Current,LMainMenu);
  5805. }
  5806. return 1;
  5807. }
  5808.  
  5809. if(Current == LasVenturasMenu)
  5810. {
  5811. switch(row)
  5812. {
  5813. case 0: { SetPlayerPos(playerid,2037.0,1343.0,12.0); SetPlayerInterior(playerid,0); }// strip
  5814. case 1: { SetPlayerPos(playerid,2163.0,1121.0,23); SetPlayerInterior(playerid,0); }// come a lot
  5815. case 2: { SetPlayerPos(playerid,1688.0,1615.0,12.0); SetPlayerInterior(playerid,0); }// lv airport
  5816. case 3: { SetPlayerPos(playerid,2503.0,2764.0,10.0); SetPlayerInterior(playerid,0); }// military fuel
  5817. case 4: { SetPlayerPos(playerid,1418.0,2733.0,10.0); SetPlayerInterior(playerid,0); }// golf lv
  5818. case 5: { SetPlayerPos(playerid,1377.0,2196.0,9.0); SetPlayerInterior(playerid,0); }// pitch match
  5819. case 6: return ChangeMenu(playerid,Current,LTele);
  5820. }
  5821. return TogglePlayerControllable(playerid,true);
  5822. }
  5823.  
  5824. if(Current == LosSantosMenu)
  5825. {
  5826. switch(row)
  5827. {
  5828. case 0: { SetPlayerPos(playerid,2495.0,-1688.0,13.0); SetPlayerInterior(playerid,0); }// ganton
  5829. case 1: { SetPlayerPos(playerid,1979.0,-2241.0,13.0); SetPlayerInterior(playerid,0); }// ls airport
  5830. case 2: { SetPlayerPos(playerid,2744.0,-2435.0,15.0); SetPlayerInterior(playerid,0); }// docks
  5831. case 3: { SetPlayerPos(playerid,1481.0,-1656.0,14.0); SetPlayerInterior(playerid,0); }// square
  5832. case 4: { SetPlayerPos(playerid,1150.0,-2037.0,69.0); SetPlayerInterior(playerid,0); }// veradant bluffs
  5833. case 5: { SetPlayerPos(playerid,425.0,-1815.0,6.0); SetPlayerInterior(playerid,0); }// santa beach
  5834. case 6: { SetPlayerPos(playerid,1240.0,-744.0,95.0); SetPlayerInterior(playerid,0); }// mullholland
  5835. case 7: { SetPlayerPos(playerid,679.0,-1070.0,49.0); SetPlayerInterior(playerid,0); }// richman
  5836. case 8: return ChangeMenu(playerid,Current,LTele);
  5837. }
  5838. return TogglePlayerControllable(playerid,true);
  5839. }
  5840.  
  5841. if(Current == SanFierroMenu)
  5842. {
  5843. switch(row)
  5844. {
  5845. case 0: { SetPlayerPos(playerid,-1990.0,137.0,27.0); SetPlayerInterior(playerid,0); } // sf station
  5846. case 1: { SetPlayerPos(playerid,-1528.0,-206.0,14.0); SetPlayerInterior(playerid,0); }// sf airport
  5847. case 2: { SetPlayerPos(playerid,-2709.0,198.0,4.0); SetPlayerInterior(playerid,0); }// ocean flats
  5848. case 3: { SetPlayerPos(playerid,-2738.0,-295.0,6.0); SetPlayerInterior(playerid,0); }// avispa country club
  5849. case 4: { SetPlayerPos(playerid,-1457.0,465.0,7.0); SetPlayerInterior(playerid,0); }// easter basic docks
  5850. case 5: { SetPlayerPos(playerid,-1853.0,1404.0,7.0); SetPlayerInterior(playerid,0); }// esplanadae north
  5851. case 6: { SetPlayerPos(playerid,-2620.0,1373.0,7.0); SetPlayerInterior(playerid,0); }// battery point
  5852. case 7: return ChangeMenu(playerid,Current,LTele);
  5853. }
  5854. return TogglePlayerControllable(playerid,true);
  5855. }
  5856.  
  5857. if(Current == DesertMenu)
  5858. {
  5859. switch(row)
  5860. {
  5861. case 0: { SetPlayerPos(playerid,416.0,2516.0,16.0); SetPlayerInterior(playerid,0); } // plane graveyard
  5862. case 1: { SetPlayerPos(playerid,81.0,1920.0,17.0); SetPlayerInterior(playerid,0); }// area51
  5863. case 2: { SetPlayerPos(playerid,-324.0,1516.0,75.0); SetPlayerInterior(playerid,0); }// big ear
  5864. case 3: { SetPlayerPos(playerid,-640.0,2051.0,60.0); SetPlayerInterior(playerid,0); }// dam
  5865. case 4: { SetPlayerPos(playerid,-766.0,1545.0,27.0); SetPlayerInterior(playerid,0); }// las barrancas
  5866. case 5: { SetPlayerPos(playerid,-1514.0,2597.0,55.0); SetPlayerInterior(playerid,0); }// el qyebrados
  5867. case 6: { SetPlayerPos(playerid,442.0,1427.0,9.0); SetPlayerInterior(playerid,0); }// actane springs
  5868. case 7: return ChangeMenu(playerid,Current,LTele);
  5869. }
  5870. return TogglePlayerControllable(playerid,true);
  5871. }
  5872.  
  5873. if(Current == FlintMenu)
  5874. {
  5875. switch(row)
  5876. {
  5877. case 0: { SetPlayerPos(playerid,-849.0,-1940.0,13.0); SetPlayerInterior(playerid,0); }// lake
  5878. case 1: { SetPlayerPos(playerid,-1107.0,-1619.0,76.0); SetPlayerInterior(playerid,0); }// leafy hollow
  5879. case 2: { SetPlayerPos(playerid,-1049.0,-1199.0,128.0); SetPlayerInterior(playerid,0); }// the farm
  5880. case 3: { SetPlayerPos(playerid,-1655.0,-2219.0,32.0); SetPlayerInterior(playerid,0); }// shady cabin
  5881. case 4: { SetPlayerPos(playerid,-375.0,-1441.0,25.0); SetPlayerInterior(playerid,0); }// flint range
  5882. case 5: { SetPlayerPos(playerid,-367.0,-1049.0,59.0); SetPlayerInterior(playerid,0); }// beacon hill
  5883. case 6: { SetPlayerPos(playerid,-494.0,-555.0,25.0); SetPlayerInterior(playerid,0); }// fallen tree
  5884. case 7: return ChangeMenu(playerid,Current,LTele);
  5885. }
  5886. return TogglePlayerControllable(playerid,true);
  5887. }
  5888.  
  5889. if(Current == MountChiliadMenu)
  5890. {
  5891. switch(row)
  5892. {
  5893. case 0: { SetPlayerPos(playerid,-2308.0,-1657.0,483.0); SetPlayerInterior(playerid,0); }// chiliad jump
  5894. case 1: { SetPlayerPos(playerid,-2331.0,-2180.0,35.0); SetPlayerInterior(playerid,0); }// bottom chiliad
  5895. case 2: { SetPlayerPos(playerid,-2431.0,-1620.0,526.0); SetPlayerInterior(playerid,0); }// highest point
  5896. case 3: { SetPlayerPos(playerid,-2136.0,-1775.0,208.0); SetPlayerInterior(playerid,0); }// chiliad path
  5897. case 4: return ChangeMenu(playerid,Current,LTele);
  5898. }
  5899. return TogglePlayerControllable(playerid,true);
  5900. }
  5901.  
  5902. if(Current == InteriorsMenu)
  5903. {
  5904. switch(row)
  5905. {
  5906. case 0: { SetPlayerPos(playerid,386.5259, 173.6381, 1008.3828); SetPlayerInterior(playerid,3); }
  5907. case 1: { SetPlayerPos(playerid,288.4723, 170.0647, 1007.1794); SetPlayerInterior(playerid,3); }
  5908. case 2: { SetPlayerPos(playerid,372.5565, -131.3607, 1001.4922); SetPlayerInterior(playerid,5); }
  5909. case 3: { SetPlayerPos(playerid,-1129.8909, 1057.5424, 1346.4141); SetPlayerInterior(playerid,10); }
  5910. case 4: { SetPlayerPos(playerid,2233.9363, 1711.8038, 1011.6312); SetPlayerInterior(playerid,1); }
  5911. case 5: { SetPlayerPos(playerid,2536.5322, -1294.8425, 1044.125); SetPlayerInterior(playerid,2); }
  5912. case 6: { SetPlayerPos(playerid,1267.8407, -776.9587, 1091.9063); SetPlayerInterior(playerid,5); }
  5913. case 7: { SetPlayerPos(playerid,-1421.5618, -663.8262, 1059.5569); SetPlayerInterior(playerid,4); }
  5914. case 8: { SetPlayerPos(playerid,-1401.067, 1265.3706, 1039.8672); SetPlayerInterior(playerid,16); }
  5915. case 9: { SetPlayerPos(playerid,285.8361, -39.0166, 1001.5156); SetPlayerInterior(playerid,1); }
  5916. case 10: { SetPlayerPos(playerid,1727.2853, -1642.9451, 20.2254); SetPlayerInterior(playerid,18); }
  5917. case 11: return ChangeMenu(playerid,Current,LTele);
  5918. }
  5919. return TogglePlayerControllable(playerid,true);
  5920. }
  5921.  
  5922. if(Current == LWeather)
  5923. {
  5924. new adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5925. switch(row)
  5926. {
  5927. case 0: { SetWeather(5); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); format(string,sizeof(string),"Administrator %s has changed the weather",adminname); SendClientMessageToAll(blue,string); }
  5928. case 1: { SetWeather(19); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); format(string,sizeof(string),"Administrator %s has changed the weather",adminname); SendClientMessageToAll(blue,string); }
  5929. case 2: { SetWeather(8); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); format(string,sizeof(string),"Administrator %s has changed the weather",adminname); SendClientMessageToAll(blue,string); }
  5930. case 3: { SetWeather(20); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); format(string,sizeof(string),"Administrator %s has changed the weather",adminname); SendClientMessageToAll(blue,string); }
  5931. case 4: { SetWeather(9); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); format(string,sizeof(string),"Administrator %s has changed the weather",adminname); SendClientMessageToAll(blue,string); }
  5932. case 5: { SetWeather(16); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); format(string,sizeof(string),"Administrator %s has changed the weather",adminname); SendClientMessageToAll(blue,string); }
  5933. case 6: { SetWeather(45); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); format(string,sizeof(string),"Administrator %s has changed the weather",adminname); SendClientMessageToAll(blue,string); }
  5934. case 7: { SetWeather(44); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); format(string,sizeof(string),"Administrator %s has changed the weather",adminname); SendClientMessageToAll(blue,string); }
  5935. case 8: { SetWeather(22); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); format(string,sizeof(string),"Administrator %s has changed the weather",adminname); SendClientMessageToAll(blue,string); }
  5936. case 9: { SetWeather(11); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"SETWEATHER"); format(string,sizeof(string),"Administrator %s has changed the weather",adminname); SendClientMessageToAll(blue,string); }
  5937. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5938. }
  5939. return TogglePlayerControllable(playerid,true);
  5940. }
  5941.  
  5942. if(Current == LTuneMenu)
  5943. {
  5944. switch(row)
  5945. {
  5946. case 0: { AddVehicleComponent(GetPlayerVehicleID(playerid),1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5947. case 1: { AddVehicleComponent(GetPlayerVehicleID(playerid),1087); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5948. case 2: { AddVehicleComponent(GetPlayerVehicleID(playerid),1081); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5949. case 3: { AddVehicleComponent(GetPlayerVehicleID(playerid),1078); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5950. case 4: { AddVehicleComponent(GetPlayerVehicleID(playerid),1098); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5951. case 5: { AddVehicleComponent(GetPlayerVehicleID(playerid),1074); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5952. case 6: { AddVehicleComponent(GetPlayerVehicleID(playerid),1082); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5953. case 7: { AddVehicleComponent(GetPlayerVehicleID(playerid),1085); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5954. case 8: { AddVehicleComponent(GetPlayerVehicleID(playerid),1025); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5955. case 9: { AddVehicleComponent(GetPlayerVehicleID(playerid),1077); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5956. case 10: return ChangeMenu(playerid,Current,PaintMenu);
  5957. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5958. }
  5959. return TogglePlayerControllable(playerid,true);
  5960. }
  5961.  
  5962. if(Current == PaintMenu)
  5963. {
  5964. switch(row)
  5965. {
  5966. case 0: { ChangeVehiclePaintjob(GetPlayerVehicleID(playerid),0); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Paint Changed To Paint Job 1"); }
  5967. case 1: { ChangeVehiclePaintjob(GetPlayerVehicleID(playerid),1); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Paint Changed To Paint Job 2"); }
  5968. case 2: { ChangeVehiclePaintjob(GetPlayerVehicleID(playerid),2); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Paint Changed To Paint Job 3"); }
  5969. case 3: { ChangeVehiclePaintjob(GetPlayerVehicleID(playerid),3); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Paint Changed To Paint Job 4"); }
  5970. case 4: { ChangeVehiclePaintjob(GetPlayerVehicleID(playerid),4); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Paint Changed To Paint Job 5"); }
  5971. case 5: { ChangeVehicleColor(GetPlayerVehicleID(playerid),0,0); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Paint Colour Changed To Black"); }
  5972. case 6: { ChangeVehicleColor(GetPlayerVehicleID(playerid),1,1); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Paint Colour Changed To White"); }
  5973. case 7: { ChangeVehicleColor(GetPlayerVehicleID(playerid),79,158); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Paint Colour Changed To Black"); }
  5974. case 8: { ChangeVehicleColor(GetPlayerVehicleID(playerid),146,183); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Paint Colour Changed To Black"); }
  5975. case 9: return ChangeMenu(playerid,Current,LTuneMenu);
  5976. }
  5977. return TogglePlayerControllable(playerid,true);
  5978. }
  5979.  
  5980. if(Current == LTime)
  5981. {
  5982. new adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5983. switch(row)
  5984. {
  5985. case 0: { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,7,0); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"LTIME MENU"); format(string,sizeof(string),"Administrator %s has changed the time",adminname); SendClientMessageToAll(blue,string); }
  5986. case 1: { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,12,0); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"LTIME MENU"); format(string,sizeof(string),"Administrator %s has changed the time",adminname); SendClientMessageToAll(blue,string); }
  5987. case 2: { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,16,0); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"LTIME MENU"); format(string,sizeof(string),"Administrator %s has changed the time",adminname); SendClientMessageToAll(blue,string); }
  5988. case 3: { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,20,0); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"LTIME MENU"); format(string,sizeof(string),"Administrator %s has changed the time",adminname); SendClientMessageToAll(blue,string); }
  5989. case 4: { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i,0,0); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); CMDMessageToAdmins(playerid,"LTIME MENU"); format(string,sizeof(string),"Administrator %s has changed the time",adminname); SendClientMessageToAll(blue,string); }
  5990. case 5: return ChangeMenu(playerid,Current,LMainMenu);
  5991. }
  5992. return TogglePlayerControllable(playerid,true);
  5993. }
  5994.  
  5995. if(Current == LCars)
  5996. {
  5997. new vehid;
  5998. switch(row) {
  5999. case 0: vehid = 451;//Turismo
  6000. case 1: vehid = 568;//Bandito
  6001. case 2: vehid = 539;//Vortex
  6002. case 3: vehid = 522;//nrg
  6003. case 4: vehid = 601;//s.w.a.t
  6004. case 5: vehid = 425; //hunter
  6005. case 6: vehid = 493;//jetmax
  6006. case 7: vehid = 432;//rhino
  6007. case 8: vehid = 444; //mt
  6008. case 9: vehid = 447; //sea sparrow
  6009. case 10: return ChangeMenu(playerid,Current,LCars2);
  6010. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  6011. }
  6012. return SelectCar(playerid,vehid,Current);
  6013. }
  6014.  
  6015. if(Current == LCars2)
  6016. {
  6017. new vehid;
  6018. switch(row) {
  6019. case 0: vehid = 406;// dumper
  6020. case 1: vehid = 564; //rc tank
  6021. case 2: vehid = 441;//RC Bandit
  6022. case 3: vehid = 464;// rc baron
  6023. case 4: vehid = 501; //rc goblin
  6024. case 5: vehid = 465; //rc raider
  6025. case 6: vehid = 594; // rc cam
  6026. case 7: vehid = 449; //tram
  6027. case 8: return ChangeMenu(playerid,Current,LCars);
  6028. }
  6029. return SelectCar(playerid,vehid,Current);
  6030. }
  6031.  
  6032. return 1;
  6033. }
  6034.  
  6035. //==============================================================================
  6036.  
  6037. public OnPlayerExitedMenu(playerid)
  6038. {
  6039. new Menu:Current = GetPlayerMenu(playerid);
  6040. HideMenuForPlayer(Current,playerid);
  6041. return TogglePlayerControllable(playerid,true);
  6042. }
  6043.  
  6044. //==============================================================================
  6045.  
  6046. ChangeMenu(playerid,Menu:oldmenu,Menu:newmenu)
  6047. {
  6048. if(IsValidMenu(oldmenu)) {
  6049. HideMenuForPlayer(oldmenu,playerid);
  6050. ShowMenuForPlayer(newmenu,playerid);
  6051. }
  6052. return 1;
  6053. }
  6054.  
  6055. CloseMenu(playerid,Menu:oldmenu)
  6056. {
  6057. HideMenuForPlayer(oldmenu,playerid);
  6058. TogglePlayerControllable(playerid,1);
  6059. return 1;
  6060. }
  6061. SelectCar(playerid,vehid,Menu:menu)
  6062. {
  6063. CloseMenu(playerid,menu);
  6064. SetCameraBehindPlayer(playerid);
  6065. CarSpawner(playerid,vehid);
  6066. return 1;
  6067. }
  6068. #endif
  6069.  
  6070. //==============================================================================
  6071. forward countdown();
  6072. public countdown()
  6073. {
  6074. if(CountDown==6) GameTextForAll("~p~Starting...",1000,6);
  6075.  
  6076. CountDown--;
  6077. if(CountDown==0)
  6078. {
  6079. GameTextForAll("~g~GO~ r~!",1000,6);
  6080. CountDown = -1;
  6081. for(new i = 0; i < MAX_PLAYERS; i++) {
  6082. TogglePlayerControllable(i,true);
  6083. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  6084. }
  6085. return 0;
  6086. }
  6087. else
  6088. {
  6089. new text[7]; format(text,sizeof(text),"~w~%d",CountDown);
  6090. for(new i = 0; i < MAX_PLAYERS; i++) {
  6091. PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
  6092. TogglePlayerControllable(i,false);
  6093. }
  6094. GameTextForAll(text,1000,6);
  6095. }
  6096.  
  6097. SetTimer("countdown",1000,0);
  6098. return 0;
  6099. }
  6100.  
  6101. forward Duel(player1, player2);
  6102. public Duel(player1, player2)
  6103. {
  6104. if(cdt[player1]==6) {
  6105. GameTextForPlayer(player1,"~p~Duel Starting...",1000,6); GameTextForPlayer(player2,"~p~Duel Starting...",1000,6);
  6106. }
  6107.  
  6108. cdt[player1]--;
  6109. if(cdt[player1]==0)
  6110. {
  6111. TogglePlayerControllable(player1,1); TogglePlayerControllable(player2,1);
  6112. PlayerPlaySound(player1, 1057, 0.0, 0.0, 0.0); PlayerPlaySound(player2, 1057, 0.0, 0.0, 0.0);
  6113. GameTextForPlayer(player1,"~g~GO~ r~!",1000,6); GameTextForPlayer(player2,"~g~GO~ r~!",1000,6);
  6114. return 0;
  6115. }
  6116. else
  6117. {
  6118. new text[7]; format(text,sizeof(text),"~w~%d",cdt[player1]);
  6119. PlayerPlaySound(player1, 1056, 0.0, 0.0, 0.0); PlayerPlaySound(player2, 1056, 0.0, 0.0, 0.0);
  6120. TogglePlayerControllable(player1,0); TogglePlayerControllable(player2,0);
  6121. GameTextForPlayer(player1,text,1000,6); GameTextForPlayer(player2,text,1000,6);
  6122. }
  6123.  
  6124. SetTimerEx("Duel",1000,0,"dd", player1, player2);
  6125. return 0;
  6126. }
  6127.  
  6128. //==================== [ Jail & Freeze ]========================================
  6129.  
  6130. forward Jail1(player1);
  6131. public Jail1(player1)
  6132. {
  6133. TogglePlayerControllable(player1,false);
  6134. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6135. SetPlayerCameraPos(player1,x+10,y,z+10);SetPlayerCameraLookAt(player1,x,y,z);
  6136. SetTimerEx("Jail2",1000,0,"d",player1);
  6137. }
  6138.  
  6139. forward Jail2(player1);
  6140. public Jail2(player1)
  6141. {
  6142. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6143. SetPlayerCameraPos(player1,x+7,y,z+5); SetPlayerCameraLookAt(player1,x,y,z);
  6144. if(GetPlayerState(player1) == PLAYER_STATE_ONFOOT) SetPlayerSpecialAction(player1,SPECIAL_ACTION_HANDSUP);
  6145. GameTextForPlayer(player1,"~r~Busted By Admins",3000,3);
  6146. SetTimerEx("Jail3",1000,0,"d",player1);
  6147. }
  6148.  
  6149. forward Jail3(player1);
  6150. public Jail3(player1)
  6151. {
  6152. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6153. SetPlayerCameraPos(player1,x+3,y,z); SetPlayerCameraLookAt(player1,x,y,z);
  6154. }
  6155.  
  6156. forward JailPlayer(player1);
  6157. public JailPlayer(player1)
  6158. {
  6159. TogglePlayerControllable(player1,true);
  6160. SetPlayerPos(player1,197.6661,173.8179,1003.0234);
  6161. SetPlayerInterior(player1,3);
  6162. SetCameraBehindPlayer(player1);
  6163. JailTimer[player1] = SetTimerEx("JailRelease",PlayerInfo[player1][JailTime],0,"d",player1);
  6164. PlayerInfo[player1][Jailed] = 1;
  6165. }
  6166.  
  6167. forward JailRelease(player1);
  6168. public JailRelease(player1)
  6169. {
  6170. KillTimer( JailTimer[player1] );
  6171. PlayerInfo[player1][JailTime] = 0; PlayerInfo[player1][Jailed] = 0;
  6172. SetPlayerInterior(player1,0); SetPlayerPos(player1, 0.0, 0.0, 0.0); SpawnPlayer(player1);
  6173. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  6174. GameTextForPlayer(player1,"~g~Released ~n~From Jail",3000,3);
  6175. }
  6176.  
  6177. //------------------------------------------------------------------------------
  6178. forward UnFreezeMe(player1);
  6179. public UnFreezeMe(player1)
  6180. {
  6181. KillTimer( FreezeTimer[player1] );
  6182. TogglePlayerControllable(player1,true); PlayerInfo[player1][Frozen] = 0;
  6183. PlayerPlaySound(player1,1057,0.0,0.0,0.0); GameTextForPlayer(player1,"~g~Unfrozen",3000,3);
  6184. }
  6185.  
  6186. //==============================================================================
  6187. forward RepairCar(playerid);
  6188. public RepairCar(playerid)
  6189. {
  6190. if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid),Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]+0.5);
  6191. SetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[playerid][3]);
  6192. SetCameraBehindPlayer(playerid);
  6193. }
  6194.  
  6195. //============================ [ Timers ]=======================================
  6196.  
  6197. forward PingKick();
  6198. public PingKick()
  6199. {
  6200. if(ServerInfo[MaxPing] != 0)
  6201. {
  6202. PingPos++; if(PingPos > PING_MAX_EXCEEDS) PingPos = 0;
  6203.  
  6204. for(new i=0; i<MAX_PLAYERS; i++)
  6205. {
  6206. PlayerInfo[i][pPing][PingPos] = GetPlayerPing(i);
  6207.  
  6208. if(GetPlayerPing(i) > ServerInfo[MaxPing])
  6209. {
  6210. if(PlayerInfo[i][PingCount] == 0) PlayerInfo[i][PingTime] = TimeStamp();
  6211.  
  6212. PlayerInfo[i][PingCount]++;
  6213. if(TimeStamp() - PlayerInfo[i][PingTime] > PING_TIMELIMIT)
  6214. {
  6215. PlayerInfo[i][PingTime] = TimeStamp();
  6216. PlayerInfo[i][PingCount] = 1;
  6217. }
  6218. else if(PlayerInfo[i][PingCount] >= PING_MAX_EXCEEDS)
  6219. {
  6220. new Sum, Average, x, string[128];
  6221. while (x < PING_MAX_EXCEEDS) {
  6222. Sum += PlayerInfo[i][pPing][x];
  6223. x++;
  6224. }
  6225. Average = (Sum / PING_MAX_EXCEEDS);
  6226. format(string,sizeof(string),"%s has been kicked from the server. (Reason: High Ping (%d) | Average (%d) | Max Allowed (%d) )", PlayerName2(i), GetPlayerPing(i), Average, ServerInfo[MaxPing] );
  6227. SendClientMessageToAll(grey,string);
  6228. SaveToFile("KickLog",string);
  6229. Kick(i);
  6230. }
  6231. }
  6232. else if(GetPlayerPing(i) < 1 && ServerInfo[AntiBot] == 1)
  6233. {
  6234. PlayerInfo[i][BotPing]++;
  6235. if(PlayerInfo[i][BotPing] >= 3) BotCheck(i);
  6236. }
  6237. else
  6238. {
  6239. PlayerInfo[i][BotPing] = 0;
  6240. }
  6241. }
  6242. }
  6243.  
  6244. #if defined ANTI_MINIGUN
  6245. new weap, ammo;
  6246. for(new i = 0; i < MAX_PLAYERS; i++)
  6247. {
  6248. if(IsPlayerConnected(i) && PlayerInfo[i][Level] == 0)
  6249. {
  6250. GetPlayerWeaponData(i, 7, weap, ammo);
  6251. if(ammo > 1 && weap == 38) {
  6252. new string[128]; format(string,sizeof(string),"INFO: %s has a mingun with %d ammo", PlayerName2(i), ammo);
  6253. MessageToAdmins(COLOR_WHITE,string);
  6254. }
  6255. }
  6256. }
  6257. #endif
  6258. }
  6259.  
  6260. //==============================================================================
  6261. forward GodUpdate();
  6262. public GodUpdate()
  6263. {
  6264. for(new i = 0; i < MAX_PLAYERS; i++)
  6265. {
  6266. if(IsPlayerConnected(i) && PlayerInfo[i][God] == 1)
  6267. {
  6268. SetPlayerHealth(i,100000);
  6269. }
  6270. if(IsPlayerConnected(i) && PlayerInfo[i][GodCar] == 1 && IsPlayerInAnyVehicle(i))
  6271. {
  6272. SetVehicleHealth(GetPlayerVehicleID(i),10000);
  6273. }
  6274. }
  6275. }
  6276.  
  6277. //==========================[ Server Info ]====================================
  6278.  
  6279. forward ConnectedPlayers();
  6280. public ConnectedPlayers()
  6281. {
  6282. new Connected;
  6283. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) Connected++;
  6284. return Connected;
  6285. }
  6286.  
  6287. forward JailedPlayers();
  6288. public JailedPlayers()
  6289. {
  6290. new JailedCount;
  6291. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed] == 1) JailedCount++;
  6292. return JailedCount;
  6293. }
  6294.  
  6295. forward FrozenPlayers();
  6296. public FrozenPlayers()
  6297. {
  6298. new FrozenCount; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen] == 1) FrozenCount++;
  6299. return FrozenCount;
  6300. }
  6301.  
  6302. forward MutedPlayers();
  6303. public MutedPlayers()
  6304. {
  6305. new Count; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted] == 1) Count++;
  6306. return Count;
  6307. }
  6308.  
  6309. forward InVehCount();
  6310. public InVehCount()
  6311. {
  6312. new InVeh; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) InVeh++;
  6313. return InVeh;
  6314. }
  6315.  
  6316. forward OnBikeCount();
  6317. public OnBikeCount()
  6318. {
  6319. new BikeCount;
  6320. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  6321. new LModel = GetVehicleModel(GetPlayerVehicleID(i));
  6322. switch(LModel)
  6323. {
  6324. case 448,461,462,463,468,471,509,510,521,522,523,581,586: BikeCount++;
  6325. }
  6326. }
  6327. return BikeCount;
  6328. }
  6329.  
  6330. forward InCarCount();
  6331. public InCarCount()
  6332. {
  6333. new PInCarCount;
  6334. for(new i = 0; i < MAX_PLAYERS; i++) {
  6335. if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  6336. new LModel = GetVehicleModel(GetPlayerVehicleID(i));
  6337. switch(LModel)
  6338. {
  6339. case 448,461,462,463,468,471,509,510,521,522,523,581,586: {}
  6340. default: PInCarCount++;
  6341. }
  6342. }
  6343. }
  6344. return PInCarCount;
  6345. }
  6346.  
  6347. forward AdminCount();
  6348. public AdminCount()
  6349. {
  6350. new LAdminCount;
  6351. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] >= 1) LAdminCount++;
  6352. return LAdminCount;
  6353. }
  6354.  
  6355. forward RconAdminCount();
  6356. public RconAdminCount()
  6357. {
  6358. new rAdminCount;
  6359. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) rAdminCount++;
  6360. return rAdminCount;
  6361. }
  6362.  
  6363. //==========================[ Remote Console ]==================================
  6364.  
  6365. forward RestartGM();
  6366. public RestartGM()
  6367. {
  6368. SendRconCommand("gmx");
  6369. }
  6370.  
  6371. forward UnloadFS();
  6372. public UnloadFS()
  6373. {
  6374. SendRconCommand("unloadfs ladmin4");
  6375. }
  6376.  
  6377. forward PrintWarning(const string[]);
  6378. public PrintWarning(const string[])
  6379. {
  6380. new str[128];
  6381. print("\n\n> WARNING:\n");
  6382. format(str, sizeof(str), " The %s folder is missing from scriptfiles", string);
  6383. print(str);
  6384. print("\n Please Create This Folder And Reload the Filterscript\n\n");
  6385. }
  6386.  
  6387. //============================[ Bot Check ]=====================================
  6388. forward BotCheck(playerid);
  6389. public BotCheck(playerid)
  6390. {
  6391. if(IsPlayerConnected(playerid))
  6392. {
  6393. if(GetPlayerPing(playerid) < 1)
  6394. {
  6395. new string[128], ip[20]; GetPlayerIp(playerid,ip,sizeof(ip));
  6396. format(string,sizeof(string),"BOT: %s id:%d ip: %s ping: %d",PlayerName2(playerid),playerid,ip,GetPlayerPing(playerid));
  6397. SaveToFile("BotKickLog",string);
  6398. SaveToFile("KickLog",string);
  6399. printf("[ADMIN] Possible bot has been detected (Kicked %s ID:%d)", PlayerName2(playerid), playerid);
  6400. Kick(playerid);
  6401. }
  6402. }
  6403. }
  6404.  
  6405. //==============================================================================
  6406. forward PutAtPos(playerid);
  6407. public PutAtPos(playerid)
  6408. {
  6409. if (dUserINT(PlayerName2(playerid)).("x")!=0) {
  6410. SetPlayerPos(playerid, float(dUserINT(PlayerName2(playerid)).("x")), float(dUserINT(PlayerName2(playerid)).("y")), float(dUserINT(PlayerName2(playerid)).("z")) );
  6411. SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior")) );
  6412. }
  6413. }
  6414.  
  6415. forward PutAtDisconectPos(playerid);
  6416. public PutAtDisconectPos(playerid)
  6417. {
  6418. if (dUserINT(PlayerName2(playerid)).("x1")!=0) {
  6419. SetPlayerPos(playerid, float(dUserINT(PlayerName2(playerid)).("x1")), float(dUserINT(PlayerName2(playerid)).("y1")), float(dUserINT(PlayerName2(playerid)).("z1")) );
  6420. SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior1")) );
  6421. }
  6422. }
  6423.  
  6424. TotalGameTime(playerid, &h=0, &m=0, &s=0)
  6425. {
  6426. PlayerInfo[playerid][TotalTime] = ( (gettime() - PlayerInfo[playerid][ConnectTime]) + (PlayerInfo[playerid][hours]*60*60) + (PlayerInfo[playerid][mins]*60) + (PlayerInfo[playerid][secs]) );
  6427.  
  6428. h = floatround(PlayerInfo[playerid][TotalTime] / 3600, floatround_floor);
  6429. m = floatround(PlayerInfo[playerid][TotalTime] / 60, floatround_floor) % 60;
  6430. s = floatround(PlayerInfo[playerid][TotalTime] % 60, floatround_floor);
  6431.  
  6432. return PlayerInfo[playerid][TotalTime];
  6433. }
  6434.  
  6435. //==============================================================================
  6436. MaxAmmo(playerid)
  6437. {
  6438. new slot, weap, ammo;
  6439. for (slot = 0; slot < 14; slot++)
  6440. {
  6441. GetPlayerWeaponData(playerid, slot, weap, ammo);
  6442. if(IsValidWeapon(weap))
  6443. {
  6444. GivePlayerWeapon(playerid, weap, 99999);
  6445. }
  6446. }
  6447. return 1;
  6448. }
  6449.  
  6450. stock PlayerName2(playerid) {
  6451. new name[MAX_PLAYER_NAME];
  6452. GetPlayerName(playerid, name, sizeof(name));
  6453. return name;
  6454. }
  6455.  
  6456. stock pName(playerid)
  6457. {
  6458. new name[MAX_PLAYER_NAME];
  6459. GetPlayerName(playerid, name, sizeof(name));
  6460. return name;
  6461. }
  6462.  
  6463. stock TimeStamp()
  6464. {
  6465. new time = GetTickCount() / 1000;
  6466. return time;
  6467. }
  6468.  
  6469. stock PlayerSoundForAll(SoundID)
  6470. {
  6471. for(new i = 0; i < MAX_PLAYERS; i++) PlayerPlaySound(i, SoundID, 0.0, 0.0, 0.0);
  6472. }
  6473.  
  6474. stock IsValidWeapon(weaponid)
  6475. {
  6476. if (weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47) return 1;
  6477. return 0;
  6478. }
  6479.  
  6480. stock IsValidSkin(SkinID)
  6481. {
  6482. if((SkinID == 0)||(SkinID == 7)||(SkinID >= 9 && SkinID <= 41)||(SkinID >= 43 && SkinID <= 64)||(SkinID >= 66 && SkinID <= 73)||(SkinID >= 75 && SkinID <= 85)||(SkinID >= 87 && SkinID <= 118)||(SkinID >= 120 && SkinID <= 148)||(SkinID >= 150 && SkinID <= 207)||(SkinID >= 209 && SkinID <= 264)||(SkinID >= 274 && SkinID <= 288)||(SkinID >= 290 && SkinID <= 299)) return true;
  6483. else return false;
  6484. }
  6485.  
  6486. stock IsNumeric(string[])
  6487. {
  6488. for (new i = 0, j = strlen(string); i < j; i++)
  6489. {
  6490. if (string[i] > '9' || string[i] < '0') return 0;
  6491. }
  6492. return 1;
  6493. }
  6494.  
  6495. stock ReturnPlayerID(PlayerName[])
  6496. {
  6497. for(new i = 0; i < MAX_PLAYERS; i++)
  6498. {
  6499. if(IsPlayerConnected(i))
  6500. {
  6501. if(strfind(pName(i),PlayerName,true)!=-1) return i;
  6502. }
  6503. }
  6504. return INVALID_PLAYER_ID;
  6505. }
  6506.  
  6507. GetVehicleModelIDFromName(vname[])
  6508. {
  6509. for(new i = 0; i < 211; i++)
  6510. {
  6511. if ( strfind(VehicleNames[i], vname, true) != -1 )
  6512. return i + 400;
  6513. }
  6514. return -1;
  6515. }
  6516.  
  6517. stock GetWeaponIDFromName(WeaponName[])
  6518. {
  6519. if(strfind("molotov",WeaponName,true)!=-1) return 18;
  6520. for(new i = 0; i <= 46; i++)
  6521. {
  6522. switch(i)
  6523. {
  6524. case 0,19,20,21,44,45: continue;
  6525. default:
  6526. {
  6527. new name[32]; GetWeaponName(i,name,32);
  6528. if(strfind(name,WeaponName,true) != -1) return i;
  6529. }
  6530. }
  6531. }
  6532. return -1;
  6533. }
  6534.  
  6535. stock DisableWord(const badword[], text[])
  6536. {
  6537. for(new i=0; i<256; i++)
  6538. {
  6539. if (strfind(text[i], badword, true) == 0)
  6540. {
  6541. for(new a=0; a<256; a++)
  6542. {
  6543. if (a >= i && a < i+strlen(badword)) text[a]='*';
  6544. }
  6545. }
  6546. }
  6547. }
  6548.  
  6549. argpos(const string[], idx = 0, sep = ' ')// (by yom)
  6550. {
  6551. for(new i = idx, j = strlen(string); i < j; i++)
  6552. if (string[i] == sep && string[i+1] != sep)
  6553. return i+1;
  6554.  
  6555. return -1;
  6556. }
  6557.  
  6558. //==============================================================================
  6559. forward MessageToAdmins(color,const string[]);
  6560. public MessageToAdmins(color,const string[])
  6561. {
  6562. for(new i = 0; i < MAX_PLAYERS; i++)
  6563. {
  6564. if(IsPlayerConnected(i) == 1) if (PlayerInfo[i][Level] >= 1) SendClientMessage(i, color, string);
  6565. }
  6566. return 1;
  6567. }
  6568.  
  6569. stock CMDMessageToAdmins(playerid,command[])
  6570. {
  6571. if(ServerInfo[AdminCmdMsg] == 0) return 1;
  6572. new string[128]; GetPlayerName(playerid,string,sizeof(string));
  6573. format(string,sizeof(string),"[ADMIN] %s has used the command %s",string,command);
  6574. return MessageToAdmins(blue,string);
  6575. }
  6576.  
  6577. //==============================================================================
  6578. SavePlayer(playerid)
  6579. {
  6580. dUserSetINT(PlayerName2(playerid)).("money",GetPlayerMoney(playerid));
  6581. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  6582. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  6583. dUserSetINT(PlayerName2(playerid)).("score",GetPlayerScore(playerid));
  6584. new h, m, s;
  6585. TotalGameTime(playerid, h, m, s);
  6586.  
  6587. dUserSetINT(PlayerName2(playerid)).("hours", h);
  6588. dUserSetINT(PlayerName2(playerid)).("minutes", m);
  6589. dUserSetINT(PlayerName2(playerid)).("seconds", s);
  6590.  
  6591. new Float:x,Float:y,Float:z, interior;
  6592. GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
  6593. dUserSetINT(PlayerName2(playerid)).("x1",floatround(x));
  6594. dUserSetINT(PlayerName2(playerid)).("y1",floatround(y));
  6595. dUserSetINT(PlayerName2(playerid)).("z1",floatround(z));
  6596. dUserSetINT(PlayerName2(playerid)).("interior1",interior);
  6597.  
  6598. new weap1, ammo1, weap2, ammo2, weap3, ammo3, weap4, ammo4, weap5, ammo5, weap6, ammo6;
  6599. GetPlayerWeaponData(playerid,2,weap1,ammo1);// hand gun
  6600. GetPlayerWeaponData(playerid,3,weap2,ammo2);//shotgun
  6601. GetPlayerWeaponData(playerid,4,weap3,ammo3);// SMG
  6602. GetPlayerWeaponData(playerid,5,weap4,ammo4);// AK47 / M4
  6603. GetPlayerWeaponData(playerid,6,weap5,ammo5);// rifle
  6604. GetPlayerWeaponData(playerid,7,weap6,ammo6);// rocket launcher
  6605. dUserSetINT(PlayerName2(playerid)).("weap1",weap1); dUserSetINT(PlayerName2(playerid)).("weap1ammo",ammo1);
  6606. dUserSetINT(PlayerName2(playerid)).("weap2",weap2); dUserSetINT(PlayerName2(playerid)).("weap2ammo",ammo2);
  6607. dUserSetINT(PlayerName2(playerid)).("weap3",weap3); dUserSetINT(PlayerName2(playerid)).("weap3ammo",ammo3);
  6608. dUserSetINT(PlayerName2(playerid)).("weap4",weap4); dUserSetINT(PlayerName2(playerid)).("weap4ammo",ammo4);
  6609. dUserSetINT(PlayerName2(playerid)).("weap5",weap5); dUserSetINT(PlayerName2(playerid)).("weap5ammo",ammo5);
  6610. dUserSetINT(PlayerName2(playerid)).("weap6",weap6); dUserSetINT(PlayerName2(playerid)).("weap6ammo",ammo6);
  6611.  
  6612. new Float:health; GetPlayerHealth(playerid, Float:health);
  6613. new Float:armour; GetPlayerArmour(playerid, Float:armour);
  6614. new year,month,day; getdate(year, month, day);
  6615. new strdate[20]; format(strdate, sizeof(strdate), "%d.%d.%d",day,month,year);
  6616. new file[256]; format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  6617.  
  6618. dUserSetINT(PlayerName2(playerid)).("health",floatround(health));
  6619. dUserSetINT(PlayerName2(playerid)).("armour",floatround(armour));
  6620. dini_Set(file,"LastOn",strdate);
  6621. dUserSetINT(PlayerName2(playerid)).("loggedin",0);
  6622. dUserSetINT(PlayerName2(playerid)).("TimesOnServer",(dUserINT(PlayerName2(playerid)).("TimesOnServer"))+1);
  6623. }
  6624.  
  6625. //==============================================================================
  6626. #if defined USE_MENUS
  6627. DestroyAllMenus()
  6628. {
  6629. DestroyMenu(LVehicles); DestroyMenu(twodoor); DestroyMenu(fourdoor); DestroyMenu(fastcar); DestroyMenu(Othercars);
  6630. DestroyMenu(bikes); DestroyMenu(boats); DestroyMenu(planes); DestroyMenu(helicopters ); DestroyMenu(LTime);
  6631. DestroyMenu(XWeapons); DestroyMenu(XWeaponsBig); DestroyMenu(XWeaponsSmall); DestroyMenu(XWeaponsMore);
  6632. DestroyMenu(LWeather); DestroyMenu(LTuneMenu); DestroyMenu(PaintMenu); DestroyMenu(LCars); DestroyMenu(LCars2);
  6633. DestroyMenu(LTele); DestroyMenu(LasVenturasMenu); DestroyMenu(LosSantosMenu); DestroyMenu(SanFierroMenu);
  6634. DestroyMenu(LMainMenu); DestroyMenu(DesertMenu); DestroyMenu(FlintMenu); DestroyMenu(MountChiliadMenu); DestroyMenu(InteriorsMenu);
  6635. DestroyMenu(AdminEnable); DestroyMenu(AdminDisable);
  6636. }
  6637. #endif
  6638.  
  6639. //==============================================================================
  6640. #if defined DISPLAY_CONFIG
  6641. stock ConfigInConsole()
  6642. {
  6643. print(" ________ Configuration ___________\n");
  6644. print(" __________ Chat & Messages ______");
  6645. if(ServerInfo[AntiSwear] == 0) print(" Anti Swear: Disabled "); else print(" Anti Swear: Enabled ");
  6646. if(ServerInfo[AntiSpam] == 0) print(" Anti Spam: Disabled "); else print(" Anti Spam: Enabled ");
  6647. if(ServerInfo[ReadCmds] == 0) print(" Read Cmds: Disabled "); else print(" Read Cmds: Enabled ");
  6648. if(ServerInfo[ReadPMs] == 0) print(" Read PMs: Disabled "); else print(" Read PMs: Enabled ");
  6649. if(ServerInfo[ConnectMessages] == 0) print(" Connect Messages: Disabled "); else print(" Connect Messages: Enabled ");
  6650. if(ServerInfo[AdminCmdMsg] == 0) print(" Admin Cmd Messages: Disabled "); else print(" Admin Cmd Messages: Enabled ");
  6651. if(ServerInfo[ReadPMs] == 0) print(" Anti capital letters: Disabled \n"); else print(" Anti capital letters: Enabled \n");
  6652. print(" __________ Skins ________________");
  6653. if(ServerInfo[AdminOnlySkins] == 0) print(" AdminOnlySkins: Disabled "); else print(" AdminOnlySkins: Enabled ");
  6654. printf(" Admin Skin 1 is: %d", ServerInfo[AdminSkin] );
  6655. printf(" Admin Skin 2 is: %d\n", ServerInfo[AdminSkin2] );
  6656. print(" ________ Server Protection ______");
  6657. if(ServerInfo[AntiBot] == 0) print(" Anti Bot: Disabled "); else print(" Anti Bot: Enabled ");
  6658. if(ServerInfo[NameKick] == 0) print(" Bad Name Kick: Disabled\n"); else print(" Bad Name Kick: Enabled\n");
  6659. print(" __________ Ping Control _________");
  6660. if(ServerInfo[MaxPing] == 0) print(" Ping Control: Disabled"); else print(" Ping Control: Enabled");
  6661. printf(" Max Ping: %d\n", ServerInfo[MaxPing] );
  6662. print(" __________ Players ______________");
  6663. if(ServerInfo[GiveWeap] == 0) print(" Save/Give Weaps: Disabled"); else print(" Save/Give Weaps: Enabled");
  6664. if(ServerInfo[GiveMoney] == 0) print(" Save/Give Money: Disabled\n"); else print(" Save/Give Money: Enabled\n");
  6665. print(" __________ Other ________________");
  6666. printf(" Max Admin Level: %d", ServerInfo[MaxAdminLevel] );
  6667. if(ServerInfo[Locked] == 0) print(" Server Locked: No"); else print(" Server Locked: Yes");
  6668. if(ServerInfo[AutoLogin] == 0) print(" Auto Login: Disabled\n"); else print(" Auto Login: Enabled\n");
  6669. }
  6670. #endif
  6671.  
  6672. //=====================[ Configuration ] =======================================
  6673. stock UpdateConfig()
  6674. {
  6675. new file[256], File:file2, string[100]; format(file,sizeof(file),"ladmin/config/Config.ini");
  6676. ForbiddenWordCount = 0;
  6677. BadNameCount = 0;
  6678. BadPartNameCount = 0;
  6679.  
  6680. if(!dini_Exists("ladmin/config/aka.txt")) dini_Create("ladmin/config/aka.txt");
  6681.  
  6682. if(!dini_Exists(file))
  6683. {
  6684. dini_Create(file);
  6685. print("\n >Configuration File Successfully Created");
  6686. }
  6687.  
  6688. if(!dini_Isset(file,"MaxPing")) dini_IntSet(file,"MaxPing",1200);
  6689. if(!dini_Isset(file,"ReadPms")) dini_IntSet(file,"ReadPMs",1);
  6690. if(!dini_Isset(file,"ReadCmds")) dini_IntSet(file,"ReadCmds",1);
  6691. if(!dini_Isset(file,"MaxAdminLevel")) dini_IntSet(file,"MaxAdminLevel",5);
  6692. if(!dini_Isset(file,"AdminOnlySkins")) dini_IntSet(file,"AdminOnlySkins",0);
  6693. if(!dini_Isset(file,"AdminSkin")) dini_IntSet(file,"AdminSkin",217);
  6694. if(!dini_Isset(file,"AdminSkin2")) dini_IntSet(file,"AdminSkin2",214);
  6695. if(!dini_Isset(file,"AntiBot")) dini_IntSet(file,"AntiBot",1);
  6696. if(!dini_Isset(file,"AntiSpam")) dini_IntSet(file,"AntiSpam",1);
  6697. if(!dini_Isset(file,"AntiSwear")) dini_IntSet(file,"AntiSwear",1);
  6698. if(!dini_Isset(file,"NameKick")) dini_IntSet(file,"NameKick",1);
  6699. if(!dini_Isset(file,"PartNameKick")) dini_IntSet(file,"PartNameKick",1);
  6700. if(!dini_Isset(file,"NoCaps")) dini_IntSet(file,"NoCaps",0);
  6701. if(!dini_Isset(file,"Locked")) dini_IntSet(file,"Locked",0);
  6702. if(!dini_Isset(file,"SaveWeap")) dini_IntSet(file,"SaveWeap",1);
  6703. if(!dini_Isset(file,"SaveMoney")) dini_IntSet(file,"SaveMoney",1);
  6704. if(!dini_Isset(file,"ConnectMessages")) dini_IntSet(file,"ConnectMessages",1);
  6705. if(!dini_Isset(file,"AdminCmdMessages")) dini_IntSet(file,"AdminCmdMessages",1);
  6706. if(!dini_Isset(file,"AutoLogin")) dini_IntSet(file,"AutoLogin",1);
  6707. if(!dini_Isset(file,"MaxMuteWarnings")) dini_IntSet(file,"MaxMuteWarnings",4);
  6708. if(!dini_Isset(file,"MustLogin")) dini_IntSet(file,"MustLogin",1);
  6709. if(!dini_Isset(file,"MustRegister")) dini_IntSet(file,"MustRegister",1);
  6710. if(!dini_Isset(file,"SaveScore")) dini_IntSet(file,"SaveScore",1);
  6711.  
  6712. if(dini_Exists(file))
  6713. {
  6714. ServerInfo[MaxPing] = dini_Int(file,"MaxPing");
  6715. ServerInfo[ReadPMs] = dini_Int(file,"ReadPMs");
  6716. ServerInfo[ReadCmds] = dini_Int(file,"ReadCmds");
  6717. ServerInfo[MaxAdminLevel] = dini_Int(file,"MaxAdminLevel");
  6718. ServerInfo[AdminOnlySkins] = dini_Int(file,"AdminOnlySkins");
  6719. ServerInfo[AdminSkin] = dini_Int(file,"AdminSkin");
  6720. ServerInfo[AdminSkin2] = dini_Int(file,"AdminSkin2");
  6721. ServerInfo[AntiBot] = dini_Int(file,"AntiBot");
  6722. ServerInfo[AntiSpam] = dini_Int(file,"AntiSpam");
  6723. ServerInfo[AntiSwear] = dini_Int(file,"AntiSwear");
  6724. ServerInfo[NameKick] = dini_Int(file,"NameKick");
  6725. ServerInfo[PartNameKick] = dini_Int(file,"PartNameKick");
  6726. ServerInfo[NoCaps] = dini_Int(file,"NoCaps");
  6727. ServerInfo[Locked] = dini_Int(file,"Locked");
  6728. ServerInfo[GiveWeap] = dini_Int(file,"SaveWeap");
  6729. ServerInfo[GiveMoney] = dini_Int(file,"SaveMoney");
  6730. ServerInfo[ConnectMessages] = dini_Int(file,"ConnectMessages");
  6731. ServerInfo[AdminCmdMsg] = dini_Int(file,"AdminCmdMessages");
  6732. ServerInfo[AutoLogin] = dini_Int(file,"AutoLogin");
  6733. ServerInfo[MaxMuteWarnings] = dini_Int(file,"MaxMuteWarnings");
  6734. ServerInfo[MustLogin] = dini_Int(file,"MustLogin");
  6735. ServerInfo[MustRegister] = dini_Int(file,"MustRegister");
  6736. ServerInfo[SetScore] = dini_Int(file,"SaveScore");
  6737. print("\n -Configuration Settings Loaded");
  6738. }
  6739.  
  6740. //forbidden names
  6741. if((file2 = fopen("ladmin/config/ForbiddenNames.cfg",io_read)))
  6742. {
  6743. while(fread(file2,string))
  6744. {
  6745. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6746. BadNames[BadNameCount] = string;
  6747. BadNameCount++;
  6748. }
  6749. fclose(file2); printf(" -%d Forbidden Names Loaded", BadNameCount);
  6750. }
  6751.  
  6752. //forbidden part of names
  6753. if((file2 = fopen("ladmin/config/ForbiddenPartNames.cfg",io_read)))
  6754. {
  6755. while(fread(file2,string))
  6756. {
  6757. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6758. BadPartNames[BadPartNameCount] = string;
  6759. BadPartNameCount++;
  6760. }
  6761. fclose(file2); printf(" -%d Forbidden Tags Loaded", BadPartNameCount);
  6762. }
  6763.  
  6764. //forbidden words
  6765. if((file2 = fopen("ladmin/config/ForbiddenWords.cfg",io_read)))
  6766. {
  6767. while(fread(file2,string))
  6768. {
  6769. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6770. ForbiddenWords[ForbiddenWordCount] = string;
  6771. ForbiddenWordCount++;
  6772. }
  6773. fclose(file2); printf(" -%d Forbidden Words Loaded", ForbiddenWordCount);
  6774. }
  6775. }
  6776. //=====================[ SAVING DATA ] =========================================
  6777.  
  6778. forward SaveToFile(filename[],text[]);
  6779. public SaveToFile(filename[],text[])
  6780. {
  6781. #if defined SAVE_LOGS
  6782. new File:LAdminfile, filepath[256], string[256], year,month,day, hour,minute,second;
  6783. getdate(year,month,day); gettime(hour,minute,second);
  6784.  
  6785. format(filepath,sizeof(filepath),"ladmin/logs/%s.txt",filename);
  6786. LAdminfile = fopen(filepath,io_append);
  6787. format(string,sizeof(string),"[%d.%d.%d %d:%d:%d] %s\r\n",day,month,year,hour,minute,second,text);
  6788. fwrite(LAdminfile,string);
  6789. fclose(LAdminfile);
  6790.  
  6791. }
  6792. #if defined SAVE_SCORE
  6793. new file:LAdminfile, filepath[256], string[256], Score;
  6794. getscore(Score);
  6795. format(filepath,sizeof(filepath,"ladmin/users/Score/%s.txt",filename);
  6796. LAdminfile = fopen(filepath);
  6797. format(string,sizeof(string),"[%d] %s\r\n"Score,text);
  6798. fwrite(LAdminfile,string);
  6799. fclose(LAdminfile);
  6800. #endif
  6801.  
  6802. return 1;
  6803. }
  6804. //============================[ EOF ]===========================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement