Advertisement
Guest User

Untitled

a guest
Dec 17th, 2011
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 345.53 KB | None | 0 0
  1. #include <a_samp>
  2. #include <lethaldudb2>
  3.  
  4. #pragma dynamic 145000
  5.  
  6. /*
  7. |===============================================|
  8. | --== LethaL Adminscript ==-- |
  9. | -== Version 4.2 ==-- |
  10. | ladmin4v2.pwn |
  11. |===============================================|
  12. */
  13.  
  14. //-----------------------------------------------------------------------------------//
  15.  
  16. #define USE_MENUS // Comment to remove all menus. Uncomment to enable menus
  17. //#define DISPLAY_CONFIG // Displays configuration in console window on filterscript load
  18. #define SAVE_LOGS // Comment if your server runs linux (logs wont be saved)
  19. #define ENABLE_SPEC // Comment if you're using a spectate system already
  20. #define USE_STATS // Comment to disable /stats
  21. #define ANTI_MINIGUN // Displays who has a minigun
  22. //#define USE_AREGISTER // Changes /register, /login etc to /aregister, /alogin etc
  23. //#define HIDE_ADMINS // Displays number of admins online instead of level and names
  24.  
  25. //-----------------------------------------------------------------------------------//
  26.  
  27. #define MAX_WARNINGS 3 // /warn command
  28.  
  29. #define MAX_REPORTS 7
  30. #define MAX_CHAT_LINES 7
  31.  
  32. #define SPAM_MAX_MSGS 5
  33. #define SPAM_TIMELIMIT 8 // SECONDS
  34.  
  35. #define PING_MAX_EXCEEDS 4
  36. #define PING_TIMELIMIT 60 // SECONDS
  37.  
  38. #define MAX_FAIL_LOGINS 4
  39.  
  40. //-=Main colours=-
  41. #define blue 0x375FFFFF
  42. #define red 0xFF0000AA
  43. #define green 0x33FF33AA
  44. #define yellow 0xFFFF00AA
  45. #define grey 0xC0C0C0AA
  46. #define blue1 0x2641FEAA
  47. #define lightblue 0x33CCFFAA
  48. #define orange 0xFF9900AA
  49. #define black 0x2C2727AA
  50. #define COLOR_GREEN 0x33AA33AA
  51. #define COLOR_PINK 0xFF66FFAA
  52. #define COLOR_BLUE 0x0000BBAA
  53. #define COLOR_PURPLE 0x800080AA
  54. #define COLOR_BLACK 0x000000AA
  55. #define COLOR_WHITE 0xFFFFFFAA
  56. #define COLOR_GREEN1 0x33AA33AA
  57. #define COLOR_BROWN 0xA52A2AAA
  58.  
  59. // DCMD
  60. #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
  61.  
  62. // Caps
  63. #define UpperToLower(%1) for ( new ToLowerChar; ToLowerChar < strlen( %1 ); ToLowerChar ++ ) if ( %1[ ToLowerChar ]> 64 && %1[ ToLowerChar ] < 91 ) %1[ ToLowerChar ] += 32
  64.  
  65. // Spec
  66. #define ADMIN_SPEC_TYPE_NONE 0
  67. #define ADMIN_SPEC_TYPE_PLAYER 1
  68. #define ADMIN_SPEC_TYPE_VEHICLE 2
  69.  
  70. // Enums
  71. enum PlayerData
  72. {
  73. Registered,
  74. LoggedIn,
  75. Level,
  76. Muted,
  77. Caps,
  78. Jailed,
  79. JailTime,
  80. Frozen,
  81. FreezeTime,
  82. Kills,
  83. Deaths,
  84. hours,
  85. mins,
  86. secs,
  87. TotalTime,
  88. ConnectTime,
  89. MuteWarnings,
  90. Warnings,
  91. Spawned,
  92. TimesSpawned,
  93. God,
  94. GodCar,
  95. DoorsLocked,
  96. SpamCount,
  97. SpamTime,
  98. PingCount,
  99. PingTime,
  100. BotPing,
  101. pPing[PING_MAX_EXCEEDS],
  102. blip,
  103. blipS,
  104. pColour,
  105. pCar,
  106. SpecID,
  107. SpecType,
  108. bool:AllowedIn,
  109. FailLogin,
  110. };
  111. new PlayerInfo[MAX_PLAYERS][PlayerData];
  112.  
  113. enum ServerData
  114. {
  115. MaxPing,
  116. ReadPMs,
  117. ReadCmds,
  118. MaxAdminLevel,
  119. AdminOnlySkins,
  120. AdminSkin,
  121. AdminSkin2,
  122. NameKick,
  123. PartNameKick,
  124. AntiBot,
  125. AntiSpam,
  126. AntiSwear,
  127. NoCaps,
  128. Locked,
  129. Password[128],
  130. GiveWeap,
  131. GiveMoney,
  132. ConnectMessages,
  133. AdminCmdMsg,
  134. AutoLogin,
  135. MaxMuteWarnings,
  136. DisableChat,
  137. MustLogin,
  138. MustRegister,
  139. };
  140. new ServerInfo[ServerData];
  141.  
  142. new Float:Pos[MAX_PLAYERS][4];
  143.  
  144. // rcon
  145. new Chat[MAX_CHAT_LINES][128];
  146.  
  147. //Timers
  148. new PingTimer;
  149. new GodTimer;
  150. new BlipTimer[MAX_PLAYERS];
  151. new JailTimer[MAX_PLAYERS];
  152. new FreezeTimer[MAX_PLAYERS];
  153. new LockKickTimer[MAX_PLAYERS];
  154.  
  155. //Duel
  156. new CountDown = -1, cdt[MAX_PLAYERS] = -1;
  157. new InDuel[MAX_PLAYERS];
  158.  
  159. // Menus
  160. #if defined USE_MENUS
  161. new Menu:LMainMenu, Menu:AdminEnable, Menu:AdminDisable,
  162. Menu:LVehicles, Menu:twodoor, Menu:fourdoor, Menu:fastcar, Menu:Othercars,
  163. Menu:bikes, Menu:boats, Menu:planes, Menu:helicopters,
  164. Menu:XWeapons, Menu:XWeaponsBig, Menu:XWeaponsSmall, Menu:XWeaponsMore,
  165. Menu:LWeather,Menu:LTime,
  166. Menu:LTuneMenu, Menu:PaintMenu, Menu:LCars, Menu:LCars2,
  167. Menu:LTele, Menu:LasVenturasMenu, Menu:LosSantosMenu, Menu:SanFierroMenu,
  168. Menu:DesertMenu, Menu:FlintMenu, Menu:MountChiliadMenu, Menu:InteriorsMenu;
  169. #endif
  170.  
  171. // Forbidden Names & Words
  172. new BadNames[100][100], // Whole Names
  173. BadNameCount = 0,
  174. BadPartNames[100][100], // Part of name
  175. BadPartNameCount = 0,
  176. ForbiddenWords[100][100],
  177. ForbiddenWordCount = 0;
  178.  
  179. // Report
  180. new Reports[MAX_REPORTS][128];
  181.  
  182. // Ping Kick
  183. new PingPos;
  184.  
  185. new VehicleNames[212][] =
  186. {
  187. "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  188. "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
  189. "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  190. "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  191. "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  192. "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
  193. "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
  194. "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
  195. "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
  196. "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  197. "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
  198. "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
  199. "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
  200. "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
  201. "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  202. "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  203. "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  204. };
  205.  
  206. //==============================================================================
  207.  
  208. public OnFilterScriptInit()
  209. {
  210. print("\n________________________________________");
  211. print("________________________________________");
  212. print(" LAdmin Loading... ");
  213. print("________________________________________");
  214.  
  215. if(!fexist("ladmin/")) {
  216. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  217. SetTimerEx("PrintWarning",2500,0,"s","ladmin");
  218. return 1;
  219. }
  220. if(!fexist("ladmin/logs/")) {
  221. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  222. SetTimerEx("PrintWarning",2500,0,"s","ladmin/logs");
  223. return 1;
  224. }
  225. if(!fexist("ladmin/config/")) {
  226. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  227. SetTimerEx("PrintWarning",2500,0,"s","ladmin/config");
  228. return 1;
  229. }
  230. if(!fexist("ladmin/users/")) {
  231. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  232. SetTimerEx("PrintWarning",2500,0,"s","ladmin/users");
  233. return 1;
  234. }
  235.  
  236. UpdateConfig();
  237.  
  238. #if defined DISPLAY_CONFIG
  239. ConfigInConsole();
  240. #endif
  241.  
  242. //===================== [ The Menus ]===========================//
  243. #if defined USE_MENUS
  244.  
  245. LMainMenu = CreateMenu("Main Menu", 2, 55.0, 200.0, 100.0, 80.0);
  246. SetMenuColumnHeader(LMainMenu, 0, "Choose an option below");
  247. AddMenuItem(LMainMenu, 0, "Enable Options");
  248. AddMenuItem(LMainMenu, 0, "Disable Options");
  249. AddMenuItem(LMainMenu, 0, "Server Weather");
  250. AddMenuItem(LMainMenu, 0, "Server Time");
  251. AddMenuItem(LMainMenu, 0, "All Vehicles");
  252. AddMenuItem(LMainMenu, 0, "Admin Cars");
  253. AddMenuItem(LMainMenu, 0, "Tuning Menu");
  254. AddMenuItem(LMainMenu, 0, "Choose Weapon");
  255. AddMenuItem(LMainMenu, 0, "Teleports");
  256. AddMenuItem(LMainMenu, 0, "Exit Menu"); //
  257.  
  258. AdminEnable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
  259. SetMenuColumnHeader(AdminEnable, 0, "Enable");
  260. AddMenuItem(AdminEnable, 0, "Anti Swear");
  261. AddMenuItem(AdminEnable, 0, "Bad Name Kick");
  262. AddMenuItem(AdminEnable, 0, "Anti Spam");
  263. AddMenuItem(AdminEnable, 0, "Ping Kick");
  264. AddMenuItem(AdminEnable, 0, "Read CMD's");
  265. AddMenuItem(AdminEnable, 0, "Read PM's");
  266. AddMenuItem(AdminEnable, 0, "Capital Letters");
  267. AddMenuItem(AdminEnable, 0, "Connect Messages");
  268. AddMenuItem(AdminEnable, 0, "Admin CMD Messages");
  269. AddMenuItem(AdminEnable, 0, "Auto Login");
  270. AddMenuItem(AdminEnable, 0, "Return");
  271.  
  272. AdminDisable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
  273. SetMenuColumnHeader(AdminDisable, 0, "Disable");
  274. AddMenuItem(AdminDisable, 0, "Anti Swear");
  275. AddMenuItem(AdminDisable, 0, "Bad Name Kick");
  276. AddMenuItem(AdminDisable, 0, "Anti Spam");
  277. AddMenuItem(AdminDisable, 0, "Ping Kick");
  278. AddMenuItem(AdminDisable, 0, "Read CMD's");
  279. AddMenuItem(AdminDisable, 0, "Read PM's");
  280. AddMenuItem(AdminDisable, 0, "Capital Letters");
  281. AddMenuItem(AdminDisable, 0, "Connect Messages");
  282. AddMenuItem(AdminDisable, 0, "Admin CMD Messages");
  283. AddMenuItem(AdminDisable, 0, "Auto Login");
  284. AddMenuItem(AdminDisable, 0, "Return");
  285.  
  286. LWeather = CreateMenu("~b~Weather ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  287. SetMenuColumnHeader(LWeather, 0, "Set Weather");
  288. AddMenuItem(LWeather, 0, "Clear Blue Sky");
  289. AddMenuItem(LWeather, 0, "Sand Storm");
  290. AddMenuItem(LWeather, 0, "Thunderstorm");
  291. AddMenuItem(LWeather, 0, "Foggy");
  292. AddMenuItem(LWeather, 0, "Cloudy");
  293. AddMenuItem(LWeather, 0, "High Tide");
  294. AddMenuItem(LWeather, 0, "Purple Sky");
  295. AddMenuItem(LWeather, 0, "Black/White Sky");
  296. AddMenuItem(LWeather, 0, "Dark, Green Sky");
  297. AddMenuItem(LWeather, 0, "Heatwave");
  298. AddMenuItem(LWeather,0,"Return");
  299.  
  300. LTime = CreateMenu("~b~Time ~g~ Menu", 2, 55.0, 200.0, 100.0, 80.0);
  301. SetMenuColumnHeader(LTime, 0, "Set Time");
  302. AddMenuItem(LTime, 0, "Morning");
  303. AddMenuItem(LTime, 0, "Mid day");
  304. AddMenuItem(LTime, 0, "Afternoon");
  305. AddMenuItem(LTime, 0, "Evening");
  306. AddMenuItem(LTime, 0, "Midnight");
  307. AddMenuItem(LTime, 0, "Return");
  308.  
  309. LCars = CreateMenu("~b~LethaL ~g~Cars", 2, 55.0, 150.0, 100.0, 80.0);
  310. SetMenuColumnHeader(LCars, 0, "Choose a car");
  311. AddMenuItem(LCars, 0, "Turismo");
  312. AddMenuItem(LCars, 0, "Bandito");
  313. AddMenuItem(LCars, 0, "Vortex");
  314. AddMenuItem(LCars, 0, "NRG");
  315. AddMenuItem(LCars, 0, "S.W.A.T");
  316. AddMenuItem(LCars, 0, "Hunter");
  317. AddMenuItem(LCars, 0, "Jetmax (boat)");
  318. AddMenuItem(LCars, 0, "Rhino");
  319. AddMenuItem(LCars, 0, "Monster Truck");
  320. AddMenuItem(LCars, 0, "Sea Sparrow");
  321. AddMenuItem(LCars, 0, "More");
  322. AddMenuItem(LCars, 0, "Return");
  323.  
  324. LCars2 = CreateMenu("~b~LethaL ~g~Cars", 2, 55.0, 150.0, 100.0, 80.0);
  325. SetMenuColumnHeader(LCars2, 0, "Choose a car");
  326. AddMenuItem(LCars2, 0, "Dumper");
  327. AddMenuItem(LCars2, 0, "RC Tank");
  328. AddMenuItem(LCars2, 0, "RC Bandit");
  329. AddMenuItem(LCars2, 0, "RC Baron");
  330. AddMenuItem(LCars2, 0, "RC Goblin");
  331. AddMenuItem(LCars2, 0, "RC Raider");
  332. AddMenuItem(LCars2, 0, "RC Cam");
  333. AddMenuItem(LCars2, 0, "Tram");
  334. AddMenuItem(LCars2, 0, "Return");
  335.  
  336. LTuneMenu = CreateMenu("~b~Tuning ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  337. SetMenuColumnHeader(LTuneMenu, 0, "Add to car");
  338. AddMenuItem(LTuneMenu,0,"Nitros/NOS");
  339. AddMenuItem(LTuneMenu,0,"Hydraulics");
  340. AddMenuItem(LTuneMenu,0,"Wire Wheels");
  341. AddMenuItem(LTuneMenu,0,"Twist Wheels");
  342. AddMenuItem(LTuneMenu,0,"Access Wheels");
  343. AddMenuItem(LTuneMenu,0,"Mega Wheels");
  344. AddMenuItem(LTuneMenu,0,"Import Wheels");
  345. AddMenuItem(LTuneMenu,0,"Atomic Wheels");
  346. AddMenuItem(LTuneMenu,0,"Offroad Wheels");
  347. AddMenuItem(LTuneMenu,0,"Classic Wheels");
  348. AddMenuItem(LTuneMenu,0,"Paint Jobs");
  349. AddMenuItem(LTuneMenu,0,"Return");
  350.  
  351. PaintMenu = CreateMenu("~b~Paint Job ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  352. SetMenuColumnHeader(PaintMenu, 0, "Choose paint");
  353. AddMenuItem(PaintMenu,0,"Paint Job 1");
  354. AddMenuItem(PaintMenu,0,"Paint Job 2");
  355. AddMenuItem(PaintMenu,0,"Paint Job 3");
  356. AddMenuItem(PaintMenu,0,"Paint Job 4");
  357. AddMenuItem(PaintMenu,0,"Paint Job 5");
  358. AddMenuItem(PaintMenu,0,"Black");
  359. AddMenuItem(PaintMenu,0,"White");
  360. AddMenuItem(PaintMenu,0,"Blue");
  361. AddMenuItem(PaintMenu,0,"Pink");
  362. AddMenuItem(PaintMenu,0,"Return");
  363.  
  364. LVehicles = CreateMenu("~b~Vehicles ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  365. SetMenuColumnHeader(LVehicles, 0, "Choose a car");
  366. AddMenuItem(LVehicles,0,"2-door Cars");
  367. AddMenuItem(LVehicles,0,"4-door Cars");
  368. AddMenuItem(LVehicles,0,"Fast Cars");
  369. AddMenuItem(LVehicles,0,"Other Vehicles");
  370. AddMenuItem(LVehicles,0,"Bikes");
  371. AddMenuItem(LVehicles,0,"Boats");
  372. AddMenuItem(LVehicles,0,"Planes");
  373. AddMenuItem(LVehicles,0,"Helicopters");
  374. AddMenuItem(LVehicles,0,"Return");
  375.  
  376. twodoor = CreateMenu("~b~2-door Cars",2, 55.0, 200.0, 100.0, 80.0);
  377. SetMenuColumnHeader(twodoor, 0, "Choose a car");
  378. AddMenuItem(twodoor,0,"Feltzer"); //533
  379. AddMenuItem(twodoor,0,"Stallion"); //139
  380. AddMenuItem(twodoor,0,"Windsor"); //555
  381. AddMenuItem(twodoor,0,"Bobcat"); //422
  382. AddMenuItem(twodoor,0,"Yosemite"); //554
  383. AddMenuItem(twodoor,0,"Broadway"); //575
  384. AddMenuItem(twodoor,0,"Blade"); //536
  385. AddMenuItem(twodoor,0,"Slamvan"); //535
  386. AddMenuItem(twodoor,0,"Tornado"); //576
  387. AddMenuItem(twodoor,0,"Bravura"); //401
  388. AddMenuItem(twodoor,0,"Fortune"); //526
  389. AddMenuItem(twodoor,0,"Return");
  390.  
  391. fourdoor = CreateMenu("~b~4-door Cars",2, 55.0, 200.0, 100.0, 80.0);
  392. SetMenuColumnHeader(fourdoor, 0, "Choose a car");
  393. AddMenuItem(fourdoor,0,"Perenniel"); //404
  394. AddMenuItem(fourdoor,0,"Tahoma"); //566
  395. AddMenuItem(fourdoor,0,"Voodoo"); //412
  396. AddMenuItem(fourdoor,0,"Admiral"); //445
  397. AddMenuItem(fourdoor,0,"Elegant"); //507
  398. AddMenuItem(fourdoor,0,"Glendale"); //466
  399. AddMenuItem(fourdoor,0,"Intruder"); //546
  400. AddMenuItem(fourdoor,0,"Merit"); //551
  401. AddMenuItem(fourdoor,0,"Oceanic"); //467
  402. AddMenuItem(fourdoor,0,"Premier"); //426
  403. AddMenuItem(fourdoor,0,"Sentinel"); //405
  404. AddMenuItem(fourdoor,0,"Return");
  405.  
  406. fastcar = CreateMenu("~b~Fast Cars",2, 55.0, 200.0, 100.0, 80.0);
  407. SetMenuColumnHeader(fastcar, 0, "Choose a car");
  408. AddMenuItem(fastcar,0,"Comet"); //480
  409. AddMenuItem(fastcar,0,"Buffalo"); //402
  410. AddMenuItem(fastcar,0,"Cheetah"); //415
  411. AddMenuItem(fastcar,0,"Euros"); //587
  412. AddMenuItem(fastcar,0,"Hotring Racer"); //494
  413. AddMenuItem(fastcar,0,"Infernus"); //411
  414. AddMenuItem(fastcar,0,"Phoenix"); //603
  415. AddMenuItem(fastcar,0,"Super GT"); //506
  416. AddMenuItem(fastcar,0,"Turismo"); //451
  417. AddMenuItem(fastcar,0,"ZR-350"); //477
  418. AddMenuItem(fastcar,0,"Bullet"); //541
  419. AddMenuItem(fastcar,0,"Return");
  420.  
  421. Othercars = CreateMenu("~b~Other Vehicles",2, 55.0, 200.0, 100.0, 80.0);
  422. SetMenuColumnHeader(Othercars, 0, "Choose a car?");
  423. AddMenuItem(Othercars,0,"Monster Truck"); //556
  424. AddMenuItem(Othercars,0,"Trashmaster"); //408
  425. AddMenuItem(Othercars,0,"Bus"); //431
  426. AddMenuItem(Othercars,0,"Coach"); //437
  427. AddMenuItem(Othercars,0,"Enforcer"); //427
  428. AddMenuItem(Othercars,0,"Rhino (Tank)"); //432
  429. AddMenuItem(Othercars,0,"S.W.A.T.Truck"); //601
  430. AddMenuItem(Othercars,0,"Cement Truck"); //524
  431. AddMenuItem(Othercars,0,"Flatbed"); //455
  432. AddMenuItem(Othercars,0,"BF Injection"); //424
  433. AddMenuItem(Othercars,0,"Dune"); //573
  434. AddMenuItem(Othercars,0,"Return");
  435.  
  436. bikes = CreateMenu("~b~Bikes",2, 55.0, 200.0, 100.0, 80.0);
  437. SetMenuColumnHeader(bikes, 0, "Choose a bike");
  438. AddMenuItem(bikes,0,"BF-400");
  439. AddMenuItem(bikes,0,"BMX");
  440. AddMenuItem(bikes,0,"Faggio");
  441. AddMenuItem(bikes,0,"FCR-900");
  442. AddMenuItem(bikes,0,"Freeway");
  443. AddMenuItem(bikes,0,"NRG-500");
  444. AddMenuItem(bikes,0,"PCJ-600");
  445. AddMenuItem(bikes,0,"Pizzaboy");
  446. AddMenuItem(bikes,0,"Quad");
  447. AddMenuItem(bikes,0,"Sanchez");
  448. AddMenuItem(bikes,0,"Wayfarer");
  449. AddMenuItem(bikes,0,"Return");
  450.  
  451. boats = CreateMenu("~b~Boats",2, 55.0, 200.0, 100.0, 80.0);
  452. SetMenuColumnHeader(boats, 0, "Choose a boat");
  453. AddMenuItem(boats,0,"Coastguard"); //472
  454. AddMenuItem(boats,0,"Dingy"); //473
  455. AddMenuItem(boats,0,"Jetmax"); //493
  456. AddMenuItem(boats,0,"Launch"); //595
  457. AddMenuItem(boats,0,"Marquis"); //484
  458. AddMenuItem(boats,0,"Predator"); //430
  459. AddMenuItem(boats,0,"Reefer"); //453
  460. AddMenuItem(boats,0,"Speeder"); //452
  461. AddMenuItem(boats,0,"Squallo"); //446
  462. AddMenuItem(boats,0,"Tropic"); //454
  463. AddMenuItem(boats,0,"Return");
  464.  
  465. planes = CreateMenu("~b~Planes",2, 55.0, 200.0, 100.0, 80.0);
  466. SetMenuColumnHeader(planes, 0, "Choose a plane");
  467. AddMenuItem(planes,0,"Andromada"); //592
  468. AddMenuItem(planes,0,"AT400"); //577
  469. AddMenuItem(planes,0,"Beagle"); //511
  470. AddMenuItem(planes,0,"Cropduster"); //512
  471. AddMenuItem(planes,0,"Dodo"); //593
  472. AddMenuItem(planes,0,"Hydra"); //520
  473. AddMenuItem(planes,0,"Nevada"); //553
  474. AddMenuItem(planes,0,"Rustler"); //476
  475. AddMenuItem(planes,0,"Shamal"); //519
  476. AddMenuItem(planes,0,"Skimmer"); //460
  477. AddMenuItem(planes,0,"Stuntplane"); //513
  478. AddMenuItem(planes,0,"Return");
  479.  
  480. helicopters = CreateMenu("~b~Helicopters",2, 55.0, 200.0, 100.0, 80.0);
  481. SetMenuColumnHeader(helicopters, 0, "Choose a helicopter");
  482. AddMenuItem(helicopters,0,"Cargobob"); //
  483. AddMenuItem(helicopters,0,"Hunter"); //
  484. AddMenuItem(helicopters,0,"Leviathan"); //
  485. AddMenuItem(helicopters,0,"Maverick"); //
  486. AddMenuItem(helicopters,0,"News Chopper"); //
  487. AddMenuItem(helicopters,0,"Police Maverick"); //
  488. AddMenuItem(helicopters,0,"Raindance"); //
  489. AddMenuItem(helicopters,0,"Seasparrow"); //
  490. AddMenuItem(helicopters,0,"Sparrow"); //
  491. AddMenuItem(helicopters,0,"Return");
  492.  
  493. XWeapons = CreateMenu("~b~Weapons ~g~Main Menu",2, 55.0, 200.0, 100.0, 80.0);
  494. SetMenuColumnHeader(XWeapons, 0, "Choose a weapon");
  495. AddMenuItem(XWeapons,0,"Desert Eagle"); //0
  496. AddMenuItem(XWeapons,0,"M4");
  497. AddMenuItem(XWeapons,0,"Sawnoff Shotgun");
  498. AddMenuItem(XWeapons,0,"Combat Shotgun");
  499. AddMenuItem(XWeapons,0,"UZI");
  500. AddMenuItem(XWeapons,0,"Rocket Launcher");
  501. AddMenuItem(XWeapons,0,"Minigun"); //6
  502. AddMenuItem(XWeapons,0,"Sniper Rifle");
  503. AddMenuItem(XWeapons,0,"Big Weapons");
  504. AddMenuItem(XWeapons,0,"Small Weapons"); //9
  505. AddMenuItem(XWeapons,0,"More");
  506. AddMenuItem(XWeapons,0,"Return"); //11
  507.  
  508. XWeaponsBig = CreateMenu("~b~Weapons ~g~Big Weapons",2, 55.0, 200.0, 100.0, 80.0);
  509. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  510. AddMenuItem(XWeaponsBig,0,"Shotgun");
  511. AddMenuItem(XWeaponsBig,0,"AK-47");
  512. AddMenuItem(XWeaponsBig,0,"Country Rifle");
  513. AddMenuItem(XWeaponsBig,0,"HS Rocket Launcher");
  514. AddMenuItem(XWeaponsBig,0,"Flamethrower");
  515. AddMenuItem(XWeaponsBig,0,"SMG");
  516. AddMenuItem(XWeaponsBig,0,"TEC9");
  517. AddMenuItem(XWeaponsBig,0,"Return");
  518.  
  519. XWeaponsSmall = CreateMenu("~b~Weapons ~g~Small Weapons",2, 55.0, 200.0, 100.0, 80.0);
  520. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  521. AddMenuItem(XWeaponsSmall,0,"9mm");
  522. AddMenuItem(XWeaponsSmall,0,"Silenced 9mm");
  523. AddMenuItem(XWeaponsSmall,0,"Molotov Cocktail");
  524. AddMenuItem(XWeaponsSmall,0,"Fire Extinguisher");
  525. AddMenuItem(XWeaponsSmall,0,"Spraycan");
  526. AddMenuItem(XWeaponsSmall,0,"Frag Grenades");
  527. AddMenuItem(XWeaponsSmall,0,"Katana");
  528. AddMenuItem(XWeaponsSmall,0,"Chainsaw");
  529. AddMenuItem(XWeaponsSmall,0,"Return");
  530.  
  531. XWeaponsMore = CreateMenu("~b~Weapons ~g~More Weapons",2, 55.0, 200.0, 100.0, 80.0);
  532. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  533. AddMenuItem(XWeaponsMore,0,"Jetpack");
  534. AddMenuItem(XWeaponsMore,0,"Knife");
  535. AddMenuItem(XWeaponsMore,0,"Flowers");
  536. AddMenuItem(XWeaponsMore,0,"Camera");
  537. AddMenuItem(XWeaponsMore,0,"Pool Cue");
  538. AddMenuItem(XWeaponsMore,0,"Baseball Bat");
  539. AddMenuItem(XWeaponsMore,0,"Golf Club");
  540. AddMenuItem(XWeaponsMore,0,"MAX AMMO");
  541. AddMenuItem(XWeaponsMore,0,"Return");
  542.  
  543. LTele = CreateMenu("Teleports", 2, 55.0, 200.0, 100.0, 80.0);
  544. SetMenuColumnHeader(LTele, 0, "Teleport to where?");
  545. AddMenuItem(LTele, 0, "Las Venturas"); //0
  546. AddMenuItem(LTele, 0, "Los Santos"); //1
  547. AddMenuItem(LTele, 0, "San Fierro"); //2
  548. AddMenuItem(LTele, 0, "The Desert"); //3
  549. AddMenuItem(LTele, 0, "Flint Country"); //4
  550. AddMenuItem(LTele, 0, "Mount Chiliad"); //5
  551. AddMenuItem(LTele, 0, "Interiors"); //6
  552. AddMenuItem(LTele, 0, "Return"); //8
  553.  
  554. LasVenturasMenu = CreateMenu("Las Venturas", 2, 55.0, 200.0, 100.0, 80.0);
  555. SetMenuColumnHeader(LasVenturasMenu, 0, "Teleport to where?");
  556. AddMenuItem(LasVenturasMenu, 0, "The Strip"); //0
  557. AddMenuItem(LasVenturasMenu, 0, "Come-A-Lot");//1
  558. AddMenuItem(LasVenturasMenu, 0, "LV Airport");//2
  559. //3
  560. AddMenuItem(LasVenturasMenu, 0, "KACC Military Fuels");
  561. //4
  562. AddMenuItem(LasVenturasMenu, 0, "Yellow Bell Golf Club");
  563. //5
  564. AddMenuItem(LasVenturasMenu, 0, "Baseball Pitch");
  565. AddMenuItem(LasVenturasMenu, 0, "Return"); //6
  566.  
  567. LosSantosMenu = CreateMenu("Los Santos", 2, 55.0, 200.0, 100.0, 80.0);
  568. SetMenuColumnHeader(LosSantosMenu, 0, "Teleport to where?");
  569. AddMenuItem(LosSantosMenu, 0, "Ganton"); //0
  570. AddMenuItem(LosSantosMenu, 0, "LS Airport"); //1
  571. AddMenuItem(LosSantosMenu, 0, "Ocean Docks"); //2
  572. //3
  573. AddMenuItem(LosSantosMenu, 0, "Pershing Square");
  574. //4
  575. AddMenuItem(LosSantosMenu, 0, "Verdant Bluffs");
  576. //5
  577. AddMenuItem(LosSantosMenu, 0, "Santa Maria Beach");
  578. AddMenuItem(LosSantosMenu, 0, "Mulholland"); //6
  579. AddMenuItem(LosSantosMenu, 0, "Richman"); //7
  580. AddMenuItem(LosSantosMenu, 0, "Return"); //8
  581.  
  582. SanFierroMenu = CreateMenu("San Fierro", 2, 55.0, 200.0, 100.0, 80.0);
  583. SetMenuColumnHeader(SanFierroMenu, 0, "Teleport to where?");
  584. AddMenuItem(SanFierroMenu, 0, "SF Station"); //0
  585. AddMenuItem(SanFierroMenu, 0, "SF Airport"); //1
  586. AddMenuItem(SanFierroMenu, 0, "Ocean Flats"); //2
  587. //3
  588. AddMenuItem(SanFierroMenu, 0, "Avispa Country Club");
  589. //4
  590. AddMenuItem(SanFierroMenu, 0, "Easter Basin (docks)");
  591. //5
  592. AddMenuItem(SanFierroMenu, 0, "Esplanade North");
  593. //6
  594. AddMenuItem(SanFierroMenu, 0, "Battery Point");
  595. AddMenuItem(SanFierroMenu, 0, "Return"); //7
  596.  
  597. DesertMenu = CreateMenu("The Desert", 2, 55.0, 200.0, 100.0, 80.0);
  598. SetMenuColumnHeader(DesertMenu, 0, "Teleport to where?");
  599. //0
  600. AddMenuItem(DesertMenu, 0, "Aircraft Graveyard");
  601. AddMenuItem(DesertMenu, 0, "Area 51"); //1
  602. AddMenuItem(DesertMenu, 0, "The Big Ear"); //2
  603. AddMenuItem(DesertMenu, 0, "The Sherman Dam");//3
  604. AddMenuItem(DesertMenu, 0, "Las Barrancas"); //4
  605. AddMenuItem(DesertMenu, 0, "El Quebrados"); //5
  606. AddMenuItem(DesertMenu, 0, "Octane Springs"); //6
  607. AddMenuItem(DesertMenu, 0, "Return"); //7
  608.  
  609. FlintMenu = CreateMenu("Flint Country", 2, 55.0, 200.0, 100.0, 80.0);
  610. SetMenuColumnHeader(FlintMenu, 0, "Teleport to where?");
  611. AddMenuItem(FlintMenu, 0, "The Lake"); //0
  612. AddMenuItem(FlintMenu, 0, "Leafy Hollow"); //1
  613. AddMenuItem(FlintMenu, 0, "The Farm"); //2
  614. AddMenuItem(FlintMenu, 0, "Shady Cabin"); //3
  615. AddMenuItem(FlintMenu, 0, "Flint Range"); //4
  616. AddMenuItem(FlintMenu, 0, "Becon Hill"); //5
  617. AddMenuItem(FlintMenu, 0, "Fallen Tree"); //6
  618. AddMenuItem(FlintMenu, 0, "Return"); //7
  619.  
  620. MountChiliadMenu = CreateMenu("Mount Chiliad", 2, 55.0, 200.0, 100.0, 80.0);
  621. SetMenuColumnHeader(MountChiliadMenu, 0, "Teleport to where?");
  622. //0
  623. AddMenuItem(MountChiliadMenu, 0, "Chiliad Jump");
  624. //1
  625. AddMenuItem(MountChiliadMenu, 0, "Bottom Of Chiliad");
  626. //2
  627. AddMenuItem(MountChiliadMenu, 0, "Highest Point");
  628. //3
  629. AddMenuItem(MountChiliadMenu, 0, "Chiliad Path");
  630. AddMenuItem(MountChiliadMenu, 0, "Return"); //7
  631.  
  632. InteriorsMenu = CreateMenu("Interiors", 2, 55.0, 200.0, 130.0, 80.0);
  633. SetMenuColumnHeader(InteriorsMenu, 0, "Teleport to where?");
  634. //0
  635. AddMenuItem(InteriorsMenu, 0, "Planning Department");
  636. AddMenuItem(InteriorsMenu, 0, "LV PD"); //1
  637. AddMenuItem(InteriorsMenu, 0, "Pizza Stack"); //2
  638. //3
  639. AddMenuItem(InteriorsMenu, 0, "RC Battlefield");
  640. //4
  641. AddMenuItem(InteriorsMenu, 0, "Caligula's Casino");
  642. //5
  643. AddMenuItem(InteriorsMenu, 0, "Big Smoke's Crack Palace");
  644. //6
  645. AddMenuItem(InteriorsMenu, 0, "Madd Dogg's Mansion");
  646. //7
  647. AddMenuItem(InteriorsMenu, 0, "Dirtbike Stadium");
  648. //8
  649. AddMenuItem(InteriorsMenu, 0, "Vice Stadium (duel)");
  650. AddMenuItem(InteriorsMenu, 0, "Ammu-nation"); //9
  651. AddMenuItem(InteriorsMenu, 0, "Atrium"); //7
  652. AddMenuItem(InteriorsMenu, 0, "Return"); //8
  653. #endif
  654.  
  655. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);
  656. for(new i = 1; i < MAX_CHAT_LINES; i++) Chat[i] = "<none>";
  657. for(new i = 1; i < MAX_REPORTS; i++) Reports[i] = "<none>";
  658.  
  659. PingTimer = SetTimer("PingKick",5000,1);
  660. GodTimer = SetTimer("GodUpdate",2000,1);
  661.  
  662. new year,month,day; getdate(year, month, day);
  663. new hour,minute,second; gettime(hour,minute,second);
  664.  
  665. print("________________________________________");
  666. print(" LAdmin Version 4.0 ");
  667. print(" Loaded ");
  668. print("________________________________________");
  669. printf(" Date: %d/%d/%d Time: %d:%d :%d ",day,month,year, hour, minute, second);
  670. print("________________________________________");
  671. print("________________________________________\n");
  672. return 1;
  673. }
  674.  
  675.  
  676. //==============================================================================
  677. public OnFilterScriptExit()
  678. {
  679. KillTimer(PingTimer);
  680. KillTimer(GodTimer);
  681. #if defined USE_MENUS
  682. DestroyAllMenus();
  683. #endif
  684.  
  685. new year,month,day; getdate(year, month, day);
  686. new hour,minute,second; gettime(hour,minute,second);
  687. print("\n________________________________________");
  688. print("________________________________________");
  689. print(" LAdmin Unloaded ");
  690. print("________________________________________");
  691. printf(" Date: %d/%d/%d Time: %d:%d :%d ",day,month,year, hour, minute, second);
  692. print("________________________________________");
  693. print("________________________________________\n");
  694. return 1;
  695. }
  696.  
  697.  
  698. //==============================================================================
  699. public OnPlayerConnect(playerid)
  700. {
  701. PlayerInfo[playerid][Deaths] = 0;
  702. PlayerInfo[playerid][Kills] = 0;
  703. PlayerInfo[playerid][Jailed] = 0;
  704. PlayerInfo[playerid][Frozen] = 0;
  705. PlayerInfo[playerid][Level] = 0;
  706. PlayerInfo[playerid][LoggedIn] = 0;
  707. PlayerInfo[playerid][Registered] = 0;
  708. PlayerInfo[playerid][God] = 0;
  709. PlayerInfo[playerid][GodCar] = 0;
  710. PlayerInfo[playerid][TimesSpawned] = 0;
  711. PlayerInfo[playerid][Muted] = 0;
  712. PlayerInfo[playerid][MuteWarnings] = 0;
  713. PlayerInfo[playerid][Warnings] = 0;
  714. PlayerInfo[playerid][Caps] = 0;
  715. PlayerInfo[playerid][DoorsLocked] = 0;
  716. PlayerInfo[playerid][pCar] = -1;
  717. for(new i; i<PING_MAX_EXCEEDS; i++) PlayerInfo[playerid][pPing][i] = 0;
  718. PlayerInfo[playerid][SpamCount] = 0;
  719. PlayerInfo[playerid][SpamTime] = 0;
  720. PlayerInfo[playerid][PingCount] = 0;
  721. PlayerInfo[playerid][PingTime] = 0;
  722. PlayerInfo[playerid][FailLogin] = 0;
  723. PlayerInfo[playerid][ConnectTime] = gettime();
  724. //------------------------------------------------------
  725. new PlayerName[MAX_PLAYER_NAME], string[128], str[128], file[256];
  726. GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
  727. new tmp3[50]; GetPlayerIp(playerid,tmp3,50);
  728. //-----------------------------------------------------
  729. if(ServerInfo[ConnectMessages] == 1) {
  730. new pAKA[256]; pAKA = dini_Get("ladmin/config/aka.txt",tmp3);
  731. if (strlen(pAKA) < 3) format(str,sizeof(str),"*** %s (%d) has joined the server", PlayerName, playerid);
  732. else if (!strcmp(pAKA,PlayerName,true)) format(str,sizeof(str),"*** %s (%d) has joined the server", PlayerName, playerid);
  733. else format(str,sizeof(str),"*** %s (%d) has joined the server (aka %s)", PlayerName, playerid, pAKA );
  734.  
  735. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && playerid != i) {
  736. if(PlayerInfo[i][Level] > 2) SendClientMessage(i,grey,str);
  737. else {
  738. format(string,sizeof(string),"*** %s (%d) has joined the server", PlayerName, playerid);
  739. SendClientMessage(i,grey,string);
  740. }
  741. }
  742. }
  743. //-----------------------------------------------------
  744. if (dUserINT(PlayerName2(playerid)).("banned") == 1) {
  745. SendClientMessage(playerid, red, "This name is banned from this server!");
  746. format(string,sizeof(string),"%s ID:%d was auto kicked. Reason: Name banned from server",PlayerName,playerid);
  747. SendClientMessageToAll(grey, string); print(string);
  748. SaveToFile("KickLog",string); Kick(playerid);
  749. }
  750. //-----------------------------------------------------
  751. if(ServerInfo[NameKick] == 1) {
  752. for(new s = 0; s < BadNameCount; s++) {
  753. if(!strcmp(BadNames[s],PlayerName,true)) {
  754. SendClientMessage(playerid,red, "Your name is on our black list, You've been kicked.");
  755. format(string,sizeof(string),"%s ID:%d was auto kicked. (Reason: Forbidden name)",PlayerName,playerid);
  756. SendClientMessageToAll(grey, string); print(string);
  757. SaveToFile("KickLog",string); Kick(playerid);
  758. return 1;
  759. }
  760. }
  761. }
  762. //-----------------------------------------------------
  763. if(ServerInfo[PartNameKick] == 1) {
  764. for(new s = 0; s < BadPartNameCount; s++) {
  765. new pos;
  766. while((pos = strfind(PlayerName,BadPartNames[s],true)) != -1) for(new i = pos, j = pos + strlen(BadPartNames[s]); i < j; i++) {
  767. SendClientMessage(playerid,red, "Your name is not allowed on this server, You've been kicked.");
  768. format(string,sizeof(string),"%s ID:%d was auto kicked. (Reason: Forbidden name)",PlayerName,playerid);
  769. SendClientMessageToAll(grey, string); print(string);
  770. SaveToFile("KickLog",string); Kick(playerid);
  771. return 1;
  772. }
  773. }
  774. }
  775. //-----------------------------------------------------
  776. if(ServerInfo[Locked] == 1) {
  777. PlayerInfo[playerid][AllowedIn] = false;
  778. SendClientMessage(playerid,red,"Server is Locked! You've 20 seconds to enter the server password before you're kicked.");
  779. SendClientMessage(playerid,red," Type /password [password]");
  780. LockKickTimer[playerid] = SetTimerEx("AutoKick", 20000, 0, "i", playerid);
  781. }
  782. //-----------------------------------------------------
  783. if(strlen(dini_Get("ladmin/config/aka.txt", tmp3)) == 0) dini_Set("ladmin/config/aka.txt", tmp3, PlayerName);
  784. else {
  785. if( strfind( dini_Get("ladmin/config/aka.txt", tmp3), PlayerName, true) == -1 ) {
  786. format(string,sizeof(string),"%s,%s", dini_Get("ladmin/config/aka.txt",tmp3), PlayerName);
  787. dini_Set("ladmin/config/aka.txt", tmp3, string);
  788. }
  789. }
  790. //-----------------------------------------------------
  791. if(!udb_Exists(PlayerName2(playerid))) SendClientMessage(playerid,orange, "ACCOUNT: Type '/register [password]' to create an account.");
  792. else {
  793. PlayerInfo[playerid][Registered] = 1;
  794. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName));
  795. new tmp2[256]; tmp2 = dini_Get(file,"ip");
  796. if( (!strcmp(tmp3,tmp2,true)) && (ServerInfo[AutoLogin] == 1) ) {
  797. LoginPlayer(playerid);
  798. if(PlayerInfo[playerid][Level] > 0) {
  799. format(string,sizeof(string),"ACCOUNT: You've been automatically logged in.", PlayerInfo[playerid][Level] );
  800. SendClientMessage(playerid,green,string);
  801. }
  802. else SendClientMessage(playerid,green,"ACCOUNT: You've been automatically logged in.");
  803. }
  804. else SendClientMessage(playerid, green, "ACCOUNT: Thank you for registering. You can now login by typing '/login [password]'.");
  805. }
  806. return 1;
  807. }
  808.  
  809.  
  810. //==============================================================================
  811.  
  812. forward AutoKick(playerid);
  813. public AutoKick(playerid)
  814. {
  815. if( IsPlayerConnected(playerid) && ServerInfo[Locked] == 1 && PlayerInfo[playerid][AllowedIn] == false) {
  816. new string[128];
  817. SendClientMessage(playerid,grey,"You've been automatically kicked. Reason: Server Locked");
  818. format(string,sizeof(string),"%s ID:%d has been automatically kicked. Reason: Server Locked",PlayerName2(playerid),playerid);
  819. SaveToFile("KickLog",string); Kick(playerid);
  820. SendClientMessageToAll(grey, string); print(string);
  821. }
  822. return 1;
  823. }
  824.  
  825.  
  826. //==============================================================================
  827.  
  828. public OnPlayerDisconnect(playerid, reason)
  829. {
  830. new PlayerName[MAX_PLAYER_NAME], str[128];
  831. GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  832.  
  833. if(ServerInfo[ConnectMessages] == 1) {
  834. switch (reason) {
  835. case 0: format(str, sizeof(str), "*** %s (%d) has left the server (Timeout)", PlayerName, playerid);
  836. case 1: format(str, sizeof(str), "*** %s (%d) has left the server (Leaving)", PlayerName, playerid);
  837. case 2: format(str, sizeof(str), "*** %s (%d) has left the server (Kicked/Banned)", PlayerName, playerid);
  838. }
  839. SendClientMessageToAll(grey, str);
  840. }
  841.  
  842. if(PlayerInfo[playerid][LoggedIn] == 1) SavePlayer(playerid);
  843. if(udb_Exists(PlayerName2(playerid))) dUserSetINT(PlayerName2(playerid)).("loggedin",0);
  844. PlayerInfo[playerid][LoggedIn] = 0;
  845. PlayerInfo[playerid][Level] = 0;
  846. PlayerInfo[playerid][Jailed] = 0;
  847. PlayerInfo[playerid][Frozen] = 0;
  848.  
  849. if(PlayerInfo[playerid][Jailed] == 1) KillTimer( JailTimer[playerid] );
  850. if(PlayerInfo[playerid][Frozen] == 1) KillTimer( FreezeTimer[playerid] );
  851. if(ServerInfo[Locked] == 1) KillTimer( LockKickTimer[playerid] );
  852.  
  853. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  854.  
  855. #if defined ENABLE_SPEC
  856. for(new x=0; x<MAX_PLAYERS; x++)
  857. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
  858. AdvanceSpectate(x);
  859. #endif
  860.  
  861. return 1;
  862. }
  863.  
  864.  
  865. forward DelayKillPlayer(playerid);
  866. public DelayKillPlayer(playerid)
  867. {
  868. SetPlayerHealth(playerid,0.0);
  869. ForceClassSelection(playerid);
  870. }
  871.  
  872.  
  873. //==============================================================================
  874. public OnPlayerSpawn(playerid)
  875. {
  876. if(ServerInfo[Locked] == 1 && PlayerInfo[playerid][AllowedIn] == false) {
  877. GameTextForPlayer(playerid,"~r~Server Locked~n~You must enter password before spawning~n~/password <password>",4000,3);
  878. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  879. return 1;
  880. }
  881.  
  882. if(ServerInfo[MustLogin] == 1 && PlayerInfo[playerid][Registered] == 1 && PlayerInfo[playerid][LoggedIn] == 0) {
  883. GameTextForPlayer(playerid,"~r~You must login before playing!",4000,3);
  884. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  885. return 1;
  886. }
  887.  
  888. if(ServerInfo[MustRegister] == 1 && PlayerInfo[playerid][Registered] == 0) {
  889. GameTextForPlayer(playerid,"~r~You must register before playing!",4000,3);
  890. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  891. return 1;
  892. }
  893.  
  894. PlayerInfo[playerid][Spawned] = 1;
  895.  
  896. if(PlayerInfo[playerid][Frozen] == 1) {
  897. TogglePlayerControllable(playerid,false); return SendClientMessage(playerid,red,"You cant escape your punishment. You're Still Frozen");
  898. }
  899.  
  900. if(PlayerInfo[playerid][Jailed] == 1) {
  901. SetTimerEx("JailPlayer",3000,0,"d",playerid); return SendClientMessage(playerid,red,"You cant escape your punishment. You're Still In Jail");
  902. }
  903.  
  904. if(ServerInfo[AdminOnlySkins] == 1) {
  905. if( (GetPlayerSkin(playerid) == ServerInfo[AdminSkin]) || (GetPlayerSkin(playerid) == ServerInfo[AdminSkin2]) ) {
  906. if(PlayerInfo[playerid][Level] >= 1)
  907. GameTextForPlayer(playerid,"~b~Welcome~n~~w~Admin",3000,1);
  908. else {
  909. GameTextForPlayer(playerid,"~r~This Skin Is For~n~Administrators~n~Only",4000,1);
  910. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  911. return 1;
  912. }
  913. }
  914. }
  915.  
  916. if((dUserINT(PlayerName2(playerid)).("UseSkin")) == 1)
  917. if((PlayerInfo[playerid][Level] >= 1) && (PlayerInfo[playerid][LoggedIn] == 1))
  918. SetPlayerSkin(playerid,(dUserINT(PlayerName2(playerid)).("FavSkin")) );
  919.  
  920. if(ServerInfo[GiveWeap] == 1) {
  921. if(PlayerInfo[playerid][LoggedIn] == 1) {
  922. PlayerInfo[playerid][TimesSpawned]++;
  923. if(PlayerInfo[playerid][TimesSpawned] == 1) {
  924. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap1"), dUserINT(PlayerName2(playerid)).("weap1ammo") );
  925. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap2"), dUserINT(PlayerName2(playerid)).("weap2ammo") );
  926. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap3"), dUserINT(PlayerName2(playerid)).("weap3ammo") );
  927. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap4"), dUserINT(PlayerName2(playerid)).("weap4ammo") );
  928. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap5"), dUserINT(PlayerName2(playerid)).("weap5ammo") );
  929. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap6"), dUserINT(PlayerName2(playerid)).("weap6ammo") );
  930. }
  931. }
  932. }
  933. return 1;
  934. }
  935.  
  936.  
  937. //==============================================================================
  938.  
  939. public OnPlayerDeath(playerid, killerid, reason)
  940. {
  941. #if defined USE_STATS
  942. PlayerInfo[playerid][Deaths]++;
  943. #endif
  944. InDuel[playerid] = 0;
  945.  
  946. if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID) {
  947. #if defined USE_STATS
  948. PlayerInfo[killerid][Kills]++;
  949. #endif
  950.  
  951. if(InDuel[playerid] == 1 && InDuel[killerid] == 1) {
  952. GameTextForPlayer(playerid,"Loser !",3000,3);
  953. GameTextForPlayer(killerid,"Winner !",3000,3);
  954. InDuel[killerid] = 0;
  955. SetPlayerPos(killerid, 0.0, 0.0, 0.0);
  956. SpawnPlayer(killerid);
  957. }
  958. else if(InDuel[playerid] == 1 && InDuel[killerid] == 0) {
  959. GameTextForPlayer(playerid,"Loser !",3000,3);
  960. }
  961. }
  962.  
  963. #if defined ENABLE_SPEC
  964. for(new x=0; x<MAX_PLAYERS; x++)
  965. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
  966. AdvanceSpectate(x);
  967. #endif
  968.  
  969. return 1;
  970. }
  971.  
  972.  
  973. //==============================================================================
  974.  
  975. public OnPlayerText(playerid, text[])
  976. {
  977. if(text[0] == '#' && PlayerInfo[playerid][Level] >= 1) {
  978. new string[128]; GetPlayerName(playerid,string,sizeof(string));
  979. format(string,sizeof(string),"Admin Chat: %s: %s",string,text[1]); MessageToAdmins(green,string);
  980. return 0;
  981. }
  982.  
  983. if(ServerInfo[DisableChat] == 1) {
  984. SendClientMessage(playerid,red,"Chat has been disabled");
  985. return 0;
  986. }
  987.  
  988. if(PlayerInfo[playerid][Muted] == 1) {
  989. PlayerInfo[playerid][MuteWarnings]++;
  990. new string[128];
  991. if(PlayerInfo[playerid][MuteWarnings] < ServerInfo[MaxMuteWarnings]) {
  992. format(string, sizeof(string),"WARNING: You're muted, if you continue to speak you will be kicked. (%d / %d)", PlayerInfo[playerid][MuteWarnings], ServerInfo[MaxMuteWarnings] );
  993. SendClientMessage(playerid,red,string);
  994. }
  995. else {
  996. SendClientMessage(playerid,red,"You've been warned ! Now You've been kicked");
  997. format(string, sizeof(string),"***%s (ID %d) was kicked for exceeding mute warnings", PlayerName2(playerid), playerid);
  998. SendClientMessageToAll(grey,string);
  999. SaveToFile("KickLog",string); Kick(playerid);
  1000. } return 0;
  1001. }
  1002.  
  1003. if(ServerInfo[AntiSpam] == 1 && (PlayerInfo[playerid][Level] == 0 && !IsPlayerAdmin(playerid)) ) {
  1004. if(PlayerInfo[playerid][SpamCount] == 0) PlayerInfo[playerid][SpamTime] = TimeStamp();
  1005.  
  1006. PlayerInfo[playerid][SpamCount]++;
  1007. // Its OK your messages were far enough apart
  1008. if(TimeStamp() - PlayerInfo[playerid][SpamTime] > SPAM_TIMELIMIT) {
  1009. PlayerInfo[playerid][SpamCount] = 0;
  1010. PlayerInfo[playerid][SpamTime] = TimeStamp();
  1011. }
  1012. else if(PlayerInfo[playerid][SpamCount] == SPAM_MAX_MSGS) {
  1013. new string[64]; format(string,sizeof(string),"%s has been kicked (Flood/Spam Protection)", PlayerName2(playerid));
  1014. SendClientMessageToAll(grey,string); print(string);
  1015. SaveToFile("KickLog",string);
  1016. Kick(playerid);
  1017. }
  1018. else if(PlayerInfo[playerid][SpamCount] == SPAM_MAX_MSGS-1) {
  1019. SendClientMessage(playerid,red,"Anti Spam Warning! Next is a kick.");
  1020. return 0;
  1021. }
  1022. }
  1023.  
  1024. if(ServerInfo[AntiSwear] == 1 && PlayerInfo[playerid][Level] < ServerInfo[MaxAdminLevel])
  1025. for(new s = 0; s < ForbiddenWordCount; s++) {
  1026. new pos;
  1027. while((pos = strfind(text,ForbiddenWords[s],true)) != -1) for(new i = pos, j = pos + strlen(ForbiddenWords[s]); i < j; i++) text[i] = '*';
  1028. }
  1029.  
  1030. if(PlayerInfo[playerid][Caps] == 1) UpperToLower(text);
  1031. if(ServerInfo[NoCaps] == 1) UpperToLower(text);
  1032.  
  1033. for(new i = 1; i < MAX_CHAT_LINES-1; i++) Chat[i] = Chat[i+1];
  1034. new ChatSTR[128]; GetPlayerName(playerid,ChatSTR,sizeof(ChatSTR)); format(ChatSTR,128,"[lchat]%s: %s",ChatSTR, text[0] );
  1035. Chat[MAX_CHAT_LINES-1] = ChatSTR;
  1036. return 1;
  1037. }
  1038.  
  1039.  
  1040. //==============================================================================
  1041. forward OnPlayerPrivmsg(playerid, recieverid, text[]);
  1042. public OnPlayerPrivmsg(playerid, recieverid, text[])
  1043. {
  1044. if(ServerInfo[ReadPMs] == 1 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) {
  1045. new string[128],recievername[MAX_PLAYER_NAME];
  1046. GetPlayerName(playerid, string, sizeof(string)); GetPlayerName(recieverid, recievername, sizeof(recievername));
  1047. format(string, sizeof(string), "***PM: %s To %s: %s", string, recievername, text);
  1048. for (new a = 0; a < MAX_PLAYERS; a++) if (IsPlayerConnected(a) && (PlayerInfo[a][Level] >= ServerInfo[MaxAdminLevel]) && a != playerid)
  1049. SendClientMessage(a, grey, string);
  1050. }
  1051.  
  1052. if(PlayerInfo[playerid][Muted] == 1) {
  1053. new string[128];
  1054. PlayerInfo[playerid][MuteWarnings]++;
  1055. if(PlayerInfo[playerid][MuteWarnings] < ServerInfo[MaxMuteWarnings]) {
  1056. format(string, sizeof(string),"WARNING: You're muted, if you continue to speak you will be kicked (Warning: %d/%d)", PlayerInfo[playerid][MuteWarnings], ServerInfo[MaxMuteWarnings] );
  1057. SendClientMessage(playerid,red,string);
  1058. }
  1059. else {
  1060. SendClientMessage(playerid,red,"You've been warned! Now You've been kicked");
  1061. GetPlayerName(playerid, string, sizeof(string));
  1062. format(string, sizeof(string),"%s [ID %d] Kicked for exceeding mute warnings", string, playerid);
  1063. SendClientMessageToAll(grey,string);
  1064. SaveToFile("KickLog",string); Kick(playerid);
  1065. } return 0;
  1066. }
  1067. return 1;
  1068. }
  1069.  
  1070.  
  1071. forward HighLight(playerid);
  1072. public HighLight(playerid)
  1073. {
  1074. if(!IsPlayerConnected(playerid)) return 1;
  1075. if(PlayerInfo[playerid][blipS] == 0) { SetPlayerColor(playerid, 0xFF0000AA); PlayerInfo[playerid][blipS] = 1; }
  1076. else { SetPlayerColor(playerid, 0x33FF33AA); PlayerInfo[playerid][blipS] = 0; }
  1077. return 0;
  1078. }
  1079.  
  1080.  
  1081. //===================== [ DCMD Commands ]=======================================
  1082.  
  1083. dcmd_giveweapon(playerid,params[])
  1084. {
  1085. if(PlayerInfo[playerid][Level] >= 2) {
  1086. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  1087. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /giveweapon [playerid] [weapon id/weapon name] [ammo]");
  1088. new player1 = strval(tmp), weap, ammo, WeapName[32], string[128];
  1089. if(!strlen(tmp3) || !IsNumeric(tmp3) || strval(tmp3) <= 0 || strval(tmp3) > 99999) ammo = 500; else ammo = strval(tmp3);
  1090. if(!IsNumeric(tmp2)) weap = GetWeaponIDFromName(tmp2); else weap = strval(tmp2);
  1091. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1092. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid weapon ID");
  1093. CMDMessageToAdmins(playerid,"GIVEWEAPON");
  1094. GetWeaponName(weap,WeapName,32);
  1095. format(string, sizeof(string), "You've given \"%s\" a %s (%d) with %d rounds of ammo", PlayerName2(player1), WeapName, weap, ammo); SendClientMessage(playerid,blue,string);
  1096. 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); }
  1097. return GivePlayerWeapon(player1, weap, ammo);
  1098. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1099. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1100. }
  1101.  
  1102.  
  1103. dcmd_sethealth(playerid,params[])
  1104. {
  1105. if(PlayerInfo[playerid][Level] >= 3) {
  1106. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1107. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /sethealth [playerid] [amount]");
  1108. if(strval(tmp2) < 0 || strval(tmp2) > 100 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid, red, "ERROR: Invaild health amount");
  1109. new player1 = strval(tmp), health = strval(tmp2), string[128];
  1110. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1111. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1112. CMDMessageToAdmins(playerid,"SETHEALTH");
  1113. format(string, sizeof(string), "You've set \"%s's\" health to '%d", pName(player1), health); SendClientMessage(playerid,blue,string);
  1114. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your health to '%d'", pName(playerid), health); SendClientMessage(player1,blue,string); }
  1115. return SetPlayerHealth(player1, health);
  1116. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1117. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1118. }
  1119.  
  1120.  
  1121. dcmd_setarmour(playerid,params[])
  1122. {
  1123. if(PlayerInfo[playerid][Level] >= 3) {
  1124. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1125. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setarmour [playerid] [amount]");
  1126. if(strval(tmp2) < 0 || strval(tmp2) > 100 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid, red, "ERROR: Invaild health amount");
  1127. new player1 = strval(tmp), armour = strval(tmp2), string[128];
  1128. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1129. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1130. CMDMessageToAdmins(playerid,"SETARMOUR");
  1131. format(string, sizeof(string), "You've set \"%s's\" armour to '%d", pName(player1), armour); SendClientMessage(playerid,blue,string);
  1132. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your armour to '%d'", pName(playerid), armour); SendClientMessage(player1,blue,string); }
  1133. return SetPlayerArmour(player1, armour);
  1134. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1135. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1136. }
  1137.  
  1138.  
  1139. dcmd_setcash(playerid,params[])
  1140. {
  1141. if(PlayerInfo[playerid][Level] >= 3) {
  1142. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1143. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setcash [playerid] [amount]");
  1144. new player1 = strval(tmp), cash = strval(tmp2), string[128];
  1145. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1146. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1147. CMDMessageToAdmins(playerid,"SETCASH");
  1148. format(string, sizeof(string), "You've set \"%s's\" cash to '$%d", pName(player1), cash); SendClientMessage(playerid,blue,string);
  1149. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your cash to '$%d'", pName(playerid), cash); SendClientMessage(player1,blue,string); }
  1150. ResetPlayerMoney(player1);
  1151. return GivePlayerMoney(player1, cash);
  1152. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1153. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1154. }
  1155.  
  1156.  
  1157. dcmd_setscore(playerid,params[])
  1158. {
  1159. if(PlayerInfo[playerid][Level] >= 3) {
  1160. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1161. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setscore [playerid] [score]");
  1162. new player1 = strval(tmp), score = strval(tmp2), string[128];
  1163. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1164. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1165. CMDMessageToAdmins(playerid,"SETSCORE");
  1166. format(string, sizeof(string), "You've set \"%s's\" score to '%d' ", pName(player1), score); SendClientMessage(playerid,blue,string);
  1167. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your score to '%d'", pName(playerid), score); SendClientMessage(player1,blue,string); }
  1168. return SetPlayerScore(player1, score);
  1169. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1170. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1171. }
  1172.  
  1173.  
  1174. dcmd_setskin(playerid,params[])
  1175. {
  1176. if(PlayerInfo[playerid][Level] >= 3) {
  1177. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1178. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setskin [playerid] [skin id]");
  1179. new player1 = strval(tmp), skin = strval(tmp2), string[128];
  1180. if(!IsValidSkin(skin)) return SendClientMessage(playerid, red, "ERROR: Invaild Skin ID");
  1181. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1182. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1183. CMDMessageToAdmins(playerid,"SETSKIN");
  1184. format(string, sizeof(string), "You've set \"%s's\" skin to '%d", pName(player1), skin); SendClientMessage(playerid,blue,string);
  1185. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your skin to '%d'", pName(playerid), skin); SendClientMessage(player1,blue,string); }
  1186. return SetPlayerSkin(player1, skin);
  1187. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1188. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1189. }
  1190.  
  1191.  
  1192. dcmd_setname(playerid,params[])
  1193. {
  1194. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  1195. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1196. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
  1197. new player1 = strval(tmp), length = strlen(tmp2), string[128];
  1198. if(length < 3 || length > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
  1199. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1200. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1201. CMDMessageToAdmins(playerid,"SETNAME");
  1202. format(string, sizeof(string), "You've set \"%s's\" name to \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
  1203. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
  1204. SetPlayerName(player1, tmp2);
  1205. return OnPlayerConnect(player1);
  1206. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1207. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1208. }
  1209.  
  1210.  
  1211. dcmd_setcolour(playerid,params[])
  1212. {
  1213. if(PlayerInfo[playerid][Level] >= 2) {
  1214. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1215. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) {
  1216. SendClientMessage(playerid, red, "USAGE: /setcolour [playerid] [Colour]");
  1217. 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");
  1218. }
  1219. new player1 = strval(tmp), Colour = strval(tmp2), string[128], colour[24];
  1220. 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");
  1221. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1222. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1223. CMDMessageToAdmins(playerid,"SETCOLOUR");
  1224. switch (Colour) {
  1225. case 0: { SetPlayerColor(player1,black); colour = "Black"; }
  1226. case 1: { SetPlayerColor(player1,COLOR_WHITE); colour = "White"; }
  1227. case 2: { SetPlayerColor(player1,red); colour = "Red"; }
  1228. case 3: { SetPlayerColor(player1,orange); colour = "Orange"; }
  1229. case 4: { SetPlayerColor(player1,orange); colour = "Yellow"; }
  1230. case 5: { SetPlayerColor(player1,COLOR_GREEN1); colour = "Green"; }
  1231. case 6: { SetPlayerColor(player1,COLOR_BLUE); colour = "Blue"; }
  1232. case 7: { SetPlayerColor(player1,COLOR_PURPLE); colour = "Purple"; }
  1233. case 8: { SetPlayerColor(player1,COLOR_BROWN); colour = "Brown"; }
  1234. case 9: { SetPlayerColor(player1,COLOR_PINK); colour = "Pink"; }
  1235. }
  1236. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set colour to '%s' ", pName(playerid), colour); SendClientMessage(player1,blue,string); }
  1237. format(string, sizeof(string), "You've set \"%s's\" colour to '%s' ", pName(player1), colour);
  1238. return SendClientMessage(playerid,blue,string);
  1239. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1240. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1241. }
  1242.  
  1243.  
  1244. dcmd_setweather(playerid,params[])
  1245. {
  1246. if(PlayerInfo[playerid][Level] >= 3) {
  1247. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1248. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setweather [playerid] [weather id]");
  1249. new player1 = strval(tmp), weather = strval(tmp2), string[128];
  1250. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1251. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1252. CMDMessageToAdmins(playerid,"SETWEATHER");
  1253. format(string, sizeof(string), "You've set \"%s's\" weather to '%d", pName(player1), weather); SendClientMessage(playerid,blue,string);
  1254. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your weather to '%d'", pName(playerid), weather); SendClientMessage(player1,blue,string); }
  1255. SetPlayerWeather(player1,weather); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1256. return PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  1257. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1258. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1259. }
  1260.  
  1261.  
  1262. dcmd_settime(playerid,params[])
  1263. {
  1264. if(PlayerInfo[playerid][Level] >= 3) {
  1265. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1266. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /settime [playerid] [hour]");
  1267. new player1 = strval(tmp), time = strval(tmp2), string[128];
  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,"SETTIME");
  1271. format(string, sizeof(string), "You've set \"%s's\" time to %d:00", pName(player1), time); SendClientMessage(playerid,blue,string);
  1272. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your time to %d:00", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1273. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1274. return SetPlayerTime(player1, time, 0);
  1275. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1276. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1277. }
  1278.  
  1279.  
  1280. dcmd_setworld(playerid,params[])
  1281. {
  1282. if(PlayerInfo[playerid][Level] >= 3) {
  1283. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1284. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setworld [playerid] [virtual world]");
  1285. new player1 = strval(tmp), time = strval(tmp2), string[128];
  1286. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1287. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1288. CMDMessageToAdmins(playerid,"SETWORLD");
  1289. format(string, sizeof(string), "You've set \"%s's\" virtual world to '%d'", pName(player1), time); SendClientMessage(playerid,blue,string);
  1290. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your virtual world to '%d' ", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1291. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1292. return SetPlayerVirtualWorld(player1, time);
  1293. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1294. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1295. }
  1296.  
  1297.  
  1298. dcmd_setmytime(playerid,params[])
  1299. {
  1300. if(PlayerInfo[playerid][Level] >= 0) {
  1301. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setmytime [hour]");
  1302. new time = strval(params), string[128];
  1303. format(string,sizeof(string),"You've set your time to %d:00", time); SendClientMessage(playerid,blue,string);
  1304. return SetPlayerTime(playerid, time, 0);
  1305. }
  1306. return 1;
  1307. }
  1308.  
  1309. dcmd_force(playerid,params[])
  1310. {
  1311. if(PlayerInfo[playerid][Level] >= 3) {
  1312. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /force [playerid]");
  1313. new player1 = strval(params), string[128];
  1314. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1315. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1316. CMDMessageToAdmins(playerid,"FORCE");
  1317. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has forced you into class selection", pName(playerid) ); SendClientMessage(player1,blue,string); }
  1318. format(string,sizeof(string),"You've forced \"%s\" into class selection", pName(player1)); SendClientMessage(playerid,blue,string);
  1319. ForceClassSelection(player1);
  1320. return SetPlayerHealth(player1,0.0);
  1321. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1322. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1323. }
  1324.  
  1325.  
  1326. dcmd_eject(playerid,params[])
  1327. {
  1328. if(PlayerInfo[playerid][Level] >= 3) {
  1329. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /eject [playerid]");
  1330. new player1 = strval(params), string[128], Float:x, Float:y, Float:z;
  1331. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1332. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1333. if(IsPlayerInAnyVehicle(player1)) {
  1334. CMDMessageToAdmins(playerid,"EJECT");
  1335. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has ejected you from your vehicle", pName(playerid) ); SendClientMessage(player1,blue,string); }
  1336. format(string,sizeof(string),"You've ejected \"%s\" from their vehicle", pName(player1)); SendClientMessage(playerid,blue,string);
  1337. GetPlayerPos(player1,x,y,z);
  1338. return SetPlayerPos(player1,x,y,z+3);
  1339. } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  1340. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1341. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1342. }
  1343.  
  1344.  
  1345. dcmd_vlock(playerid,params[])
  1346. {
  1347. #pragma unused params
  1348. if(PlayerInfo[playerid][Level] >= 0) {
  1349. if(IsPlayerInAnyVehicle(playerid)) {
  1350. for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,true);
  1351. PlayerInfo[playerid][DoorsLocked] = 1;
  1352. new string[128]; format(string,sizeof(string),"You've locked your vehicle. Use /unlock to unlock it.", pName(playerid));
  1353. return SendClientMessageToAll(blue,string);
  1354. } else return SendClientMessage(playerid,red,"ERROR: You need to be in a vehicle to lock the doors");
  1355. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1356. }
  1357.  
  1358.  
  1359. dcmd_vunlock(playerid,params[])
  1360. {
  1361. #pragma unused params
  1362. if(PlayerInfo[playerid][Level] >= 0) {
  1363. if(IsPlayerInAnyVehicle(playerid)) {
  1364. for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,false);
  1365. PlayerInfo[playerid][DoorsLocked] = 0;
  1366. new string[128]; format(string,sizeof(string),"You've unlocked your vehicle. Use /lock to lock it..", pName(playerid));
  1367. return SendClientMessageToAll(blue,string);
  1368. } else return SendClientMessage(playerid,red,"ERROR: You need to be in a vehicle to lock the doors");
  1369. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1370. }
  1371.  
  1372.  
  1373. dcmd_burn(playerid,params[])
  1374. {
  1375. if(PlayerInfo[playerid][Level] >= 2) {
  1376. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /burn [playerid]");
  1377. new player1 = strval(params), string[128], Float:x, Float:y, Float:z;
  1378. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1379. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1380. CMDMessageToAdmins(playerid,"BURN");
  1381. format(string, sizeof(string), "You've burnt \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1382. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has burnt you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1383. GetPlayerPos(player1, x, y, z);
  1384. return CreateExplosion(x, y , z + 3, 1, 10);
  1385. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1386. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1387. }
  1388.  
  1389.  
  1390. dcmd_spawnplayer(playerid,params[])
  1391. {
  1392. return dcmd_spawn(playerid,params);
  1393. }
  1394.  
  1395.  
  1396. dcmd_spawn(playerid,params[])
  1397. {
  1398. if(PlayerInfo[playerid][Level] >= 2) {
  1399. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /spawn [playerid]");
  1400. new player1 = strval(params), string[128];
  1401. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1402. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1403. CMDMessageToAdmins(playerid,"SPAWN");
  1404. format(string, sizeof(string), "You've spawned \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1405. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has spawned you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1406. SetPlayerPos(player1, 0.0, 0.0, 0.0);
  1407. return SpawnPlayer(player1);
  1408. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1409. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1410. }
  1411.  
  1412.  
  1413. dcmd_disarm(playerid,params[])
  1414. {
  1415. if(PlayerInfo[playerid][Level] >= 2) {
  1416. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /disarm [playerid]");
  1417. new player1 = strval(params), string[128];
  1418. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1419. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1420. CMDMessageToAdmins(playerid,"DISARM"); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1421. format(string, sizeof(string), "You've disarmed \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1422. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has disarmed you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1423. ResetPlayerWeapons(player1);
  1424. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1425. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1426. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1427. }
  1428.  
  1429.  
  1430. dcmd_ip(playerid,params[])
  1431. {
  1432. if(PlayerInfo[playerid][Level] >= 1) {
  1433. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ip [playerid]");
  1434. new player1 = strval(params), string[128];
  1435. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1436. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1437. CMDMessageToAdmins(playerid,"IP");
  1438. new tmp3[50]; GetPlayerIp(player1,tmp3,50);
  1439. format(string,sizeof(string),"\"%s's\" ip is '%s'", pName(player1), tmp3);
  1440. return SendClientMessage(playerid,blue,string);
  1441. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1442. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1443. }
  1444.  
  1445.  
  1446. dcmd_bankrupt(playerid,params[])
  1447. {
  1448. if(PlayerInfo[playerid][Level] >= 3) {
  1449. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /bankrupt [playerid]");
  1450. new player1 = strval(params), string[128];
  1451. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1452. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1453. CMDMessageToAdmins(playerid,"BANKRUPT");
  1454. format(string, sizeof(string), "You've reset \"%s's\" cash", pName(player1)); SendClientMessage(playerid,blue,string);
  1455. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has reset your cash'", pName(playerid)); SendClientMessage(player1,blue,string); }
  1456. return ResetPlayerMoney(player1);
  1457. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1458. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1459. }
  1460.  
  1461.  
  1462. dcmd_sbankrupt(playerid,params[])
  1463. {
  1464. if(PlayerInfo[playerid][Level] >= 3) {
  1465. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /sbankrupt [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,"BANKRUPT");
  1470. format(string, sizeof(string), "You've silently reset \"%s's\" cash", pName(player1)); SendClientMessage(playerid,blue,string);
  1471. return ResetPlayerMoney(player1);
  1472. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1473. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1474. }
  1475.  
  1476.  
  1477. dcmd_kill(playerid,params[])
  1478. {
  1479. #pragma unused params
  1480. return SetPlayerHealth(playerid,0.0);
  1481. }
  1482.  
  1483.  
  1484. dcmd_time(playerid,params[])
  1485. {
  1486. #pragma unused params
  1487. new string[64], hour,minuite,second; gettime(hour,minuite,second);
  1488. format(string, sizeof(string), "~g~|~w~%d:%d~g~|", hour, minuite);
  1489. return GameTextForPlayer(playerid, string, 5000, 1);
  1490. }
  1491.  
  1492.  
  1493. dcmd_lhelp(playerid,params[])
  1494. {
  1495. #pragma unused params
  1496. if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] >= 1) {
  1497. SendClientMessage(playerid,blue,"--== [ LAdmin Help ] ==--");
  1498. SendClientMessage(playerid,blue, "For admin commands type: /lcommands | Credits: /lcredits");
  1499. SendClientMessage(playerid,blue, "Account commands are: /register, /login, /changepass, /stats, /resetstats. Also /time, /report");
  1500. SendClientMessage(playerid,blue, "There are 4 admin levels. Level 4 admins are immune from commands.");
  1501. SendClientMessage(playerid,blue, "IMPORTANT: The filterscript must be reloaded if you change gamemodes");
  1502. }
  1503. else if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] < 1) {
  1504. SendClientMessage(playerid,green, "Your commands are: /register, /login, /report, /stats, /time, /changepass, /resetstats, /getid");
  1505. }
  1506. else if(PlayerInfo[playerid][LoggedIn] == 0) {
  1507. SendClientMessage(playerid,green, "Your commands are: /time, /getid (You're not logged in, log in for more commands)");
  1508. } return 1;
  1509. }
  1510.  
  1511.  
  1512. dcmd_lcmds(playerid,params[])
  1513. {
  1514. #pragma unused params
  1515. if(PlayerInfo[playerid][Level] > 0) {
  1516. SendClientMessage(playerid,blue," ---= [ Most Useful Admin Commands ] ==---");
  1517. SendClientMessage(playerid,lightblue,"GENERAL: getinfo, lmenu, announce, write, miniguns, richlist, lspec(off), lweaps, countdown, duel, giveweapon");
  1518. SendClientMessage(playerid,lightblue,"GENERAL: slap, burn, warn, kick, ban, explode, jail, freeze, mute, god, godcar, ping");
  1519. SendClientMessage(playerid,lightblue,"GENERAL: setping, lockserver, enable/disable, setlevel, givecar, jetpack, force, spawn");
  1520. SendClientMessage(playerid,lightblue,"VEHICLE: vflip, eject, ltc, car, lcar, lbike, lplane, lheli, lboat, lnos, cm");
  1521. SendClientMessage(playerid,lightblue,"TELE: goto, get, teleplayer, ltele, vgoto, lgoto, moveplayer");
  1522. SendClientMessage(playerid,lightblue,"SET: set(cash/health/armour/gravity/name/time/weather/skin/colour/wanted/templevel)");
  1523. SendClientMessage(playerid,lightblue,"SETALL: setall(world/weather/wanted/time/score/cash)");
  1524. SendClientMessage(playerid,lightblue,"ALL: giveallweapon, healall, armourall, freezeall, kickall, ejectall, killall, disarmall, slapall, spawnall");
  1525. }
  1526. return 1;
  1527. }
  1528.  
  1529.  
  1530. dcmd_lcommands(playerid,params[])
  1531. {
  1532. #pragma unused params
  1533. if(PlayerInfo[playerid][Level] > 0) {
  1534. SendClientMessage(playerid,yellow,"All Staff Commands:");
  1535. SendClientMessage(playerid,lightblue," /level1, /level2, /level3, /level4, /rcon ladmin");
  1536. SendClientMessage(playerid,lightblue,"Player Commands: /register, /login, /report, /stats, /time, /changepass, /resetstats, /getid");
  1537. }
  1538. return 1;
  1539. }
  1540.  
  1541.  
  1542. dcmd_level1(playerid,params[])
  1543. {
  1544. #pragma unused params
  1545. if(PlayerInfo[playerid][Level] > 0) {
  1546. SendClientMessage(playerid,orange,"Moderator Commands:");
  1547. SendClientMessage(playerid,lightblue,"/lcar, /lbike, /lheli, /lboat, /lplane, /vfix, /vdestroy,");
  1548. SendClientMessage(playerid,lightblue,"/vlock, /vunlock, /vcolour, /vspawn, /ltune, /ltmenu, /lhy,");
  1549. SendClientMessage(playerid,lightblue,"/lnos, /givecar, /vflip, /ltc(1-13), /getinfo, /weaps, /ping,");
  1550. SendClientMessage(playerid,lightblue,"/reports, /richlist, /miniguns, /s, /l, /lconfig, /ip");
  1551. }
  1552. return 1;
  1553. }
  1554.  
  1555.  
  1556. dcmd_level2(playerid,params[])
  1557. {
  1558. #pragma unused params
  1559. if(PlayerInfo[playerid][Level] > 0) {
  1560. SendClientMessage(playerid,orange,"Senior Moderator Commands:");
  1561. SendClientMessage(playerid,lightblue,"kick, giveweapon, setcolour, burn, spawn, disarm,");
  1562. SendClientMessage(playerid,lightblue,"hightlight, announce, screen, jetpack,");
  1563. SendClientMessage(playerid,lightblue,"goto, vgoto, lgoto, warn, slap, jailed, frozen, mute, unmute, muted, write,");
  1564. SendClientMessage(playerid,lightblue,"lspec, lspecoff, lspecvehicle, clearchat, lmenu, ltele");
  1565. }
  1566. return 1;
  1567. }
  1568.  
  1569.  
  1570. dcmd_level3(playerid,params[])
  1571. {
  1572. #pragma unused params
  1573. if(PlayerInfo[playerid][Level] > 0) {
  1574. SendClientMessage(playerid,orange,"Administrator Commands:");
  1575. SendClientMessage(playerid,lightblue,"ban, sethealth, setarmour, setcash, setscore, setskin, setname, setweather,");
  1576. SendClientMessage(playerid,lightblue,"settime, setworld, force, eject, bankrupt, sbankrupt, lweaps,");
  1577. SendClientMessage(playerid,lightblue,"lammo, countdown, duel, vspawn, vdestroy, vcolour, setping, setgravity,");
  1578. SendClientMessage(playerid,lightblue,"teleplayer, givecar, get, explode, jail, unjail, freeze, ");
  1579. SendClientMessage(playerid,lightblue,"unfreeze, akill, aka, disablechat, clearallchat, caps, moveplayer, healall,");
  1580. SendClientMessage(playerid,lightblue,"armourall, setallskin, setallweather, setalltime, setallworld,");
  1581. SendClientMessage(playerid,lightblue,"setallscore, setallcash, giveallcash, giveallweapon, lweather, ltime, lweapons, setpass");
  1582. }
  1583. return 1;
  1584. }
  1585.  
  1586.  
  1587. dcmd_level4(playerid,params[])
  1588. {
  1589. #pragma unused params
  1590. if(PlayerInfo[playerid][Level] > 0) {
  1591. SendClientMessage(playerid,orange,"Management Commands:");
  1592. SendClientMessage(playerid,lightblue,"enable, disable, rban, settemplevel, setlevel god, godcar, uconfig,");
  1593. SendClientMessage(playerid,lightblue,"botcheck, lockserver, unlockserver, forbidname, forbidword, ");
  1594. SendClientMessage(playerid,lightblue,"spawnall, muteall, unmuteall, getall, killall, freezeall,");
  1595. SendClientMessage(playerid,lightblue,"unfreezeall, kickall, slapall, explodeall, disarmall, ejectall");
  1596. }
  1597. return 1;
  1598. }
  1599.  
  1600.  
  1601. dcmd_lconfig(playerid,params[])
  1602. {
  1603. #pragma unused params
  1604. if(PlayerInfo[playerid][Level] > 0) {
  1605. new string[128];
  1606. SendClientMessage(playerid,blue," ---=== LAdmin Configuration ===---");
  1607. 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] );
  1608. SendClientMessage(playerid,blue,string);
  1609. 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] );
  1610. SendClientMessage(playerid,blue,string);
  1611. 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] );
  1612. SendClientMessage(playerid,blue,string);
  1613. format(string, sizeof(string), "AutoLogin %d | MaxMuteWarnings %d | ChatDisabled %d | MustLogin %d | MustRegister %d", ServerInfo[AutoLogin], ServerInfo[MaxMuteWarnings], ServerInfo[DisableChat], ServerInfo[MustLogin], ServerInfo[MustRegister] );
  1614. SendClientMessage(playerid,blue,string);
  1615. }
  1616. return 1;
  1617. }
  1618.  
  1619.  
  1620. dcmd_getinfo(playerid,params[])
  1621. {
  1622. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  1623. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /getinfo [playerid]");
  1624. new player1, string[128];
  1625. player1 = strval(params);
  1626.  
  1627. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1628. new Float:player1health, Float:player1armour, playerip[128], Float:x, Float:y, Float:z, tmp2[256], file[256],
  1629. year, month, day, P1Jailed[4], P1Frozen[4], P1Logged[4], P1Register[4], RegDate[256], TimesOn;
  1630.  
  1631. GetPlayerHealth(player1,player1health);
  1632. GetPlayerArmour(player1,player1armour);
  1633. GetPlayerIp(player1, playerip, sizeof(playerip));
  1634. GetPlayerPos(player1,x,y,z);
  1635. getdate(year, month, day);
  1636. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(player1)));
  1637.  
  1638. if(PlayerInfo[player1][Jailed] == 1) P1Jailed = "Yes"; else P1Jailed = "No";
  1639. if(PlayerInfo[player1][Frozen] == 1) P1Frozen = "Yes"; else P1Frozen = "No";
  1640. if(PlayerInfo[player1][LoggedIn] == 1) P1Logged = "Yes"; else P1Logged = "No";
  1641. if(fexist(file)) P1Register = "Yes"; else P1Register = "No";
  1642. if(dUserINT(PlayerName2(player1)).("LastOn")==0) tmp2 = "Never"; else tmp2 = dini_Get(file,"LastOn");
  1643. if(strlen(dini_Get(file,"RegisteredDate")) < 3) RegDate = "n/a"; else RegDate = dini_Get(file,"RegisteredDate");
  1644. TimesOn = dUserINT(PlayerName2(player1)).("TimesOnServer");
  1645.  
  1646. new Sum, Average, w;
  1647. while (w < PING_MAX_EXCEEDS) {
  1648. Sum += PlayerInfo[player1][pPing][w];
  1649. w++;
  1650. }
  1651. Average = (Sum / PING_MAX_EXCEEDS);
  1652.  
  1653. format(string, sizeof(string),"(Player Info) ---====> Name: %s ID: %d <====---", PlayerName2(player1), player1);
  1654. SendClientMessage(playerid,lightblue,string);
  1655. 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),
  1656. GetPlayerScore(player1),GetPlayerMoney(player1),GetPlayerSkin(player1),playerip,GetPlayerPing(player1), Average );
  1657. SendClientMessage(playerid,red,string);
  1658. 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);
  1659. SendClientMessage(playerid,orange,string);
  1660. 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] );
  1661. SendClientMessage(playerid,yellow,string);
  1662. format(string, sizeof(string),"Registered: %s Logged In: %s In Jail: %s Frozen: %s", P1Register, P1Logged, P1Jailed, P1Frozen );
  1663. SendClientMessage(playerid,green,string);
  1664. format(string, sizeof(string),"Last On Server: %s Register Date: %s Todays Date: %d/%d/%d", tmp2, RegDate, day,month,year );
  1665. SendClientMessage(playerid,COLOR_GREEN,string);
  1666.  
  1667. if(IsPlayerInAnyVehicle(player1)) {
  1668. new Float:VHealth, carid = GetPlayerVehicleID(playerid); GetVehicleHealth(carid,VHealth);
  1669. format(string, sizeof(string),"VehicleID: %d Model: %d Vehicle Name: %s Vehicle Health: %d",carid, GetVehicleModel(carid), VehicleNames[GetVehicleModel(carid)-400], floatround(VHealth) );
  1670. SendClientMessage(playerid,COLOR_BLUE,string);
  1671. }
  1672.  
  1673. new slot, ammo, weap, Count, WeapName[24], WeapSTR[128], p; WeapSTR = "Weaps: ";
  1674. for (slot = 0; slot < 14; slot++) { GetPlayerWeaponData(player1, slot, weap, ammo); if( ammo != 0 && weap != 0) Count++; }
  1675. if(Count < 1) return SendClientMessage(playerid,lightblue,"Player has no weapons");
  1676. else {
  1677. for (slot = 0; slot < 14; slot++) {
  1678. GetPlayerWeaponData(player1, slot, weap, ammo);
  1679. if (ammo > 0 && weap > 0) {
  1680. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  1681. if (ammo == 65535 || ammo == 1) format(WeapSTR,sizeof(WeapSTR),"%s%s (1)",WeapSTR, WeapName);
  1682. else format(WeapSTR,sizeof(WeapSTR),"%s%s (%d)",WeapSTR, WeapName, ammo);
  1683. p++;
  1684. if(p >= 5) {
  1685. SendClientMessage(playerid, lightblue, WeapSTR); format(WeapSTR, sizeof(WeapSTR), "Weaps: "); p = 0;
  1686. } else format(WeapSTR, sizeof(WeapSTR), "%s, ", WeapSTR);
  1687. }
  1688. }
  1689. if(p <= 4 && p > 0) {
  1690. string[strlen(string)-3] = '.';
  1691. SendClientMessage(playerid, lightblue, WeapSTR);
  1692. }
  1693. }
  1694. return 1;
  1695. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1696. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  1697. }
  1698.  
  1699.  
  1700. dcmd_disable(playerid,params[])
  1701. {
  1702. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  1703. if(!strlen(params)) {
  1704. SendClientMessage(playerid,red,"USAGE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps / admincmdmsgs");
  1705. return SendClientMessage(playerid,red," /connectmsgs / autologin ]");
  1706. }
  1707. new string[128], file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  1708. if(strcmp(params,"antiswear",true) == 0) {
  1709. ServerInfo[AntiSwear] = 0;
  1710. dini_IntSet(file,"AntiSwear",0);
  1711. format(string,sizeof(string),"Administrator %s has disabled antiswear", PlayerName2(playerid));
  1712. SendClientMessageToAll(blue,string);
  1713. }
  1714. else if(strcmp(params,"namekick",true) == 0) {
  1715. ServerInfo[NameKick] = 0;
  1716. dini_IntSet(file,"NameKick",0);
  1717. format(string,sizeof(string),"Administrator %s has disabled namekick", PlayerName2(playerid));
  1718. SendClientMessageToAll(blue,string);
  1719. }
  1720. else if(strcmp(params,"antispam",true) == 0) {
  1721. ServerInfo[AntiSpam] = 0;
  1722. dini_IntSet(file,"AntiSpam",0);
  1723. format(string,sizeof(string),"Administrator %s has disabled antispam", PlayerName2(playerid));
  1724. SendClientMessageToAll(blue,string);
  1725. }
  1726. else if(strcmp(params,"ping",true) == 0) {
  1727. ServerInfo[MaxPing] = 0;
  1728. dini_IntSet(file,"MaxPing",0);
  1729. format(string,sizeof(string),"Administrator %s has disabled ping kick", PlayerName2(playerid));
  1730. SendClientMessageToAll(blue,string);
  1731. }
  1732. else if(strcmp(params,"readcmds",true) == 0) {
  1733. ServerInfo[ReadCmds] = 0;
  1734. dini_IntSet(file,"ReadCMDs",0);
  1735. format(string,sizeof(string),"Administrator %s has disabled reading commands", PlayerName2(playerid));
  1736. MessageToAdmins(blue,string);
  1737. }
  1738. else if(strcmp(params,"readpms",true) == 0) {
  1739. ServerInfo[ReadPMs] = 0;
  1740. dini_IntSet(file,"ReadPMs",0);
  1741. format(string,sizeof(string),"Administrator %s has disabled reading pms", PlayerName2(playerid));
  1742. MessageToAdmins(blue,string);
  1743. }
  1744. else if(strcmp(params,"caps",true) == 0) {
  1745. ServerInfo[NoCaps] = 1;
  1746. dini_IntSet(file,"NoCaps",1);
  1747. format(string,sizeof(string),"Administrator %s has prevented captial letters in chat", PlayerName2(playerid));
  1748. SendClientMessageToAll(blue,string);
  1749. }
  1750. else if(strcmp(params,"admincmdmsgs",true) == 0) {
  1751. ServerInfo[AdminCmdMsg] = 0;
  1752. dini_IntSet(file,"AdminCMDMessages",0);
  1753. format(string,sizeof(string),"Administrator %s has disabled admin command messages", PlayerName2(playerid));
  1754. MessageToAdmins(green,string);
  1755. }
  1756. else if(strcmp(params,"connectmsgs",true) == 0) {
  1757. ServerInfo[ConnectMessages] = 0;
  1758. dini_IntSet(file,"ConnectMessages",0);
  1759. format(string,sizeof(string),"Administrator %s has disabled connect & disconnect messages", PlayerName2(playerid));
  1760. MessageToAdmins(green,string);
  1761. }
  1762. else if(strcmp(params,"autologin",true) == 0) {
  1763. ServerInfo[AutoLogin] = 0;
  1764. dini_IntSet(file,"AutoLogin",0);
  1765. format(string,sizeof(string),"Administrator %s has disabled auto login", PlayerName2(playerid));
  1766. MessageToAdmins(green,string);
  1767. }
  1768. else {
  1769. SendClientMessage(playerid,red,"USAGE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps /cmdmsg ]");
  1770. } return 1;
  1771. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1772. }
  1773.  
  1774.  
  1775. dcmd_enable(playerid,params[])
  1776. {
  1777. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  1778. if(!strlen(params)) {
  1779. SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps / admincmdmsgs");
  1780. return SendClientMessage(playerid,red," /connectmsgs / autologin ]");
  1781. }
  1782. new string[128], file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  1783. if(strcmp(params,"antiswear",true) == 0) {
  1784. ServerInfo[AntiSwear] = 1;
  1785. dini_IntSet(file,"AntiSwear",1);
  1786. format(string,sizeof(string),"Administrator %s has enabled antiswear", PlayerName2(playerid));
  1787. SendClientMessageToAll(blue,string);
  1788. }
  1789. else if(strcmp(params,"namekick",true) == 0) {
  1790. ServerInfo[NameKick] = 1;
  1791. format(string,sizeof(string),"Administrator %s has enabled namekick", PlayerName2(playerid));
  1792. SendClientMessageToAll(blue,string);
  1793. }
  1794. else if(strcmp(params,"antispam",true) == 0) {
  1795. ServerInfo[AntiSpam] = 1;
  1796. dini_IntSet(file,"AntiSpam",1);
  1797. format(string,sizeof(string),"Administrator %s has enabled antispam", PlayerName2(playerid));
  1798. SendClientMessageToAll(blue,string);
  1799. }
  1800. else if(strcmp(params,"ping",true) == 0) {
  1801. ServerInfo[MaxPing] = 800;
  1802. dini_IntSet(file,"MaxPing",800);
  1803. format(string,sizeof(string),"Administrator %s has enabled ping kick", PlayerName2(playerid));
  1804. SendClientMessageToAll(blue,string);
  1805. }
  1806. else if(strcmp(params,"readcmds",true) == 0) {
  1807. ServerInfo[ReadCmds] = 1;
  1808. dini_IntSet(file,"ReadCMDs",1);
  1809. format(string,sizeof(string),"Administrator %s has enabled reading commands", PlayerName2(playerid));
  1810. MessageToAdmins(blue,string);
  1811. }
  1812. else if(strcmp(params,"readpms",true) == 0) {
  1813. ServerInfo[ReadPMs] = 1;
  1814. dini_IntSet(file,"ReadPMs",1);
  1815. format(string,sizeof(string),"Administrator %s has enabled reading pms", PlayerName2(playerid));
  1816. MessageToAdmins(blue,string);
  1817. }
  1818. else if(strcmp(params,"caps",true) == 0) {
  1819. ServerInfo[NoCaps] = 0;
  1820. dini_IntSet(file,"NoCaps",0);
  1821. format(string,sizeof(string),"Administrator %s has allowed captial letters in chat", PlayerName2(playerid));
  1822. SendClientMessageToAll(blue,string);
  1823. }
  1824. else if(strcmp(params,"admincmdmsgs",true) == 0) {
  1825. ServerInfo[AdminCmdMsg] = 1;
  1826. dini_IntSet(file,"AdminCmdMessages",1);
  1827. format(string,sizeof(string),"Administrator %s has enabled admin command messages", PlayerName2(playerid));
  1828. MessageToAdmins(green,string);
  1829. }
  1830. else if(strcmp(params,"connectmsgs",true) == 0) {
  1831. ServerInfo[ConnectMessages] = 1;
  1832. dini_IntSet(file,"ConnectMessages",1);
  1833. format(string,sizeof(string),"Administrator %s has enabled connect & disconnect messages", PlayerName2(playerid));
  1834. MessageToAdmins(green,string);
  1835. }
  1836. else if(strcmp(params,"autologin",true) == 0) {
  1837. ServerInfo[AutoLogin] = 1;
  1838. dini_IntSet(file,"AutoLogin",1);
  1839. format(string,sizeof(string),"Administrator %s has enabled auto login", PlayerName2(playerid));
  1840. MessageToAdmins(green,string);
  1841. }
  1842. else {
  1843. SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps /cmdmsg ]");
  1844. } return 1;
  1845. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1846. }
  1847.  
  1848.  
  1849. dcmd_lweaps(playerid,params[])
  1850. {
  1851. #pragma unused params
  1852. if(PlayerInfo[playerid][Level] >= 3) {
  1853. GivePlayerWeapon(playerid,28,1000); GivePlayerWeapon(playerid,31,1000); GivePlayerWeapon(playerid,34,1000);
  1854. GivePlayerWeapon(playerid,38,1000); GivePlayerWeapon(playerid,16,1000); GivePlayerWeapon(playerid,42,1000);
  1855. GivePlayerWeapon(playerid,14,1000); GivePlayerWeapon(playerid,46,1000); GivePlayerWeapon(playerid,9,1);
  1856. GivePlayerWeapon(playerid,24,1000); GivePlayerWeapon(playerid,26,1000); return 1;
  1857. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1858. }
  1859.  
  1860.  
  1861. dcmd_countdown(playerid,params[])
  1862. {
  1863. #pragma unused params
  1864. if(PlayerInfo[playerid][Level] >= 3) {
  1865. if(CountDown == -1) {
  1866. CountDown = 6;
  1867. SetTimer("countdown",1000,0);
  1868. return CMDMessageToAdmins(playerid,"COUNTDOWN");
  1869. } else return SendClientMessage(playerid,red,"ERROR: Countdown in progress");
  1870. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1871. }
  1872.  
  1873.  
  1874. dcmd_duel(playerid,params[])
  1875. {
  1876. if(PlayerInfo[playerid][Level] >= 3) {
  1877. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  1878. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp) || !IsNumeric(tmp2)) {
  1879. SendClientMessage(playerid, red, "USAGE: /duel [player1 id] [player2 id] [location] (Locations: 1, 2, 3]");
  1880. return SendClientMessage(playerid, red, "If location isn't stated then players duel at their present location");
  1881. }
  1882. new player1 = strval(tmp), player2 = strval(tmp2), location, string[128];
  1883. if(!strlen(tmp3)) location = 0; else location = strval(tmp3);
  1884. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1885. if(PlayerInfo[player2][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1886. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1887. if(IsPlayerConnected(player2) && player2 != INVALID_PLAYER_ID) {
  1888. if(InDuel[player1] == 1) return SendClientMessage(playerid,red,"ERROR: Player1 is already in a duel");
  1889. if(InDuel[player2] == 1) return SendClientMessage(playerid,red,"ERROR: Player2 is already in a duel");
  1890.  
  1891. if(location == 1) {
  1892. SetPlayerInterior(player1,16); SetPlayerPos(player1,-1404.067, 1270.3706, 1042.8672);
  1893. SetPlayerInterior(player2,16); SetPlayerPos(player2,-1395.067, 1261.3706, 1042.8672);
  1894. }
  1895. else if(location == 2) {
  1896. SetPlayerInterior(player1,0); SetPlayerPos(player1,1353.407,2188.155,11.02344);
  1897. SetPlayerInterior(player2,0); SetPlayerPos(player2,1346.255,2142.843,11.01563);
  1898. }
  1899. else if(location == 3) {
  1900. SetPlayerInterior(player1,10); SetPlayerPos(player1,-1041.037,1078.729,1347.678); SetPlayerFacingAngle(player1,135);
  1901. SetPlayerInterior(player2,10); SetPlayerPos(player2,-1018.061,1052.502,1346.327); SetPlayerFacingAngle(player2,45);
  1902. }
  1903. InDuel[player1] = 1;
  1904. InDuel[player2] = 1;
  1905. CMDMessageToAdmins(playerid,"DUEL");
  1906. cdt[player1] = 6;
  1907. SetTimerEx("Duel",1000,0,"dd", player1, player2);
  1908. format(string, sizeof(string), "Administrator \"%s\" has started a duel between \"%s\" and \"%s\" ", pName(playerid), pName(player1), pName(player2) );
  1909. SendClientMessage(player1, blue, string); SendClientMessage(player2, blue, string);
  1910. return SendClientMessage(playerid, blue, string);
  1911. } else return SendClientMessage(playerid, red, "Player2 is not connected");
  1912. } else return SendClientMessage(playerid, red, "Player1 is not connected");
  1913. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1914. }
  1915.  
  1916.  
  1917. dcmd_lammo(playerid,params[])
  1918. {
  1919. #pragma unused params
  1920. if(PlayerInfo[playerid][Level] >= 3) {
  1921. MaxAmmo(playerid);
  1922. return CMDMessageToAdmins(playerid,"LAMMO");
  1923. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1924. }
  1925.  
  1926.  
  1927. dcmd_vfix(playerid,params[])
  1928. {
  1929. #pragma unused params
  1930. if(PlayerInfo[playerid][Level] >= 1) {
  1931. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"Error: You're not in a vehicle");
  1932. RepairVehicle(GetPlayerVehicleID(playerid));
  1933. SendClientMessage(playerid,blue,"Vehicle Fixed");
  1934. } return 1;
  1935. }
  1936.  
  1937.  
  1938. dcmd_ltune(playerid,params[])
  1939. {
  1940. #pragma unused params
  1941. if(PlayerInfo[playerid][Level] >= 1) {
  1942. if(IsPlayerInAnyVehicle(playerid)) {
  1943. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  1944. switch(LModel) {
  1945. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  1946. return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle");
  1947. }
  1948. CMDMessageToAdmins(playerid,"LTUNE");
  1949. SetVehicleHealth(LVehicleID,2000.0);
  1950. TuneLCar(LVehicleID);
  1951. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  1952. } else return SendClientMessage(playerid,red,"Error: You're not in a vehicle");
  1953. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  1954. }
  1955.  
  1956.  
  1957. dcmd_lhy(playerid,params[])
  1958. {
  1959. #pragma unused params
  1960. if(PlayerInfo[playerid][Level] >= 1) {
  1961. if(IsPlayerInAnyVehicle(playerid)) {
  1962. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  1963. switch(LModel) {
  1964. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  1965. return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!");
  1966. }
  1967. AddVehicleComponent(LVehicleID, 1087);
  1968. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  1969. } else return SendClientMessage(playerid,red,"Error: You're not in a vehicle");
  1970. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1971. }
  1972.  
  1973.  
  1974. dcmd_lcar(playerid,params[])
  1975. {
  1976. #pragma unused params
  1977. if(PlayerInfo[playerid][Level] >= 1) {
  1978. if (!IsPlayerInAnyVehicle(playerid)) {
  1979. CarSpawner(playerid,415);
  1980. CMDMessageToAdmins(playerid,"LCAR");
  1981. return SendClientMessage(playerid,blue,"Enjoy your new car");
  1982. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  1983. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1984. }
  1985.  
  1986.  
  1987. dcmd_lbike(playerid,params[])
  1988. {
  1989. #pragma unused params
  1990. if(PlayerInfo[playerid][Level] >= 1) {
  1991. if (!IsPlayerInAnyVehicle(playerid)) {
  1992. CarSpawner(playerid,522);
  1993. CMDMessageToAdmins(playerid,"LBIKE");
  1994. return SendClientMessage(playerid,blue,"Enjoy your new bike");
  1995. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  1996. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  1997. }
  1998.  
  1999.  
  2000. dcmd_lheli(playerid,params[])
  2001. {
  2002. #pragma unused params
  2003. if(PlayerInfo[playerid][Level] >= 1) {
  2004. if (!IsPlayerInAnyVehicle(playerid)) {
  2005. CarSpawner(playerid,487);
  2006. CMDMessageToAdmins(playerid,"LHELI");
  2007. return SendClientMessage(playerid,blue,"Enjoy your new helicopter");
  2008. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2009. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2010. }
  2011.  
  2012.  
  2013. dcmd_lboat(playerid,params[])
  2014. {
  2015. #pragma unused params
  2016. if(PlayerInfo[playerid][Level] >= 1) {
  2017. if (!IsPlayerInAnyVehicle(playerid)) {
  2018. CarSpawner(playerid,493);
  2019. CMDMessageToAdmins(playerid,"LBOAT");
  2020. return SendClientMessage(playerid,blue,"Enjoy your new boat");
  2021. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2022. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2023. }
  2024.  
  2025.  
  2026. dcmd_lplane(playerid,params[])
  2027. {
  2028. #pragma unused params
  2029. if(PlayerInfo[playerid][Level] >= 1) {
  2030. if (!IsPlayerInAnyVehicle(playerid)) {
  2031. CarSpawner(playerid,513);
  2032. CMDMessageToAdmins(playerid,"LPLANE");
  2033. return SendClientMessage(playerid,blue,"Enjoy your new plane");
  2034. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2035. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2036. }
  2037.  
  2038.  
  2039. dcmd_lnos(playerid,params[])
  2040. {
  2041. #pragma unused params
  2042. if(PlayerInfo[playerid][Level] >= 1) {
  2043. if(IsPlayerInAnyVehicle(playerid)) {
  2044. switch(GetVehicleModel( GetPlayerVehicleID(playerid) )) {
  2045. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  2046. return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!");
  2047. }
  2048. AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  2049. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  2050. } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  2051. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2052. }
  2053.  
  2054.  
  2055. dcmd_linkcar(playerid,params[])
  2056. {
  2057. #pragma unused params
  2058. if(IsPlayerInAnyVehicle(playerid)) {
  2059. LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(playerid));
  2060. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playerid));
  2061. return SendClientMessage(playerid,lightblue, "Your vehicle is now in your virtual world and interior");
  2062. } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  2063. }
  2064.  
  2065.  
  2066. dcmd_vspawn(playerid,params[])
  2067. {
  2068. if(PlayerInfo[playerid][Level] >= 1) {
  2069. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2070. if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /car [Modelid/Name] [colour1] [colour2]");
  2071. new car, colour1, colour2, string[128];
  2072. if(!IsNumeric(tmp)) car = GetVehicleModelIDFromName(tmp); else car = strval(tmp);
  2073. if(car < 400 || car > 611) return SendClientMessage(playerid, red, "ERROR: Invalid Vehicle Model");
  2074. if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
  2075. if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
  2076. if(PlayerInfo[playerid][pCar] != -1 && !IsPlayerAdmin(playerid) ) CarDeleter(PlayerInfo[playerid][pCar]);
  2077. new LVehicleID,Float:X,Float:Y,Float:Z, Float:Angle,int1; GetPlayerPos(playerid, X,Y,Z); GetPlayerFacingAngle(playerid,Angle); int1 = GetPlayerInterior(playerid);
  2078. LVehicleID = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, -1); LinkVehicleToInterior(LVehicleID,int1);
  2079. PlayerInfo[playerid][pCar] = LVehicleID;
  2080. CMDMessageToAdmins(playerid,"CAR");
  2081. 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);
  2082. SaveToFile("CarSpawns",string);
  2083. format(string, sizeof(string), "You've spawned an \"%s\" (Model:%d) colour (%d, %d)", VehicleNames[car-400], car, colour1, colour2);
  2084. return SendClientMessage(playerid,lightblue, string);
  2085. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2086. }
  2087.  
  2088.  
  2089. dcmd_vcolour(playerid,params[])
  2090. {
  2091. if(PlayerInfo[playerid][Level] >= 1) {
  2092. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2093. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /carcolour [playerid] [colour1] [colour2]");
  2094. new player1 = strval(tmp), colour1, colour2, string[128];
  2095. if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
  2096. if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
  2097. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2098. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2099. if(IsPlayerInAnyVehicle(player1)) {
  2100. CMDMessageToAdmins(playerid,"CARCOLOUR");
  2101. format(string, sizeof(string), "You've changed the colour of \"%s's\" %s to '%d,%d'", pName(player1), VehicleNames[GetVehicleModel(GetPlayerVehicleID(player1))-400], colour1, colour2 ); SendClientMessage(playerid,blue,string);
  2102. 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); }
  2103. return ChangeVehicleColor(GetPlayerVehicleID(player1), colour1, colour2);
  2104. } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  2105. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  2106. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2107. }
  2108.  
  2109.  
  2110. dcmd_god(playerid,params[])
  2111. {
  2112. #pragma unused params
  2113. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  2114. if(PlayerInfo[playerid][God] == 0) {
  2115. PlayerInfo[playerid][God] = 1;
  2116. SetPlayerHealth(playerid,100000);
  2117. GivePlayerWeapon(playerid,16,50000); GivePlayerWeapon(playerid,26,50000);
  2118. SendClientMessage(playerid,green,"GODMODE ON");
  2119. return CMDMessageToAdmins(playerid,"GOD");
  2120. }
  2121. else {
  2122. PlayerInfo[playerid][God] = 0;
  2123. SendClientMessage(playerid,red,"GODMODE OFF");
  2124. SetPlayerHealth(playerid, 100);
  2125. } return GivePlayerWeapon(playerid,35,0);
  2126. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2127. }
  2128.  
  2129.  
  2130. dcmd_godcar(playerid,params[])
  2131. {
  2132. #pragma unused params
  2133. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  2134. if(IsPlayerInAnyVehicle(playerid)) {
  2135. if(PlayerInfo[playerid][GodCar] == 0) {
  2136. PlayerInfo[playerid][GodCar] = 1;
  2137. CMDMessageToAdmins(playerid,"GODCAR");
  2138. return SendClientMessage(playerid,green,"GODCARMODE ON");
  2139. }
  2140. else {
  2141. PlayerInfo[playerid][GodCar] = 0;
  2142. return SendClientMessage(playerid,red,"GODCARMODE OFF");
  2143. }
  2144. } else return SendClientMessage(playerid,red,"ERROR: You need to be in a car to use this command");
  2145. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2146. }
  2147.  
  2148.  
  2149. dcmd_getid(playerid,params[])
  2150. {
  2151. if(!strlen(params)) return SendClientMessage(playerid,blue,"Correct Usage: /getid [part of nick]");
  2152. new found, string[128], playername[MAX_PLAYER_NAME];
  2153. format(string,sizeof(string),"Searched for: \"%s\" ",params);
  2154. SendClientMessage(playerid,blue,string);
  2155. for(new i=0; i <= MAX_PLAYERS; i++) {
  2156. if(IsPlayerConnected(i)) {
  2157. GetPlayerName(i, playername, MAX_PLAYER_NAME);
  2158. new namelen = strlen(playername);
  2159. new bool:searched=false;
  2160. for(new pos=0; pos <= namelen; pos++) {
  2161. if(searched != true) {
  2162. if(strfind(playername,params,true) == pos) {
  2163. found++;
  2164. format(string,sizeof(string),"%d. %s (ID %d)",found,playername,i);
  2165. SendClientMessage(playerid, green ,string);
  2166. searched = true;
  2167. }
  2168. }
  2169. }
  2170. }
  2171. }
  2172. if(found == 0) SendClientMessage(playerid, lightblue, "No players have this in their nick");
  2173. return 1;
  2174. }
  2175.  
  2176.  
  2177. dcmd_asay(playerid,params[])
  2178. {
  2179. #pragma unused params
  2180. if(PlayerInfo[playerid][Level] >= 2) {
  2181. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /asay [text]");
  2182. new string[128]; format(string, sizeof(string), "**Admin %s: %s", PlayerName2(playerid), params[0] );
  2183. return SendClientMessageToAll(COLOR_PINK,string);
  2184. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2185. }
  2186.  
  2187.  
  2188. dcmd_setping(playerid,params[])
  2189. {
  2190. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2191. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setping [ping] Set to 0 to disable");
  2192. new string[128], ping = strval(params);
  2193. ServerInfo[MaxPing] = ping;
  2194. CMDMessageToAdmins(playerid,"SETPING");
  2195. new file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  2196. dini_IntSet(file,"MaxPing",ping);
  2197. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayerPlaySound(i,1057,0.0,0.0,0.0);
  2198. if(ping == 0) format(string,sizeof(string),"Administrator %s has disabled maximum ping", PlayerName2(playerid), ping);
  2199. else format(string,sizeof(string),"Administrator %s has set the maximum ping to %d", PlayerName2(playerid), ping);
  2200. return SendClientMessageToAll(blue,string);
  2201. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2202. }
  2203.  
  2204.  
  2205. dcmd_ping(playerid,params[])
  2206. {
  2207. if(PlayerInfo[playerid][Level] >= 1) {
  2208. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ping [playerid]");
  2209. new player1 = strval(params), string[128];
  2210. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2211. new Sum, Average, x;
  2212. while (x < PING_MAX_EXCEEDS) {
  2213. Sum += PlayerInfo[player1][pPing][x];
  2214. x++;
  2215. }
  2216. Average = (Sum / PING_MAX_EXCEEDS);
  2217. 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] );
  2218. return SendClientMessage(playerid,blue,string);
  2219. } else return SendClientMessage(playerid, red, "Player is not connected");
  2220. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2221. }
  2222.  
  2223.  
  2224. dcmd_highlight(playerid,params[])
  2225. {
  2226. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2227. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /highlight [playerid]");
  2228. new player1, playername[MAX_PLAYER_NAME], string[128];
  2229. player1 = strval(params);
  2230.  
  2231. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2232. GetPlayerName(player1, playername, sizeof(playername));
  2233. if(PlayerInfo[player1][blip] == 0) {
  2234. CMDMessageToAdmins(playerid,"HIGHLIGHT");
  2235. PlayerInfo[player1][pColour] = GetPlayerColor(player1);
  2236. PlayerInfo[player1][blip] = 1;
  2237. BlipTimer[player1] = SetTimerEx("HighLight", 1000, 1, "i", player1);
  2238. format(string,sizeof(string),"You've highlighted %s's marker", playername);
  2239. }
  2240. else {
  2241. KillTimer( BlipTimer[player1] );
  2242. PlayerInfo[player1][blip] = 0;
  2243. SetPlayerColor(player1, PlayerInfo[player1][pColour] );
  2244. format(string,sizeof(string),"You've stopped highlighting %s's marker", playername);
  2245. }
  2246. return SendClientMessage(playerid,blue,string);
  2247. } else return SendClientMessage(playerid, red, "Player is not connected");
  2248. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2249. }
  2250.  
  2251.  
  2252. dcmd_setgravity(playerid,params[])
  2253. {
  2254. if(PlayerInfo[playerid][Level] >= 3) {
  2255. if(!strlen(params)||!(strval(params)<=50&&strval(params)>=-50)) return SendClientMessage(playerid,red,"USAGE: /setgravity <-50.0 - 50.0>");
  2256. CMDMessageToAdmins(playerid,"SETGRAVITY");
  2257. 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);
  2258. SetGravity(Gravity); return SendClientMessageToAll(blue,string);
  2259. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2260. }
  2261.  
  2262.  
  2263. dcmd_lcredits(playerid,params[])
  2264. {
  2265. #pragma unused params
  2266. return SendClientMessage(playerid,green,"LAdmin. Adminscript for sa-mp 0.2.x. Created by LethaL. Version: 4. Released: 07/2008");
  2267. }
  2268.  
  2269.  
  2270. dcmd_serverinfo(playerid,params[])
  2271. {
  2272. #pragma unused params
  2273. new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000); DestroyVehicle(TotalVehicles);
  2274. new numo = CreateObject(1245,0,0,1000,0,0,0); DestroyObject(numo);
  2275. new nump = CreatePickup(371,2,0,0,1000); DestroyPickup(nump);
  2276. new gz = GangZoneCreate(3,3,5,5); GangZoneDestroy(gz);
  2277.  
  2278. new model[250], nummodel;
  2279. for(new i=1;i<TotalVehicles;i++) model[GetVehicleModel(i)-400]++;
  2280. for(new i=0;i<250;i++) if(model[i]!=0) nummodel++;
  2281.  
  2282. new string[256];
  2283. format(string,sizeof(string),"Server Info: [ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
  2284. SendClientMessage(playerid,green,string);
  2285. format(string,sizeof(string),"Server Info: [ Vehicles: %d || Models %d || Players In Vehicle: %d || InCar %d / OnBike %d ]",TotalVehicles-1,nummodel, InVehCount(),InCarCount(),OnBikeCount() );
  2286. SendClientMessage(playerid,green,string);
  2287. format(string,sizeof(string),"Server Info: [ Objects: %d || Pickups %d || Gangzones %d ]",numo-1, nump, gz);
  2288. SendClientMessage(playerid,green,string);
  2289. format(string,sizeof(string),"Server Info: [ Players In Jail %d || Players Frozen %d || Muted %d ]",JailedPlayers(),FrozenPlayers(), MutedPlayers() );
  2290. return SendClientMessage(playerid,green,string);
  2291. }
  2292.  
  2293.  
  2294. dcmd_announce(playerid,params[])
  2295. {
  2296. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2297. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /announce <text>");
  2298. CMDMessageToAdmins(playerid,"ANNOUNCE");
  2299. return GameTextForAll(params,4000,3);
  2300. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2301. }
  2302.  
  2303.  
  2304. dcmd_jetpack(playerid,params[])
  2305. {
  2306. if(!strlen(params)) {
  2307. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2308. SendClientMessage(playerid,blue,"Jetpack Spawned.");
  2309. CMDMessageToAdmins(playerid,"JETPACK");
  2310. return SetPlayerSpecialAction(playerid, 2);
  2311. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2312. }
  2313. else {
  2314. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2315. player1 = strval(params);
  2316. if(PlayerInfo[playerid][Level] >= 4) {
  2317. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2318. CMDMessageToAdmins(playerid,"JETPACK"); SetPlayerSpecialAction(player1, 2);
  2319. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2320. format(string,sizeof(string),"Administrator \"%s\" has given you a jetpack",adminname); SendClientMessage(player1,blue,string);
  2321. format(string,sizeof(string),"You've given %s a jetpack", playername);
  2322. return SendClientMessage(playerid,blue,string);
  2323. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2324. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2325. }
  2326. }
  2327.  
  2328.  
  2329. dcmd_vflip(playerid,params[])
  2330. {
  2331. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  2332. if(!strlen(params)) {
  2333. if(IsPlayerInAnyVehicle(playerid)) {
  2334. new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(playerid, X, Y, Z); VehicleID = GetPlayerVehicleID(playerid);
  2335. GetVehicleZAngle(VehicleID, Angle); SetVehiclePos(VehicleID, X, Y, Z); SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1000.0);
  2336. CMDMessageToAdmins(playerid,"FLIP"); return SendClientMessage(playerid, blue,"Vehicle Flipped. You can also do /flip [playerid]");
  2337. } else return SendClientMessage(playerid,red,"Error: You're not in a vehicle. You can also do /flip [playerid]");
  2338. }
  2339. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2340. player1 = strval(params);
  2341.  
  2342. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2343. CMDMessageToAdmins(playerid,"FLIP");
  2344. if (IsPlayerInAnyVehicle(player1)) {
  2345. new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(player1, X, Y, Z); VehicleID = GetPlayerVehicleID(player1);
  2346. GetVehicleZAngle(VehicleID, Angle); SetVehiclePos(VehicleID, X, Y, Z); SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1000.0);
  2347. CMDMessageToAdmins(playerid,"FLIP");
  2348. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2349. format(string,sizeof(string),"Administrator %s flipped your vehicle",adminname); SendClientMessage(player1,blue,string);
  2350. format(string,sizeof(string),"You've flipped %s's vehicle", playername);
  2351. return SendClientMessage(playerid, blue,string);
  2352. } else return SendClientMessage(playerid,red,"Error: This player isn't in a vehicle");
  2353. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2354. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2355. }
  2356.  
  2357.  
  2358. dcmd_vdestroy(playerid,params[])
  2359. {
  2360. #pragma unused params
  2361. if(PlayerInfo[playerid][Level] >= 1) return EraseVehicle(GetPlayerVehicleID(playerid));
  2362. else return SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command");
  2363. }
  2364.  
  2365.  
  2366. dcmd_ltc(playerid,params[])
  2367. {
  2368. #pragma unused params
  2369. if(PlayerInfo[playerid][Level] >= 1) {
  2370. if(!IsPlayerInAnyVehicle(playerid)) {
  2371. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  2372. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  2373. 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);
  2374. AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  2375. AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  2376. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,0);
  2377. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  2378. return PlayerInfo[playerid][pCar] = LVehicleIDt;
  2379. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2380. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  2381. }
  2382.  
  2383.  
  2384. dcmd_warp(playerid,params[])
  2385. {
  2386. return dcmd_teleplayer(playerid,params);
  2387. }
  2388.  
  2389.  
  2390. dcmd_teleplayer(playerid,params[])
  2391. {
  2392. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2393. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2394. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /teleplayer [playerid] to [playerid]");
  2395. new player1 = strval(tmp), player2 = strval(tmp2), string[128], Float:plocx,Float:plocy,Float:plocz;
  2396. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2397. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2398. if(IsPlayerConnected(player2) && player2 != INVALID_PLAYER_ID) {
  2399. CMDMessageToAdmins(playerid,"TELEPLAYER");
  2400. GetPlayerPos(player2, plocx, plocy, plocz);
  2401. new intid = GetPlayerInterior(player2); SetPlayerInterior(player1,intid);
  2402. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(player2));
  2403. if (GetPlayerState(player1) == PLAYER_STATE_DRIVER) {
  2404. new VehicleID = GetPlayerVehicleID(player1);
  2405. SetVehiclePos(VehicleID, plocx, plocy+4, plocz); LinkVehicleToInterior(VehicleID,intid);
  2406. SetVehicleVirtualWorld(VehicleID, GetPlayerVirtualWorld(player2) );
  2407. }
  2408. else SetPlayerPos(player1,plocx,plocy+2, plocz);
  2409. format(string,sizeof(string),"Administrator \"%s\" has teleported \"%s\" to \"%s's\" location", pName(playerid), pName(player1), pName(player2) );
  2410. SendClientMessage(player1,blue,string); SendClientMessage(player2,blue,string);
  2411. format(string,sizeof(string),"You've teleported \"%s\" to \"%s's\" location", pName(player1), pName(player2) );
  2412. return SendClientMessage(playerid,blue,string);
  2413. } else return SendClientMessage(playerid, red, "Player2 is not connected");
  2414. } else return SendClientMessage(playerid, red, "Player1 is not connected");
  2415. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2416. }
  2417.  
  2418.  
  2419. dcmd_goto(playerid,params[])
  2420. {
  2421. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2422. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /goto [playerid]");
  2423. new player1, string[128];
  2424. if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
  2425. else player1 = strval(params);
  2426. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2427. CMDMessageToAdmins(playerid,"GOTO");
  2428. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z); SetPlayerInterior(playerid,GetPlayerInterior(player1));
  2429. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
  2430. if(GetPlayerState(playerid) == 2) {
  2431. SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z); LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(player1));
  2432. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(player1));
  2433. } else SetPlayerPos(playerid,x+2,y,z);
  2434. format(string,sizeof(string),"You've teleported to \"%s\"", pName(player1));
  2435. return SendClientMessage(playerid,blue,string);
  2436. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2437. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2438. }
  2439.  
  2440.  
  2441. dcmd_vgoto(playerid,params[])
  2442. {
  2443. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2444. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /vgoto [vehicleid]");
  2445. new player1, string[128];
  2446. player1 = strval(params);
  2447. CMDMessageToAdmins(playerid,"VGOTO");
  2448. new Float:x, Float:y, Float:z; GetVehiclePos(player1,x,y,z);
  2449. SetPlayerVirtualWorld(playerid,GetVehicleVirtualWorld(player1));
  2450. if(GetPlayerState(playerid) == 2) {
  2451. SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z);
  2452. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetVehicleVirtualWorld(player1) );
  2453. } else SetPlayerPos(playerid,x+2,y,z);
  2454. format(string,sizeof(string),"You've teleported to vehicle id %d", player1);
  2455. return SendClientMessage(playerid,blue,string);
  2456. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2457. }
  2458.  
  2459.  
  2460. dcmd_lgoto(playerid,params[])
  2461. {
  2462. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2463. new Float:x, Float:y, Float:z;
  2464. new tmp[256], tmp2[256], tmp3[256];
  2465. new string[128], Index; tmp = strtok(params,Index); tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2466. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid,red,"USAGE: /lgoto [x] [y] [z]");
  2467. x = strval(tmp); y = strval(tmp2); z = strval(tmp3);
  2468. CMDMessageToAdmins(playerid,"LGOTO");
  2469. if(GetPlayerState(playerid) == 2) SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
  2470. else SetPlayerPos(playerid,x,y,z);
  2471. format(string,sizeof(string),"You've teleported to %f, %f, %f", x,y,z); return SendClientMessage(playerid,blue,string);
  2472. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2473. }
  2474.  
  2475.  
  2476. dcmd_givecar(playerid,params[])
  2477. {
  2478. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  2479. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /givecar [playerid]");
  2480. new player1 = strval(params), playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2481. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2482. if(IsPlayerInAnyVehicle(player1)) return SendClientMessage(playerid,red,"ERROR: Player already has a vehicle");
  2483. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2484. CMDMessageToAdmins(playerid,"GIVECAR");
  2485. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  2486. CarSpawner(player1,415);
  2487. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2488. format(string,sizeof(string),"Administrator %s has given you a car",adminname); SendClientMessage(player1,blue,string);
  2489. format(string,sizeof(string),"You've given %s a car", playername); return SendClientMessage(playerid,blue,string);
  2490. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2491. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2492. }
  2493.  
  2494.  
  2495. dcmd_get(playerid,params[])
  2496. {
  2497. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2498. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /get [playerid]");
  2499. new player1, string[128];
  2500. if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
  2501. else player1 = strval(params);
  2502. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2503. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2504. CMDMessageToAdmins(playerid,"GET");
  2505. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
  2506. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2507. if(GetPlayerState(player1) == 2) {
  2508. new VehicleID = GetPlayerVehicleID(player1);
  2509. SetVehiclePos(VehicleID,x+3,y,z); LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  2510. SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
  2511. } else SetPlayerPos(player1,x+2,y,z);
  2512. format(string,sizeof(string),"You've been teleported to Administrator \"%s's\" location", pName(playerid) ); SendClientMessage(player1,blue,string);
  2513. format(string,sizeof(string),"You've teleported \"%s\" to your location", pName(player1) );
  2514. return SendClientMessage(playerid,blue,string);
  2515. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2516. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2517. }
  2518.  
  2519.  
  2520. dcmd_warn(playerid,params[])
  2521. {
  2522. if(PlayerInfo[playerid][Level] >= 2) {
  2523. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2524. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /warn [playerid] [reason]");
  2525. new warned = strval(tmp), str[128];
  2526. if(PlayerInfo[warned][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2527. if(IsPlayerConnected(warned) && warned != INVALID_PLAYER_ID) {
  2528. if(warned != playerid) {
  2529. CMDMessageToAdmins(playerid,"WARN");
  2530. PlayerInfo[warned][Warnings]++;
  2531. if( PlayerInfo[warned][Warnings] == MAX_WARNINGS) {
  2532. 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);
  2533. SendClientMessageToAll(grey, str);
  2534. SaveToFile("KickLog",str); Kick(warned);
  2535. return PlayerInfo[warned][Warnings] = 0;
  2536. }
  2537. else {
  2538. 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);
  2539. return SendClientMessageToAll(yellow, str);
  2540. }
  2541. } else return SendClientMessage(playerid, red, "ERROR: You cannot warn yourself");
  2542. } else return SendClientMessage(playerid, red, "ERROR: Player is not connected");
  2543. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2544. }
  2545.  
  2546.  
  2547. dcmd_kick(playerid,params[])
  2548. {
  2549. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2550. if(PlayerInfo[playerid][Level] >= 2) {
  2551. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2552. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /kick [playerid] [reason]");
  2553. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2554. player1 = strval(tmp);
  2555.  
  2556. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2557. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2558. CMDMessageToAdmins(playerid,"KICK");
  2559. if(!strlen(tmp2)) {
  2560. format(string,sizeof(string),"%s has been kicked by Administrator %s [no reason given] ",playername,adminname); SendClientMessageToAll(grey,string);
  2561. SaveToFile("KickLog",string); print(string); return Kick(player1);
  2562. }
  2563. else {
  2564. format(string,sizeof(string),"%s has been kicked by Administrator %s [reason: %s] ",playername,adminname,params[2]); SendClientMessageToAll(grey,string);
  2565. SaveToFile("KickLog",string); print(string); return Kick(player1);
  2566. }
  2567. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2568. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2569. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2570. }
  2571.  
  2572.  
  2573. dcmd_ban(playerid,params[])
  2574. {
  2575. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2576. if(PlayerInfo[playerid][Level] >= 3) {
  2577. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2578. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ban [playerid] [reason]");
  2579. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "ERROR: You must give a reason");
  2580. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2581. player1 = strval(tmp);
  2582.  
  2583. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2584. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2585. new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
  2586. CMDMessageToAdmins(playerid,"BAN");
  2587. 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);
  2588. SendClientMessageToAll(grey,string);
  2589. SaveToFile("BanLog",string);
  2590. print(string);
  2591. if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
  2592. format(string,sizeof(string),"banned by Administrator %s. Reason: %s", adminname, params[2] );
  2593. return BanEx(player1, string);
  2594. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2595. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2596. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2597. }
  2598.  
  2599.  
  2600. dcmd_rban(playerid,params[])
  2601. {
  2602. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2603. if(PlayerInfo[playerid][Level] >= 4) {
  2604. new ip[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2605. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /rban [playerid] [reason]");
  2606. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "ERROR: You must give a reason");
  2607. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2608. player1 = strval(tmp);
  2609.  
  2610. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2611. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2612. new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
  2613. CMDMessageToAdmins(playerid,"RBAN");
  2614. 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);
  2615. SendClientMessageToAll(grey,string);
  2616. SaveToFile("BanLog",string);
  2617. print(string);
  2618. if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
  2619. GetPlayerIp(player1,ip,sizeof(ip));
  2620. strdel(ip,strlen(ip)-2,strlen(ip));
  2621. format(ip,128,"%s**",ip);
  2622. format(ip,128,"banip %s",ip);
  2623. SendRconCommand(ip);
  2624. return 1;
  2625. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2626. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2627. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2628. }
  2629.  
  2630.  
  2631. dcmd_slap(playerid,params[])
  2632. {
  2633. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2634. if(PlayerInfo[playerid][Level] >= 2) {
  2635. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2636. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /slap [playerid] [reason/with]");
  2637. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2638. player1 = strval(tmp);
  2639.  
  2640. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2641. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2642. CMDMessageToAdmins(playerid,"SLAP");
  2643. new Float:Health, Float:x, Float:y, Float:z; GetPlayerHealth(player1,Health); SetPlayerHealth(player1,Health-25);
  2644. GetPlayerPos(player1,x,y,z); SetPlayerPos(player1,x,y,z+5); PlayerPlaySound(playerid,1190,0.0,0.0,0.0); PlayerPlaySound(player1,1190,0.0,0.0,0.0);
  2645.  
  2646. if(strlen(tmp2)) {
  2647. format(string,sizeof(string),"You've been slapped by Administrator %s %s ",adminname,params[2]); SendClientMessage(player1,red,string);
  2648. format(string,sizeof(string),"You've slapped %s %s ",playername,params[2]); return SendClientMessage(playerid,blue,string);
  2649. }
  2650. else {
  2651. format(string,sizeof(string),"You've been slapped by Administrator %s ",adminname); SendClientMessage(player1,red,string);
  2652. format(string,sizeof(string),"You've slapped %s",playername); return SendClientMessage(playerid,blue,string);
  2653. }
  2654. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2655. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2656. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2657. }
  2658.  
  2659.  
  2660. dcmd_explode(playerid,params[])
  2661. {
  2662. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2663. if(PlayerInfo[playerid][Level] >= 3) {
  2664. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2665. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /explode [playerid] [reason]");
  2666. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2667. player1 = strval(tmp);
  2668.  
  2669. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2670. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2671. CMDMessageToAdmins(playerid,"EXPLODE");
  2672. new Float:burnx, Float:burny, Float:burnz; GetPlayerPos(player1,burnx, burny, burnz); CreateExplosion(burnx, burny , burnz, 7,10.0);
  2673.  
  2674. if(strlen(tmp2)) {
  2675. format(string,sizeof(string),"You've been exploded by Administrator %s [reason: %s]",adminname,params[2]); SendClientMessage(player1,blue,string);
  2676. format(string,sizeof(string),"You've exploded %s [reason: %s]", playername,params[2]); return SendClientMessage(playerid,blue,string);
  2677. }
  2678. else {
  2679. format(string,sizeof(string),"You've been exploded by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2680. format(string,sizeof(string),"You've exploded %s", playername); return SendClientMessage(playerid,blue,string);
  2681. }
  2682. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2683. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2684. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2685. }
  2686.  
  2687.  
  2688. dcmd_jail(playerid,params[])
  2689. {
  2690. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2691. if(PlayerInfo[playerid][Level] >= 3) {
  2692. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  2693. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid] [minutes] [reason]");
  2694. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2695. player1 = strval(tmp);
  2696.  
  2697. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2698. if(PlayerInfo[player1][Jailed] == 0) {
  2699. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2700. new jtime = strval(tmp2);
  2701. if(jtime == 0) jtime = 9999;
  2702.  
  2703. CMDMessageToAdmins(playerid,"JAIL");
  2704. PlayerInfo[player1][JailTime] = jtime*1000*60;
  2705. SetTimerEx("JailPlayer",5000,0,"d",player1);
  2706. SetTimerEx("Jail1",1000,0,"d",player1);
  2707. PlayerInfo[player1][Jailed] = 1;
  2708.  
  2709. if(jtime == 9999) {
  2710. if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has jailed %s ",adminname, playername);
  2711. else format(string,sizeof(string),"Administrator %s has jailed %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
  2712. }
  2713. else {
  2714. if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes",adminname, playername, jtime);
  2715. else format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes [reason: %s]",adminname, playername, jtime, params[strlen(tmp2)+strlen(tmp)+1] );
  2716. }
  2717. return SendClientMessageToAll(blue,string);
  2718. } else return SendClientMessage(playerid, red, "Player is already in jail");
  2719. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2720. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2721. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2722. }
  2723.  
  2724.  
  2725. dcmd_unjail(playerid,params[])
  2726. {
  2727. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2728. if(PlayerInfo[playerid][Level] >= 3) {
  2729. new tmp[256], Index; tmp = strtok(params,Index);
  2730. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid]");
  2731. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2732. player1 = strval(tmp);
  2733.  
  2734. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2735. if(PlayerInfo[player1][Jailed] == 1) {
  2736. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2737. format(string,sizeof(string),"Administrator %s has unjailed you",adminname); SendClientMessage(player1,blue,string);
  2738. format(string,sizeof(string),"Administrator %s has unjailed %s",adminname, playername);
  2739. JailRelease(player1);
  2740. return SendClientMessageToAll(blue,string);
  2741. } else return SendClientMessage(playerid, red, "Player is not in jail");
  2742. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2743. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2744. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2745. }
  2746.  
  2747.  
  2748. dcmd_jailed(playerid,params[])
  2749. {
  2750. #pragma unused params
  2751. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2752. if(PlayerInfo[playerid][Level] >= 2) {
  2753. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2754. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed]) Count++;
  2755. if(Count == 0) return SendClientMessage(playerid,red, "No players are jailed");
  2756.  
  2757. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed]) {
  2758. GetPlayerName(i, adminname, sizeof(adminname));
  2759. if(!First2) { format(string, sizeof(string), "Jailed Players: (%d)%s", i,adminname); First2 = true; }
  2760. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2761. }
  2762. return SendClientMessage(playerid,COLOR_WHITE,string);
  2763. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2764. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2765. }
  2766.  
  2767.  
  2768. dcmd_freeze(playerid,params[])
  2769. {
  2770. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2771. if(PlayerInfo[playerid][Level] >= 3) {
  2772. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  2773. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /freeze [playerid] [minutes] [reason]");
  2774. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2775. player1 = strval(tmp);
  2776.  
  2777. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2778. if(PlayerInfo[player1][Frozen] == 0) {
  2779. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2780. new ftime = strval(tmp2);
  2781. if(ftime == 0) ftime = 9999;
  2782.  
  2783. CMDMessageToAdmins(playerid,"FREEZE");
  2784. TogglePlayerControllable(player1,false); PlayerInfo[player1][Frozen] = 1; PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  2785. PlayerInfo[player1][FreezeTime] = ftime*1000*60;
  2786. FreezeTimer[player1] = SetTimerEx("UnFreezeMe",PlayerInfo[player1][FreezeTime],0,"d",player1);
  2787.  
  2788. if(ftime == 9999) {
  2789. if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has frozen %s ",adminname, playername);
  2790. else format(string,sizeof(string),"Administrator %s has frozen %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
  2791. }
  2792. else {
  2793. if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has frozen %s for %d minutes",adminname, playername, ftime);
  2794. else format(string,sizeof(string),"Administrator %s has frozen %s for %d minutes [reason: %s]",adminname, playername, ftime, params[strlen(tmp2)+strlen(tmp)+1] );
  2795. }
  2796. return SendClientMessageToAll(blue,string);
  2797. } else return SendClientMessage(playerid, red, "Player is already frozen");
  2798. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2799. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2800. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2801. }
  2802.  
  2803.  
  2804. dcmd_unfreeze(playerid,params[])
  2805. {
  2806. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2807. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2808. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /unfreeze [playerid]");
  2809. new player1, string[128];
  2810. player1 = strval(params);
  2811.  
  2812. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2813. if(PlayerInfo[player1][Frozen] == 1) {
  2814. CMDMessageToAdmins(playerid,"UNFREEZE");
  2815. UnFreezeMe(player1);
  2816. format(string,sizeof(string),"Administrator %s has unfrozen you", PlayerName2(playerid) ); SendClientMessage(player1,blue,string);
  2817. format(string,sizeof(string),"Administrator %s has unfrozen %s", PlayerName2(playerid), PlayerName2(player1));
  2818. return SendClientMessageToAll(blue,string);
  2819. } else return SendClientMessage(playerid, red, "Player is not frozen");
  2820. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2821. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2822. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2823. }
  2824.  
  2825.  
  2826. dcmd_frozen(playerid,params[])
  2827. {
  2828. #pragma unused params
  2829. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2830. if(PlayerInfo[playerid][Level] >= 2) {
  2831. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2832. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen]) Count++;
  2833. if(Count == 0) return SendClientMessage(playerid,red, "No players are frozen");
  2834.  
  2835. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen]) {
  2836. GetPlayerName(i, adminname, sizeof(adminname));
  2837. if(!First2) { format(string, sizeof(string), "Frozen Players: (%d)%s", i,adminname); First2 = true; }
  2838. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2839. }
  2840. return SendClientMessage(playerid,COLOR_WHITE,string);
  2841. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2842. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2843. }
  2844.  
  2845.  
  2846. dcmd_mute(playerid,params[])
  2847. {
  2848. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2849. if(PlayerInfo[playerid][Level] >= 2) {
  2850. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2851. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /mute [playerid] [reason]");
  2852. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2853. player1 = strval(tmp);
  2854.  
  2855. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2856. if(PlayerInfo[player1][Muted] == 0) {
  2857. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2858. CMDMessageToAdmins(playerid,"MUTE");
  2859. PlayerPlaySound(player1,1057,0.0,0.0,0.0); PlayerInfo[player1][Muted] = 1; PlayerInfo[player1][MuteWarnings] = 0;
  2860.  
  2861. if(strlen(tmp2)) {
  2862. format(string,sizeof(string),"You've been muted by Administrator %s [reason: %s]",adminname,params[2]); SendClientMessage(player1,blue,string);
  2863. format(string,sizeof(string),"You've muted %s [reason: %s]", playername,params[2]); return SendClientMessage(playerid,blue,string);
  2864. }
  2865. else {
  2866. format(string,sizeof(string),"You've been muted by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2867. format(string,sizeof(string),"You've muted %s", playername); return SendClientMessage(playerid,blue,string);
  2868. }
  2869. } else return SendClientMessage(playerid, red, "Player is already muted");
  2870. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2871. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2872. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2873. }
  2874.  
  2875.  
  2876. dcmd_unmute(playerid,params[])
  2877. {
  2878. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2879. if(PlayerInfo[playerid][Level] >= 2) {
  2880. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /unmute [playerid]");
  2881. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2882. player1 = strval(params);
  2883.  
  2884. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2885. if(PlayerInfo[player1][Muted] == 1) {
  2886. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2887. CMDMessageToAdmins(playerid,"UNMUTE");
  2888. PlayerPlaySound(player1,1057,0.0,0.0,0.0); PlayerInfo[player1][Muted] = 0; PlayerInfo[player1][MuteWarnings] = 0;
  2889. format(string,sizeof(string),"You've been unmuted by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2890. format(string,sizeof(string),"You've unmuted %s", playername); return SendClientMessage(playerid,blue,string);
  2891. } else return SendClientMessage(playerid, red, "Player is not muted");
  2892. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2893. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2894. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2895. }
  2896.  
  2897.  
  2898. dcmd_muted(playerid,params[])
  2899. {
  2900. #pragma unused params
  2901. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2902. if(PlayerInfo[playerid][Level] >= 2) {
  2903. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2904. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted]) Count++;
  2905. if(Count == 0) return SendClientMessage(playerid,red, "No players are muted");
  2906.  
  2907. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted]) {
  2908. GetPlayerName(i, adminname, sizeof(adminname));
  2909. if(!First2) { format(string, sizeof(string), "Muted Players: (%d)%s", i,adminname); First2 = true; }
  2910. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2911. }
  2912. return SendClientMessage(playerid,COLOR_WHITE,string);
  2913. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2914. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2915. }
  2916.  
  2917.  
  2918. dcmd_akill(playerid,params[])
  2919. {
  2920. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2921. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2922. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /akill [playerid]");
  2923. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2924. player1 = strval(params);
  2925.  
  2926. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2927. if( (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel] ) )
  2928. return SendClientMessage(playerid, red, "You cannot akill the highest level admin");
  2929. CMDMessageToAdmins(playerid,"AKILL");
  2930. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2931. format(string,sizeof(string),"Administrator %s has killed you",adminname); SendClientMessage(player1,blue,string);
  2932. format(string,sizeof(string),"You've killed %s",playername); SendClientMessage(playerid,blue,string);
  2933. return SetPlayerHealth(player1,0.0);
  2934. } else return SendClientMessage(playerid, red, "Player is not connected");
  2935. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2936. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2937. }
  2938.  
  2939.  
  2940. dcmd_weaps(playerid,params[])
  2941. {
  2942. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  2943. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /weaps [playerid]");
  2944. new player1, string[128], string2[64], WeapName[24], slot, weap, ammo, Count, x;
  2945. player1 = strval(params);
  2946.  
  2947. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2948. format(string2,sizeof(string2),"[>> %s Weapons (id:%d) <<]", PlayerName2(player1), player1); SendClientMessage(playerid,blue,string2);
  2949. for (slot = 0; slot < 14; slot++) { GetPlayerWeaponData(player1, slot, weap, ammo); if( ammo != 0 && weap != 0) Count++; }
  2950. if(Count < 1) return SendClientMessage(playerid,blue,"Player has no weapons");
  2951.  
  2952. if(Count >= 1) {
  2953. for (slot = 0; slot < 14; slot++) {
  2954. GetPlayerWeaponData(player1, slot, weap, ammo);
  2955. if( ammo != 0 && weap != 0) {
  2956. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  2957. if(ammo == 65535 || ammo == 1) format(string,sizeof(string),"%s%s (1)",string, WeapName );
  2958. else format(string,sizeof(string),"%s%s (%d)",string, WeapName, ammo );
  2959. x++;
  2960. if(x >= 5) {
  2961. SendClientMessage(playerid, blue, string);
  2962. x = 0;
  2963. format(string, sizeof(string), "");
  2964. }
  2965. else format(string, sizeof(string), "%s, ", string);
  2966. }
  2967. }
  2968. if(x <= 4 && x > 0) {
  2969. string[strlen(string)-3] = '.';
  2970. SendClientMessage(playerid, blue, string);
  2971. }
  2972. }
  2973. return 1;
  2974. } else return SendClientMessage(playerid, red, "Player is not connected");
  2975. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2976. }
  2977.  
  2978.  
  2979. dcmd_aka(playerid,params[])
  2980. {
  2981. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2982. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /aka [playerid]");
  2983. new player1, playername[MAX_PLAYER_NAME], str[128], tmp3[50];
  2984. player1 = strval(params);
  2985. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2986. GetPlayerIp(player1,tmp3,50);
  2987. GetPlayerName(player1, playername, sizeof(playername));
  2988. format(str,sizeof(str),"AKA: [%s id:%d] [%s] %s", playername, player1, tmp3, dini_Get("ladmin/config/aka.txt",tmp3) );
  2989. return SendClientMessage(playerid,blue,str);
  2990. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2991. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  2992. }
  2993.  
  2994.  
  2995. dcmd_screen(playerid,params[])
  2996. {
  2997. if(PlayerInfo[playerid][Level] >= 2) {
  2998. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2999. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /screen [playerid] [text]");
  3000. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3001. player1 = strval(params);
  3002.  
  3003. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  3004. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3005. CMDMessageToAdmins(playerid,"SCREEN");
  3006. format(string,sizeof(string),"Administrator %s has sent you a screen message",adminname); SendClientMessage(player1,blue,string);
  3007. format(string,sizeof(string),"You've sent %s a screen message (%s)", playername, params[2]); SendClientMessage(playerid,blue,string);
  3008. return GameTextForPlayer(player1, params[2],4000,3);
  3009. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  3010. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3011. }
  3012.  
  3013.  
  3014. dcmd_laston(playerid,params[])
  3015. {
  3016. if(PlayerInfo[playerid][Level] >= 0) {
  3017. new tmp2[256], file[256],player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], str[128];
  3018. GetPlayerName(playerid, adminname, sizeof(adminname));
  3019.  
  3020. if(!strlen(params)) {
  3021. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(adminname));
  3022. if(!fexist(file)) return SendClientMessage(playerid, red, "Error: File doesnt exist, player isn't registered");
  3023. if(dUserINT(PlayerName2(playerid)).("LastOn")==0) {
  3024. format(str, sizeof(str),"Never"); tmp2 = str;
  3025. }
  3026. else {
  3027. tmp2 = dini_Get(file,"LastOn");
  3028. }
  3029. format(str, sizeof(str),"You were last on the server on %s",tmp2);
  3030. return SendClientMessage(playerid, red, str);
  3031. }
  3032. player1 = strval(params);
  3033. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  3034. CMDMessageToAdmins(playerid,"LASTON");
  3035. GetPlayerName(player1,playername,sizeof(playername)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(playername));
  3036. if(!fexist(file)) return SendClientMessage(playerid, red, "Error: File doesnt exist, player isn't registered");
  3037. if(dUserINT(PlayerName2(player1)).("LastOn")==0) {
  3038. format(str, sizeof(str),"Never"); tmp2 = str;
  3039. }
  3040. else {
  3041. tmp2 = dini_Get(file,"LastOn");
  3042. }
  3043. format(str, sizeof(str),"%s was last on the server on %s",playername,tmp2);
  3044. return SendClientMessage(playerid, red, str);
  3045. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  3046. }
  3047. return 1;
  3048. }
  3049.  
  3050.  
  3051. dcmd_admins(playerid,params[])
  3052. {
  3053. #pragma unused params
  3054. new Count[2], i, string[128];
  3055. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) {
  3056. if(PlayerInfo[i][Level] > 0) Count[0]++;
  3057. if(IsPlayerAdmin(i)) Count[1]++;
  3058. }
  3059.  
  3060. #if defined HIDE_ADMINS
  3061. if(PlayerInfo[playerid][Level] == 0) {
  3062. if(Count[0] >= 1) {
  3063. format(string, sizeof(string), "There are %d Administrators online. Use /report <id> <reason> if you suspect a player of cheating", Count[0]);
  3064. return SendClientMessage(playerid, blue, string);
  3065. } else return SendClientMessage(playerid, blue, "No Administrators online");
  3066. }
  3067. #endif
  3068.  
  3069. if( (Count[0] == 0 && Count[1] == 0) || (Count[0] == 0 && Count[1] >= 1 && PlayerInfo[playerid][Level] == 0) ) return SendClientMessage(playerid, blue, "No Administrators online");
  3070.  
  3071. if(Count[0] == 1) {
  3072. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] > 0) {
  3073. format(string, sizeof(string), "Staff Online: ID: %d - Nickname: %s - Level: %d", i, PlayerName2(i), PlayerInfo[i][Level] ); SendClientMessage(playerid, blue, string);
  3074. }
  3075. }
  3076.  
  3077. if(Count[0] > 1) {
  3078. new x; format(string, sizeof(string), "Admins: ");
  3079. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] > 0) {
  3080. format(string,sizeof(string),"%s(%d)%s [%d]",string,i,PlayerName2(i),PlayerInfo[i][Level]);
  3081. x++;
  3082. if(x >= 5) {
  3083. SendClientMessage(playerid, blue, string); format(string, sizeof(string), "Admins: "); x = 0;
  3084. }
  3085. else format(string, sizeof(string), "%s, ", string);
  3086. }
  3087. if(x <= 4 && x > 0) {
  3088. string[strlen(string)-3] = '.';
  3089. SendClientMessage(playerid, blue, string);
  3090. }
  3091. }
  3092.  
  3093. if( (Count[1] == 1) && (PlayerInfo[playerid][Level] > 0) ) {
  3094. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) {
  3095. format(string, sizeof(string), "RCON Admin: (%d)%s", i, PlayerName2(i)); SendClientMessage(playerid, COLOR_WHITE, string);
  3096. }
  3097. }
  3098. if(Count[1] > 1) {
  3099. new x; format(string, sizeof(string), "RCON Admins: ");
  3100. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) {
  3101. format(string,sizeof(string),"%s(%d)%s",string,i,PlayerName2(i));
  3102. x++;
  3103. if(x >= 5) {
  3104. SendClientMessage(playerid, COLOR_WHITE, string); format(string, sizeof(string), "RCON Admins: "); x = 0;
  3105. }
  3106. else format(string, sizeof(string), "%s, ", string);
  3107. }
  3108. if(x <= 4 && x > 0) {
  3109. string[strlen(string)-3] = '.';
  3110. SendClientMessage(playerid, COLOR_WHITE, string);
  3111. }
  3112. }
  3113. return 1;
  3114. }
  3115.  
  3116.  
  3117. dcmd_setlevel(playerid,params[])
  3118. {
  3119. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3120. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  3121. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3122. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");
  3123. new player1, level, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3124. player1 = strval(tmp);
  3125. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");
  3126. level = strval(tmp2);
  3127.  
  3128. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3129. if(PlayerInfo[player1][LoggedIn] == 1) {
  3130. if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
  3131. if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  3132. CMDMessageToAdmins(playerid,"SETLEVEL");
  3133. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3134. new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  3135.  
  3136. if(level > 0) format(string,sizeof(string),"Administrator %s has set you to Administrator Status [level %d]",adminname, level);
  3137. else format(string,sizeof(string),"Administrator %s has set you to Player Status [level %d]",adminname, level);
  3138. SendClientMessage(player1,blue,string);
  3139.  
  3140. if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"Promoted", 2000, 3);
  3141. else GameTextForPlayer(player1,"Demoted", 2000, 3);
  3142.  
  3143. format(string,sizeof(string),"You've made %s Level %d on %d/%d/%d at %d:%d:%d", playername, level, day, month, year, hour, minute, second); SendClientMessage(playerid,blue,string);
  3144. 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);
  3145. SaveToFile("AdminLog",string);
  3146. dUserSetINT(PlayerName2(player1)).("level",(level));
  3147. PlayerInfo[player1][Level] = level;
  3148. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  3149. } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
  3150. } else return SendClientMessage(playerid, red, "Player is not connected");
  3151. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3152. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3153. }
  3154.  
  3155.  
  3156. dcmd_settemplevel(playerid,params[])
  3157. {
  3158. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3159. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  3160. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3161. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /settemplevel [playerid] [level]");
  3162. new player1, level, string[128];
  3163. player1 = strval(tmp);
  3164. level = strval(tmp2);
  3165.  
  3166. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3167. if(PlayerInfo[player1][LoggedIn] == 1) {
  3168. if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
  3169. if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  3170. CMDMessageToAdmins(playerid,"SETTEMPLEVEL");
  3171. new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  3172.  
  3173. if(level > 0) format(string,sizeof(string),"Administrator %s has temporarily set you to Administrator Status [level %d]", pName(playerid), level);
  3174. else format(string,sizeof(string),"Administrator %s has temporarily set you to Player Status [level %d]", pName(playerid), level);
  3175. SendClientMessage(player1,blue,string);
  3176.  
  3177. if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"Promoted", 2000, 3);
  3178. else GameTextForPlayer(player1,"Demoted", 2000, 3);
  3179.  
  3180. format(string,sizeof(string),"You've 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);
  3181. 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);
  3182. SaveToFile("TempAdminLog",string);
  3183. PlayerInfo[player1][Level] = level;
  3184. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  3185. } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
  3186. } else return SendClientMessage(playerid, red, "Player is not connected");
  3187. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3188. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3189. }
  3190.  
  3191.  
  3192. dcmd_report(playerid,params[])
  3193. {
  3194. new reported, tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3195. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /report [playerid] [reason]");
  3196. reported = strval(tmp);
  3197.  
  3198. if(IsPlayerConnected(reported) && reported != INVALID_PLAYER_ID) {
  3199. if(PlayerInfo[reported][Level] == ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot report this administrator");
  3200. if(playerid == reported) return SendClientMessage(playerid,red,"ERROR: You Cannot report yourself");
  3201. if(strlen(params) > 7) {
  3202. new reportedname[MAX_PLAYER_NAME], reporter[MAX_PLAYER_NAME], str[128], hour,minute,second; gettime(hour,minute,second);
  3203. GetPlayerName(reported, reportedname, sizeof(reportedname)); GetPlayerName(playerid, reporter, sizeof(reporter));
  3204. 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);
  3205. MessageToAdmins(COLOR_WHITE,str);
  3206. SaveToFile("ReportLog",str);
  3207. 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]);
  3208. for(new i = 1; i < MAX_REPORTS-1; i++) Reports[i] = Reports[i+1];
  3209. Reports[MAX_REPORTS-1] = str;
  3210. return SendClientMessage(playerid,yellow, "Your report has been sent to online administrators.");
  3211. } else return SendClientMessage(playerid,red,"ERROR: Must be a valid reason");
  3212. } else return SendClientMessage(playerid, red, "Player is not connected");
  3213. }
  3214.  
  3215.  
  3216. dcmd_reports(playerid,params[])
  3217. {
  3218. #pragma unused params
  3219. if(PlayerInfo[playerid][Level] >= 1) {
  3220. new ReportCount;
  3221. for(new i = 1; i < MAX_REPORTS; i++) {
  3222. if(strcmp( Reports[i], "<none>", true) != 0) { ReportCount++; SendClientMessage(playerid,COLOR_WHITE,Reports[i]); }
  3223. }
  3224. if(ReportCount == 0) SendClientMessage(playerid,COLOR_WHITE,"There have been no reports");
  3225. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  3226. return 1;
  3227. }
  3228.  
  3229.  
  3230. dcmd_richlist(playerid,params[])
  3231. {
  3232. #pragma unused params
  3233. if(PlayerInfo[playerid][Level] >= 1) {
  3234. new string[128], Slot1 = -1, Slot2 = -1, Slot3 = -1, Slot4 = -1, HighestCash = -9999;
  3235. SendClientMessage(playerid,COLOR_WHITE,"Rich List:");
  3236.  
  3237. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x)) if (GetPlayerMoney(x) >= HighestCash) {
  3238. HighestCash = GetPlayerMoney(x);
  3239. Slot1 = x;
  3240. }
  3241. HighestCash = -9999;
  3242. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1) if (GetPlayerMoney(x) >= HighestCash) {
  3243. HighestCash = GetPlayerMoney(x);
  3244. Slot2 = x;
  3245. }
  3246. HighestCash = -9999;
  3247. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1 && x != Slot2) if (GetPlayerMoney(x) >= HighestCash) {
  3248. HighestCash = GetPlayerMoney(x);
  3249. Slot3 = x;
  3250. }
  3251. HighestCash = -9999;
  3252. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1 && x != Slot2 && x != Slot3) if (GetPlayerMoney(x) >= HighestCash) {
  3253. HighestCash = GetPlayerMoney(x);
  3254. Slot4 = x;
  3255. }
  3256. format(string, sizeof(string), "(%d) %s - $%d", Slot1,PlayerName2(Slot1),GetPlayerMoney(Slot1) );
  3257. SendClientMessage(playerid,COLOR_WHITE,string);
  3258. if(Slot2 != -1) {
  3259. format(string, sizeof(string), "(%d) %s - $%d", Slot2,PlayerName2(Slot2),GetPlayerMoney(Slot2) );
  3260. SendClientMessage(playerid,COLOR_WHITE,string);
  3261. }
  3262. if(Slot3 != -1) {
  3263. format(string, sizeof(string), "(%d) %s - $%d", Slot3,PlayerName2(Slot3),GetPlayerMoney(Slot3) );
  3264. SendClientMessage(playerid,COLOR_WHITE,string);
  3265. }
  3266. if(Slot4 != -1) {
  3267. format(string, sizeof(string), "(%d) %s - $%d", Slot4,PlayerName2(Slot4),GetPlayerMoney(Slot4) );
  3268. SendClientMessage(playerid,COLOR_WHITE,string);
  3269. }
  3270. return 1;
  3271. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3272. }
  3273.  
  3274.  
  3275. dcmd_miniguns(playerid,params[])
  3276. {
  3277. #pragma unused params
  3278. if(PlayerInfo[playerid][Level] >= 1) {
  3279. new bool:First2 = false, Count, string[128], i, slot, weap, ammo;
  3280. for(i = 0; i < MAX_PLAYERS; i++) {
  3281. if(IsPlayerConnected(i)) {
  3282. for(slot = 0; slot < 14; slot++) {
  3283. GetPlayerWeaponData(i, slot, weap, ammo);
  3284. if(ammo != 0 && weap == 38) {
  3285. Count++;
  3286. if(!First2) { format(string, sizeof(string), "Minigun: (%d)%s(ammo%d)", i, PlayerName2(i), ammo); First2 = true; }
  3287. else format(string,sizeof(string),"%s, (%d)%s(ammo%d) ",string, i, PlayerName2(i), ammo);
  3288. }
  3289. }
  3290. }
  3291. }
  3292. if(Count == 0) return SendClientMessage(playerid,COLOR_WHITE,"No players have a minigun"); else return SendClientMessage(playerid,COLOR_WHITE,string);
  3293. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3294. }
  3295.  
  3296.  
  3297. dcmd_uconfig(playerid,params[])
  3298. {
  3299. #pragma unused params
  3300. if(PlayerInfo[playerid][Level] >= 4) {
  3301. UpdateConfig();
  3302. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  3303. return CMDMessageToAdmins(playerid,"UCONFIG");
  3304. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3305. }
  3306.  
  3307.  
  3308. dcmd_botcheck(playerid,params[])
  3309. {
  3310. #pragma unused params
  3311. if(PlayerInfo[playerid][Level] >= 4) {
  3312. for(new i=0; i<MAX_PLAYERS; i++) BotCheck(i);
  3313. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  3314. return CMDMessageToAdmins(playerid,"BOTCHECK");
  3315. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3316. }
  3317.  
  3318.  
  3319. dcmd_lockserver(playerid,params[])
  3320. {
  3321. if(PlayerInfo[playerid][Level] >= 4) {
  3322. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /lockserver [password]");
  3323. new adminname[MAX_PLAYER_NAME], string[128];
  3324. ServerInfo[Locked] = 1;
  3325. strmid(ServerInfo[Password], params[0], 0, strlen(params[0]), 128);
  3326. GetPlayerName(playerid, adminname, sizeof(adminname));
  3327. format(string, sizeof(string), "Administrator \"%s\" has locked the server",adminname);
  3328. SendClientMessageToAll(red,"________________________________________");
  3329. SendClientMessageToAll(red," ");
  3330. SendClientMessageToAll(red,string);
  3331. SendClientMessageToAll(red,"________________________________________");
  3332. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][AllowedIn] = true; }
  3333. CMDMessageToAdmins(playerid,"LOCKSERVER");
  3334. format(string, sizeof(string), "Administrator \"%s\" has set the server password to '%s'",adminname, ServerInfo[Password] );
  3335. return MessageToAdmins(COLOR_WHITE, string);
  3336. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3337. }
  3338.  
  3339.  
  3340. dcmd_unlockserver(playerid,params[])
  3341. {
  3342. #pragma unused params
  3343. if(PlayerInfo[playerid][Level] >= 4) {
  3344. if(ServerInfo[Locked] == 1) {
  3345. new adminname[MAX_PLAYER_NAME], string[128];
  3346. ServerInfo[Locked] = 0;
  3347. strmid(ServerInfo[Password], "", 0, strlen(""), 128);
  3348. GetPlayerName(playerid, adminname, sizeof(adminname));
  3349. format(string, sizeof(string), "Administrator \"%s\" has unlocked the server",adminname);
  3350. SendClientMessageToAll(green,"________________________________________");
  3351. SendClientMessageToAll(green," ");
  3352. SendClientMessageToAll(green,string);
  3353. SendClientMessageToAll(green,"________________________________________");
  3354. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][AllowedIn] = true; }
  3355. return CMDMessageToAdmins(playerid,"UNLOCKSERVER");
  3356. } else return SendClientMessage(playerid,red,"ERROR: Server is not locked");
  3357. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3358. }
  3359.  
  3360.  
  3361. dcmd_password(playerid,params[])
  3362. {
  3363. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /password [password]");
  3364. if(ServerInfo[Locked] == 1) {
  3365. if(PlayerInfo[playerid][AllowedIn] == false) {
  3366. if(!strcmp(ServerInfo[Password],params[0],true)) {
  3367. KillTimer( LockKickTimer[playerid] );
  3368. PlayerInfo[playerid][AllowedIn] = true;
  3369. new string[128];
  3370. SendClientMessage(playerid,COLOR_WHITE,"You've successsfully entered the server password and may now spawn");
  3371. format(string, sizeof(string), "%s has successfully entered server password",PlayerName2(playerid));
  3372. return MessageToAdmins(COLOR_WHITE, string);
  3373. } else return SendClientMessage(playerid,red,"ERROR: Incorrect server password");
  3374. } else return SendClientMessage(playerid,red,"ERROR: You're already logged in");
  3375. } else return SendClientMessage(playerid,red,"ERROR: Server isn't Locked");
  3376. }
  3377.  
  3378.  
  3379. //------------------------------------------------------------------------------
  3380. dcmd_forbidname(playerid,params[])
  3381. {
  3382. if(PlayerInfo[playerid][Level] >= 4) {
  3383. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /forbidname [nickname]");
  3384. new File:BLfile, string[128];
  3385. BLfile = fopen("ladmin/config/ForbiddenNames.cfg",io_append);
  3386. format(string,sizeof(string),"%s\r\n",params[1]);
  3387. fwrite(BLfile,string);
  3388. fclose(BLfile);
  3389. UpdateConfig();
  3390. CMDMessageToAdmins(playerid,"FORBIDNAME");
  3391. format(string, sizeof(string), "Administrator \"%s\" has added the name \"%s\" to the forbidden name list", pName(playerid), params );
  3392. return MessageToAdmins(green,string);
  3393. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3394. }
  3395.  
  3396.  
  3397. dcmd_forbidword(playerid,params[])
  3398. {
  3399. if(PlayerInfo[playerid][Level] >= 4) {
  3400. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /forbidword [word]");
  3401. new File:BLfile, string[128];
  3402. BLfile = fopen("ladmin/config/ForbiddenWords.cfg",io_append);
  3403. format(string,sizeof(string),"%s\r\n",params[1]);
  3404. fwrite(BLfile,string);
  3405. fclose(BLfile);
  3406. UpdateConfig();
  3407. CMDMessageToAdmins(playerid,"FORBIDWORD");
  3408. format(string, sizeof(string), "Administrator \"%s\" has added the word \"%s\" to the forbidden word list", pName(playerid), params );
  3409. return MessageToAdmins(green,string);
  3410. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3411. }
  3412.  
  3413.  
  3414. //==========================[ Spectate Commands ]===============================
  3415. #if defined ENABLE_SPEC
  3416.  
  3417. dcmd_lspec(playerid,params[])
  3418. {
  3419. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3420. if(!strlen(params) || !IsNumeric(params)) return SendClientMessage(playerid, red, "USAGE: /lspec [playerid]");
  3421. new specplayerid = strval(params);
  3422. if(PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3423. if(IsPlayerConnected(specplayerid) && specplayerid != INVALID_PLAYER_ID) {
  3424. if(specplayerid == playerid) return SendClientMessage(playerid, red, "ERROR: You cannot spectate yourself");
  3425. if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && PlayerInfo[specplayerid][SpecID] != INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "Spectate: Player spectating someone else");
  3426. if(GetPlayerState(specplayerid) != 1 && GetPlayerState(specplayerid) != 2 && GetPlayerState(specplayerid) != 3) return SendClientMessage(playerid, red, "Spectate: Player not spawned");
  3427. if( (PlayerInfo[specplayerid][Level] != ServerInfo[MaxAdminLevel]) || (PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] == ServerInfo[MaxAdminLevel]) ) {
  3428. StartSpectate(playerid, specplayerid);
  3429. CMDMessageToAdmins(playerid,"LSPEC");
  3430. GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  3431. GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  3432. return SendClientMessage(playerid,blue,"Now Spectating");
  3433. } else return SendClientMessage(playerid,red,"ERROR: You cannot spectate the highest level admin");
  3434. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3435. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3436. }
  3437.  
  3438.  
  3439. dcmd_lspecvehicle(playerid,params[])
  3440. {
  3441. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3442. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /lspecvehicle [vehicleid]");
  3443. new specvehicleid = strval(params);
  3444. if(specvehicleid < MAX_VEHICLES) {
  3445. TogglePlayerSpectating(playerid, 1);
  3446. PlayerSpectateVehicle(playerid, specvehicleid);
  3447. PlayerInfo[playerid][SpecID] = specvehicleid;
  3448. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  3449. CMDMessageToAdmins(playerid,"SPEC VEHICLE");
  3450. GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  3451. GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  3452. return SendClientMessage(playerid,blue,"Now Spectating");
  3453. } else return SendClientMessage(playerid,red, "ERROR: Invalid Vehicle ID");
  3454. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3455. }
  3456.  
  3457.  
  3458. dcmd_lspecoff(playerid,params[])
  3459. {
  3460. #pragma unused params
  3461. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3462. if(PlayerInfo[playerid][SpecType] != ADMIN_SPEC_TYPE_NONE) {
  3463. StopSpectate(playerid);
  3464. SetTimerEx("PosAfterSpec",3000,0,"d",playerid);
  3465. return SendClientMessage(playerid,blue,"No Longer Spectating");
  3466. } else return SendClientMessage(playerid,red,"ERROR: You're not spectating");
  3467. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3468. }
  3469. #endif
  3470.  
  3471. //==========================[ CHAT COMMANDS ]===================================
  3472.  
  3473. dcmd_disablechat(playerid,params[])
  3474. {
  3475. #pragma unused params
  3476. if(PlayerInfo[playerid][Level] >= 3) {
  3477. CMDMessageToAdmins(playerid,"DISABLECHAT");
  3478. new string[128];
  3479. if(ServerInfo[DisableChat] == 0) {
  3480. ServerInfo[DisableChat] = 1;
  3481. format(string,sizeof(string),"Administrator \"%s\" has disabled chat", pName(playerid) );
  3482. }
  3483. else {
  3484. ServerInfo[DisableChat] = 0;
  3485. format(string,sizeof(string),"Administrator \"%s\" has enabled chat", pName(playerid) );
  3486. } return SendClientMessageToAll(blue,string);
  3487. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3488. }
  3489.  
  3490.  
  3491. dcmd_clearchat(playerid,params[])
  3492. {
  3493. #pragma unused params
  3494. if(PlayerInfo[playerid][Level] >= 2) {
  3495. CMDMessageToAdmins(playerid,"CLEARCHAT");
  3496. for(new i = 0; i < 11; i++) SendClientMessageToAll(green," "); return 1;
  3497. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3498. }
  3499.  
  3500.  
  3501. dcmd_clearallchat(playerid,params[])
  3502. {
  3503. #pragma unused params
  3504. if(PlayerInfo[playerid][Level] >= 3) {
  3505. CMDMessageToAdmins(playerid,"CLEARALLCHAT");
  3506. for(new i = 0; i < 50; i++) SendClientMessageToAll(green," "); return 1;
  3507. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3508. }
  3509.  
  3510.  
  3511. dcmd_caps(playerid,params[])
  3512. {
  3513. if(PlayerInfo[playerid][Level] >= 3) {
  3514. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3515. if(!strlen(tmp) || !strlen(tmp2) || IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [\"on\" / \"off\"]");
  3516. new player1 = strval(tmp), string[128];
  3517. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3518. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3519. if(strcmp(tmp2,"on",true) == 0) {
  3520. CMDMessageToAdmins(playerid,"CAPS");
  3521. PlayerInfo[player1][Caps] = 0;
  3522. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has allowed you to use capitals in chat", pName(playerid) ); SendClientMessage(playerid,blue,string); }
  3523. format(string,sizeof(string),"You've allowed \"%s\" to use capitals in chat", pName(player1) ); return SendClientMessage(playerid,blue,string);
  3524. }
  3525. else if(strcmp(tmp2,"off",true) == 0) {
  3526. CMDMessageToAdmins(playerid,"CAPS");
  3527. PlayerInfo[player1][Caps] = 1;
  3528. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has prevented you from using capitals in chat", pName(playerid) ); SendClientMessage(playerid,blue,string); }
  3529. format(string,sizeof(string),"You've prevented \"%s\" from using capitals in chat", pName(player1) ); return SendClientMessage(playerid,blue,string);
  3530. } else return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [\"on\" / \"off\"]");
  3531. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3532. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3533. }
  3534.  
  3535.  
  3536. //==================[ Object & Pickup ]=========================================
  3537.  
  3538. dcmd_object(playerid,params[])
  3539. {
  3540. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  3541. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /object [object id]");
  3542. new object = strval(params), string[128], Float:x, Float:y, Float:z, Float:a;
  3543. CMDMessageToAdmins(playerid,"OBJECT");
  3544. GetPlayerPos(playerid, x, y, z);
  3545. GetPlayerFacingAngle(playerid, a);
  3546. x += (3 * floatsin(-a, degrees));
  3547. y += (3 * floatcos(-a, degrees));
  3548. CreateObject(object, x, y, z, 0.0, 0.0, a);
  3549. format(string, sizeof(string), "CreateObject(%d, %0.2f, %0.2f, %0.2f, 0.00, 0.00, %0.2f);", object, x, y, z, a);
  3550. SaveToFile("Objects",string);
  3551. format(string, sizeof(string), "You've Created Object %d, at %0.2f, %0.2f, %0.2f Angle %0.2f", object, x, y, z, a);
  3552. return SendClientMessage(playerid,yellow, string);
  3553. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3554. }
  3555.  
  3556.  
  3557. //===================[ Move ]===================================================
  3558.  
  3559. dcmd_moveplayer(playerid,params[])
  3560. {
  3561. if(PlayerInfo[playerid][Level] >= 3) {
  3562. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3563. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp)) return SendClientMessage(playerid, red, "USAGE: /moveplayer [playerid] [up / down / +x / -x / +y / -y / off]");
  3564. new Float:X, Float:Y, Float:Z, player1 = strval(tmp);
  3565. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3566. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3567. if(strcmp(tmp2,"up",true) == 0) {
  3568. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y,Z+5); SetCameraBehindPlayer(player1);
  3569. }
  3570. else if(strcmp(tmp2,"down",true) == 0) {
  3571. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y,Z-5); SetCameraBehindPlayer(player1);
  3572. }
  3573. else if(strcmp(tmp2,"+x",true) == 0) {
  3574. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X+5,Y,Z);
  3575. }
  3576. else if(strcmp(tmp2,"-x",true) == 0) {
  3577. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X-5,Y,Z);
  3578. }
  3579. else if(strcmp(tmp2,"+y",true) == 0) {
  3580. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y+5,Z);
  3581. }
  3582. else if(strcmp(tmp2,"-y",true) == 0) {
  3583. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y-5,Z);
  3584. }
  3585. else SendClientMessage(playerid,red,"USAGE: /moveplayer [up / down / +x / -x / +y / -y / off]");
  3586. return 1;
  3587. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3588. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3589. }
  3590.  
  3591.  
  3592. //----------------------------------------------------------------------------//
  3593. // /all Commands //
  3594. //----------------------------------------------------------------------------//
  3595.  
  3596. dcmd_spawnall(playerid,params[])
  3597. {
  3598. #pragma unused params
  3599. if(PlayerInfo[playerid][Level] >= 4) {
  3600. CMDMessageToAdmins(playerid,"SPAWNAll");
  3601. for(new i = 0; i < MAX_PLAYERS; i++) {
  3602. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3603. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerPos(i, 0.0, 0.0, 0.0); SpawnPlayer(i);
  3604. }
  3605. }
  3606. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has spawned all players", pName(playerid) );
  3607. return SendClientMessageToAll(blue, string);
  3608. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3609. }
  3610.  
  3611.  
  3612. dcmd_muteall(playerid,params[])
  3613. {
  3614. #pragma unused params
  3615. if(PlayerInfo[playerid][Level] >= 4) {
  3616. CMDMessageToAdmins(playerid,"MUTEALL");
  3617. for(new i = 0; i < MAX_PLAYERS; i++) {
  3618. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3619. PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][Muted] = 1; PlayerInfo[i][MuteWarnings] = 0;
  3620. }
  3621. }
  3622. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has muted all players", pName(playerid) );
  3623. return SendClientMessageToAll(blue, string);
  3624. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3625. }
  3626.  
  3627.  
  3628. dcmd_unmuteall(playerid,params[])
  3629. {
  3630. #pragma unused params
  3631. if(PlayerInfo[playerid][Level] >= 4) {
  3632. CMDMessageToAdmins(playerid,"UNMUTEAll");
  3633. for(new i = 0; i < MAX_PLAYERS; i++) {
  3634. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3635. PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][Muted] = 0; PlayerInfo[i][MuteWarnings] = 0;
  3636. }
  3637. }
  3638. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unmuted all players", pName(playerid) );
  3639. return SendClientMessageToAll(blue, string);
  3640. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3641. }
  3642.  
  3643.  
  3644. dcmd_getall(playerid,params[])
  3645. {
  3646. #pragma unused params
  3647. if(PlayerInfo[playerid][Level] >= 4) {
  3648. CMDMessageToAdmins(playerid,"GETAll");
  3649. new Float:x,Float:y,Float:z, interior = GetPlayerInterior(playerid);
  3650. GetPlayerPos(playerid,x,y,z);
  3651. for(new i = 0; i < MAX_PLAYERS; i++) {
  3652. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3653. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerPos(i,x+(playerid/4)+1,y+(playerid/4),z); SetPlayerInterior(i,interior);
  3654. }
  3655. }
  3656. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has teleported all players", pName(playerid) );
  3657. return SendClientMessageToAll(blue, string);
  3658. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3659. }
  3660.  
  3661.  
  3662. dcmd_healall(playerid,params[])
  3663. {
  3664. #pragma unused params
  3665. if(PlayerInfo[playerid][Level] >= 3) {
  3666. CMDMessageToAdmins(playerid,"HEALALL");
  3667. for(new i = 0; i < MAX_PLAYERS; i++) {
  3668. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3669. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerHealth(i,100.0);
  3670. }
  3671. }
  3672. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has healed all players", pName(playerid) );
  3673. return SendClientMessageToAll(blue, string);
  3674. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3675. }
  3676.  
  3677.  
  3678. dcmd_armourall(playerid,params[])
  3679. {
  3680. #pragma unused params
  3681. if(PlayerInfo[playerid][Level] >= 3) {
  3682. CMDMessageToAdmins(playerid,"ARMOURALL");
  3683. for(new i = 0; i < MAX_PLAYERS; i++) {
  3684. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3685. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerArmour(i,100.0);
  3686. }
  3687. }
  3688. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has restored all players armour", pName(playerid) );
  3689. return SendClientMessageToAll(blue, string);
  3690. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3691. }
  3692.  
  3693.  
  3694. dcmd_killall(playerid,params[])
  3695. {
  3696. #pragma unused params
  3697. if(PlayerInfo[playerid][Level] >= 4) {
  3698. CMDMessageToAdmins(playerid,"KILLALL");
  3699. for(new i = 0; i < MAX_PLAYERS; i++) {
  3700. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3701. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerHealth(i,0.0);
  3702. }
  3703. }
  3704. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has killed all players", pName(playerid) );
  3705. return SendClientMessageToAll(blue, string);
  3706. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3707. }
  3708.  
  3709.  
  3710. dcmd_freezeall(playerid,params[])
  3711. {
  3712. #pragma unused params
  3713. if(PlayerInfo[playerid][Level] >= 4) {
  3714. CMDMessageToAdmins(playerid,"FREEZEALL");
  3715. for(new i = 0; i < MAX_PLAYERS; i++) {
  3716. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3717. PlayerPlaySound(i,1057,0.0,0.0,0.0); TogglePlayerControllable(playerid,false); PlayerInfo[i][Frozen] = 1;
  3718. }
  3719. }
  3720. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has frozen all players", pName(playerid) );
  3721. return SendClientMessageToAll(blue, string);
  3722. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3723. }
  3724.  
  3725.  
  3726. dcmd_unfreezeall(playerid,params[])
  3727. {
  3728. #pragma unused params
  3729. if(PlayerInfo[playerid][Level] >= 4) {
  3730. CMDMessageToAdmins(playerid,"UNFREEZEALL");
  3731. for(new i = 0; i < MAX_PLAYERS; i++) {
  3732. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3733. PlayerPlaySound(i,1057,0.0,0.0,0.0); TogglePlayerControllable(playerid,true); PlayerInfo[i][Frozen] = 0;
  3734. }
  3735. }
  3736. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unfrozen all players", pName(playerid) );
  3737. return SendClientMessageToAll(blue, string);
  3738. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3739. }
  3740.  
  3741.  
  3742. dcmd_kickall(playerid,params[])
  3743. {
  3744. #pragma unused params
  3745. if(PlayerInfo[playerid][Level] >= 4) {
  3746. CMDMessageToAdmins(playerid,"KICKALL");
  3747. for(new i = 0; i < MAX_PLAYERS; i++) {
  3748. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3749. PlayerPlaySound(i,1057,0.0,0.0,0.0); Kick(i);
  3750. }
  3751. }
  3752. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has kicked all players", pName(playerid) );
  3753. SaveToFile("KickLog",string);
  3754. return SendClientMessageToAll(blue, string);
  3755. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3756. }
  3757.  
  3758.  
  3759. dcmd_slapall(playerid,params[])
  3760. {
  3761. #pragma unused params
  3762. if(PlayerInfo[playerid][Level] >= 4) {
  3763. CMDMessageToAdmins(playerid,"SLAPALL");
  3764. new Float:x, Float:y, Float:z;
  3765. for(new i = 0; i < MAX_PLAYERS; i++) {
  3766. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3767. PlayerPlaySound(i,1190,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); SetPlayerPos(i,x,y,z+4);
  3768. }
  3769. }
  3770. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has slapped all players", pName(playerid) );
  3771. return SendClientMessageToAll(blue, string);
  3772. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3773. }
  3774.  
  3775.  
  3776. dcmd_explodeall(playerid,params[])
  3777. {
  3778. #pragma unused params
  3779. if(PlayerInfo[playerid][Level] >= 4) {
  3780. CMDMessageToAdmins(playerid,"EXPLODEALL");
  3781. new Float:x, Float:y, Float:z;
  3782. for(new i = 0; i < MAX_PLAYERS; i++) {
  3783. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3784. PlayerPlaySound(i,1190,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); CreateExplosion(x, y , z, 7, 10.0);
  3785. }
  3786. }
  3787. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has exploded all players", pName(playerid) );
  3788. return SendClientMessageToAll(blue, string);
  3789. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3790. }
  3791.  
  3792.  
  3793. dcmd_disarmall(playerid,params[])
  3794. {
  3795. #pragma unused params
  3796. if(PlayerInfo[playerid][Level] >= 4) {
  3797. CMDMessageToAdmins(playerid,"DISARMALL");
  3798. for(new i = 0; i < MAX_PLAYERS; i++) {
  3799. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3800. PlayerPlaySound(i,1057,0.0,0.0,0.0); ResetPlayerWeapons(i);
  3801. }
  3802. }
  3803. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has disarmed all players", pName(playerid) );
  3804. return SendClientMessageToAll(blue, string);
  3805. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3806. }
  3807.  
  3808.  
  3809. dcmd_ejectall(playerid,params[])
  3810. {
  3811. #pragma unused params
  3812. if(PlayerInfo[playerid][Level] >= 4) {
  3813. CMDMessageToAdmins(playerid,"EJECTALL");
  3814. new Float:x, Float:y, Float:z;
  3815. for(new i = 0; i < MAX_PLAYERS; i++) {
  3816. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3817. if(IsPlayerInAnyVehicle(i)) {
  3818. PlayerPlaySound(i,1057,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); SetPlayerPos(i,x,y,z+3);
  3819. }
  3820. }
  3821. }
  3822. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has ejected all players", pName(playerid) );
  3823. return SendClientMessageToAll(blue, string);
  3824. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3825. }
  3826.  
  3827.  
  3828. //-------------==== Set All Commands ====-------------//
  3829.  
  3830. dcmd_setallskin(playerid,params[])
  3831. {
  3832. if(PlayerInfo[playerid][Level] >= 3) {
  3833. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallskin [skinid]");
  3834. new var = strval(params), string[128];
  3835. if(!IsValidSkin(var)) return SendClientMessage(playerid, red, "ERROR: Invaild Skin ID");
  3836. CMDMessageToAdmins(playerid,"SETALLSKIN");
  3837. for(new i = 0; i < MAX_PLAYERS; i++) {
  3838. if(IsPlayerConnected(i)) {
  3839. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3840. SetPlayerSkin(i,var);
  3841. }
  3842. }
  3843. format(string,sizeof(string),"Administrator \"%s\" has set all players skin to '%d'", pName(playerid), var );
  3844. return SendClientMessageToAll(blue, string);
  3845. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3846. }
  3847.  
  3848.  
  3849. dcmd_setallweather(playerid,params[])
  3850. {
  3851. if(PlayerInfo[playerid][Level] >= 3) {
  3852. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallweather [weather ID]");
  3853. new var = strval(params), string[128];
  3854. CMDMessageToAdmins(playerid,"SETALLWEATHER");
  3855. for(new i = 0; i < MAX_PLAYERS; i++) {
  3856. if(IsPlayerConnected(i)) {
  3857. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3858. SetPlayerWeather(i, var);
  3859. }
  3860. }
  3861. format(string,sizeof(string),"Administrator \"%s\" has set all players weather to '%d'", pName(playerid), var );
  3862. return SendClientMessageToAll(blue, string);
  3863. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3864. }
  3865.  
  3866.  
  3867. dcmd_setalltime(playerid,params[])
  3868. {
  3869. if(PlayerInfo[playerid][Level] >= 3) {
  3870. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setalltime [hour]");
  3871. new var = strval(params), string[128];
  3872. if(var > 24) return SendClientMessage(playerid, red, "ERROR: Invalid hour");
  3873. CMDMessageToAdmins(playerid,"SETALLTIME");
  3874. for(new i = 0; i < MAX_PLAYERS; i++) {
  3875. if(IsPlayerConnected(i)) {
  3876. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3877. SetPlayerTime(i, var, 0);
  3878. }
  3879. }
  3880. format(string,sizeof(string),"Administrator \"%s\" has set all players time to '%d:00'", pName(playerid), var );
  3881. return SendClientMessageToAll(blue, string);
  3882. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3883. }
  3884.  
  3885.  
  3886. dcmd_setallworld(playerid,params[])
  3887. {
  3888. if(PlayerInfo[playerid][Level] >= 3) {
  3889. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallworld [virtual world]");
  3890. new var = strval(params), string[128];
  3891. CMDMessageToAdmins(playerid,"SETALLWORLD");
  3892. for(new i = 0; i < MAX_PLAYERS; i++) {
  3893. if(IsPlayerConnected(i)) {
  3894. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3895. SetPlayerVirtualWorld(i,var);
  3896. }
  3897. }
  3898. format(string,sizeof(string),"Administrator \"%s\" has set all players virtual worlds to '%d'", pName(playerid), var );
  3899. return SendClientMessageToAll(blue, string);
  3900. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3901. }
  3902.  
  3903.  
  3904. dcmd_setallscore(playerid,params[])
  3905. {
  3906. if(PlayerInfo[playerid][Level] >= 3) {
  3907. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallscore [score]");
  3908. new var = strval(params), string[128];
  3909. CMDMessageToAdmins(playerid,"SETALLSCORE");
  3910. for(new i = 0; i < MAX_PLAYERS; i++) {
  3911. if(IsPlayerConnected(i)) {
  3912. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3913. SetPlayerScore(i,var);
  3914. }
  3915. }
  3916. format(string,sizeof(string),"Administrator \"%s\" has set all players scores to '%d'", pName(playerid), var );
  3917. return SendClientMessageToAll(blue, string);
  3918. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3919. }
  3920.  
  3921.  
  3922. dcmd_setallcash(playerid,params[])
  3923. {
  3924. if(PlayerInfo[playerid][Level] >= 3) {
  3925. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallcash [Amount]");
  3926. new var = strval(params), string[128];
  3927. CMDMessageToAdmins(playerid,"SETALLCASH");
  3928. for(new i = 0; i < MAX_PLAYERS; i++) {
  3929. if(IsPlayerConnected(i)) {
  3930. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3931. ResetPlayerMoney(i);
  3932. GivePlayerMoney(i,var);
  3933. }
  3934. }
  3935. format(string,sizeof(string),"Administrator \"%s\" has set all players cash to '$%d'", pName(playerid), var );
  3936. return SendClientMessageToAll(blue, string);
  3937. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3938. }
  3939.  
  3940.  
  3941. dcmd_giveallcash(playerid,params[])
  3942. {
  3943. if(PlayerInfo[playerid][Level] >= 3) {
  3944. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /giveallcash [Amount]");
  3945. new var = strval(params), string[128];
  3946. CMDMessageToAdmins(playerid,"GIVEALLCASH");
  3947. for(new i = 0; i < MAX_PLAYERS; i++) {
  3948. if(IsPlayerConnected(i)) {
  3949. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3950. GivePlayerMoney(i,var);
  3951. }
  3952. }
  3953. format(string,sizeof(string),"Administrator \"%s\" has given all players '$%d'", pName(playerid), var );
  3954. return SendClientMessageToAll(blue, string);
  3955. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3956. }
  3957.  
  3958.  
  3959. dcmd_giveallweapon(playerid,params[])
  3960. {
  3961. if(PlayerInfo[playerid][Level] >= 3) {
  3962. new tmp[256], tmp2[256], Index, ammo, weap, WeapName[32], string[128]; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3963. if(!strlen(tmp) ) return SendClientMessage(playerid, red, "USAGE: /giveallweapon [weapon id/weapon name] [ammo]");
  3964. if(!strlen(tmp2) || !IsNumeric(tmp2) || strval(tmp2) <= 0 || strval(tmp2) > 99999) ammo = 500;
  3965. if(!IsNumeric(tmp)) weap = GetWeaponIDFromName(tmp); else weap = strval(tmp);
  3966. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid weapon ID");
  3967. CMDMessageToAdmins(playerid,"GIVEALLWEAPON");
  3968. for(new i = 0; i < MAX_PLAYERS; i++) {
  3969. if(IsPlayerConnected(i)) {
  3970. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3971. GivePlayerWeapon(i,weap,ammo);
  3972. }
  3973. }
  3974. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  3975. format(string,sizeof(string),"Administrator \"%s\" has given all players a %s (%d) with %d rounds of ammo", pName(playerid), WeapName, weap, ammo);
  3976. return SendClientMessageToAll(blue, string);
  3977. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  3978. }
  3979.  
  3980.  
  3981. //================================[ Menu Commands ]=============================
  3982.  
  3983. #if defined USE_MENUS
  3984.  
  3985. dcmd_lmenu(playerid,params[])
  3986. {
  3987. #pragma unused params
  3988. if(PlayerInfo[playerid][Level] >= 2) {
  3989. if(IsPlayerInAnyVehicle(playerid)) {
  3990. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LMainMenu,playerid);
  3991. } else return ShowMenuForPlayer(LMainMenu,playerid);
  3992. } else return SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command");
  3993. }
  3994.  
  3995.  
  3996. dcmd_ltele(playerid,params[])
  3997. {
  3998. #pragma unused params
  3999. if(PlayerInfo[playerid][Level] >= 2) {
  4000. if(IsPlayerInAnyVehicle(playerid)) {
  4001. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTele,playerid);
  4002. } else return ShowMenuForPlayer(LTele,playerid);
  4003. } else return SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command");
  4004. }
  4005.  
  4006.  
  4007. dcmd_lweather(playerid,params[])
  4008. {
  4009. #pragma unused params
  4010. if(PlayerInfo[playerid][Level] >= 3) {
  4011. if(IsPlayerInAnyVehicle(playerid)) {
  4012. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LWeather,playerid);
  4013. } else return ShowMenuForPlayer(LWeather,playerid);
  4014. } else return SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command");
  4015. }
  4016.  
  4017.  
  4018. dcmd_ltime(playerid,params[])
  4019. {
  4020. #pragma unused params
  4021. if(PlayerInfo[playerid][Level] >= 3) {
  4022. if(IsPlayerInAnyVehicle(playerid)) {
  4023. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTime,playerid);
  4024. } else return ShowMenuForPlayer(LTime,playerid);
  4025. } else return SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command");
  4026. }
  4027.  
  4028.  
  4029. dcmd_ltmenu(playerid,params[])
  4030. {
  4031. #pragma unused params
  4032. if(PlayerInfo[playerid][Level] >= 1) {
  4033. if(IsPlayerInAnyVehicle(playerid)) {
  4034. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  4035. 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!"); }
  4036. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTuneMenu,playerid);
  4037. } else return SendClientMessage(playerid,red,"ERROR: You do not have a vehicle to tune");
  4038. } else return SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command");
  4039. }
  4040.  
  4041.  
  4042. dcmd_lweapons(playerid,params[])
  4043. {
  4044. #pragma unused params
  4045. if(PlayerInfo[playerid][Level] >= 3) {
  4046. if(IsPlayerInAnyVehicle(playerid)) {
  4047. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(XWeapons,playerid);
  4048. } else return ShowMenuForPlayer(XWeapons,playerid);
  4049. } else return SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command");
  4050. }
  4051.  
  4052.  
  4053. dcmd_lvehicle(playerid,params[])
  4054. {
  4055. #pragma unused params
  4056. if(PlayerInfo[playerid][Level] >= 2) {
  4057. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You already have a car.");
  4058. else { ShowMenuForPlayer(LVehicles,playerid); return TogglePlayerControllable(playerid,false); }
  4059. } else return SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command");
  4060. }
  4061. #endif
  4062.  
  4063. //----------------------===== Place & Skin Saving =====-------------------------
  4064. dcmd_l(playerid,params[])
  4065. {
  4066. #pragma unused params
  4067. if(PlayerInfo[playerid][LoggedIn] == 1 && PlayerInfo[playerid][Level] >= 1) {
  4068. if (dUserINT(PlayerName2(playerid)).("x")!=0) {
  4069. PutAtPos(playerid);
  4070. SetPlayerVirtualWorld(playerid, (dUserINT(PlayerName2(playerid)).("world")) );
  4071. return SendClientMessage(playerid,yellow,"You've successfully teleported to your saved place");
  4072. } else return SendClientMessage(playerid,red,"ERROR: You must save a place before you can teleport to it");
  4073. } else return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");
  4074. }
  4075.  
  4076.  
  4077. dcmd_s(playerid,params[])
  4078. {
  4079. #pragma unused params
  4080. if(PlayerInfo[playerid][LoggedIn] == 1 && PlayerInfo[playerid][Level] >= 1) {
  4081. new Float:x,Float:y,Float:z, interior;
  4082. GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
  4083. dUserSetINT(PlayerName2(playerid)).("x",floatround(x));
  4084. dUserSetINT(PlayerName2(playerid)).("y",floatround(y));
  4085. dUserSetINT(PlayerName2(playerid)).("z",floatround(z));
  4086. dUserSetINT(PlayerName2(playerid)).("interior",interior);
  4087. dUserSetINT(PlayerName2(playerid)).("world", (GetPlayerVirtualWorld(playerid)) );
  4088. return SendClientMessage(playerid,yellow,"You've successfully saved these coordinates. Use /l to load your saved place.");
  4089. } else return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");
  4090. }
  4091.  
  4092.  
  4093. dcmd_saveskin(playerid,params[])
  4094. {
  4095. if(PlayerInfo[playerid][Level] >= 0 && PlayerInfo[playerid][LoggedIn] == 1) {
  4096. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /saveskin [skinid]");
  4097. new string[128], SkinID = strval(params);
  4098. 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)) {
  4099. dUserSetINT(PlayerName2(playerid)).("FavSkin",SkinID);
  4100. format(string, sizeof(string), "You've successfully saved this skin (ID %d)",SkinID);
  4101. SendClientMessage(playerid,yellow,"Type: /useskin to use this skin when you spawn or /dontuseskin to stop using skin");
  4102. dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
  4103. } else return SendClientMessage(playerid, green, "ERROR: Invalid Skin ID");
  4104. }
  4105. return 1;
  4106. }
  4107.  
  4108.  
  4109. dcmd_useskin(playerid,params[])
  4110. {
  4111. #pragma unused params
  4112. if(PlayerInfo[playerid][Level] >= 0 && PlayerInfo[playerid][LoggedIn] == 1) {
  4113. dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
  4114. SetPlayerSkin(playerid,dUserINT(PlayerName2(playerid)).("FavSkin"));
  4115. return SendClientMessage(playerid,yellow,"Skin now in use");
  4116. }
  4117. return 1;
  4118. }
  4119.  
  4120.  
  4121. dcmd_dontuseskin(playerid,params[])
  4122. {
  4123. #pragma unused params
  4124. if(PlayerInfo[playerid][Level] >= 0 && PlayerInfo[playerid][LoggedIn] == 1) {
  4125. dUserSetINT(PlayerName2(playerid)).("UseSkin",0);
  4126. return SendClientMessage(playerid,yellow,"Skin will no longer be used");
  4127. }
  4128. return 1;
  4129. }
  4130.  
  4131.  
  4132. //====================== [REGISTER & LOGIN] ==================================
  4133. #if defined USE_AREGISTER
  4134.  
  4135. dcmd_aregister(playerid,params[])
  4136. {
  4137. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You're already registered and logged in.");
  4138. if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: This account already exists, please use '/alogin [password]'.");
  4139. if (strlen(params) == 0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/aregister [password]'");
  4140. if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,red,"ACCOUNT: Password length must be greater than three characters");
  4141. if (udb_Create(PlayerName2(playerid),params)) {
  4142. new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  4143. new strdate[20], year,month,day; getdate(year, month, day);
  4144. GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  4145. GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  4146. // dini_Set(file,"password",params);
  4147. dUserSetINT(PlayerName2(playerid)).("registered",1);
  4148. format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  4149. dini_Set(file,"RegisteredDate",strdate);
  4150. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4151. dUserSetINT(PlayerName2(playerid)).("banned",0);
  4152. dUserSetINT(PlayerName2(playerid)).("level",0);
  4153. dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  4154. dUserSetINT(PlayerName2(playerid)).("money",0);
  4155. dUserSetINT(PlayerName2(playerid)).("kills",0);
  4156. dUserSetINT(PlayerName2(playerid)).("deaths",0);
  4157. PlayerInfo[playerid][LoggedIn] = 1;
  4158. PlayerInfo[playerid][Registered] = 1;
  4159. SendClientMessage(playerid, green, "ACCOUNT: You're now registered, and have been automaticaly logged in");
  4160. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4161. return 1;
  4162. }
  4163. return 1;
  4164. }
  4165.  
  4166.  
  4167. dcmd_alogin(playerid,params[])
  4168. {
  4169. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You're already logged in.");
  4170. if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/aregister [password]'.");
  4171. if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/alogin [password]'");
  4172. if (udb_CheckLogin(PlayerName2(playerid),params)) {
  4173. new file[256], tmp3[100], string[128];
  4174. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  4175. GetPlayerIp(playerid,tmp3,100);
  4176. dini_Set(file,"ip",tmp3);
  4177. LoginPlayer(playerid);
  4178. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4179. if(PlayerInfo[playerid][Level] > 0) {
  4180. format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
  4181. return SendClientMessage(playerid,green,string);
  4182. } else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
  4183. }
  4184. else {
  4185. PlayerInfo[playerid][FailLogin]++;
  4186. printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
  4187. if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS) {
  4188. new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
  4189. SendClientMessageToAll(grey, string); print(string);
  4190. Kick(playerid);
  4191. }
  4192. return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
  4193. }
  4194. }
  4195.  
  4196.  
  4197. dcmd_achangepass(playerid,params[])
  4198. {
  4199. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4200. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /achangepass [new password]");
  4201. if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
  4202. new string[128];
  4203. dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(params) );
  4204. dUserSet(PlayerName2(playerid)).("Password",params);
  4205. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4206. format(string, sizeof(string),"ACCOUNT: You've successfully changed your password to [ %s ]",params);
  4207. return SendClientMessage(playerid,yellow,string);
  4208. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4209. }
  4210.  
  4211.  
  4212. dcmd_asetpass(playerid,params[])
  4213. {
  4214. if(PlayerInfo[playerid][Level] >= 3) {
  4215. new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4216. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /asetpass [playername] [new password]");
  4217. if(strlen(tmp2) < 4 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect password length");
  4218. if(udb_Exists(tmp)) {
  4219. dUserSetINT(tmp).("password_hash", udb_hash(tmp2));
  4220. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4221. format(string, sizeof(string),"ACCOUNT: You've successfully set \"%s's\" account password to \"%s\"", tmp, tmp2);
  4222. return SendClientMessage(playerid,yellow,string);
  4223. } else return SendClientMessage(playerid,red, "ERROR: This player doesnt have an account");
  4224. } else return SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command.");
  4225. }
  4226.  
  4227.  
  4228. #if defined USE_STATS
  4229. dcmd_aresetstats(playerid,params[])
  4230. {
  4231. #pragma unused params
  4232. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4233. // save as backup
  4234. dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
  4235. dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
  4236. // stats reset
  4237. PlayerInfo[playerid][Kills] = 0;
  4238. PlayerInfo[playerid][Deaths] = 0;
  4239. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  4240. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  4241. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4242. return SendClientMessage(playerid,yellow,"ACCOUNT: You've successfully reset your statistics. Your kills and deaths are: 0");
  4243. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command.");
  4244. }
  4245.  
  4246.  
  4247. dcmd_astats(playerid,params[])
  4248. {
  4249. new string[128], pDeaths, player1, h, m, s;
  4250. if(!strlen(params)) player1 = playerid;
  4251. else player1 = strval(params);
  4252.  
  4253. if(IsPlayerConnected(player1)) {
  4254. TotalGameTime(player1, h, m, s);
  4255. if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
  4256. 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);
  4257. return SendClientMessage(playerid, green, string);
  4258. } else return SendClientMessage(playerid, red, "Player is not connected.");
  4259. }
  4260. #endif
  4261.  
  4262. #else
  4263.  
  4264. dcmd_register(playerid,params[])
  4265. {
  4266. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You're already registered and logged in.");
  4267. if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: This account already exists, please use '/login [password]'.");
  4268. if (strlen(params) == 0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/register [password]'");
  4269. if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,red,"ACCOUNT: Password length must be greater than three characters");
  4270. if (udb_Create(PlayerName2(playerid),params)) {
  4271. new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  4272. new strdate[20], year,month,day; getdate(year, month, day);
  4273. GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  4274. GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  4275. // dini_Set(file,"password",params);
  4276. dUserSetINT(PlayerName2(playerid)).("registered",1);
  4277. format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  4278. dini_Set(file,"RegisteredDate",strdate);
  4279. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4280. dUserSetINT(PlayerName2(playerid)).("banned",0);
  4281. dUserSetINT(PlayerName2(playerid)).("level",0);
  4282. dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  4283. dUserSetINT(PlayerName2(playerid)).("money",0);
  4284. dUserSetINT(PlayerName2(playerid)).("kills",0);
  4285. dUserSetINT(PlayerName2(playerid)).("deaths",0);
  4286. dUserSetINT(PlayerName2(playerid)).("hours",0);
  4287. dUserSetINT(PlayerName2(playerid)).("minutes",0);
  4288. dUserSetINT(PlayerName2(playerid)).("seconds",0);
  4289. PlayerInfo[playerid][LoggedIn] = 1;
  4290. PlayerInfo[playerid][Registered] = 1;
  4291. SendClientMessage(playerid, green, "ACCOUNT: You're now registered, and have been automaticaly logged in");
  4292. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4293. return 1;
  4294. }
  4295. return 1;
  4296. }
  4297.  
  4298.  
  4299. dcmd_login(playerid,params[])
  4300. {
  4301. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You're already logged in.");
  4302. if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register [password]'.");
  4303. if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/login [password]'");
  4304. if (udb_CheckLogin(PlayerName2(playerid),params)) {
  4305. new file[256], tmp3[100], string[128];
  4306. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  4307. GetPlayerIp(playerid,tmp3,100);
  4308. dini_Set(file,"ip",tmp3);
  4309. LoginPlayer(playerid);
  4310. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4311. if(PlayerInfo[playerid][Level] > 0) {
  4312. format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
  4313. return SendClientMessage(playerid,green,string);
  4314. } else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
  4315. }
  4316. else {
  4317. PlayerInfo[playerid][FailLogin]++;
  4318. printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
  4319. if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS) {
  4320. new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
  4321. SendClientMessageToAll(grey, string);
  4322. print(string);
  4323. Kick(playerid);
  4324. }
  4325. return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
  4326. }
  4327. }
  4328.  
  4329.  
  4330. dcmd_changepass(playerid,params[])
  4331. {
  4332. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4333. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /changepass [new password]");
  4334. if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
  4335. new string[128];
  4336. dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(params) );
  4337. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4338. format(string, sizeof(string),"ACCOUNT: You've successfully changed your password to \"%s\"",params);
  4339. return SendClientMessage(playerid,yellow,string);
  4340. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4341. }
  4342.  
  4343.  
  4344. dcmd_setpass(playerid,params[])
  4345. {
  4346. if(PlayerInfo[playerid][Level] >= 3) {
  4347. new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4348. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setpass [playername] [new password]");
  4349. if(strlen(tmp2) < 4 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect password length");
  4350. if(udb_Exists(tmp)) {
  4351. dUserSetINT(tmp).("password_hash", udb_hash(tmp2));
  4352. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4353. format(string, sizeof(string),"ACCOUNT: You've successfully set \"%s's\" account password to \"%s\"", tmp, tmp2);
  4354. return SendClientMessage(playerid,yellow,string);
  4355. } else return SendClientMessage(playerid,red, "ERROR: This player doesnt have an account");
  4356. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  4357. }
  4358.  
  4359.  
  4360. #if defined USE_STATS
  4361. dcmd_resetstats(playerid,params[])
  4362. {
  4363. #pragma unused params
  4364. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4365. // save as backup
  4366. dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
  4367. dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
  4368. // stats reset
  4369. PlayerInfo[playerid][Kills] = 0;
  4370. PlayerInfo[playerid][Deaths] = 0;
  4371. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  4372. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  4373. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4374. return SendClientMessage(playerid,yellow,"ACCOUNT: You've successfully reset your stats. Your kills and deaths are: 0");
  4375. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4376. }
  4377. #endif
  4378.  
  4379. #if defined USE_STATS
  4380. dcmd_stats(playerid,params[])
  4381. {
  4382. new string[128], pDeaths, player1, h, m, s;
  4383. if(!strlen(params)) player1 = playerid;
  4384. else player1 = strval(params);
  4385.  
  4386. if(IsPlayerConnected(player1)) {
  4387. TotalGameTime(player1, h, m, s);
  4388. if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
  4389. 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);
  4390. return SendClientMessage(playerid, green, string);
  4391. } else return SendClientMessage(playerid, red, "Player Not Connected!");
  4392. }
  4393. #endif
  4394. #endif
  4395.  
  4396. LoginPlayer(playerid)
  4397. {
  4398. if(ServerInfo[GiveMoney] == 1) {ResetPlayerMoney(playerid); GivePlayerMoney(playerid, dUserINT(PlayerName2(playerid)).("money") ); }
  4399. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4400. PlayerInfo[playerid][Deaths] = (dUserINT(PlayerName2(playerid)).("deaths"));
  4401. PlayerInfo[playerid][Kills] = (dUserINT(PlayerName2(playerid)).("kills"));
  4402. PlayerInfo[playerid][Level] = (dUserINT(PlayerName2(playerid)).("level"));
  4403. PlayerInfo[playerid][hours] = dUserINT(PlayerName2(playerid)).("hours");
  4404. PlayerInfo[playerid][mins] = dUserINT(PlayerName2(playerid)).("minutes");
  4405. PlayerInfo[playerid][secs] = dUserINT(PlayerName2(playerid)).("seconds");
  4406. PlayerInfo[playerid][Registered] = 1;
  4407. PlayerInfo[playerid][LoggedIn] = 1;
  4408. }
  4409.  
  4410.  
  4411. //==============================================================================
  4412. public OnPlayerCommandText(playerid, cmdtext[])
  4413. {
  4414. if(PlayerInfo[playerid][Jailed] == 1 && PlayerInfo[playerid][Level] < 1) return
  4415. SendClientMessage(playerid,red,"You cannot use commands in jail");
  4416.  
  4417. new cmd[256], string[128], tmp[256], idx;
  4418. cmd = strtok(cmdtext, idx);
  4419.  
  4420. #if defined USE_AREGISTER
  4421. dcmd(aregister,9,cmdtext);
  4422. dcmd(alogin,6,cmdtext);
  4423. dcmd(achangepass,11,cmdtext);
  4424. dcmd(asetpass,8,cmdtext);
  4425. #if defined USE_STATS
  4426. dcmd(astats,6,cmdtext);
  4427. dcmd(aresetstats,11,cmdtext);
  4428. #endif
  4429.  
  4430. #else
  4431.  
  4432. dcmd(register,8,cmdtext);
  4433. dcmd(login,5,cmdtext);
  4434. dcmd(changepass,10,cmdtext);
  4435. dcmd(setpass,7,cmdtext);
  4436. #if defined USE_STATS
  4437. dcmd(stats,5,cmdtext);
  4438. dcmd(resetstats,10,cmdtext);
  4439. #endif
  4440. #endif
  4441.  
  4442. dcmd(report,6,cmdtext);
  4443. dcmd(reports,7,cmdtext);
  4444.  
  4445. //================ [ Read Comamands ] ===========================//
  4446. if(ServerInfo[ReadCmds] == 1) {
  4447. format(string, sizeof(string), "*** %s (%d) typed: %s", pName(playerid),playerid,cmdtext);
  4448. for(new i = 0; i < MAX_PLAYERS; i++) {
  4449. if(IsPlayerConnected(i)) {
  4450. if( (PlayerInfo[i][Level] > PlayerInfo[playerid][Level]) && (PlayerInfo[i][Level] > 1) && (i != playerid) ) {
  4451. SendClientMessage(i, grey, string);
  4452. }
  4453. }
  4454. }
  4455. }
  4456.  
  4457. //-= Spectate Commands =-//
  4458. #if defined ENABLE_SPEC
  4459. dcmd(lspec,5,cmdtext);
  4460. dcmd(lspecoff,8,cmdtext);
  4461. dcmd(lspecvehicle,12,cmdtext);
  4462. #endif
  4463.  
  4464. //-= Chat Commands =-//
  4465. dcmd(disablechat,11,cmdtext);
  4466. dcmd(clearchat,9,cmdtext);
  4467. dcmd(clearallchat,12,cmdtext);
  4468. dcmd(caps,4,cmdtext);
  4469.  
  4470. //-= Vehicle Commands =-//
  4471. dcmd(vfix,4,cmdtext);
  4472. dcmd(vdestroy,8,cmdtext);
  4473. dcmd(vlock,5,cmdtext);
  4474. dcmd(vunlock,7,cmdtext);
  4475. dcmd(vcolour,7,cmdtext);
  4476. dcmd(vspawn,6,cmdtext);
  4477. dcmd(ltune,5,cmdtext);
  4478. dcmd(lhy,3,cmdtext);
  4479. dcmd(lcar,4,cmdtext);
  4480. dcmd(lbike,5,cmdtext);
  4481. dcmd(lheli,5,cmdtext);
  4482. dcmd(lboat,5,cmdtext);
  4483. dcmd(lnos,4,cmdtext);
  4484. dcmd(lplane,6,cmdtext);
  4485. dcmd(vgoto,5,cmdtext);
  4486. dcmd(givecar,7,cmdtext);
  4487. dcmd(vflip,5,cmdtext);
  4488. dcmd(ltc,3,cmdtext);
  4489. dcmd(linkcar,7,cmdtext);
  4490.  
  4491. //-= Playerid Commands =-//
  4492. dcmd(ip,2,cmdtext);
  4493. dcmd(force,5,cmdtext);
  4494. dcmd(burn,4,cmdtext);
  4495. dcmd(spawn,5,cmdtext);
  4496. dcmd(spawnplayer,11,cmdtext);
  4497. dcmd(disarm,6,cmdtext);
  4498. dcmd(eject,5,cmdtext);
  4499. dcmd(bankrupt,8,cmdtext);
  4500. dcmd(sbankrupt,9,cmdtext);
  4501. dcmd(setworld,8,cmdtext);
  4502. dcmd(setcolour,9,cmdtext);
  4503. dcmd(settime,7,cmdtext);
  4504. dcmd(setweather,10,cmdtext);
  4505. dcmd(setname,7,cmdtext);
  4506. dcmd(setskin,7,cmdtext);
  4507. dcmd(setscore,8,cmdtext);
  4508. dcmd(setcash,7,cmdtext);
  4509. dcmd(sethealth,9,cmdtext);
  4510. dcmd(setarmour,9,cmdtext);
  4511. dcmd(giveweapon,10,cmdtext);
  4512. dcmd(warp,4,cmdtext);
  4513. dcmd(teleplayer,10,cmdtext);
  4514. dcmd(goto,4,cmdtext);
  4515. dcmd(get,3,cmdtext);
  4516. dcmd(setlevel,8,cmdtext);
  4517. dcmd(settemplevel,12,cmdtext);
  4518. dcmd(warn,4,cmdtext);
  4519. dcmd(kick,4,cmdtext);
  4520. dcmd(ban,3,cmdtext);
  4521. dcmd(rban,4,cmdtext);
  4522. dcmd(slap,4,cmdtext);
  4523. dcmd(explode,7,cmdtext);
  4524. dcmd(jail,4,cmdtext);
  4525. dcmd(unjail,6,cmdtext);
  4526. dcmd(jailed,6,cmdtext);
  4527. dcmd(freeze,6,cmdtext);
  4528. dcmd(unfreeze,8,cmdtext);
  4529. dcmd(frozen,6,cmdtext);
  4530. dcmd(mute,4,cmdtext);
  4531. dcmd(unmute,6,cmdtext);
  4532. dcmd(muted,5,cmdtext);
  4533. dcmd(akill,5,cmdtext);
  4534. dcmd(weaps,5,cmdtext);
  4535. dcmd(screen,6,cmdtext);
  4536. dcmd(lgoto,5,cmdtext);
  4537. dcmd(aka,3,cmdtext);
  4538. dcmd(highlight,9,cmdtext);
  4539.  
  4540. //-= /All Commands =-//
  4541. dcmd(healall,7,cmdtext);
  4542. dcmd(armourall,9,cmdtext);
  4543. dcmd(muteall,7,cmdtext);
  4544. dcmd(unmuteall,9,cmdtext);
  4545. dcmd(killall,7,cmdtext);
  4546. dcmd(getall,6,cmdtext);
  4547. dcmd(spawnall,8,cmdtext);
  4548. dcmd(freezeall,9,cmdtext);
  4549. dcmd(unfreezeall,11,cmdtext);
  4550. dcmd(explodeall,10,cmdtext);
  4551. dcmd(kickall,7,cmdtext);
  4552. dcmd(slapall,7,cmdtext);
  4553. dcmd(ejectall,8,cmdtext);
  4554. dcmd(disarmall,9,cmdtext);
  4555. dcmd(setallskin,10,cmdtext);
  4556. dcmd(setallweather,13,cmdtext);
  4557. dcmd(setalltime,10,cmdtext);
  4558. dcmd(setallworld,11,cmdtext);
  4559. dcmd(setallscore,11,cmdtext);
  4560. dcmd(setallcash,10,cmdtext);
  4561. dcmd(giveallcash,11,cmdtext);
  4562. dcmd(giveallweapon,13,cmdtext);
  4563.  
  4564. //-= No params =-//
  4565. dcmd(lweaps,6,cmdtext);
  4566. dcmd(lammo,5,cmdtext);
  4567. dcmd(god,3,cmdtext);
  4568. dcmd(godcar,6,cmdtext);
  4569. dcmd(jetpack,7,cmdtext);
  4570. dcmd(admins,6,cmdtext);
  4571.  
  4572. //-= Config =-//
  4573. dcmd(disable,7,cmdtext);
  4574. dcmd(enable,6,cmdtext);
  4575. dcmd(setping,7,cmdtext);
  4576. dcmd(setgravity,10,cmdtext);
  4577. dcmd(uconfig,7,cmdtext);
  4578. dcmd(lconfig,7,cmdtext);
  4579. dcmd(forbidname,10,cmdtext);
  4580. dcmd(forbidword,10,cmdtext);
  4581.  
  4582. //-= Misc =-//
  4583. dcmd(setmytime,9,cmdtext);
  4584. dcmd(kill,4,cmdtext);
  4585. dcmd(time,4,cmdtext);
  4586. dcmd(lhelp,5,cmdtext);
  4587. dcmd(lcmds,5,cmdtext);
  4588. dcmd(lcommands,9,cmdtext);
  4589. dcmd(level1,6,cmdtext);
  4590. dcmd(level2,6,cmdtext);
  4591. dcmd(level3,6,cmdtext);
  4592. dcmd(level4,6,cmdtext);
  4593. dcmd(lcredits,8,cmdtext);
  4594. dcmd(serverinfo,10,cmdtext);
  4595. dcmd(getid,5,cmdtext);
  4596. dcmd(getinfo,7,cmdtext);
  4597. dcmd(laston,6,cmdtext);
  4598. dcmd(ping,4,cmdtext);
  4599. dcmd(countdown,9,cmdtext);
  4600. dcmd(duel,4,cmdtext);
  4601. dcmd(asay,4,cmdtext);
  4602. dcmd(password,8,cmdtext);
  4603. dcmd(lockserver,10,cmdtext);
  4604. dcmd(unlockserver,12,cmdtext);
  4605. dcmd(announce,8,cmdtext);
  4606. dcmd(richlist,8,cmdtext);
  4607. dcmd(miniguns,8,cmdtext);
  4608. dcmd(botcheck,8,cmdtext);
  4609. dcmd(object,6,cmdtext);
  4610. dcmd(moveplayer,10,cmdtext);
  4611. dcmd(s,1,cmdtext);
  4612. dcmd(l,1,cmdtext);
  4613. dcmd(saveskin,8,cmdtext);
  4614. dcmd(useskin,7,cmdtext);
  4615. dcmd(dontuseskin,11,cmdtext);
  4616.  
  4617. //-= Menu Commands =-//
  4618. #if defined USE_MENUS
  4619. dcmd(lmenu,5,cmdtext);
  4620. dcmd(ltele,5,cmdtext);
  4621. dcmd(lvehicle,8,cmdtext);
  4622. dcmd(lweapons,8,cmdtext);
  4623. dcmd(lweather,8,cmdtext);
  4624. dcmd(ltmenu,6,cmdtext);
  4625. dcmd(ltime,5,cmdtext);
  4626. #endif
  4627.  
  4628. //========================= [ Car Commands ]====================================
  4629.  
  4630. if(strcmp(cmdtext, "/ltunedcar2", true)==0 || strcmp(cmdtext, "/ltc2", true)==0) {
  4631. if(PlayerInfo[playerid][Level] >= 1) {
  4632. if(IsPlayerInAnyVehicle(playerid)) {
  4633. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4634. }
  4635. else {
  4636. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4637. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4638. 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);
  4639. AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  4640. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,1);
  4641. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  4642. PlayerInfo[playerid][pCar] = LVehicleIDt;
  4643. }
  4644. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4645. return 1;
  4646. }
  4647. //------------------------------------------------------------------------------
  4648. if(strcmp(cmdtext, "/ltunedcar3", true)==0 || strcmp(cmdtext, "/ltc3", true)==0) {
  4649. if(PlayerInfo[playerid][Level] >= 1) {
  4650. if(IsPlayerInAnyVehicle(playerid)) {
  4651. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4652. }
  4653. else {
  4654. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4655. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4656. 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);
  4657. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,2);
  4658. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  4659. PlayerInfo[playerid][pCar] = LVehicleIDt;
  4660. }
  4661. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4662. return 1;
  4663. }
  4664. //------------------------------------------------------------------------------
  4665. if(strcmp(cmdtext, "/ltunedcar4", true)==0 || strcmp(cmdtext, "/ltc4", true)==0) {
  4666. if(PlayerInfo[playerid][Level] >= 1) {
  4667. if(IsPlayerInAnyVehicle(playerid)) {
  4668. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4669. }
  4670. else {
  4671. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4672. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4673. carid = CreateVehicle(559,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4674. AddVehicleComponent(carid,1065); AddVehicleComponent(carid,1067); AddVehicleComponent(carid,1162); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4675. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4676. PlayerInfo[playerid][pCar] = carid;
  4677. }
  4678. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4679. return 1;
  4680. }
  4681. //------------------------------------------------------------------------------
  4682. if(strcmp(cmdtext, "/ltunedcar5", true)==0 || strcmp(cmdtext, "/ltc5", true)==0) {
  4683. if(PlayerInfo[playerid][Level] >= 1) {
  4684. if(IsPlayerInAnyVehicle(playerid)) {
  4685. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4686. }
  4687. else {
  4688. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4689. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4690. carid = CreateVehicle(565,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4691. AddVehicleComponent(carid,1046); AddVehicleComponent(carid,1049); AddVehicleComponent(carid,1053); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4692. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4693. PlayerInfo[playerid][pCar] = carid;
  4694. }
  4695. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4696. return 1;
  4697. }
  4698. //------------------------------------------------------------------------------
  4699. if(strcmp(cmdtext, "/ltunedcar6", true)==0 || strcmp(cmdtext, "/ltc6", true)==0) {
  4700. if(PlayerInfo[playerid][Level] >= 1) {
  4701. if(IsPlayerInAnyVehicle(playerid)) {
  4702. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4703. }
  4704. else {
  4705. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4706. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4707. carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4708. AddVehicleComponent(carid,1088); AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1139); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4709. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4710. PlayerInfo[playerid][pCar] = carid;
  4711. }
  4712. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4713. return 1;
  4714. }
  4715. //------------------------------------------------------------------------------
  4716. if(strcmp(cmdtext, "/ltunedcar7", true)==0 || strcmp(cmdtext, "/ltc7", true)==0) {
  4717. if(PlayerInfo[playerid][Level] >= 1) {
  4718. if(IsPlayerInAnyVehicle(playerid)) {
  4719. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4720. }
  4721. else {
  4722. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4723. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4724. carid = CreateVehicle(561,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4725. AddVehicleComponent(carid,1055); AddVehicleComponent(carid,1058); AddVehicleComponent(carid,1064); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4726. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4727. PlayerInfo[playerid][pCar] = carid;
  4728. }
  4729. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4730. return 1;
  4731. }
  4732. //------------------------------------------------------------------------------
  4733. if(strcmp(cmdtext, "/ltunedcar8", true)==0 || strcmp(cmdtext, "/ltc8", true)==0) {
  4734. if(PlayerInfo[playerid][Level] >= 1) {
  4735. if(IsPlayerInAnyVehicle(playerid)) {
  4736. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4737. }
  4738. else {
  4739. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4740. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4741. carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4742. AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4743. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4744. PlayerInfo[playerid][pCar] = carid;
  4745. }
  4746. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4747. return 1;
  4748. }
  4749. //------------------------------------------------------------------------------
  4750. if(strcmp(cmdtext, "/ltunedcar9", true)==0 || strcmp(cmdtext, "/ltc9", true)==0) {
  4751. if(PlayerInfo[playerid][Level] >= 1) {
  4752. if(IsPlayerInAnyVehicle(playerid)) {
  4753. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4754. }
  4755. else {
  4756. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4757. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4758. carid = CreateVehicle(567,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4759. 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);
  4760. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4761. PlayerInfo[playerid][pCar] = carid;
  4762. }
  4763. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4764. return 1;
  4765. }
  4766. //------------------------------------------------------------------------------
  4767. if(strcmp(cmdtext, "/ltunedcar10", true)==0 || strcmp(cmdtext, "/ltc10", true)==0) {
  4768. if(PlayerInfo[playerid][Level] >= 1) {
  4769. if(IsPlayerInAnyVehicle(playerid)) {
  4770. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4771. }
  4772. else {
  4773. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4774. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4775. carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4776. AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1166); AddVehicleComponent(carid,1165); AddVehicleComponent(carid,1090);
  4777. //SPOILER
  4778. AddVehicleComponent(carid,1094); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1163);
  4779. AddVehicleComponent(carid,1091); ChangeVehiclePaintjob(carid,2);
  4780. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4781. PlayerInfo[playerid][pCar] = carid;
  4782. }
  4783. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4784. return 1;
  4785. }
  4786. //------------------------------------------------------------------------------
  4787. if(strcmp(cmdtext, "/ltunedcar11", true)==0 || strcmp(cmdtext, "/ltc11", true)==0) {
  4788. if(PlayerInfo[playerid][Level] >= 1) {
  4789. if(IsPlayerInAnyVehicle(playerid)) {
  4790. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4791. }
  4792. else {
  4793. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4794. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4795. carid = CreateVehicle(557,X,Y,Z,Angle,1,1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4796. AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1081);
  4797. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4798. PlayerInfo[playerid][pCar] = carid;
  4799. }
  4800. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4801. return 1;
  4802. }
  4803. //------------------------------------------------------------------------------
  4804. if(strcmp(cmdtext, "/ltunedcar12", true)==0 || strcmp(cmdtext, "/ltc12", true)==0) {
  4805. if(PlayerInfo[playerid][Level] >= 1) {
  4806. if(IsPlayerInAnyVehicle(playerid)) {
  4807. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4808. }
  4809. else {
  4810. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4811. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4812. carid = CreateVehicle(535,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4813. ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1109); AddVehicleComponent(carid,1115); AddVehicleComponent(carid,1117); AddVehicleComponent(carid,1073); AddVehicleComponent(carid,1010);
  4814. AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1114); AddVehicleComponent(carid,1081); AddVehicleComponent(carid,1119); AddVehicleComponent(carid,1121);
  4815. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4816. PlayerInfo[playerid][pCar] = carid;
  4817. }
  4818. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4819. return 1;
  4820. }
  4821. //------------------------------------------------------------------------------
  4822. if(strcmp(cmdtext, "/ltunedcar13", true)==0 || strcmp(cmdtext, "/ltc13", true)==0) {
  4823. if(PlayerInfo[playerid][Level] >= 1) {
  4824. if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4825. else {
  4826. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4827. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4828. carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4829. AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147);
  4830. AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,0);
  4831. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4832. PlayerInfo[playerid][pCar] = carid;
  4833. }
  4834. } else SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4835. return 1;
  4836. }
  4837. //------------------------------------------------------------------------------
  4838. if(strcmp(cmd, "/lp", true) == 0) {
  4839. if(PlayerInfo[playerid][Level] >= 1) {
  4840. if (GetPlayerState(playerid) == 2) {
  4841. new VehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(VehicleID);
  4842. 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"); }
  4843. new str[128], Float:pos[3]; format(str, sizeof(str), "%s", cmdtext[2]);
  4844. SetVehicleNumberPlate(VehicleID, str);
  4845. GetPlayerPos(playerid, pos[0], pos[1], pos[2]); SetPlayerPos(playerid, pos[0]+1, pos[1], pos[2]);
  4846. SetVehicleToRespawn(VehicleID); SetVehiclePos(VehicleID, pos[0], pos[1], pos[2]);
  4847. SetTimerEx("TuneLCar",4000,0,"d",VehicleID); PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  4848. SendClientMessage(playerid, blue, "You've changed your licence plate"); CMDMessageToAdmins(playerid,"LP");
  4849. }
  4850. else {
  4851. SendClientMessage(playerid,red,"Error: You've to be the driver of a vehicle to change its licence plate");
  4852. }
  4853. }
  4854. else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  4855.  
  4856. if(strcmp(cmd, "/write", true) == 0) {
  4857. if(PlayerInfo[playerid][Level] >= 2) {
  4858. tmp = strtok(cmdtext, idx);
  4859. if(!strlen(tmp)) {
  4860. SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
  4861. 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");
  4862. }
  4863. new Colour;
  4864. Colour = strval(tmp);
  4865. if(Colour > 9 ) {
  4866. SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
  4867. 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");
  4868. }
  4869. tmp = strtok(cmdtext, idx);
  4870.  
  4871. CMDMessageToAdmins(playerid,"WRITE");
  4872.  
  4873. if(Colour == 0) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(black,string); return 1; }
  4874. else if(Colour == 1) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_WHITE,string); return 1; }
  4875. else if(Colour == 2) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(red,string); return 1; }
  4876. else if(Colour == 3) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(orange,string); return 1; }
  4877. else if(Colour == 4) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(yellow,string); return 1; }
  4878. else if(Colour == 5) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_GREEN1,string); return 1; }
  4879. else if(Colour == 6) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BLUE,string); return 1; }
  4880. else if(Colour == 7) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_PURPLE,string); return 1; }
  4881. else if(Colour == 8) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BROWN,string); return 1; }
  4882. else if(Colour == 9) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_PINK,string); return 1; }
  4883. return 1;
  4884. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff to use this command.");
  4885. }
  4886. return 1;
  4887. }
  4888.  
  4889. //------------------------------------------------------------------------------
  4890. // Remote Console
  4891. //------------------------------------------------------------------------------
  4892.  
  4893. if(strcmp(cmd, "/loadfs", true) == 0) {
  4894. if(PlayerInfo[playerid][Level] >= 5) {
  4895. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  4896. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4897. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  4898. }
  4899.  
  4900. if(strcmp(cmd, "/unloadfs", true) == 0) {
  4901. if(PlayerInfo[playerid][Level] >= 5) {
  4902. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  4903. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4904. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  4905. }
  4906.  
  4907. if(strcmp(cmd, "/changemode", true) == 0) {
  4908. if(PlayerInfo[playerid][Level] >= 4) {
  4909. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  4910. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4911. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  4912. }
  4913.  
  4914. if(strcmp(cmd, "/gmx", true) == 0) {
  4915. if(PlayerInfo[playerid][Level] >= 5) {
  4916. OnFilterScriptExit(); SetTimer("RestartGM",5000,0);
  4917. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4918. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  4919. }
  4920.  
  4921. if(strcmp(cmd, "/loadladmin", true) == 0) {
  4922. if(PlayerInfo[playerid][Level] >= 5) {
  4923. SendRconCommand("loadfs ladmin4");
  4924. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4925. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  4926. }
  4927.  
  4928. if(strcmp(cmd, "/unloadladmin", true) == 0) {
  4929. if(PlayerInfo[playerid][Level] >= 5) {
  4930. SendRconCommand("unloadfs ladmin4");
  4931. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4932. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  4933. }
  4934.  
  4935. if(strcmp(cmd, "/reloadladmin", true) == 0) {
  4936. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid) ) {
  4937. SendRconCommand("reloadfs ladmin4");
  4938. SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4939. return CMDMessageToAdmins(playerid,"RELOADLADMIN");
  4940. } else return SendClientMessage(playerid,red,"ERROR: You need to be staff (or a higher level of staff) to use this command.");
  4941. }
  4942.  
  4943. return 0;
  4944. }
  4945.  
  4946.  
  4947. //==============================================================================
  4948. #if defined ENABLE_SPEC
  4949.  
  4950. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  4951. {
  4952. new x = 0;
  4953. while(x!=MAX_PLAYERS) {
  4954. if( IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_SPECTATING &&
  4955. PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_PLAYER ) {
  4956. SetPlayerInterior(x,newinteriorid);
  4957. }
  4958. x++;
  4959. }
  4960. }
  4961.  
  4962.  
  4963. //==============================================================================
  4964. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  4965. {
  4966. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID) {
  4967. if(newkeys == KEY_JUMP) AdvanceSpectate(playerid);
  4968. else if(newkeys == KEY_SPRINT) ReverseSpectate(playerid);
  4969. }
  4970. return 1;
  4971. }
  4972.  
  4973.  
  4974. //==============================================================================
  4975. public OnPlayerEnterVehicle(playerid, vehicleid)
  4976. {
  4977. for(new x=0; x<MAX_PLAYERS; x++) {
  4978. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
  4979. TogglePlayerSpectating(x, 1);
  4980. PlayerSpectateVehicle(x, vehicleid);
  4981. PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  4982. }
  4983. }
  4984. return 1;
  4985. }
  4986.  
  4987.  
  4988. //==============================================================================
  4989. public OnPlayerStateChange(playerid, newstate, oldstate)
  4990. {
  4991. switch(newstate) {
  4992. case PLAYER_STATE_ONFOOT:
  4993. {
  4994. switch(oldstate) {
  4995. case PLAYER_STATE_DRIVER: OnPlayerExitVehicle(playerid,255);
  4996. case PLAYER_STATE_PASSENGER: OnPlayerExitVehicle(playerid,255);
  4997. }
  4998. }
  4999. }
  5000. return 1;
  5001. }
  5002. #endif
  5003.  
  5004. //==============================================================================
  5005. public OnPlayerExitVehicle(playerid, vehicleid)
  5006. {
  5007. if(PlayerInfo[playerid][DoorsLocked] == 1) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,false,false);
  5008.  
  5009. #if defined ENABLE_SPEC
  5010. for(new x=0; x<MAX_PLAYERS; x++) {
  5011. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_VEHICLE) {
  5012. TogglePlayerSpectating(x, 1);
  5013. PlayerSpectatePlayer(x, playerid);
  5014. PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
  5015. }
  5016. }
  5017. #endif
  5018.  
  5019. return 1;
  5020. }
  5021.  
  5022.  
  5023. //==============================================================================
  5024. #if defined ENABLE_SPEC
  5025.  
  5026. stock StartSpectate(playerid, specplayerid)
  5027. {
  5028. for(new x=0; x<MAX_PLAYERS; x++) {
  5029. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
  5030. AdvanceSpectate(x);
  5031. }
  5032. }
  5033. SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
  5034. TogglePlayerSpectating(playerid, 1);
  5035.  
  5036. if(IsPlayerInAnyVehicle(specplayerid)) {
  5037. PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
  5038. PlayerInfo[playerid][SpecID] = specplayerid;
  5039. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  5040. }
  5041. else {
  5042. PlayerSpectatePlayer(playerid, specplayerid);
  5043. PlayerInfo[playerid][SpecID] = specplayerid;
  5044. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
  5045. }
  5046. new string[100], Float:hp, Float:ar;
  5047. GetPlayerName(specplayerid,string,sizeof(string));
  5048. GetPlayerHealth(specplayerid, hp); GetPlayerArmour(specplayerid, ar);
  5049. 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) );
  5050. GameTextForPlayer(playerid,string,25000,3);
  5051. return 1;
  5052. }
  5053.  
  5054.  
  5055. stock StopSpectate(playerid)
  5056. {
  5057. TogglePlayerSpectating(playerid, 0);
  5058. PlayerInfo[playerid][SpecID] = INVALID_PLAYER_ID;
  5059. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_NONE;
  5060. GameTextForPlayer(playerid,"~n~~n~~n~~w~Spectate mode ended",1000,3);
  5061. return 1;
  5062. }
  5063.  
  5064.  
  5065. stock AdvanceSpectate(playerid)
  5066. {
  5067. if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
  5068. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID) {
  5069. for(new x=PlayerInfo[playerid][SpecID]+1; x<=MAX_PLAYERS; x++) {
  5070. if(x == MAX_PLAYERS) x = 0;
  5071. if(IsPlayerConnected(x) && x != playerid) {
  5072. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3)) {
  5073. continue;
  5074. }
  5075. else {
  5076. StartSpectate(playerid, x);
  5077. break;
  5078. }
  5079. }
  5080. }
  5081. }
  5082. return 1;
  5083. }
  5084.  
  5085.  
  5086. stock ReverseSpectate(playerid)
  5087. {
  5088. if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
  5089. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID) {
  5090. for(new x=PlayerInfo[playerid][SpecID]-1; x>=0; x--) {
  5091. if(x == 0) x = MAX_PLAYERS;
  5092. if(IsPlayerConnected(x) && x != playerid) {
  5093. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3)) {
  5094. continue;
  5095. }
  5096. else {
  5097. StartSpectate(playerid, x);
  5098. break;
  5099. }
  5100. }
  5101. }
  5102. }
  5103. return 1;
  5104. }
  5105.  
  5106.  
  5107. //-------------------------------------------
  5108. forward PosAfterSpec(playerid);
  5109. public PosAfterSpec(playerid)
  5110. {
  5111. SetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  5112. SetPlayerFacingAngle(playerid,Pos[playerid][3]);
  5113. }
  5114. #endif
  5115.  
  5116. //==============================================================================
  5117. EraseVehicle(vehicleid)
  5118. {
  5119. for(new players=0;players<=MAX_PLAYERS;players++) {
  5120. new Float:X,Float:Y,Float:Z;
  5121. if (IsPlayerInVehicle(players,vehicleid)) {
  5122. GetPlayerPos(players,X,Y,Z);
  5123. SetPlayerPos(players,X,Y,Z+2);
  5124. SetVehicleToRespawn(vehicleid);
  5125. }
  5126. SetVehicleParamsForPlayer(vehicleid,players,0,1);
  5127. }
  5128. SetTimerEx("VehRes",3000,0,"d",vehicleid);
  5129. return 1;
  5130. }
  5131.  
  5132.  
  5133. forward CarSpawner(playerid,model);
  5134. public CarSpawner(playerid,model)
  5135. {
  5136. if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, red, "You already have a car!");
  5137. else {
  5138. new Float:x, Float:y, Float:z, Float:angle;
  5139. GetPlayerPos(playerid, x, y, z);
  5140. GetPlayerFacingAngle(playerid, angle);
  5141. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5142. new vehicleid=CreateVehicle(model, x, y, z, angle, -1, -1, -1);
  5143. PutPlayerInVehicle(playerid, vehicleid, 0);
  5144. SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
  5145. LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid));
  5146. ChangeVehicleColor(vehicleid,0,7);
  5147. PlayerInfo[playerid][pCar] = vehicleid;
  5148. }
  5149. return 1;
  5150. }
  5151.  
  5152.  
  5153. forward CarDeleter(vehicleid);
  5154. public CarDeleter(vehicleid)
  5155. {
  5156. for(new i=0;i<MAX_PLAYERS;i++) {
  5157. new Float:X,Float:Y,Float:Z;
  5158. if(IsPlayerInVehicle(i, vehicleid)) {
  5159. RemovePlayerFromVehicle(i);
  5160. GetPlayerPos(i,X,Y,Z);
  5161. SetPlayerPos(i,X,Y+3,Z);
  5162. }
  5163. SetVehicleParamsForPlayer(vehicleid,i,0,1);
  5164. }
  5165. SetTimerEx("VehRes",1500,0,"i",vehicleid);
  5166. }
  5167.  
  5168.  
  5169. forward VehRes(vehicleid);
  5170. public VehRes(vehicleid)
  5171. {
  5172. DestroyVehicle(vehicleid);
  5173. }
  5174.  
  5175.  
  5176. public OnVehicleSpawn(vehicleid)
  5177. {
  5178. for(new i=0;i<MAX_PLAYERS;i++) {
  5179. if(vehicleid==PlayerInfo[i][pCar]) {
  5180. CarDeleter(vehicleid);
  5181. PlayerInfo[i][pCar]=-1;
  5182. }
  5183. }
  5184. return 1;
  5185. }
  5186.  
  5187.  
  5188. //==============================================================================
  5189. forward TuneLCar(VehicleID);
  5190. public TuneLCar(VehicleID)
  5191. {
  5192. ChangeVehicleColor(VehicleID,0,7);
  5193. AddVehicleComponent(VehicleID, 1010); AddVehicleComponent(VehicleID, 1087);
  5194. }
  5195.  
  5196.  
  5197. //==============================================================================
  5198.  
  5199. public OnRconCommand(cmd[])
  5200. {
  5201. if( strlen(cmd) > 50 || strlen(cmd) == 1 ) return print("Invalid command length (exceeding 50 characters)");
  5202.  
  5203. if(strcmp(cmd, "ladmin", true)==0) {
  5204. print("Rcon Commands");
  5205. print("info, aka, pm, asay, ann, uconfig, chat");
  5206. return true;
  5207. }
  5208.  
  5209. if(strcmp(cmd, "info", true)==0) {
  5210. new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000); DestroyVehicle(TotalVehicles);
  5211. new numo = CreateObject(1245,0,0,1000,0,0,0); DestroyObject(numo);
  5212. new nump = CreatePickup(371,2,0,0,1000); DestroyPickup(nump);
  5213. new gz = GangZoneCreate(3,3,5,5); GangZoneDestroy(gz);
  5214.  
  5215. new model[250], nummodel;
  5216. for(new i=1;i<TotalVehicles;i++) model[GetVehicleModel(i)-400]++;
  5217. for(new i=0;i<250;i++) {
  5218. if(model[i]!=0) {
  5219. nummodel++;
  5220. }
  5221. }
  5222.  
  5223. new string[256];
  5224. print(" ===========================================================================");
  5225. printf(" Server Info:");
  5226. format(string,sizeof(string),"[ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
  5227. printf(string);
  5228. format(string,sizeof(string),"[ Vehicles: %d || Models %d || Players In Vehicle: %d ]",TotalVehicles-1,nummodel, InVehCount() );
  5229. printf(string);
  5230. format(string,sizeof(string),"[ InCar %d || OnBike %d ]",InCarCount(),OnBikeCount() );
  5231. printf(string);
  5232. format(string,sizeof(string),"[ Objects: %d || Pickups %d || Gangzones %d]",numo-1, nump, gz);
  5233. printf(string);
  5234. format(string,sizeof(string),"[ Players In Jail %d || Players Frozen %d || Muted %d ]",JailedPlayers(),FrozenPlayers(), MutedPlayers() );
  5235. printf(string);
  5236. format(string,sizeof(string),"[ Admins online %d RCON admins online %d ]",AdminCount(), RconAdminCount() );
  5237. printf(string);
  5238. print(" ===========================================================================");
  5239. return true;
  5240. }
  5241.  
  5242. if(!strcmp(cmd, "pm", .length = 2)) {
  5243. new arg_1 = argpos(cmd), arg_2 = argpos(cmd, arg_1),targetid = strval(cmd[arg_1]), message[128];
  5244.  
  5245. if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > MAX_PLAYERS || targetid < 0 || !cmd[arg_2])
  5246. print("Usage: \"pm <playerid> <message>\"");
  5247.  
  5248. else if ( !IsPlayerConnected(targetid) ) print("This player is not connected!");
  5249. else {
  5250. format(message, sizeof(message), "[RCON] PM: %s", cmd[arg_2]);
  5251. SendClientMessage(targetid, COLOR_WHITE, message);
  5252. printf("Rcon PM '%s' sent", cmd[arg_1] );
  5253. }
  5254. return true;
  5255. }
  5256.  
  5257. if(!strcmp(cmd, "asay", .length = 4)) {
  5258. new arg_1 = argpos(cmd), message[128];
  5259.  
  5260. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"asay <message>\" (MessageToAdmins)");
  5261. else {
  5262. format(message, sizeof(message), "[RCON] MessageToAdmins: %s", cmd[arg_1]);
  5263. MessageToAdmins(COLOR_WHITE, message);
  5264. printf("Admin Message '%s' sent", cmd[arg_1] );
  5265. }
  5266. return true;
  5267. }
  5268.  
  5269. if(!strcmp(cmd, "ann", .length = 3)) {
  5270. new arg_1 = argpos(cmd), message[128];
  5271. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"ann <message>\" (GameTextForAll)");
  5272. else {
  5273. format(message, sizeof(message), "[RCON]: %s", cmd[arg_1]);
  5274. GameTextForAll(message,3000,3);
  5275. printf("GameText Message '%s' sent", cmd[arg_1] );
  5276. }
  5277. return true;
  5278. }
  5279.  
  5280. if(!strcmp(cmd, "msg", .length = 3)) {
  5281. new arg_1 = argpos(cmd), message[128];
  5282. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"msg <message>\" (SendClientMessageToAll)");
  5283. else {
  5284. format(message, sizeof(message), "[RCON]: %s", cmd[arg_1]);
  5285. SendClientMessageToAll(COLOR_WHITE, message);
  5286. printf("MessageToAll '%s' sent", cmd[arg_1] );
  5287. }
  5288. return true;
  5289. }
  5290.  
  5291. if(strcmp(cmd, "uconfig", true)==0) {
  5292. UpdateConfig();
  5293. print("Configuration Successfully Updated");
  5294. return true;
  5295. }
  5296.  
  5297. if(!strcmp(cmd, "aka", .length = 3)) {
  5298. new arg_1 = argpos(cmd), targetid = strval(cmd[arg_1]);
  5299.  
  5300. if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > MAX_PLAYERS || targetid < 0)
  5301. print("Usage: aka <playerid>");
  5302. else if ( !IsPlayerConnected(targetid) ) print("This player is not connected!");
  5303. else {
  5304. new tmp3[50], playername[MAX_PLAYER_NAME];
  5305. GetPlayerIp(targetid,tmp3,50);
  5306. GetPlayerName(targetid, playername, sizeof(playername));
  5307. printf("AKA: [%s id:%d] [%s] %s", playername, targetid, tmp3, dini_Get("ladmin/config/aka.txt",tmp3) );
  5308. }
  5309. return true;
  5310. }
  5311.  
  5312. if(!strcmp(cmd, "chat", .length = 4)) {
  5313. for(new i = 1; i < MAX_CHAT_LINES; i++) print(Chat[i]);
  5314. return true;
  5315. }
  5316.  
  5317. return 0;
  5318. }
  5319.  
  5320.  
  5321. //==============================================================================
  5322. // Menus
  5323. //==============================================================================
  5324.  
  5325. #if defined USE_MENUS
  5326. public OnPlayerSelectedMenuRow(playerid, row)
  5327. {
  5328. new Menu:Current = GetPlayerMenu(playerid);
  5329. new string[128];
  5330.  
  5331. if(Current == LMainMenu) {
  5332. switch(row) {
  5333. case 0:
  5334. {
  5335. if(PlayerInfo[playerid][Level] >= 4) ShowMenuForPlayer(AdminEnable,playerid);
  5336. else {
  5337. SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command");
  5338. TogglePlayerControllable(playerid,true);
  5339. }
  5340. }
  5341. case 1:
  5342. {
  5343. if(PlayerInfo[playerid][Level] >= 4) ShowMenuForPlayer(AdminDisable,playerid);
  5344. else {
  5345. SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command");
  5346. TogglePlayerControllable(playerid,true);
  5347. }
  5348. }
  5349. case 2: ShowMenuForPlayer(LWeather,playerid);
  5350. case 3: ShowMenuForPlayer(LTime,playerid);
  5351. case 4: ShowMenuForPlayer(LVehicles,playerid);
  5352. case 5: ShowMenuForPlayer(LCars,playerid);
  5353. case 6:
  5354. {
  5355. if(PlayerInfo[playerid][Level] >= 2) {
  5356. if(IsPlayerInAnyVehicle(playerid)) {
  5357. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  5358. switch(LModel) {
  5359. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  5360. {
  5361. SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle"); TogglePlayerControllable(playerid,true);
  5362. return 1;
  5363. }
  5364. }
  5365. TogglePlayerControllable(playerid,false); ShowMenuForPlayer(LTuneMenu,playerid);
  5366. }
  5367. else { SendClientMessage(playerid,red,"ERROR: You do not have a vehicle to tune"); TogglePlayerControllable(playerid,true); }
  5368. }
  5369. else {
  5370. SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command"); TogglePlayerControllable(playerid,true);
  5371. }
  5372. }
  5373. case 7:
  5374. {
  5375. if(PlayerInfo[playerid][Level] >= 3) ShowMenuForPlayer(XWeapons,playerid);
  5376. else SendClientMessage(playerid,red,"ERROR: You're not a high enough level to use this command"); TogglePlayerControllable(playerid,true);
  5377. }
  5378. case 8: ShowMenuForPlayer(LTele,playerid);
  5379. case 9:
  5380. {
  5381. new Menu:Currentxmenu = GetPlayerMenu(playerid);
  5382. HideMenuForPlayer(Currentxmenu,playerid); TogglePlayerControllable(playerid,true);
  5383. }
  5384. }
  5385. return 1;
  5386. } //-------------------------------------------------------------------------
  5387. if(Current == AdminEnable) {
  5388. new adminname[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5389. format(file,sizeof(file),"ladmin/config/Config.ini");
  5390. switch(row) {
  5391. case 0: { ServerInfo[AntiSwear] = 1; dini_IntSet(file,"AntiSwear",1); format(string,sizeof(string),"Administrator %s has enabled antiswear",adminname); SendClientMessageToAll(blue,string); }
  5392. case 1: { ServerInfo[NameKick] = 1; dini_IntSet(file,"NameKick",1); format(string,sizeof(string),"Administrator %s has enabled namekick",adminname); SendClientMessageToAll(blue,string); }
  5393. case 2: { ServerInfo[AntiSpam] = 1; dini_IntSet(file,"AntiSpam",1); format(string,sizeof(string),"Administrator %s has enabled antispam",adminname); SendClientMessageToAll(blue,string); }
  5394. case 3: { ServerInfo[MaxPing] = 1000; dini_IntSet(file,"MaxPing",1000); format(string,sizeof(string),"Administrator %s has enabled ping kick",adminname); SendClientMessageToAll(blue,string); }
  5395. case 4: { ServerInfo[ReadCmds] = 1; dini_IntSet(file,"ReadCmds",1); format(string,sizeof(string),"Administrator %s has enabled reading commands",adminname); MessageToAdmins(green,string); }
  5396. case 5: { ServerInfo[ReadPMs] = 1; dini_IntSet(file,"ReadPMs",1); format(string,sizeof(string),"Administrator %s has enabled reading pms",adminname); MessageToAdmins(green,string); }
  5397. 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); }
  5398. case 7: { ServerInfo[ConnectMessages] = 1; dini_IntSet(file,"ConnectMessages",1); format(string,sizeof(string),"Administrator %s has enabled connect messages",adminname); SendClientMessageToAll(blue,string); }
  5399. 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); }
  5400. case 9: { ServerInfo[AutoLogin] = 1; dini_IntSet(file,"AutoLogin",1); format(string,sizeof(string),"Administrator %s has enabled auto login",adminname); SendClientMessageToAll(blue,string); }
  5401. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5402. }
  5403. return TogglePlayerControllable(playerid,true);
  5404. } //------------------------------------------------------------------------
  5405. if(Current == AdminDisable) {
  5406. new adminname[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5407. format(file,sizeof(file),"ladmin/config/Config.ini");
  5408. switch(row) {
  5409. case 0: { ServerInfo[AntiSwear] = 0; dini_IntSet(file,"AntiSwear",0); format(string,sizeof(string),"Administrator %s has disabled antiswear",adminname); SendClientMessageToAll(blue,string); }
  5410. case 1: { ServerInfo[NameKick] = 0; dini_IntSet(file,"NameKick",0); format(string,sizeof(string),"Administrator %s has disabled namekick",adminname); SendClientMessageToAll(blue,string); }
  5411. case 2: { ServerInfo[AntiSpam] = 0; dini_IntSet(file,"AntiSpam",0); format(string,sizeof(string),"Administrator %s has disabled antispam",adminname); SendClientMessageToAll(blue,string); }
  5412. case 3: { ServerInfo[MaxPing] = 0; dini_IntSet(file,"MaxPing",0); format(string,sizeof(string),"Administrator %s has disabled ping kick",adminname); SendClientMessageToAll(blue,string); }
  5413. case 4: { ServerInfo[ReadCmds] = 0; dini_IntSet(file,"ReadCmds",0); format(string,sizeof(string),"Administrator %s has disabled reading commands",adminname); MessageToAdmins(green,string); }
  5414. case 5: { ServerInfo[ReadPMs] = 0; dini_IntSet(file,"ReadPMs",0); format(string,sizeof(string),"Administrator %s has disabled reading pms",adminname); MessageToAdmins(green,string); }
  5415. 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); }
  5416. case 7: { ServerInfo[ConnectMessages] = 0; dini_IntSet(file,"ConnectMessages",0); format(string,sizeof(string),"Administrator %s has disabled connect messages",adminname); SendClientMessageToAll(blue,string); }
  5417. 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); }
  5418. case 9: { ServerInfo[AutoLogin] = 0; dini_IntSet(file,"AutoLogin",0); format(string,sizeof(string),"Administrator %s has disabled auto login",adminname); SendClientMessageToAll(blue,string); }
  5419. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5420. }
  5421. return TogglePlayerControllable(playerid,true);
  5422. } //-------------------------------------------------------------------------
  5423. if(Current==LVehicles) {
  5424. switch(row) {
  5425. case 0: ChangeMenu(playerid,Current,twodoor);
  5426. case 1: ChangeMenu(playerid,Current,fourdoor);
  5427. case 2: ChangeMenu(playerid,Current,fastcar);
  5428. case 3: ChangeMenu(playerid,Current,Othercars);
  5429. case 4: ChangeMenu(playerid,Current,bikes);
  5430. case 5: ChangeMenu(playerid,Current,boats);
  5431. case 6: ChangeMenu(playerid,Current,planes);
  5432. case 7: ChangeMenu(playerid,Current,helicopters);
  5433. case 8: return ChangeMenu(playerid,Current,LMainMenu);
  5434. }
  5435. return 1;
  5436. }
  5437. if(Current==twodoor) {
  5438. new vehid;
  5439. switch(row) {
  5440. case 0: vehid = 533;
  5441. case 1: vehid = 439;
  5442. case 2: vehid = 555;
  5443. case 3: vehid = 422;
  5444. case 4: vehid = 554;
  5445. case 5: vehid = 575;
  5446. case 6: vehid = 536;
  5447. case 7: vehid = 535;
  5448. case 8: vehid = 576;
  5449. case 9: vehid = 401;
  5450. case 10: vehid = 526;
  5451. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5452. }
  5453. return SelectCar(playerid,vehid,Current);
  5454. }
  5455. if(Current==fourdoor) {
  5456. new vehid;
  5457. switch(row) {
  5458. case 0: vehid = 404;
  5459. case 1: vehid = 566;
  5460. case 2: vehid = 412;
  5461. case 3: vehid = 445;
  5462. case 4: vehid = 507;
  5463. case 5: vehid = 466;
  5464. case 6: vehid = 546;
  5465. case 7: vehid = 511;
  5466. case 8: vehid = 467;
  5467. case 9: vehid = 426;
  5468. case 10: vehid = 405;
  5469. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5470. }
  5471. return SelectCar(playerid,vehid,Current);
  5472. }
  5473. if(Current==fastcar) {
  5474. new vehid;
  5475. switch(row) {
  5476. case 0: vehid = 480;
  5477. case 1: vehid = 402;
  5478. case 2: vehid = 415;
  5479. case 3: vehid = 587;
  5480. case 4: vehid = 494;
  5481. case 5: vehid = 411;
  5482. case 6: vehid = 603;
  5483. case 7: vehid = 506;
  5484. case 8: vehid = 451;
  5485. case 9: vehid = 477;
  5486. case 10: vehid = 541;
  5487. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5488. }
  5489. return SelectCar(playerid,vehid,Current);
  5490. }
  5491. if(Current==Othercars) {
  5492. new vehid;
  5493. switch(row) {
  5494. case 0: vehid = 556;
  5495. case 1: vehid = 408;
  5496. case 2: vehid = 431;
  5497. case 3: vehid = 437;
  5498. case 4: vehid = 427;
  5499. case 5: vehid = 432;
  5500. case 6: vehid = 601;
  5501. case 7: vehid = 524;
  5502. case 8: vehid = 455;
  5503. case 9: vehid = 424;
  5504. case 10: vehid = 573;
  5505. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5506. }
  5507. return SelectCar(playerid,vehid,Current);
  5508. }
  5509. if(Current==bikes) {
  5510. new vehid;
  5511. switch(row) {
  5512. case 0: vehid = 581;
  5513. case 1: vehid = 481;
  5514. case 2: vehid = 462;
  5515. case 3: vehid = 521;
  5516. case 4: vehid = 463;
  5517. case 5: vehid = 522;
  5518. case 6: vehid = 461;
  5519. case 7: vehid = 448;
  5520. case 8: vehid = 471;
  5521. case 9: vehid = 468;
  5522. case 10: vehid = 586;
  5523. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5524. }
  5525. return SelectCar(playerid,vehid,Current);
  5526. }
  5527. if(Current==boats) {
  5528. new vehid;
  5529. switch(row) {
  5530. case 0: vehid = 472;
  5531. case 1: vehid = 473;
  5532. case 2: vehid = 493;
  5533. case 3: vehid = 595;
  5534. case 4: vehid = 484;
  5535. case 5: vehid = 430;
  5536. case 6: vehid = 453;
  5537. case 7: vehid = 452;
  5538. case 8: vehid = 446;
  5539. case 9: vehid = 454;
  5540. case 10: return ChangeMenu(playerid,Current,LVehicles);
  5541. }
  5542. return SelectCar(playerid,vehid,Current);
  5543. }
  5544. if(Current==planes) {
  5545. new vehid;
  5546. switch(row) {
  5547. case 0: vehid = 592;
  5548. case 1: vehid = 577;
  5549. case 2: vehid = 511;
  5550. case 3: vehid = 512;
  5551. case 4: vehid = 593;
  5552. case 5: vehid = 520;
  5553. case 6: vehid = 553;
  5554. case 7: vehid = 476;
  5555. case 8: vehid = 519;
  5556. case 9: vehid = 460;
  5557. case 10: vehid = 513;
  5558. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5559. }
  5560. return SelectCar(playerid,vehid,Current);
  5561. }
  5562. if(Current==helicopters) {
  5563. new vehid;
  5564. switch(row) {
  5565. case 0: vehid = 548;
  5566. case 1: vehid = 425;
  5567. case 2: vehid = 417;
  5568. case 3: vehid = 487;
  5569. case 4: vehid = 488;
  5570. case 5: vehid = 497;
  5571. case 6: vehid = 563;
  5572. case 7: vehid = 447;
  5573. case 8: vehid = 469;
  5574. case 9: return ChangeMenu(playerid,Current,LVehicles);
  5575. }
  5576. return SelectCar(playerid,vehid,Current);
  5577. }
  5578.  
  5579. if(Current==XWeapons) {
  5580. switch(row) {
  5581. case 0: { GivePlayerWeapon(playerid,24,500); }
  5582. case 1: { GivePlayerWeapon(playerid,31,500); }
  5583. case 2: { GivePlayerWeapon(playerid,26,500); }
  5584. case 3: { GivePlayerWeapon(playerid,27,500); }
  5585. case 4: { GivePlayerWeapon(playerid,28,500); }
  5586. case 5: { GivePlayerWeapon(playerid,35,500); }
  5587. case 6: { GivePlayerWeapon(playerid,38,1000); }
  5588. case 7: { GivePlayerWeapon(playerid,34,500); }
  5589. case 8: return ChangeMenu(playerid,Current,XWeaponsBig);
  5590. case 9: return ChangeMenu(playerid,Current,XWeaponsSmall);
  5591. case 10: return ChangeMenu(playerid,Current,XWeaponsMore);
  5592. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5593. }
  5594. return TogglePlayerControllable(playerid,true);
  5595. }
  5596.  
  5597. if(Current==XWeaponsBig) {
  5598. switch(row) {
  5599. case 0: { GivePlayerWeapon(playerid,25,500); }
  5600. case 1: { GivePlayerWeapon(playerid,30,500); }
  5601. case 2: { GivePlayerWeapon(playerid,33,500); }
  5602. case 3: { GivePlayerWeapon(playerid,36,500); }
  5603. case 4: { GivePlayerWeapon(playerid,37,500); }
  5604. case 5: { GivePlayerWeapon(playerid,29,500); }
  5605. case 6: { GivePlayerWeapon(playerid,32,1000); }
  5606. case 7: return ChangeMenu(playerid,Current,XWeapons);
  5607. }
  5608. return TogglePlayerControllable(playerid,true);
  5609. }
  5610.  
  5611. if(Current==XWeaponsSmall) {
  5612. switch(row) {
  5613. case 0: //9mm
  5614. {
  5615. GivePlayerWeapon(playerid,22,500);
  5616. }
  5617. case 1: //s9
  5618. {
  5619. GivePlayerWeapon(playerid,23,500);
  5620. }
  5621. case 2: // MC
  5622. {
  5623. GivePlayerWeapon(playerid,18,500);
  5624. }
  5625. case 3: //FE
  5626. {
  5627. GivePlayerWeapon(playerid,42,500);
  5628. }
  5629. case 4: //spraycan
  5630. {
  5631. GivePlayerWeapon(playerid,41,500);
  5632. }
  5633. case 5: //grenade
  5634. {
  5635. GivePlayerWeapon(playerid,16,500);
  5636. }
  5637. case 6: //Katana
  5638. {
  5639. GivePlayerWeapon(playerid,8,500);
  5640. }
  5641. case 7: //chainsaw
  5642. {
  5643. GivePlayerWeapon(playerid,9,1000);
  5644. }
  5645. case 8: return ChangeMenu(playerid,Current,XWeapons);
  5646. }
  5647. return TogglePlayerControllable(playerid,true);
  5648. }
  5649.  
  5650. if(Current==XWeaponsMore) {
  5651. switch(row) {
  5652. case 0: SetPlayerSpecialAction(playerid, 2);
  5653. case 1: GivePlayerWeapon(playerid,4,500);
  5654. case 2: GivePlayerWeapon(playerid,14,500);
  5655. case 3: GivePlayerWeapon(playerid,43,500);
  5656. case 4: GivePlayerWeapon(playerid,7,500);
  5657. case 5: GivePlayerWeapon(playerid,5,500);
  5658. case 6: GivePlayerWeapon(playerid,2,1000);
  5659. case 7: MaxAmmo(playerid);
  5660. case 8: return ChangeMenu(playerid,Current,XWeapons);
  5661. }
  5662. return TogglePlayerControllable(playerid,true);
  5663. }
  5664.  
  5665. if(Current == LTele) {
  5666. switch(row) {
  5667. case 0: ChangeMenu(playerid,Current,LasVenturasMenu);
  5668. case 1: ChangeMenu(playerid,Current,LosSantosMenu);
  5669. case 2: ChangeMenu(playerid,Current,SanFierroMenu);
  5670. case 3: ChangeMenu(playerid,Current,DesertMenu);
  5671. case 4: ChangeMenu(playerid,Current,FlintMenu);
  5672. case 5: ChangeMenu(playerid,Current,MountChiliadMenu);
  5673. case 6: ChangeMenu(playerid,Current,InteriorsMenu);
  5674. case 7: return ChangeMenu(playerid,Current,LMainMenu);
  5675. }
  5676. return 1;
  5677. }
  5678.  
  5679. if(Current == LasVenturasMenu) {
  5680. switch(row) {
  5681. case 0: // strip
  5682. {
  5683. SetPlayerPos(playerid,2037.0,1343.0,12.0); SetPlayerInterior(playerid,0);
  5684. }
  5685. case 1: // come a lot
  5686. {
  5687. SetPlayerPos(playerid,2163.0,1121.0,23); SetPlayerInterior(playerid,0);
  5688. }
  5689. case 2: // lv airport
  5690. {
  5691. SetPlayerPos(playerid,1688.0,1615.0,12.0); SetPlayerInterior(playerid,0);
  5692. }
  5693. case 3: // military fuel
  5694. {
  5695. SetPlayerPos(playerid,2503.0,2764.0,10.0); SetPlayerInterior(playerid,0);
  5696. }
  5697. case 4: // golf lv
  5698. {
  5699. SetPlayerPos(playerid,1418.0,2733.0,10.0); SetPlayerInterior(playerid,0);
  5700. }
  5701. case 5: // pitch match
  5702. {
  5703. SetPlayerPos(playerid,1377.0,2196.0,9.0); SetPlayerInterior(playerid,0);
  5704. }
  5705. case 6: return ChangeMenu(playerid,Current,LTele);
  5706. }
  5707. return TogglePlayerControllable(playerid,true);
  5708. }
  5709.  
  5710. if(Current == LosSantosMenu) {
  5711. switch(row) {
  5712. case 0: // ganton
  5713. {
  5714. SetPlayerPos(playerid,2495.0,-1688.0,13.0); SetPlayerInterior(playerid,0);
  5715. }
  5716. case 1: // ls airport
  5717. {
  5718. SetPlayerPos(playerid,1979.0,-2241.0,13.0); SetPlayerInterior(playerid,0);
  5719. }
  5720. case 2: // docks
  5721. {
  5722. SetPlayerPos(playerid,2744.0,-2435.0,15.0); SetPlayerInterior(playerid,0);
  5723. }
  5724. case 3: // square
  5725. {
  5726. SetPlayerPos(playerid,1481.0,-1656.0,14.0); SetPlayerInterior(playerid,0);
  5727. }
  5728. case 4: // veradant bluffs
  5729. {
  5730. SetPlayerPos(playerid,1150.0,-2037.0,69.0); SetPlayerInterior(playerid,0);
  5731. }
  5732. case 5: // santa beach
  5733. {
  5734. SetPlayerPos(playerid,425.0,-1815.0,6.0); SetPlayerInterior(playerid,0);
  5735. }
  5736. case 6: // mullholland
  5737. {
  5738. SetPlayerPos(playerid,1240.0,-744.0,95.0); SetPlayerInterior(playerid,0);
  5739. }
  5740. case 7: // richman
  5741. {
  5742. SetPlayerPos(playerid,679.0,-1070.0,49.0); SetPlayerInterior(playerid,0);
  5743. }
  5744. case 8: return ChangeMenu(playerid,Current,LTele);
  5745. }
  5746. return TogglePlayerControllable(playerid,true);
  5747. }
  5748.  
  5749. if(Current == SanFierroMenu) {
  5750. switch(row) {
  5751. case 0: // sf station
  5752. {
  5753. SetPlayerPos(playerid,-1990.0,137.0,27.0); SetPlayerInterior(playerid,0);
  5754. }
  5755. case 1: // sf airport
  5756. {
  5757. SetPlayerPos(playerid,-1528.0,-206.0,14.0); SetPlayerInterior(playerid,0);
  5758. }
  5759. case 2: // ocean flats
  5760. {
  5761. SetPlayerPos(playerid,-2709.0,198.0,4.0); SetPlayerInterior(playerid,0);
  5762. }
  5763. case 3: // avispa country club
  5764. {
  5765. SetPlayerPos(playerid,-2738.0,-295.0,6.0); SetPlayerInterior(playerid,0);
  5766. }
  5767. case 4: // easter basic docks
  5768. {
  5769. SetPlayerPos(playerid,-1457.0,465.0,7.0); SetPlayerInterior(playerid,0);
  5770. }
  5771. case 5: // esplanadae north
  5772. {
  5773. SetPlayerPos(playerid,-1853.0,1404.0,7.0); SetPlayerInterior(playerid,0);
  5774. }
  5775. case 6: // battery point
  5776. {
  5777. SetPlayerPos(playerid,-2620.0,1373.0,7.0); SetPlayerInterior(playerid,0);
  5778. }
  5779. case 7: return ChangeMenu(playerid,Current,LTele);
  5780. }
  5781. return TogglePlayerControllable(playerid,true);
  5782. }
  5783.  
  5784. if(Current == DesertMenu) {
  5785. switch(row) {
  5786. case 0: // plane graveyard
  5787. {
  5788. SetPlayerPos(playerid,416.0,2516.0,16.0); SetPlayerInterior(playerid,0);
  5789. }
  5790. case 1: // area51
  5791. {
  5792. SetPlayerPos(playerid,81.0,1920.0,17.0); SetPlayerInterior(playerid,0);
  5793. }
  5794. case 2: // big ear
  5795. {
  5796. SetPlayerPos(playerid,-324.0,1516.0,75.0); SetPlayerInterior(playerid,0);
  5797. }
  5798. case 3: // dam
  5799. {
  5800. SetPlayerPos(playerid,-640.0,2051.0,60.0); SetPlayerInterior(playerid,0);
  5801. }
  5802. case 4: // las barrancas
  5803. {
  5804. SetPlayerPos(playerid,-766.0,1545.0,27.0); SetPlayerInterior(playerid,0);
  5805. }
  5806. case 5: // el qyebrados
  5807. {
  5808. SetPlayerPos(playerid,-1514.0,2597.0,55.0); SetPlayerInterior(playerid,0);
  5809. }
  5810. case 6: // actane springs
  5811. {
  5812. SetPlayerPos(playerid,442.0,1427.0,9.0); SetPlayerInterior(playerid,0);
  5813. }
  5814. case 7: return ChangeMenu(playerid,Current,LTele);
  5815. }
  5816. return TogglePlayerControllable(playerid,true);
  5817. }
  5818.  
  5819. if(Current == FlintMenu) {
  5820. switch(row) {
  5821. case 0: // lake
  5822. {
  5823. SetPlayerPos(playerid,-849.0,-1940.0,13.0); SetPlayerInterior(playerid,0);
  5824. }
  5825. case 1: // leafy hollow
  5826. {
  5827. SetPlayerPos(playerid,-1107.0,-1619.0,76.0); SetPlayerInterior(playerid,0);
  5828. }
  5829. case 2: // the farm
  5830. {
  5831. SetPlayerPos(playerid,-1049.0,-1199.0,128.0); SetPlayerInterior(playerid,0);
  5832. }
  5833. case 3: // shady cabin
  5834. {
  5835. SetPlayerPos(playerid,-1655.0,-2219.0,32.0); SetPlayerInterior(playerid,0);
  5836. }
  5837. case 4: // flint range
  5838. {
  5839. SetPlayerPos(playerid,-375.0,-1441.0,25.0); SetPlayerInterior(playerid,0);
  5840. }
  5841. case 5: // beacon hill
  5842. {
  5843. SetPlayerPos(playerid,-367.0,-1049.0,59.0); SetPlayerInterior(playerid,0);
  5844. }
  5845. case 6: // fallen tree
  5846. {
  5847. SetPlayerPos(playerid,-494.0,-555.0,25.0); SetPlayerInterior(playerid,0);
  5848. }
  5849. case 7: return ChangeMenu(playerid,Current,LTele);
  5850. }
  5851. return TogglePlayerControllable(playerid,true);
  5852. }
  5853.  
  5854. if(Current == MountChiliadMenu) {
  5855. switch(row) {
  5856. case 0: // chiliad jump
  5857. {
  5858. SetPlayerPos(playerid,-2308.0,-1657.0,483.0); SetPlayerInterior(playerid,0);
  5859. }
  5860. case 1: // bottom chiliad
  5861. {
  5862. SetPlayerPos(playerid,-2331.0,-2180.0,35.0); SetPlayerInterior(playerid,0);
  5863. }
  5864. case 2: // highest point
  5865. {
  5866. SetPlayerPos(playerid,-2431.0,-1620.0,526.0); SetPlayerInterior(playerid,0);
  5867. }
  5868. case 3: // chiliad path
  5869. {
  5870. SetPlayerPos(playerid,-2136.0,-1775.0,208.0); SetPlayerInterior(playerid,0);
  5871. }
  5872. case 4: return ChangeMenu(playerid,Current,LTele);
  5873. }
  5874. return TogglePlayerControllable(playerid,true);
  5875. }
  5876.  
  5877. if(Current == InteriorsMenu) {
  5878. switch(row) {
  5879. case 0: { SetPlayerPos(playerid,386.5259, 173.6381, 1008.3828); SetPlayerInterior(playerid,3); }
  5880. case 1: { SetPlayerPos(playerid,288.4723, 170.0647, 1007.1794); SetPlayerInterior(playerid,3); }
  5881. case 2: { SetPlayerPos(playerid,372.5565, -131.3607, 1001.4922); SetPlayerInterior(playerid,5); }
  5882. case 3: { SetPlayerPos(playerid,-1129.8909, 1057.5424, 1346.4141); SetPlayerInterior(playerid,10); }
  5883. case 4: { SetPlayerPos(playerid,2233.9363, 1711.8038, 1011.6312); SetPlayerInterior(playerid,1); }
  5884. case 5: { SetPlayerPos(playerid,2536.5322, -1294.8425, 1044.125); SetPlayerInterior(playerid,2); }
  5885. case 6: { SetPlayerPos(playerid,1267.8407, -776.9587, 1091.9063); SetPlayerInterior(playerid,5); }
  5886. case 7: { SetPlayerPos(playerid,-1421.5618, -663.8262, 1059.5569); SetPlayerInterior(playerid,4); }
  5887. case 8: { SetPlayerPos(playerid,-1401.067, 1265.3706, 1039.8672); SetPlayerInterior(playerid,16); }
  5888. case 9: { SetPlayerPos(playerid,285.8361, -39.0166, 1001.5156); SetPlayerInterior(playerid,1); }
  5889. case 10: { SetPlayerPos(playerid,1727.2853, -1642.9451, 20.2254); SetPlayerInterior(playerid,18); }
  5890. case 11: return ChangeMenu(playerid,Current,LTele);
  5891. }
  5892. return TogglePlayerControllable(playerid,true);
  5893. }
  5894.  
  5895. if(Current == LWeather) {
  5896. new adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5897. switch(row) {
  5898. 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); }
  5899. 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); }
  5900. 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); }
  5901. 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); }
  5902. 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); }
  5903. 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); }
  5904. 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); }
  5905. 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); }
  5906. 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); }
  5907. 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); }
  5908. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5909. }
  5910. return TogglePlayerControllable(playerid,true);
  5911. }
  5912.  
  5913. if(Current == LTuneMenu) {
  5914. switch(row) {
  5915. case 0: { AddVehicleComponent(GetPlayerVehicleID(playerid),1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5916. case 1: { AddVehicleComponent(GetPlayerVehicleID(playerid),1087); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5917. case 2: { AddVehicleComponent(GetPlayerVehicleID(playerid),1081); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5918. case 3: { AddVehicleComponent(GetPlayerVehicleID(playerid),1078); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5919. case 4: { AddVehicleComponent(GetPlayerVehicleID(playerid),1098); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5920. case 5: { AddVehicleComponent(GetPlayerVehicleID(playerid),1074); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5921. case 6: { AddVehicleComponent(GetPlayerVehicleID(playerid),1082); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5922. case 7: { AddVehicleComponent(GetPlayerVehicleID(playerid),1085); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5923. case 8: { AddVehicleComponent(GetPlayerVehicleID(playerid),1025); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5924. case 9: { AddVehicleComponent(GetPlayerVehicleID(playerid),1077); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5925. case 10: return ChangeMenu(playerid,Current,PaintMenu);
  5926. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5927. }
  5928. return TogglePlayerControllable(playerid,true);
  5929. }
  5930.  
  5931. if(Current == PaintMenu) {
  5932. switch(row) {
  5933. 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"); }
  5934. 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"); }
  5935. 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"); }
  5936. 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"); }
  5937. 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"); }
  5938. 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"); }
  5939. 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"); }
  5940. 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"); }
  5941. 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"); }
  5942. case 9: return ChangeMenu(playerid,Current,LTuneMenu);
  5943. }
  5944. return TogglePlayerControllable(playerid,true);
  5945. }
  5946.  
  5947. if(Current == LTime) {
  5948. new adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5949. switch(row) {
  5950. 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); }
  5951. 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); }
  5952. 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); }
  5953. 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); }
  5954. 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); }
  5955. case 5: return ChangeMenu(playerid,Current,LMainMenu);
  5956. }
  5957. return TogglePlayerControllable(playerid,true);
  5958. }
  5959.  
  5960. if(Current == LCars) {
  5961. new vehid;
  5962. switch(row) {
  5963. case 0: vehid = 451; //Turismo
  5964. case 1: vehid = 568; //Bandito
  5965. case 2: vehid = 539; //Vortex
  5966. case 3: vehid = 522; //nrg
  5967. case 4: vehid = 601; //s.w.a.t
  5968. case 5: vehid = 425; //hunter
  5969. case 6: vehid = 493; //jetmax
  5970. case 7: vehid = 432; //rhino
  5971. case 8: vehid = 444; //mt
  5972. case 9: vehid = 447; //sea sparrow
  5973. case 10: return ChangeMenu(playerid,Current,LCars2);
  5974. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5975. }
  5976. return SelectCar(playerid,vehid,Current);
  5977. }
  5978.  
  5979. if(Current == LCars2) {
  5980. new vehid;
  5981. switch(row) {
  5982. case 0: vehid = 406; // dumper
  5983. case 1: vehid = 564; //rc tank
  5984. case 2: vehid = 441; //RC Bandit
  5985. case 3: vehid = 464; // rc baron
  5986. case 4: vehid = 501; //rc goblin
  5987. case 5: vehid = 465; //rc raider
  5988. case 6: vehid = 594; // rc cam
  5989. case 7: vehid = 449; //tram
  5990. case 8: return ChangeMenu(playerid,Current,LCars);
  5991. }
  5992. return SelectCar(playerid,vehid,Current);
  5993. }
  5994.  
  5995. return 1;
  5996. }
  5997.  
  5998.  
  5999. //==============================================================================
  6000.  
  6001. public OnPlayerExitedMenu(playerid)
  6002. {
  6003. new Menu:Current = GetPlayerMenu(playerid);
  6004. HideMenuForPlayer(Current,playerid);
  6005. return TogglePlayerControllable(playerid,true);
  6006. }
  6007.  
  6008.  
  6009. //==============================================================================
  6010.  
  6011. ChangeMenu(playerid,Menu:oldmenu,Menu:newmenu)
  6012. {
  6013. if(IsValidMenu(oldmenu)) {
  6014. HideMenuForPlayer(oldmenu,playerid);
  6015. ShowMenuForPlayer(newmenu,playerid);
  6016. }
  6017. return 1;
  6018. }
  6019.  
  6020.  
  6021. CloseMenu(playerid,Menu:oldmenu)
  6022. {
  6023. HideMenuForPlayer(oldmenu,playerid);
  6024. TogglePlayerControllable(playerid,1);
  6025. return 1;
  6026. }
  6027.  
  6028.  
  6029. SelectCar(playerid,vehid,Menu:menu)
  6030. {
  6031. CloseMenu(playerid,menu);
  6032. SetCameraBehindPlayer(playerid);
  6033. CarSpawner(playerid,vehid);
  6034. return 1;
  6035. }
  6036. #endif
  6037.  
  6038. //==============================================================================
  6039. forward countdown();
  6040. public countdown()
  6041. {
  6042. if(CountDown==6) GameTextForAll("~p~Starting...",1000,6);
  6043.  
  6044. CountDown--;
  6045. if(CountDown==0) {
  6046. GameTextForAll("~g~GO~ r~!",1000,6);
  6047. CountDown = -1;
  6048. for(new i = 0; i < MAX_PLAYERS; i++) {
  6049. TogglePlayerControllable(i,true);
  6050. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  6051. }
  6052. return 0;
  6053. }
  6054. else {
  6055. new text[7]; format(text,sizeof(text),"~w~%d",CountDown);
  6056. for(new i = 0; i < MAX_PLAYERS; i++) {
  6057. PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
  6058. TogglePlayerControllable(i,false);
  6059. }
  6060. GameTextForAll(text,1000,6);
  6061. }
  6062.  
  6063. SetTimer("countdown",1000,0);
  6064. return 0;
  6065. }
  6066.  
  6067.  
  6068. forward Duel(player1, player2);
  6069. public Duel(player1, player2)
  6070. {
  6071. if(cdt[player1]==6) {
  6072. GameTextForPlayer(player1,"~p~Duel Starting...",1000,6); GameTextForPlayer(player2,"~p~Duel Starting...",1000,6);
  6073. }
  6074.  
  6075. cdt[player1]--;
  6076. if(cdt[player1]==0) {
  6077. TogglePlayerControllable(player1,1); TogglePlayerControllable(player2,1);
  6078. PlayerPlaySound(player1, 1057, 0.0, 0.0, 0.0); PlayerPlaySound(player2, 1057, 0.0, 0.0, 0.0);
  6079. GameTextForPlayer(player1,"~g~GO~ r~!",1000,6); GameTextForPlayer(player2,"~g~GO~ r~!",1000,6);
  6080. return 0;
  6081. }
  6082. else {
  6083. new text[7]; format(text,sizeof(text),"~w~%d",cdt[player1]);
  6084. PlayerPlaySound(player1, 1056, 0.0, 0.0, 0.0); PlayerPlaySound(player2, 1056, 0.0, 0.0, 0.0);
  6085. TogglePlayerControllable(player1,0); TogglePlayerControllable(player2,0);
  6086. GameTextForPlayer(player1,text,1000,6); GameTextForPlayer(player2,text,1000,6);
  6087. }
  6088.  
  6089. SetTimerEx("Duel",1000,0,"dd", player1, player2);
  6090. return 0;
  6091. }
  6092.  
  6093.  
  6094. //==================== [ Jail & Freeze ]========================================
  6095.  
  6096. forward Jail1(player1);
  6097. public Jail1(player1)
  6098. {
  6099. TogglePlayerControllable(player1,false);
  6100. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6101. SetPlayerCameraPos(player1,x+10,y,z+10);SetPlayerCameraLookAt(player1,x,y,z);
  6102. SetTimerEx("Jail2",1000,0,"d",player1);
  6103. }
  6104.  
  6105.  
  6106. forward Jail2(player1);
  6107. public Jail2(player1)
  6108. {
  6109. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6110. SetPlayerCameraPos(player1,x+7,y,z+5); SetPlayerCameraLookAt(player1,x,y,z);
  6111. if(GetPlayerState(player1) == PLAYER_STATE_ONFOOT) SetPlayerSpecialAction(player1,SPECIAL_ACTION_HANDSUP);
  6112. GameTextForPlayer(player1,"~r~Busted By Admins",3000,3);
  6113. SetTimerEx("Jail3",1000,0,"d",player1);
  6114. }
  6115.  
  6116.  
  6117. forward Jail3(player1);
  6118. public Jail3(player1)
  6119. {
  6120. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6121. SetPlayerCameraPos(player1,x+3,y,z); SetPlayerCameraLookAt(player1,x,y,z);
  6122. }
  6123.  
  6124.  
  6125. forward JailPlayer(player1);
  6126. public JailPlayer(player1)
  6127. {
  6128. TogglePlayerControllable(player1,true);
  6129. SetPlayerPos(player1,197.6661,173.8179,1003.0234);
  6130. SetPlayerInterior(player1,3);
  6131. SetCameraBehindPlayer(player1);
  6132. JailTimer[player1] = SetTimerEx("JailRelease",PlayerInfo[player1][JailTime],0,"d",player1);
  6133. PlayerInfo[player1][Jailed] = 1;
  6134. }
  6135.  
  6136.  
  6137. forward JailRelease(player1);
  6138. public JailRelease(player1)
  6139. {
  6140. KillTimer( JailTimer[player1] );
  6141. PlayerInfo[player1][JailTime] = 0; PlayerInfo[player1][Jailed] = 0;
  6142. SetPlayerInterior(player1,0); SetPlayerPos(player1, 0.0, 0.0, 0.0); SpawnPlayer(player1);
  6143. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  6144. GameTextForPlayer(player1,"~g~Released ~n~From Jail",3000,3);
  6145. }
  6146.  
  6147.  
  6148. //------------------------------------------------------------------------------
  6149. forward UnFreezeMe(player1);
  6150. public UnFreezeMe(player1)
  6151. {
  6152. KillTimer( FreezeTimer[player1] );
  6153. TogglePlayerControllable(player1,true); PlayerInfo[player1][Frozen] = 0;
  6154. PlayerPlaySound(player1,1057,0.0,0.0,0.0); GameTextForPlayer(player1,"~g~Unfrozen",3000,3);
  6155. }
  6156.  
  6157.  
  6158. //==============================================================================
  6159. forward RepairCar(playerid);
  6160. public RepairCar(playerid)
  6161. {
  6162. if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid),Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]+0.5);
  6163. SetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[playerid][3]);
  6164. SetCameraBehindPlayer(playerid);
  6165. }
  6166.  
  6167.  
  6168. //============================ [ Timers ]=======================================
  6169.  
  6170. forward PingKick();
  6171. public PingKick()
  6172. {
  6173. if(ServerInfo[MaxPing] != 0) {
  6174. PingPos++; if(PingPos > PING_MAX_EXCEEDS) PingPos = 0;
  6175.  
  6176. for(new i=0; i<MAX_PLAYERS; i++) {
  6177. PlayerInfo[i][pPing][PingPos] = GetPlayerPing(i);
  6178.  
  6179. if(GetPlayerPing(i) > ServerInfo[MaxPing]) {
  6180. if(PlayerInfo[i][PingCount] == 0) PlayerInfo[i][PingTime] = TimeStamp();
  6181.  
  6182. PlayerInfo[i][PingCount]++;
  6183. if(TimeStamp() - PlayerInfo[i][PingTime] > PING_TIMELIMIT) {
  6184. PlayerInfo[i][PingTime] = TimeStamp();
  6185. PlayerInfo[i][PingCount] = 1;
  6186. }
  6187. else if(PlayerInfo[i][PingCount] >= PING_MAX_EXCEEDS) {
  6188. new Sum, Average, x, string[128];
  6189. while (x < PING_MAX_EXCEEDS) {
  6190. Sum += PlayerInfo[i][pPing][x];
  6191. x++;
  6192. }
  6193. Average = (Sum / PING_MAX_EXCEEDS);
  6194. 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] );
  6195. SendClientMessageToAll(grey,string);
  6196. SaveToFile("KickLog",string);
  6197. Kick(i);
  6198. }
  6199. }
  6200. else if(GetPlayerPing(i) < 1 && ServerInfo[AntiBot] == 1) {
  6201. PlayerInfo[i][BotPing]++;
  6202. if(PlayerInfo[i][BotPing] >= 3) BotCheck(i);
  6203. }
  6204. else {
  6205. PlayerInfo[i][BotPing] = 0;
  6206. }
  6207. }
  6208. }
  6209.  
  6210. #if defined ANTI_MINIGUN
  6211. new weap, ammo;
  6212. for(new i = 0; i < MAX_PLAYERS; i++) {
  6213. if(IsPlayerConnected(i) && PlayerInfo[i][Level] == 0) {
  6214. GetPlayerWeaponData(i, 7, weap, ammo);
  6215. if(ammo > 1 && weap == 38) {
  6216. new string[128]; format(string,sizeof(string),"INFO: %s has a mingun with %d ammo", PlayerName2(i), ammo);
  6217. MessageToAdmins(COLOR_WHITE,string);
  6218. }
  6219. }
  6220. }
  6221. #endif
  6222. }
  6223.  
  6224.  
  6225. //==============================================================================
  6226. forward GodUpdate();
  6227. public GodUpdate()
  6228. {
  6229. for(new i = 0; i < MAX_PLAYERS; i++) {
  6230. if(IsPlayerConnected(i) && PlayerInfo[i][God] == 1) {
  6231. SetPlayerHealth(i,100000);
  6232. }
  6233. if(IsPlayerConnected(i) && PlayerInfo[i][GodCar] == 1 && IsPlayerInAnyVehicle(i)) {
  6234. SetVehicleHealth(GetPlayerVehicleID(i),10000);
  6235. }
  6236. }
  6237. }
  6238.  
  6239.  
  6240. //==========================[ Server Info ]====================================
  6241.  
  6242. forward ConnectedPlayers();
  6243. public ConnectedPlayers()
  6244. {
  6245. new Connected;
  6246. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) Connected++;
  6247. return Connected;
  6248. }
  6249.  
  6250.  
  6251. forward JailedPlayers();
  6252. public JailedPlayers()
  6253. {
  6254. new JailedCount;
  6255. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed] == 1) JailedCount++;
  6256. return JailedCount;
  6257. }
  6258.  
  6259.  
  6260. forward FrozenPlayers();
  6261. public FrozenPlayers()
  6262. {
  6263. new FrozenCount; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen] == 1) FrozenCount++;
  6264. return FrozenCount;
  6265. }
  6266.  
  6267.  
  6268. forward MutedPlayers();
  6269. public MutedPlayers()
  6270. {
  6271. new Count; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted] == 1) Count++;
  6272. return Count;
  6273. }
  6274.  
  6275.  
  6276. forward InVehCount();
  6277. public InVehCount()
  6278. {
  6279. new InVeh; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) InVeh++;
  6280. return InVeh;
  6281. }
  6282.  
  6283.  
  6284. forward OnBikeCount();
  6285. public OnBikeCount()
  6286. {
  6287. new BikeCount;
  6288. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  6289. new LModel = GetVehicleModel(GetPlayerVehicleID(i));
  6290. switch(LModel) {
  6291. case 448,461,462,463,468,471,509,510,521,522,523,581,586: BikeCount++;
  6292. }
  6293. }
  6294. return BikeCount;
  6295. }
  6296.  
  6297.  
  6298. forward InCarCount();
  6299. public InCarCount()
  6300. {
  6301. new PInCarCount;
  6302. for(new i = 0; i < MAX_PLAYERS; i++) {
  6303. if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  6304. new LModel = GetVehicleModel(GetPlayerVehicleID(i));
  6305. switch(LModel) {
  6306. case 448,461,462,463,468,471,509,510,521,522,523,581,586: {}
  6307. default: PInCarCount++;
  6308. }
  6309. }
  6310. }
  6311. return PInCarCount;
  6312. }
  6313.  
  6314.  
  6315. forward AdminCount();
  6316. public AdminCount()
  6317. {
  6318. new LAdminCount;
  6319. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] >= 1) LAdminCount++;
  6320. return LAdminCount;
  6321. }
  6322.  
  6323.  
  6324. forward RconAdminCount();
  6325. public RconAdminCount()
  6326. {
  6327. new rAdminCount;
  6328. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) rAdminCount++;
  6329. return rAdminCount;
  6330. }
  6331.  
  6332.  
  6333. //==========================[ Remote Console ]==================================
  6334.  
  6335. forward RestartGM();
  6336. public RestartGM()
  6337. {
  6338. SendRconCommand("gmx");
  6339. }
  6340.  
  6341.  
  6342. forward UnloadFS();
  6343. public UnloadFS()
  6344. {
  6345. SendRconCommand("unloadfs ladmin4");
  6346. }
  6347.  
  6348.  
  6349. forward PrintWarning(const string[]);
  6350. public PrintWarning(const string[])
  6351. {
  6352. new str[128];
  6353. print("\n\n> WARNING:\n");
  6354. format(str, sizeof(str), " The %s folder is missing from scriptfiles", string);
  6355. print(str);
  6356. print("\n Please Create This Folder And Reload the Filterscript\n\n");
  6357. }
  6358.  
  6359.  
  6360. //============================[ Bot Check ]=====================================
  6361. forward BotCheck(playerid);
  6362. public BotCheck(playerid)
  6363. {
  6364. if(IsPlayerConnected(playerid)) {
  6365. if(GetPlayerPing(playerid) < 1) {
  6366. new string[128], ip[20]; GetPlayerIp(playerid,ip,sizeof(ip));
  6367. format(string,sizeof(string),"BOT: %s id:%d ip: %s ping: %d",PlayerName2(playerid),playerid,ip,GetPlayerPing(playerid));
  6368. SaveToFile("BotKickLog",string);
  6369. SaveToFile("KickLog",string);
  6370. printf("[ADMIN] Possible bot has been detected (Kicked %s ID:%d)", PlayerName2(playerid), playerid);
  6371. Kick(playerid);
  6372. }
  6373. }
  6374. }
  6375.  
  6376.  
  6377. //==============================================================================
  6378. forward PutAtPos(playerid);
  6379. public PutAtPos(playerid)
  6380. {
  6381. if (dUserINT(PlayerName2(playerid)).("x")!=0) {
  6382. SetPlayerPos(playerid, float(dUserINT(PlayerName2(playerid)).("x")), float(dUserINT(PlayerName2(playerid)).("y")), float(dUserINT(PlayerName2(playerid)).("z")) );
  6383. SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior")) );
  6384. }
  6385. }
  6386.  
  6387.  
  6388. forward PutAtDisconectPos(playerid);
  6389. public PutAtDisconectPos(playerid)
  6390. {
  6391. if (dUserINT(PlayerName2(playerid)).("x1")!=0) {
  6392. SetPlayerPos(playerid, float(dUserINT(PlayerName2(playerid)).("x1")), float(dUserINT(PlayerName2(playerid)).("y1")), float(dUserINT(PlayerName2(playerid)).("z1")) );
  6393. SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior1")) );
  6394. }
  6395. }
  6396.  
  6397.  
  6398. TotalGameTime(playerid, &h=0, &m=0, &s=0)
  6399. {
  6400. PlayerInfo[playerid][TotalTime] = ( (gettime() - PlayerInfo[playerid][ConnectTime]) + (PlayerInfo[playerid][hours]*60*60) + (PlayerInfo[playerid][mins]*60) + (PlayerInfo[playerid][secs]) );
  6401.  
  6402. h = floatround(PlayerInfo[playerid][TotalTime] / 3600, floatround_floor);
  6403. m = floatround(PlayerInfo[playerid][TotalTime] / 60, floatround_floor) % 60;
  6404. s = floatround(PlayerInfo[playerid][TotalTime] % 60, floatround_floor);
  6405.  
  6406. return PlayerInfo[playerid][TotalTime];
  6407. }
  6408.  
  6409.  
  6410. //==============================================================================
  6411. MaxAmmo(playerid)
  6412. {
  6413. new slot, weap, ammo;
  6414. for (slot = 0; slot < 14; slot++) {
  6415. GetPlayerWeaponData(playerid, slot, weap, ammo);
  6416. if(IsValidWeapon(weap)) {
  6417. GivePlayerWeapon(playerid, weap, 99999);
  6418. }
  6419. }
  6420. return 1;
  6421. }
  6422.  
  6423.  
  6424. stock PlayerName2(playerid)
  6425. {
  6426. new name[MAX_PLAYER_NAME];
  6427. GetPlayerName(playerid, name, sizeof(name));
  6428. return name;
  6429. }
  6430.  
  6431.  
  6432. stock pName(playerid)
  6433. {
  6434. new name[MAX_PLAYER_NAME];
  6435. GetPlayerName(playerid, name, sizeof(name));
  6436. return name;
  6437. }
  6438.  
  6439.  
  6440. stock TimeStamp()
  6441. {
  6442. new time = GetTickCount() / 1000;
  6443. return time;
  6444. }
  6445.  
  6446.  
  6447. stock PlayerSoundForAll(SoundID)
  6448. {
  6449. for(new i = 0; i < MAX_PLAYERS; i++) PlayerPlaySound(i, SoundID, 0.0, 0.0, 0.0);
  6450. }
  6451.  
  6452.  
  6453. stock IsValidWeapon(weaponid)
  6454. {
  6455. if (weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47) return 1;
  6456. return 0;
  6457. }
  6458.  
  6459.  
  6460. stock IsValidSkin(SkinID)
  6461. {
  6462. 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;
  6463. else return false;
  6464. }
  6465.  
  6466.  
  6467. stock IsNumeric(string[])
  6468. {
  6469. for (new i = 0, j = strlen(string); i < j; i++) {
  6470. if (string[i] > '9' || string[i] < '0') return 0;
  6471. }
  6472. return 1;
  6473. }
  6474.  
  6475.  
  6476. stock ReturnPlayerID(PlayerName[])
  6477. {
  6478. for(new i = 0; i < MAX_PLAYERS; i++) {
  6479. if(IsPlayerConnected(i)) {
  6480. if(strfind(pName(i),PlayerName,true)!=-1) return i;
  6481. }
  6482. }
  6483. return INVALID_PLAYER_ID;
  6484. }
  6485.  
  6486.  
  6487. GetVehicleModelIDFromName(vname[])
  6488. {
  6489. for(new i = 0; i < 211; i++) {
  6490. if ( strfind(VehicleNames[i], vname, true) != -1 )
  6491. return i + 400;
  6492. }
  6493. return -1;
  6494. }
  6495.  
  6496.  
  6497. stock GetWeaponIDFromName(WeaponName[])
  6498. {
  6499. if(strfind("molotov",WeaponName,true)!=-1) return 18;
  6500. for(new i = 0; i <= 46; i++) {
  6501. switch(i) {
  6502. case 0,19,20,21,44,45: continue;
  6503. default:
  6504. {
  6505. new name[32]; GetWeaponName(i,name,32);
  6506. if(strfind(name,WeaponName,true) != -1) return i;
  6507. }
  6508. }
  6509. }
  6510. return -1;
  6511. }
  6512.  
  6513.  
  6514. stock DisableWord(const badword[], text[])
  6515. {
  6516. for(new i=0; i<256; i++) {
  6517. if (strfind(text[i], badword, true) == 0) {
  6518. for(new a=0; a<256; a++) {
  6519. if (a >= i && a < i+strlen(badword)) text[a]='*';
  6520. }
  6521. }
  6522. }
  6523. }
  6524. stock strtok(const string[], &index,seperator=' ')
  6525. {
  6526. new length = strlen(string);
  6527. new offset = index;
  6528. new result[MAX_STRING];
  6529. while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
  6530. {
  6531. result[index - offset] = string[index];
  6532. index++;
  6533. }
  6534.  
  6535. result[index - offset] = EOS;
  6536. if ((index < length) && (string[index] == seperator))
  6537. {
  6538. index++;
  6539. }
  6540. return result;
  6541. }
  6542.  
  6543. argpos(const string[], idx = 0, sep = ' ') // (by yom)
  6544. {
  6545. for(new i = idx, j = strlen(string); i < j; i++)
  6546. if (string[i] == sep && string[i+1] != sep)
  6547. return i+1;
  6548.  
  6549. return -1;
  6550. }
  6551.  
  6552.  
  6553. //==============================================================================
  6554. forward MessageToAdmins(color,const string[]);
  6555. public MessageToAdmins(color,const string[])
  6556. {
  6557. for(new i = 0; i < MAX_PLAYERS; i++) {
  6558. if(IsPlayerConnected(i) == 1) if (PlayerInfo[i][Level] >= 1) SendClientMessage(i, color, string);
  6559. }
  6560. return 1;
  6561. }
  6562.  
  6563.  
  6564. stock CMDMessageToAdmins(playerid,command[])
  6565. {
  6566. if(ServerInfo[AdminCmdMsg] == 0) return 1;
  6567. new string[128]; GetPlayerName(playerid,string,sizeof(string));
  6568. format(string,sizeof(string),"[ADMIN] %s has used the command %s",string,command);
  6569. return MessageToAdmins(blue,string);
  6570. }
  6571.  
  6572.  
  6573. //==============================================================================
  6574. SavePlayer(playerid)
  6575. {
  6576. dUserSetINT(PlayerName2(playerid)).("money",GetPlayerMoney(playerid));
  6577. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  6578. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  6579.  
  6580. new h, m, s;
  6581. TotalGameTime(playerid, h, m, s);
  6582.  
  6583. dUserSetINT(PlayerName2(playerid)).("hours", h);
  6584. dUserSetINT(PlayerName2(playerid)).("minutes", m);
  6585. dUserSetINT(PlayerName2(playerid)).("seconds", s);
  6586.  
  6587. new Float:x,Float:y,Float:z, interior;
  6588. GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
  6589. dUserSetINT(PlayerName2(playerid)).("x1",floatround(x));
  6590. dUserSetINT(PlayerName2(playerid)).("y1",floatround(y));
  6591. dUserSetINT(PlayerName2(playerid)).("z1",floatround(z));
  6592. dUserSetINT(PlayerName2(playerid)).("interior1",interior);
  6593.  
  6594. new weap1, ammo1, weap2, ammo2, weap3, ammo3, weap4, ammo4, weap5, ammo5, weap6, ammo6;
  6595. // hand gun
  6596. GetPlayerWeaponData(playerid,2,weap1,ammo1);
  6597. //shotgun
  6598. GetPlayerWeaponData(playerid,3,weap2,ammo2);
  6599. // SMG
  6600. GetPlayerWeaponData(playerid,4,weap3,ammo3);
  6601. // AK47 / M4
  6602. GetPlayerWeaponData(playerid,5,weap4,ammo4);
  6603. // rifle
  6604. GetPlayerWeaponData(playerid,6,weap5,ammo5);
  6605. // rocket launcher
  6606. GetPlayerWeaponData(playerid,7,weap6,ammo6);
  6607. dUserSetINT(PlayerName2(playerid)).("weap1",weap1); dUserSetINT(PlayerName2(playerid)).("weap1ammo",ammo1);
  6608. dUserSetINT(PlayerName2(playerid)).("weap2",weap2); dUserSetINT(PlayerName2(playerid)).("weap2ammo",ammo2);
  6609. dUserSetINT(PlayerName2(playerid)).("weap3",weap3); dUserSetINT(PlayerName2(playerid)).("weap3ammo",ammo3);
  6610. dUserSetINT(PlayerName2(playerid)).("weap4",weap4); dUserSetINT(PlayerName2(playerid)).("weap4ammo",ammo4);
  6611. dUserSetINT(PlayerName2(playerid)).("weap5",weap5); dUserSetINT(PlayerName2(playerid)).("weap5ammo",ammo5);
  6612. dUserSetINT(PlayerName2(playerid)).("weap6",weap6); dUserSetINT(PlayerName2(playerid)).("weap6ammo",ammo6);
  6613.  
  6614. new Float:health; GetPlayerHealth(playerid, Float:health);
  6615. new Float:armour; GetPlayerArmour(playerid, Float:armour);
  6616. new year,month,day; getdate(year, month, day);
  6617. new strdate[20]; format(strdate, sizeof(strdate), "%d.%d.%d",day,month,year);
  6618. new file[256]; format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  6619.  
  6620. dUserSetINT(PlayerName2(playerid)).("health",floatround(health));
  6621. dUserSetINT(PlayerName2(playerid)).("armour",floatround(armour));
  6622. dini_Set(file,"LastOn",strdate);
  6623. dUserSetINT(PlayerName2(playerid)).("loggedin",0);
  6624. dUserSetINT(PlayerName2(playerid)).("TimesOnServer",(dUserINT(PlayerName2(playerid)).("TimesOnServer"))+1);
  6625. }
  6626.  
  6627.  
  6628. //==============================================================================
  6629. #if defined USE_MENUS
  6630. DestroyAllMenus()
  6631. {
  6632. DestroyMenu(LVehicles); DestroyMenu(twodoor); DestroyMenu(fourdoor); DestroyMenu(fastcar); DestroyMenu(Othercars);
  6633. DestroyMenu(bikes); DestroyMenu(boats); DestroyMenu(planes); DestroyMenu(helicopters ); DestroyMenu(LTime);
  6634. DestroyMenu(XWeapons); DestroyMenu(XWeaponsBig); DestroyMenu(XWeaponsSmall); DestroyMenu(XWeaponsMore);
  6635. DestroyMenu(LWeather); DestroyMenu(LTuneMenu); DestroyMenu(PaintMenu); DestroyMenu(LCars); DestroyMenu(LCars2);
  6636. DestroyMenu(LTele); DestroyMenu(LasVenturasMenu); DestroyMenu(LosSantosMenu); DestroyMenu(SanFierroMenu);
  6637. DestroyMenu(LMainMenu); DestroyMenu(DesertMenu); DestroyMenu(FlintMenu); DestroyMenu(MountChiliadMenu); DestroyMenu(InteriorsMenu);
  6638. DestroyMenu(AdminEnable); DestroyMenu(AdminDisable);
  6639. }
  6640. #endif
  6641.  
  6642. //==============================================================================
  6643. #if defined DISPLAY_CONFIG
  6644. stock ConfigInConsole()
  6645. {
  6646. print(" ________ Configuration ___________\n");
  6647. print(" __________ Chat & Messages ______");
  6648. if(ServerInfo[AntiSwear] == 0) print(" Anti Swear: Disabled "); else print(" Anti Swear: Enabled ");
  6649. if(ServerInfo[AntiSpam] == 0) print(" Anti Spam: Disabled "); else print(" Anti Spam: Enabled ");
  6650. if(ServerInfo[ReadCmds] == 0) print(" Read Cmds: Disabled "); else print(" Read Cmds: Enabled ");
  6651. if(ServerInfo[ReadPMs] == 0) print(" Read PMs: Disabled "); else print(" Read PMs: Enabled ");
  6652. if(ServerInfo[ConnectMessages] == 0) print(" Connect Messages: Disabled "); else print(" Connect Messages: Enabled ");
  6653. if(ServerInfo[AdminCmdMsg] == 0) print(" Admin Cmd Messages: Disabled "); else print(" Admin Cmd Messages: Enabled ");
  6654. if(ServerInfo[ReadPMs] == 0) print(" Anti capital letters: Disabled \n"); else print(" Anti capital letters: Enabled \n");
  6655. print(" __________ Skins ________________");
  6656. if(ServerInfo[AdminOnlySkins] == 0) print(" AdminOnlySkins: Disabled "); else print(" AdminOnlySkins: Enabled ");
  6657. printf(" Admin Skin 1 is: %d", ServerInfo[AdminSkin] );
  6658. printf(" Admin Skin 2 is: %d\n", ServerInfo[AdminSkin2] );
  6659. print(" ________ Server Protection ______");
  6660. if(ServerInfo[AntiBot] == 0) print(" Anti Bot: Disabled "); else print(" Anti Bot: Enabled ");
  6661. if(ServerInfo[NameKick] == 0) print(" Bad Name Kick: Disabled\n"); else print(" Bad Name Kick: Enabled\n");
  6662. print(" __________ Ping Control _________");
  6663. if(ServerInfo[MaxPing] == 0) print(" Ping Control: Disabled"); else print(" Ping Control: Enabled");
  6664. printf(" Max Ping: %d\n", ServerInfo[MaxPing] );
  6665. print(" __________ Players ______________");
  6666. if(ServerInfo[GiveWeap] == 0) print(" Save/Give Weaps: Disabled"); else print(" Save/Give Weaps: Enabled");
  6667. if(ServerInfo[GiveMoney] == 0) print(" Save/Give Money: Disabled\n"); else print(" Save/Give Money: Enabled\n");
  6668. print(" __________ Other ________________");
  6669. printf(" Max Admin Level: %d", ServerInfo[MaxAdminLevel] );
  6670. if(ServerInfo[Locked] == 0) print(" Server Locked: No"); else print(" Server Locked: Yes");
  6671. if(ServerInfo[AutoLogin] == 0) print(" Auto Login: Disabled\n"); else print(" Auto Login: Enabled\n");
  6672. }
  6673. #endif
  6674.  
  6675. //=====================[ Configuration ] =======================================
  6676. stock UpdateConfig()
  6677. {
  6678. new file[256], File:file2, string[100]; format(file,sizeof(file),"ladmin/config/Config.ini");
  6679. ForbiddenWordCount = 0;
  6680. BadNameCount = 0;
  6681. BadPartNameCount = 0;
  6682.  
  6683. if(!dini_Exists("ladmin/config/aka.txt")) dini_Create("ladmin/config/aka.txt");
  6684.  
  6685. if(!dini_Exists(file)) {
  6686. dini_Create(file);
  6687. print("\n >Configuration File Successfully Created");
  6688. }
  6689.  
  6690. if(!dini_Isset(file,"MaxPing")) dini_IntSet(file,"MaxPing",1200);
  6691. if(!dini_Isset(file,"ReadPms")) dini_IntSet(file,"ReadPMs",1);
  6692. if(!dini_Isset(file,"ReadCmds")) dini_IntSet(file,"ReadCmds",1);
  6693. if(!dini_Isset(file,"MaxAdminLevel")) dini_IntSet(file,"MaxAdminLevel",5);
  6694. if(!dini_Isset(file,"AdminOnlySkins")) dini_IntSet(file,"AdminOnlySkins",0);
  6695. if(!dini_Isset(file,"AdminSkin")) dini_IntSet(file,"AdminSkin",217);
  6696. if(!dini_Isset(file,"AdminSkin2")) dini_IntSet(file,"AdminSkin2",214);
  6697. if(!dini_Isset(file,"AntiBot")) dini_IntSet(file,"AntiBot",1);
  6698. if(!dini_Isset(file,"AntiSpam")) dini_IntSet(file,"AntiSpam",1);
  6699. if(!dini_Isset(file,"AntiSwear")) dini_IntSet(file,"AntiSwear",1);
  6700. if(!dini_Isset(file,"NameKick")) dini_IntSet(file,"NameKick",1);
  6701. if(!dini_Isset(file,"PartNameKick")) dini_IntSet(file,"PartNameKick",1);
  6702. if(!dini_Isset(file,"NoCaps")) dini_IntSet(file,"NoCaps",0);
  6703. if(!dini_Isset(file,"Locked")) dini_IntSet(file,"Locked",0);
  6704. if(!dini_Isset(file,"SaveWeap")) dini_IntSet(file,"SaveWeap",1);
  6705. if(!dini_Isset(file,"SaveMoney")) dini_IntSet(file,"SaveMoney",1);
  6706. if(!dini_Isset(file,"ConnectMessages")) dini_IntSet(file,"ConnectMessages",1);
  6707. if(!dini_Isset(file,"AdminCmdMessages")) dini_IntSet(file,"AdminCmdMessages",1);
  6708. if(!dini_Isset(file,"AutoLogin")) dini_IntSet(file,"AutoLogin",1);
  6709. if(!dini_Isset(file,"MaxMuteWarnings")) dini_IntSet(file,"MaxMuteWarnings",4);
  6710. if(!dini_Isset(file,"MustLogin")) dini_IntSet(file,"MustLogin",0);
  6711. if(!dini_Isset(file,"MustRegister")) dini_IntSet(file,"MustRegister",0);
  6712.  
  6713. if(dini_Exists(file)) {
  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. print("\n -Configuration Settings Loaded");
  6737. }
  6738.  
  6739. //forbidden names
  6740. if((file2 = fopen("ladmin/config/ForbiddenNames.cfg",io_read))) {
  6741. while(fread(file2,string)) {
  6742. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6743. BadNames[BadNameCount] = string;
  6744. BadNameCount++;
  6745. }
  6746. fclose(file2); printf(" -%d Forbidden Names Loaded", BadNameCount);
  6747. }
  6748.  
  6749. //forbidden part of names
  6750. if((file2 = fopen("ladmin/config/ForbiddenPartNames.cfg",io_read))) {
  6751. while(fread(file2,string)) {
  6752. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6753. BadPartNames[BadPartNameCount] = string;
  6754. BadPartNameCount++;
  6755. }
  6756. fclose(file2); printf(" -%d Forbidden Tags Loaded", BadPartNameCount);
  6757. }
  6758.  
  6759. //forbidden words
  6760. if((file2 = fopen("ladmin/config/ForbiddenWords.cfg",io_read))) {
  6761. while(fread(file2,string)) {
  6762. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6763. ForbiddenWords[ForbiddenWordCount] = string;
  6764. ForbiddenWordCount++;
  6765. }
  6766. fclose(file2); printf(" -%d Forbidden Words Loaded", ForbiddenWordCount);
  6767. }
  6768. }
  6769.  
  6770.  
  6771. //=====================[ SAVING DATA ] =========================================
  6772.  
  6773. forward SaveToFile(filename[],text[]);
  6774. public SaveToFile(filename[],text[])
  6775. {
  6776. #if defined SAVE_LOGS
  6777. new File:LAdminfile, filepath[256], string[256], year,month,day, hour,minute,second;
  6778. getdate(year,month,day); gettime(hour,minute,second);
  6779.  
  6780. format(filepath,sizeof(filepath),"ladmin/logs/%s.txt",filename);
  6781. LAdminfile = fopen(filepath,io_append);
  6782. format(string,sizeof(string),"[%d.%d.%d %d:%d:%d] %s\r\n",day,month,year,hour,minute,second,text);
  6783. fwrite(LAdminfile,string);
  6784. fclose(LAdminfile);
  6785. #endif
  6786.  
  6787. return 1;
  6788. }
  6789.  
  6790.  
  6791. //============================[ EOF ]===========================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement