Advertisement
Guest User

Untitled

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