lhtbally

my ladmin

Sep 26th, 2011
996
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 345.13 KB | None | 0 0
  1. #include <a_samp>
  2. #include <lethaldudb2>
  3. #include <sscanf2>
  4. #include <YSI/y_ini>
  5. #include <a_http>
  6. new viewedRules[MAX_PLAYERS] = 0;
  7. new getsMoney[MAX_PLAYERS] = 0;
  8.  
  9. // ------------------------------------------------------------------
  10. // Please fill in your API key here, you can obtain an API key from
  11. // http://www.samp-bans.com/page/register
  12. // ------------------------------------------------------------------
  13. #define APIKEY "bally2010_4e4eede80d776"
  14.  
  15. // ------------------------------------------------------------------
  16. // Do not edit below here unless you know what you're doing!
  17. // ------------------------------------------------------------------
  18. #define APIPATH "www.samp-bans.com/api.php"
  19.  
  20. #define MAX_API_LENGTH 38
  21. #define MAX_PLAYER_IP 15
  22. #define MAX_REASON_LENGTH 128
  23. #define MAX_EXTRA_LENGTH 63
  24. #define MAX_TIME_LENGTH 5
  25.  
  26. #define MAX_POST_LENGTH MAX_API_LENGTH+MAX_PLAYER_IP+MAX_REASON_LENGTH+MAX_EXTRA_LENGTH+MAX_TIME_LENGTH+MAX_PLAYER_NAME+MAX_PLAYER_NAME
  27.  
  28. #define COLOR_RED 0xFF0000FF
  29.  
  30. forward OnBanResponse(index, response_code, data[]);
  31. forward OnRemoveResponse(index, response_code, data[]);
  32. forward OnCheckResponse(index, response_code, data[]);
  33.  
  34. new
  35. names[MAX_PLAYERS][MAX_PLAYER_NAME],
  36. ips[MAX_PLAYERS][MAX_PLAYER_IP],
  37. error[12],
  38. code[128];
  39.  
  40. new post_string[MAX_POST_LENGTH];
  41.  
  42. #pragma dynamic 145000
  43.  
  44. /*
  45. |===============================================|
  46. | --== LethaL Adminscript ==-- |
  47. | -== Version 4.2 ==-- |
  48. | ladmin4v2.pwn |
  49. |===============================================|
  50. */
  51.  
  52. //-----------------------------------------------------------------------------------//
  53.  
  54. #define USE_MENUS // Comment to remove all menus. Uncomment to enable menus
  55. //#define DISPLAY_CONFIG // displays configuration in console window on filterscript load
  56. #define SAVE_LOGS // Comment if your server runs linux (logs wont be saved)
  57. #define ENABLE_SPEC // Comment if you are using a spectate system already
  58. #define USE_STATS // Comment to disable /stats
  59. #define ANTI_MINIGUN // Displays who has a minigun
  60. //#define USE_AREGISTER // Changes /register, /login etc to /areister, /alogin etc
  61. #define HIDE_ADMINS // Displays number of admins online instead of level and names
  62. #define ENABLE_FAKE_CMDS // Comment to disable /fakechat, /fakedeath, /fakecmd commanads
  63.  
  64. //-----------------------------------------------------------------------------------//
  65.  
  66. #define MAX_WARNINGS 3 // /warn command
  67.  
  68. #define MAX_REPORTS 7
  69. #define MAX_CHAT_LINES 7
  70.  
  71. #define SPAM_MAX_MSGS 5
  72. #define SPAM_TIMELIMIT 2 // SECONDS
  73.  
  74. #define PING_MAX_EXCEEDS 4
  75. #define PING_TIMELIMIT 60 // SECONDS
  76.  
  77. #define MAX_FAIL_LOGINS 4
  78.  
  79. // Admin Area
  80. new AdminArea[6] = {
  81. 377, // X
  82. 170, // Y
  83. 1008, // Z
  84. 90, // Angle
  85. 3, // Interior
  86. 0 // Virtual World
  87. };
  88.  
  89. //-=Main colours=-
  90. #define blue 0x0099FFFF
  91. #define red 0xFF0000AA
  92. #define green 0x33FF33AA
  93. #define yellow 0xFFFF00AA
  94. #define grey 0x7AFF7AAA
  95. #define blue1 0x2641FEAA
  96. #define lightblue 0x33CCFFAA
  97. #define orange 0xFF9900AA
  98. #define black 0x2C2727AA
  99. #define COLOR_GREEN 0x33AA33AA
  100. #define COLOR_PINK 0xFF66FFAA
  101. #define COLOR_BLUE 0x0000BBAA
  102. #define COLOR_PURPLE 0x800080AA
  103. #define COLOR_BLACK 0x000000AA
  104. #define COLOR_WHITE 0xFFFFFFAA
  105. #define COLOR_GREEN1 0x33AA33AA
  106. #define COLOR_BROWN 0xA52A2AAA
  107.  
  108. // DCMD
  109. #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
  110.  
  111. // Caps
  112. #define UpperToLower(%1) for ( new ToLowerChar; ToLowerChar < strlen( %1 ); ToLowerChar ++ ) if ( %1[ ToLowerChar ]> 64 && %1[ ToLowerChar ] < 91 ) %1[ ToLowerChar ] += 32
  113.  
  114. // Spec
  115. #define ADMIN_SPEC_TYPE_NONE 0
  116. #define ADMIN_SPEC_TYPE_PLAYER 1
  117. #define ADMIN_SPEC_TYPE_VEHICLE 2
  118.  
  119. // Enums
  120. enum PlayerData
  121. {
  122. Registered,
  123. LoggedIn,
  124. Level,
  125. Muted,
  126. Caps,
  127. Jailed,
  128. JailTime,
  129. Frozen,
  130. FreezeTime,
  131. Kills,
  132. Deaths,
  133. hours,
  134. mins,
  135. secs,
  136. TotalTime,
  137. ConnectTime,
  138. MuteWarnings,
  139. Warnings,
  140. Spawned,
  141. TimesSpawned,
  142. God,
  143. GodCar,
  144. DoorsLocked,
  145. SpamCount,
  146. SpamTime,
  147. PingCount,
  148. PingTime,
  149. BotPing,
  150. pPing[PING_MAX_EXCEEDS],
  151. blip,
  152. blipS,
  153. pColour,
  154. pCar,
  155. SpecID,
  156. SpecType,
  157. bool:AllowedIn,
  158. FailLogin,
  159. };
  160. new PlayerInfo[MAX_PLAYERS][PlayerData];
  161.  
  162. enum ServerData
  163. {
  164. MaxPing,
  165. ReadPMs,
  166. ReadCmds,
  167. MaxAdminLevel,
  168. AdminOnlySkins,
  169. AdminSkin,
  170. AdminSkin2,
  171. NameKick,
  172. PartNameKick,
  173. AntiBot,
  174. AntiSpam,
  175. AntiSwear,
  176. NoCaps,
  177. Locked,
  178. Password[128],
  179. GiveWeap,
  180. GiveMoney,
  181. ConnectMessages,
  182. AdminCmdMsg,
  183. AutoLogin,
  184. MaxMuteWarnings,
  185. DisableChat,
  186. MustLogin,
  187. MustRegister,
  188. };
  189. forward OnPlayerPrivmsg(playerid, recieverid, text[]);
  190. new ServerInfo[ServerData];
  191.  
  192. new Float:Pos[MAX_PLAYERS][4]; // go test it, i will watch.Audio_CreateTCPServer ok
  193.  
  194. // rcon
  195. new Chat[MAX_CHAT_LINES][128];
  196.  
  197. //Timers
  198. new PingTimer;
  199. new GodTimer;
  200. new BlipTimer[MAX_PLAYERS];
  201. new JailTimer[MAX_PLAYERS];
  202. new FreezeTimer[MAX_PLAYERS];
  203. new LockKickTimer[MAX_PLAYERS];
  204.  
  205. //Duel
  206. new CountDown = -1, cdt[MAX_PLAYERS] = -1;
  207. new InDuel[MAX_PLAYERS];
  208.  
  209. // Menus
  210. #if defined USE_MENUS
  211. new Menu:LMainMenu, Menu:AdminEnable, Menu:AdminDisable,
  212. Menu:LVehicles, Menu:twodoor, Menu:fourdoor, Menu:fastcar, Menu:Othercars,
  213. Menu:bikes, Menu:boats, Menu:planes, Menu:helicopters,
  214. Menu:XWeapons, Menu:XWeaponsBig, Menu:XWeaponsSmall, Menu:XWeaponsMore,
  215. Menu:LWeather,Menu:LTime,
  216. Menu:LTuneMenu, Menu:PaintMenu, Menu:LCars, Menu:LCars2,
  217. Menu:LTele, Menu:LasVenturasMenu, Menu:LosSantosMenu, Menu:SanFierroMenu,
  218. Menu:DesertMenu, Menu:FlintMenu, Menu:MountChiliadMenu, Menu:InteriorsMenu;
  219. #endif
  220.  
  221. // Forbidden Names & Words
  222. new BadNames[100][100], // Whole Names
  223. BadNameCount = 0,
  224. BadPartNames[100][100], // Part of name
  225. BadPartNameCount = 0,
  226. ForbiddenWords[100][100],
  227. ForbiddenWordCount = 0;
  228.  
  229. // Report
  230. new Reports[MAX_REPORTS][128];
  231.  
  232. // Ping Kick
  233. new PingPos;
  234.  
  235. new VehicleNames[212][] = {
  236. "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  237. "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
  238. "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  239. "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  240. "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  241. "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
  242. "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
  243. "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
  244. "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
  245. "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  246. "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
  247. "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
  248. "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
  249. "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
  250. "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  251. "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  252. "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  253. };
  254.  
  255. //==============================================================================
  256.  
  257. public OnFilterScriptInit()
  258. {
  259. print("\n________________________________________");
  260. print("________________________________________");
  261. print(" LAdmin Loading... ");
  262. print("________________________________________");
  263.  
  264. if(!fexist("ladmin/"))
  265. {
  266. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  267. SetTimerEx("PrintWarning",2500,0,"s","ladmin");
  268. return 1;
  269. }
  270. if(!fexist("ladmin/logs/"))
  271. {
  272. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  273. SetTimerEx("PrintWarning",2500,0,"s","ladmin/logs");
  274. return 1;
  275. }
  276. if(!fexist("ladmin/config/"))
  277. {
  278. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  279. SetTimerEx("PrintWarning",2500,0,"s","ladmin/config");
  280. return 1;
  281. }
  282. if(!fexist("ladmin/users/"))
  283. {
  284. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  285. SetTimerEx("PrintWarning",2500,0,"s","ladmin/users");
  286. return 1;
  287. }
  288.  
  289. UpdateConfig();
  290.  
  291. #if defined DISPLAY_CONFIG
  292. ConfigInConsole();
  293. #endif
  294.  
  295. //===================== [ The Menus ]===========================//
  296. #if defined USE_MENUS
  297.  
  298. LMainMenu = CreateMenu("Main Menu", 2, 55.0, 200.0, 100.0, 80.0);
  299. SetMenuColumnHeader(LMainMenu, 0, "Choose an option below");
  300. AddMenuItem(LMainMenu, 0, "Enable");
  301. AddMenuItem(LMainMenu, 0, "Disable");
  302. AddMenuItem(LMainMenu, 0, "Server Weather");
  303. AddMenuItem(LMainMenu, 0, "Server Time");
  304. AddMenuItem(LMainMenu, 0, "All Vehicles");
  305. AddMenuItem(LMainMenu, 0, "Admin Cars");
  306. AddMenuItem(LMainMenu, 0, "Tuning Menu");
  307. AddMenuItem(LMainMenu, 0, "Choose Weapon");
  308. AddMenuItem(LMainMenu, 0, "Teleports");
  309. AddMenuItem(LMainMenu, 0, "Exit Menu");//
  310.  
  311. AdminEnable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
  312. SetMenuColumnHeader(AdminEnable, 0, "Enable");
  313. AddMenuItem(AdminEnable, 0, "Anti Swear");
  314. AddMenuItem(AdminEnable, 0, "Bad Name Kick");
  315. AddMenuItem(AdminEnable, 0, "Anti Spam");
  316. AddMenuItem(AdminEnable, 0, "Ping Kick");
  317. AddMenuItem(AdminEnable, 0, "Read Cmds");
  318. AddMenuItem(AdminEnable, 0, "Read PMs");
  319. AddMenuItem(AdminEnable, 0, "Capital Letters");
  320. AddMenuItem(AdminEnable, 0, "ConnectMessages");
  321. AddMenuItem(AdminEnable, 0, "AdminCmdMessages");
  322. AddMenuItem(AdminEnable, 0, "Auto Login");
  323. AddMenuItem(AdminEnable, 0, "Return");
  324.  
  325. AdminDisable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
  326. SetMenuColumnHeader(AdminDisable, 0, "Disable");
  327. AddMenuItem(AdminDisable, 0, "Anti Swear");
  328. AddMenuItem(AdminDisable, 0, "Bad Name Kick");
  329. AddMenuItem(AdminDisable, 0, "Anti Spam");
  330. AddMenuItem(AdminDisable, 0, "Ping Kick");
  331. AddMenuItem(AdminDisable, 0, "Read Cmds");
  332. AddMenuItem(AdminDisable, 0, "Read PMs");
  333. AddMenuItem(AdminDisable, 0, "Capital Letters");
  334. AddMenuItem(AdminDisable, 0, "ConnectMessages");
  335. AddMenuItem(AdminDisable, 0, "AdminCmdMessages");
  336. AddMenuItem(AdminDisable, 0, "Auto Login");
  337. AddMenuItem(AdminDisable, 0, "Return");
  338.  
  339. LWeather = CreateMenu("~b~Weather ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  340. SetMenuColumnHeader(LWeather, 0, "Set Weather");
  341. AddMenuItem(LWeather, 0, "Clear Blue Sky");
  342. AddMenuItem(LWeather, 0, "Sand Storm");
  343. AddMenuItem(LWeather, 0, "Thunderstorm");
  344. AddMenuItem(LWeather, 0, "Foggy");
  345. AddMenuItem(LWeather, 0, "Cloudy");
  346. AddMenuItem(LWeather, 0, "High Tide");
  347. AddMenuItem(LWeather, 0, "Purple Sky");
  348. AddMenuItem(LWeather, 0, "Black/White Sky");
  349. AddMenuItem(LWeather, 0, "Dark, Green Sky");
  350. AddMenuItem(LWeather, 0, "Heatwave");
  351. AddMenuItem(LWeather,0,"Return");
  352.  
  353. LTime = CreateMenu("~b~Time ~g~ Menu", 2, 55.0, 200.0, 100.0, 80.0);
  354. SetMenuColumnHeader(LTime, 0, "Set Time");
  355. AddMenuItem(LTime, 0, "Morning");
  356. AddMenuItem(LTime, 0, "Mid day");
  357. AddMenuItem(LTime, 0, "Afternoon");
  358. AddMenuItem(LTime, 0, "Evening");
  359. AddMenuItem(LTime, 0, "Midnight");
  360. AddMenuItem(LTime, 0, "Return");
  361.  
  362. LCars = CreateMenu("~b~LethaL ~g~Cars", 2, 55.0, 150.0, 100.0, 80.0);
  363. SetMenuColumnHeader(LCars, 0, "Choose a car");
  364. AddMenuItem(LCars, 0, "Turismo");
  365. AddMenuItem(LCars, 0, "Bandito");
  366. AddMenuItem(LCars, 0, "Vortex");
  367. AddMenuItem(LCars, 0, "NRG");
  368. AddMenuItem(LCars, 0, "S.W.A.T");
  369. AddMenuItem(LCars, 0, "Hunter");
  370. AddMenuItem(LCars, 0, "Jetmax (boat)");
  371. AddMenuItem(LCars, 0, "Rhino");
  372. AddMenuItem(LCars, 0, "Monster Truck");
  373. AddMenuItem(LCars, 0, "Sea Sparrow");
  374. AddMenuItem(LCars, 0, "More");
  375. AddMenuItem(LCars, 0, "Return");
  376.  
  377. LCars2 = CreateMenu("~b~LethaL ~g~Cars", 2, 55.0, 150.0, 100.0, 80.0);
  378. SetMenuColumnHeader(LCars2, 0, "Choose a car");
  379. AddMenuItem(LCars2, 0, "Dumper");
  380. AddMenuItem(LCars2, 0, "RC Tank");
  381. AddMenuItem(LCars2, 0, "RC Bandit");
  382. AddMenuItem(LCars2, 0, "RC Baron");
  383. AddMenuItem(LCars2, 0, "RC Goblin");
  384. AddMenuItem(LCars2, 0, "RC Raider");
  385. AddMenuItem(LCars2, 0, "RC Cam");
  386. AddMenuItem(LCars2, 0, "Tram");
  387. AddMenuItem(LCars2, 0, "Return");
  388.  
  389. LTuneMenu = CreateMenu("~b~Tuning ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  390. SetMenuColumnHeader(LTuneMenu, 0, "Add to car");
  391. AddMenuItem(LTuneMenu,0,"NOS");
  392. AddMenuItem(LTuneMenu,0,"Hydraulics");
  393. AddMenuItem(LTuneMenu,0,"Wire Wheels");
  394. AddMenuItem(LTuneMenu,0,"Twist Wheels");
  395. AddMenuItem(LTuneMenu,0,"Access Wheels");
  396. AddMenuItem(LTuneMenu,0,"Mega Wheels");
  397. AddMenuItem(LTuneMenu,0,"Import Wheels");
  398. AddMenuItem(LTuneMenu,0,"Atomic Wheels");
  399. AddMenuItem(LTuneMenu,0,"Offroad Wheels");
  400. AddMenuItem(LTuneMenu,0,"Classic Wheels");
  401. AddMenuItem(LTuneMenu,0,"Paint Jobs");
  402. AddMenuItem(LTuneMenu,0,"Return");
  403.  
  404. PaintMenu = CreateMenu("~b~Paint Job ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  405. SetMenuColumnHeader(PaintMenu, 0, "Choose paint");
  406. AddMenuItem(PaintMenu,0,"Paint Job 1");
  407. AddMenuItem(PaintMenu,0,"Paint Job 2");
  408. AddMenuItem(PaintMenu,0,"Paint Job 3");
  409. AddMenuItem(PaintMenu,0,"Paint Job 4");
  410. AddMenuItem(PaintMenu,0,"Paint Job 5");
  411. AddMenuItem(PaintMenu,0,"Black");
  412. AddMenuItem(PaintMenu,0,"White");
  413. AddMenuItem(PaintMenu,0,"Blue");
  414. AddMenuItem(PaintMenu,0,"Pink");
  415. AddMenuItem(PaintMenu,0,"Return");
  416.  
  417. LVehicles = CreateMenu("~b~Vehicles ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  418. SetMenuColumnHeader(LVehicles, 0, "Choose a car");
  419. AddMenuItem(LVehicles,0,"2-door Cars");
  420. AddMenuItem(LVehicles,0,"4-door Cars");
  421. AddMenuItem(LVehicles,0,"Fast Cars");
  422. AddMenuItem(LVehicles,0,"Other Vehicles");
  423. AddMenuItem(LVehicles,0,"Bikes");
  424. AddMenuItem(LVehicles,0,"Boats");
  425. AddMenuItem(LVehicles,0,"Planes");
  426. AddMenuItem(LVehicles,0,"Helicopters");
  427. AddMenuItem(LVehicles,0,"Return");
  428.  
  429. twodoor = CreateMenu("~b~2-door Cars",2, 55.0, 200.0, 100.0, 80.0);
  430. SetMenuColumnHeader(twodoor, 0, "Choose a car");
  431. AddMenuItem(twodoor,0,"Feltzer");//533
  432. AddMenuItem(twodoor,0,"Stallion");//139
  433. AddMenuItem(twodoor,0,"Windsor");//555
  434. AddMenuItem(twodoor,0,"Bobcat");//422
  435. AddMenuItem(twodoor,0,"Yosemite");//554
  436. AddMenuItem(twodoor,0,"Broadway");//575
  437. AddMenuItem(twodoor,0,"Blade");//536
  438. AddMenuItem(twodoor,0,"Slamvan");//535
  439. AddMenuItem(twodoor,0,"Tornado");//576
  440. AddMenuItem(twodoor,0,"Bravura");//401
  441. AddMenuItem(twodoor,0,"Fortune");//526
  442. AddMenuItem(twodoor,0,"Return");
  443.  
  444. fourdoor = CreateMenu("~b~4-door Cars",2, 55.0, 200.0, 100.0, 80.0);
  445. SetMenuColumnHeader(fourdoor, 0, "Choose a car");
  446. AddMenuItem(fourdoor,0,"Perenniel");//404
  447. AddMenuItem(fourdoor,0,"Tahoma");//566
  448. AddMenuItem(fourdoor,0,"Voodoo");//412
  449. AddMenuItem(fourdoor,0,"Admiral");//445
  450. AddMenuItem(fourdoor,0,"Elegant");//507
  451. AddMenuItem(fourdoor,0,"Glendale");//466
  452. AddMenuItem(fourdoor,0,"Intruder");//546
  453. AddMenuItem(fourdoor,0,"Merit");//551
  454. AddMenuItem(fourdoor,0,"Oceanic");//467
  455. AddMenuItem(fourdoor,0,"Premier");//426
  456. AddMenuItem(fourdoor,0,"Sentinel");//405
  457. AddMenuItem(fourdoor,0,"Return");
  458.  
  459. fastcar = CreateMenu("~b~Fast Cars",2, 55.0, 200.0, 100.0, 80.0);
  460. SetMenuColumnHeader(fastcar, 0, "Choose a car");
  461. AddMenuItem(fastcar,0,"Comet");//480
  462. AddMenuItem(fastcar,0,"Buffalo");//402
  463. AddMenuItem(fastcar,0,"Cheetah");//415
  464. AddMenuItem(fastcar,0,"Euros");//587
  465. AddMenuItem(fastcar,0,"Hotring Racer");//494
  466. AddMenuItem(fastcar,0,"Infernus");//411
  467. AddMenuItem(fastcar,0,"Phoenix");//603
  468. AddMenuItem(fastcar,0,"Super GT");//506
  469. AddMenuItem(fastcar,0,"Turismo");//451
  470. AddMenuItem(fastcar,0,"ZR-350");//477
  471. AddMenuItem(fastcar,0,"Bullet");//541
  472. AddMenuItem(fastcar,0,"Return");
  473.  
  474. Othercars = CreateMenu("~b~Other Vehicles",2, 55.0, 200.0, 100.0, 80.0);
  475. SetMenuColumnHeader(Othercars, 0, "Choose a car?");
  476. AddMenuItem(Othercars,0,"Monster Truck");//556
  477. AddMenuItem(Othercars,0,"Trashmaster");//408
  478. AddMenuItem(Othercars,0,"Bus");//431
  479. AddMenuItem(Othercars,0,"Coach");//437
  480. AddMenuItem(Othercars,0,"Enforcer");//427
  481. AddMenuItem(Othercars,0,"Rhino (Tank)");//432
  482. AddMenuItem(Othercars,0,"S.W.A.T.Truck");//601
  483. AddMenuItem(Othercars,0,"Cement Truck");//524
  484. AddMenuItem(Othercars,0,"Flatbed");//455
  485. AddMenuItem(Othercars,0,"BF Injection");//424
  486. AddMenuItem(Othercars,0,"Dune");//573
  487. AddMenuItem(Othercars,0,"Return");
  488.  
  489. bikes = CreateMenu("~b~Bikes",2, 55.0, 200.0, 100.0, 80.0);
  490. SetMenuColumnHeader(bikes, 0, "Choose a bike");
  491. AddMenuItem(bikes,0,"BF-400");
  492. AddMenuItem(bikes,0,"BMX");
  493. AddMenuItem(bikes,0,"Faggio");
  494. AddMenuItem(bikes,0,"FCR-900");
  495. AddMenuItem(bikes,0,"Freeway");
  496. AddMenuItem(bikes,0,"NRG-500");
  497. AddMenuItem(bikes,0,"PCJ-600");
  498. AddMenuItem(bikes,0,"Pizzaboy");
  499. AddMenuItem(bikes,0,"Quad");
  500. AddMenuItem(bikes,0,"Sanchez");
  501. AddMenuItem(bikes,0,"Wayfarer");
  502. AddMenuItem(bikes,0,"Return");
  503.  
  504. boats = CreateMenu("~b~Boats",2, 55.0, 200.0, 100.0, 80.0);
  505. SetMenuColumnHeader(boats, 0, "Choose a boat");
  506. AddMenuItem(boats,0,"Coastguard");//472
  507. AddMenuItem(boats,0,"Dingy");//473
  508. AddMenuItem(boats,0,"Jetmax");//493
  509. AddMenuItem(boats,0,"Launch");//595
  510. AddMenuItem(boats,0,"Marquis");//484
  511. AddMenuItem(boats,0,"Predator");//430
  512. AddMenuItem(boats,0,"Reefer");//453
  513. AddMenuItem(boats,0,"Speeder");//452
  514. AddMenuItem(boats,0,"Squallo");//446
  515. AddMenuItem(boats,0,"Tropic");//454
  516. AddMenuItem(boats,0,"Return");
  517.  
  518. planes = CreateMenu("~b~Planes",2, 55.0, 200.0, 100.0, 80.0);
  519. SetMenuColumnHeader(planes, 0, "Choose a plane");
  520. AddMenuItem(planes,0,"Andromada");//592
  521. AddMenuItem(planes,0,"AT400");//577
  522. AddMenuItem(planes,0,"Beagle");//511
  523. AddMenuItem(planes,0,"Cropduster");//512
  524. AddMenuItem(planes,0,"Dodo");//593
  525. AddMenuItem(planes,0,"Hydra");//520
  526. AddMenuItem(planes,0,"Nevada");//553
  527. AddMenuItem(planes,0,"Rustler");//476
  528. AddMenuItem(planes,0,"Shamal");//519
  529. AddMenuItem(planes,0,"Skimmer");//460
  530. AddMenuItem(planes,0,"Stuntplane");//513
  531. AddMenuItem(planes,0,"Return");
  532.  
  533. helicopters = CreateMenu("~b~Helicopters",2, 55.0, 200.0, 100.0, 80.0);
  534. SetMenuColumnHeader(helicopters, 0, "Choose a helicopter");
  535. AddMenuItem(helicopters,0,"Cargobob");//
  536. AddMenuItem(helicopters,0,"Hunter");//
  537. AddMenuItem(helicopters,0,"Leviathan");//
  538. AddMenuItem(helicopters,0,"Maverick");//
  539. AddMenuItem(helicopters,0,"News Chopper");//
  540. AddMenuItem(helicopters,0,"Police Maverick");//
  541. AddMenuItem(helicopters,0,"Raindance");//
  542. AddMenuItem(helicopters,0,"Seasparrow");//
  543. AddMenuItem(helicopters,0,"Sparrow");//
  544. AddMenuItem(helicopters,0,"Return");
  545.  
  546. XWeapons = CreateMenu("~b~Weapons ~g~Main Menu",2, 55.0, 200.0, 100.0, 80.0);
  547. SetMenuColumnHeader(XWeapons, 0, "Choose a weapon");
  548. AddMenuItem(XWeapons,0,"Desert Eagle");//0
  549. AddMenuItem(XWeapons,0,"M4");
  550. AddMenuItem(XWeapons,0,"Sawnoff Shotgun");
  551. AddMenuItem(XWeapons,0,"Combat Shotgun");
  552. AddMenuItem(XWeapons,0,"UZI");
  553. AddMenuItem(XWeapons,0,"Rocket Launcher");
  554. AddMenuItem(XWeapons,0,"Minigun");//6
  555. AddMenuItem(XWeapons,0,"Sniper Rifle");
  556. AddMenuItem(XWeapons,0,"Big Weapons");
  557. AddMenuItem(XWeapons,0,"Small Weapons");//9
  558. AddMenuItem(XWeapons,0,"More");
  559. AddMenuItem(XWeapons,0,"Return");//11
  560.  
  561. XWeaponsBig = CreateMenu("~b~Weapons ~g~Big Weapons",2, 55.0, 200.0, 100.0, 80.0);
  562. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  563. AddMenuItem(XWeaponsBig,0,"Shotgun");
  564. AddMenuItem(XWeaponsBig,0,"AK-47");
  565. AddMenuItem(XWeaponsBig,0,"Country Rifle");
  566. AddMenuItem(XWeaponsBig,0,"HS Rocket Launcher");
  567. AddMenuItem(XWeaponsBig,0,"Flamethrower");
  568. AddMenuItem(XWeaponsBig,0,"SMG");
  569. AddMenuItem(XWeaponsBig,0,"TEC9");
  570. AddMenuItem(XWeaponsBig,0,"Return");
  571.  
  572. XWeaponsSmall = CreateMenu("~b~Weapons ~g~Small Weapons",2, 55.0, 200.0, 100.0, 80.0);
  573. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  574. AddMenuItem(XWeaponsSmall,0,"9mm");
  575. AddMenuItem(XWeaponsSmall,0,"Silenced 9mm");
  576. AddMenuItem(XWeaponsSmall,0,"Molotov Cocktail");
  577. AddMenuItem(XWeaponsSmall,0,"Fire Extinguisher");
  578. AddMenuItem(XWeaponsSmall,0,"Spraycan");
  579. AddMenuItem(XWeaponsSmall,0,"Frag Grenades");
  580. AddMenuItem(XWeaponsSmall,0,"Katana");
  581. AddMenuItem(XWeaponsSmall,0,"Chainsaw");
  582. AddMenuItem(XWeaponsSmall,0,"Return");
  583.  
  584. XWeaponsMore = CreateMenu("~b~Weapons ~g~More Weapons",2, 55.0, 200.0, 100.0, 80.0);
  585. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  586. AddMenuItem(XWeaponsMore,0,"Jetpack");
  587. AddMenuItem(XWeaponsMore,0,"Knife");
  588. AddMenuItem(XWeaponsMore,0,"Flowers");
  589. AddMenuItem(XWeaponsMore,0,"Camera");
  590. AddMenuItem(XWeaponsMore,0,"Pool Cue");
  591. AddMenuItem(XWeaponsMore,0,"Baseball Bat");
  592. AddMenuItem(XWeaponsMore,0,"Golf Club");
  593. AddMenuItem(XWeaponsMore,0,"MAX AMMO");
  594. AddMenuItem(XWeaponsMore,0,"Return");
  595.  
  596. LTele = CreateMenu("Teleports", 2, 55.0, 200.0, 100.0, 80.0);
  597. SetMenuColumnHeader(LTele, 0, "Teleport to where?");
  598. AddMenuItem(LTele, 0, "Las Venturas");//0
  599. AddMenuItem(LTele, 0, "Los Santos");//1
  600. AddMenuItem(LTele, 0, "San Fierro");//2
  601. AddMenuItem(LTele, 0, "The Desert");//3
  602. AddMenuItem(LTele, 0, "Flint Country");//4
  603. AddMenuItem(LTele, 0, "Mount Chiliad");//5
  604. AddMenuItem(LTele, 0, "Interiors");//6
  605. AddMenuItem(LTele, 0, "Return");//8
  606.  
  607. LasVenturasMenu = CreateMenu("Las Venturas", 2, 55.0, 200.0, 100.0, 80.0);
  608. SetMenuColumnHeader(LasVenturasMenu, 0, "Teleport to where?");
  609. AddMenuItem(LasVenturasMenu, 0, "The Strip");//0
  610. AddMenuItem(LasVenturasMenu, 0, "Come-A-Lot");//1
  611. AddMenuItem(LasVenturasMenu, 0, "LV Airport");//2
  612. AddMenuItem(LasVenturasMenu, 0, "KACC Military Fuels");//3
  613. AddMenuItem(LasVenturasMenu, 0, "Yellow Bell Golf Club");//4
  614. AddMenuItem(LasVenturasMenu, 0, "Baseball Pitch");//5
  615. AddMenuItem(LasVenturasMenu, 0, "Return");//6
  616.  
  617. LosSantosMenu = CreateMenu("Los Santos", 2, 55.0, 200.0, 100.0, 80.0);
  618. SetMenuColumnHeader(LosSantosMenu, 0, "Teleport to where?");
  619. AddMenuItem(LosSantosMenu, 0, "Ganton");//0
  620. AddMenuItem(LosSantosMenu, 0, "LS Airport");//1
  621. AddMenuItem(LosSantosMenu, 0, "Ocean Docks");//2
  622. AddMenuItem(LosSantosMenu, 0, "Pershing Square");//3
  623. AddMenuItem(LosSantosMenu, 0, "Verdant Bluffs");//4
  624. AddMenuItem(LosSantosMenu, 0, "Santa Maria Beach");//5
  625. AddMenuItem(LosSantosMenu, 0, "Mulholland");//6
  626. AddMenuItem(LosSantosMenu, 0, "Richman");//7
  627. AddMenuItem(LosSantosMenu, 0, "Return");//8
  628.  
  629. SanFierroMenu = CreateMenu("San Fierro", 2, 55.0, 200.0, 100.0, 80.0);
  630. SetMenuColumnHeader(SanFierroMenu, 0, "Teleport to where?");
  631. AddMenuItem(SanFierroMenu, 0, "SF Station");//0
  632. AddMenuItem(SanFierroMenu, 0, "SF Airport");//1
  633. AddMenuItem(SanFierroMenu, 0, "Ocean Flats");//2
  634. AddMenuItem(SanFierroMenu, 0, "Avispa Country Club");//3
  635. AddMenuItem(SanFierroMenu, 0, "Easter Basin (docks)");//4
  636. AddMenuItem(SanFierroMenu, 0, "Esplanade North");//5
  637. AddMenuItem(SanFierroMenu, 0, "Battery Point");//6
  638. AddMenuItem(SanFierroMenu, 0, "Return");//7
  639.  
  640. DesertMenu = CreateMenu("The Desert", 2, 55.0, 200.0, 100.0, 80.0);
  641. SetMenuColumnHeader(DesertMenu, 0, "Teleport to where?");
  642. AddMenuItem(DesertMenu, 0, "Aircraft Graveyard");//0
  643. AddMenuItem(DesertMenu, 0, "Area 51");//1
  644. AddMenuItem(DesertMenu, 0, "The Big Ear");//2
  645. AddMenuItem(DesertMenu, 0, "The Sherman Dam");//3
  646. AddMenuItem(DesertMenu, 0, "Las Barrancas");//4
  647. AddMenuItem(DesertMenu, 0, "El Quebrados");//5
  648. AddMenuItem(DesertMenu, 0, "Octane Springs");//6
  649. AddMenuItem(DesertMenu, 0, "Return");//7
  650.  
  651. FlintMenu = CreateMenu("Flint Country", 2, 55.0, 200.0, 100.0, 80.0);
  652. SetMenuColumnHeader(FlintMenu, 0, "Teleport to where?");
  653. AddMenuItem(FlintMenu, 0, "The Lake");//0
  654. AddMenuItem(FlintMenu, 0, "Leafy Hollow");//1
  655. AddMenuItem(FlintMenu, 0, "The Farm");//2
  656. AddMenuItem(FlintMenu, 0, "Shady Cabin");//3
  657. AddMenuItem(FlintMenu, 0, "Flint Range");//4
  658. AddMenuItem(FlintMenu, 0, "Becon Hill");//5
  659. AddMenuItem(FlintMenu, 0, "Fallen Tree");//6
  660. AddMenuItem(FlintMenu, 0, "Return");//7
  661.  
  662. MountChiliadMenu = CreateMenu("Mount Chiliad", 2, 55.0, 200.0, 100.0, 80.0);
  663. SetMenuColumnHeader(MountChiliadMenu, 0, "Teleport to where?");
  664. AddMenuItem(MountChiliadMenu, 0, "Chiliad Jump");//0
  665. AddMenuItem(MountChiliadMenu, 0, "Bottom Of Chiliad");//1
  666. AddMenuItem(MountChiliadMenu, 0, "Highest Point");//2
  667. AddMenuItem(MountChiliadMenu, 0, "Chiliad Path");//3
  668. AddMenuItem(MountChiliadMenu, 0, "Return");//7
  669.  
  670. InteriorsMenu = CreateMenu("Interiors", 2, 55.0, 200.0, 130.0, 80.0);
  671. SetMenuColumnHeader(InteriorsMenu, 0, "Teleport to where?");
  672. AddMenuItem(InteriorsMenu, 0, "Planning Department");//0
  673. AddMenuItem(InteriorsMenu, 0, "LV PD");//1
  674. AddMenuItem(InteriorsMenu, 0, "Pizza Stack");//2
  675. AddMenuItem(InteriorsMenu, 0, "RC Battlefield");//3
  676. AddMenuItem(InteriorsMenu, 0, "Caligula's Casino");//4
  677. AddMenuItem(InteriorsMenu, 0, "Big Smoke's Crack Palace");//5
  678. AddMenuItem(InteriorsMenu, 0, "Madd Dogg's Mansion");//6
  679. AddMenuItem(InteriorsMenu, 0, "Dirtbike Stadium");//7
  680. AddMenuItem(InteriorsMenu, 0, "Vice Stadium (duel)");//8
  681. AddMenuItem(InteriorsMenu, 0, "Ammu-nation");//9
  682. AddMenuItem(InteriorsMenu, 0, "Atrium");//7
  683. AddMenuItem(InteriorsMenu, 0, "Return");//8
  684. #endif
  685.  
  686. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);
  687. for(new i = 1; i < MAX_CHAT_LINES; i++) Chat[i] = "<none>";
  688. for(new i = 1; i < MAX_REPORTS; i++) Reports[i] = "<none>";
  689.  
  690. PingTimer = SetTimer("PingKick",5000,1);
  691. GodTimer = SetTimer("GodUpdate",2000,1);
  692.  
  693. new year,month,day; getdate(year, month, day);
  694. new hour,minute,second; gettime(hour,minute,second);
  695.  
  696. print("________________________________________");
  697. print(" LAdmin Version 4.0 ");
  698. print(" Loaded ");
  699. print("________________________________________");
  700. printf(" Date: %d/%d/%d Time: %d:%d :%d ",day,month,year, hour, minute, second);
  701. print("________________________________________");
  702. print("________________________________________\n");
  703. return 1;
  704. }
  705. //==============================================================================
  706. public OnFilterScriptExit()
  707. {
  708. KillTimer(PingTimer);
  709. KillTimer(GodTimer);
  710. #if defined USE_MENUS
  711. DestroyAllMenus();
  712. #endif
  713.  
  714. new year,month,day; getdate(year, month, day);
  715. new hour,minute,second; gettime(hour,minute,second);
  716. print("\n________________________________________");
  717. print("________________________________________");
  718. print(" LAdmin Unloaded ");
  719. print("________________________________________");
  720. printf(" Date: %d/%d/%d Time: %d:%d :%d ",day,month,year, hour, minute, second);
  721. print("________________________________________");
  722. print("________________________________________\n");
  723. return 1;
  724. }
  725.  
  726. //==============================================================================
  727. public OnPlayerConnect(playerid)
  728. {
  729. PlayerInfo[playerid][Deaths] = 0;
  730. PlayerInfo[playerid][Kills] = 0;
  731. PlayerInfo[playerid][Jailed] = 0;
  732. PlayerInfo[playerid][Frozen] = 0;
  733. PlayerInfo[playerid][Level] = 0;
  734. PlayerInfo[playerid][LoggedIn] = 0;
  735. PlayerInfo[playerid][Registered] = 0;
  736. PlayerInfo[playerid][God] = 0;
  737. PlayerInfo[playerid][GodCar] = 0;
  738. PlayerInfo[playerid][TimesSpawned] = 0;
  739. PlayerInfo[playerid][Muted] = 0;
  740. PlayerInfo[playerid][MuteWarnings] = 0;
  741. PlayerInfo[playerid][Warnings] = 0;
  742. PlayerInfo[playerid][Caps] = 0;
  743. PlayerInfo[playerid][DoorsLocked] = 0;
  744. PlayerInfo[playerid][pCar] = -1;
  745. for(new i; i<PING_MAX_EXCEEDS; i++) PlayerInfo[playerid][pPing][i] = 0;
  746. PlayerInfo[playerid][SpamCount] = 0;
  747. PlayerInfo[playerid][SpamTime] = 0;
  748. PlayerInfo[playerid][PingCount] = 0;
  749. PlayerInfo[playerid][PingTime] = 0;
  750. PlayerInfo[playerid][FailLogin] = 0;
  751. PlayerInfo[playerid][ConnectTime] = gettime();
  752. GetPlayerIp(playerid, ips[playerid], MAX_PLAYER_IP);
  753. GetPlayerName(playerid, names[playerid], MAX_PLAYER_NAME);
  754. if(IsPlayerNPC(playerid)) return 1;
  755. //------------------------------------------------------
  756. new PlayerName[MAX_PLAYER_NAME], string[128], str[128], file[256];
  757. GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
  758. new tmp3[50]; GetPlayerIp(playerid,tmp3,50);
  759. //-----------------------------------------------------
  760. if(ServerInfo[ConnectMessages] == 1)
  761. {
  762. new pAKA[256]; pAKA = dini_Get("ladmin/config/aka.txt",tmp3);
  763. if (strlen(pAKA) < 3) format(str,sizeof(str),"*** %s (%d) has joined {00FF00}Truckers{FF8000} Life{00A300} Freeroam", PlayerName, playerid);
  764. else if (!strcmp(pAKA,PlayerName,true)) format(str,sizeof(str),"*** %s (%d) has joined Truckers Life Freeroam", PlayerName, playerid);
  765. else format(str,sizeof(str),"*** %s (%d) has joined Truckers Life Freeroam (aka %s)", PlayerName, playerid, pAKA );
  766.  
  767. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && playerid != i)
  768. {
  769. if(PlayerInfo[i][Level] > 2) SendClientMessage(i,grey,str);
  770. else {
  771. format(string,sizeof(string),"*** %s (%d) has joined Truckers Life Freeroam", PlayerName, playerid);
  772. SendClientMessage(i,grey,string);
  773. }
  774. }
  775. }
  776. //-----------------------------------------------------
  777. if (dUserINT(PlayerName2(playerid)).("banned") == 1)
  778. {
  779. SendClientMessage(playerid, red, "This name is banned from this server!");
  780. format(string,sizeof(string),"%s ID:%d was auto kicked. Reason: Name banned from server",PlayerName,playerid);
  781. SendClientMessageToAll(grey, string); print(string);
  782. SaveToFile("KickLog",string); Kick(playerid);
  783. }
  784. //-----------------------------------------------------
  785. if(ServerInfo[NameKick] == 1) {
  786. for(new s = 0; s < BadNameCount; s++) {
  787. if(!strcmp(BadNames[s],PlayerName,true)) {
  788. SendClientMessage(playerid,red, "Your name is on our black list, you have been kicked.");
  789. format(string,sizeof(string),"%s ID:%d was auto kicked. (Reason: Forbidden name)",PlayerName,playerid);
  790. SendClientMessageToAll(grey, string); print(string);
  791. SaveToFile("KickLog",string); Kick(playerid);
  792. return 1;
  793. }
  794. }
  795. }
  796. //-----------------------------------------------------
  797. if(ServerInfo[PartNameKick] == 1) {
  798. for(new s = 0; s < BadPartNameCount; s++) {
  799. new pos;
  800. while((pos = strfind(PlayerName,BadPartNames[s],true)) != -1) for(new i = pos, j = pos + strlen(BadPartNames[s]); i < j; i++)
  801. {
  802. SendClientMessage(playerid,red, "Your name is not allowed on this server, you have been kicked.");
  803. format(string,sizeof(string),"%s ID:%d was auto kicked. (Reason: Forbidden name)",PlayerName,playerid);
  804. SendClientMessageToAll(grey, string); print(string);
  805. SaveToFile("KickLog",string); Kick(playerid);
  806. return 1;
  807. }
  808. }
  809. }
  810. //-----------------------------------------------------
  811. if(ServerInfo[Locked] == 1) {
  812. PlayerInfo[playerid][AllowedIn] = false;
  813. SendClientMessage(playerid,red,"Server is Locked! You have 20 seconds to enter the server password before you are kicked!");
  814. SendClientMessage(playerid,red," Type /password [password]");
  815. LockKickTimer[playerid] = SetTimerEx("AutoKick", 20000, 0, "i", playerid);
  816. }
  817. //-----------------------------------------------------
  818. if(strlen(dini_Get("ladmin/config/aka.txt", tmp3)) == 0) dini_Set("ladmin/config/aka.txt", tmp3, PlayerName);
  819. else
  820. {
  821. if( strfind( dini_Get("ladmin/config/aka.txt", tmp3), PlayerName, true) == -1 )
  822. {
  823. format(string,sizeof(string),"%s,%s", dini_Get("ladmin/config/aka.txt",tmp3), PlayerName);
  824. dini_Set("ladmin/config/aka.txt", tmp3, string);
  825. }
  826. }
  827. //-----------------------------------------------------
  828. if(!udb_Exists(PlayerName2(playerid)))
  829. {
  830. ShowPlayerDialog(playerid,13339,DIALOG_STYLE_MSGBOX,"{FF0000}Truckers Life Freeroam Rules:","{FFFFFF}No cheating or using anything to benefit you over other players\nNo Death Matching\nRespect other players especially admin\nNo racial attacks\nNo ramming or blocking ","Accept","Decline");
  831. }
  832. else
  833. {
  834. PlayerInfo[playerid][Registered] = 1;
  835. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName));
  836. new tmp2[256]; tmp2 = dini_Get(file,"ip");
  837. if( (!strcmp(tmp3,tmp2,true)) && (ServerInfo[AutoLogin] == 1) )
  838. {
  839. LoginPlayer(playerid);
  840. if(PlayerInfo[playerid][Level] > 0)
  841. {
  842. format(string,sizeof(string),"ACCOUNT: You have been automatically logged in. [Level %d]", PlayerInfo[playerid][Level] );
  843. SendClientMessage(playerid,green,string);
  844. }
  845. else SendClientMessage(playerid,green,"ACCOUNT: You have been automatically logged in.");
  846. }
  847. else
  848. {
  849. ShowPlayerDialog(playerid,13337,DIALOG_STYLE_INPUT,"{FF9900}Login","{FF9900}Welcome to {00FF00}Truckers{FF8000}Life{00A300} Freeroam {FF9900} Log in to access Your account:","Login","Disconnect");
  850. }
  851. }
  852. return 1;
  853. }
  854.  
  855.  
  856. //==============================================================================
  857.  
  858. forward AutoKick(playerid);
  859. public AutoKick(playerid)
  860. {
  861. if( IsPlayerConnected(playerid) && ServerInfo[Locked] == 1 && PlayerInfo[playerid][AllowedIn] == false) {
  862. new string[128];
  863. SendClientMessage(playerid,grey,"You have been automatically kicked. Reason: Server Locked");
  864. format(string,sizeof(string),"%s ID:%d has been automatically kicked. Reason: Server Locked",PlayerName2(playerid),playerid);
  865. SaveToFile("KickLog",string); Kick(playerid);
  866. SendClientMessageToAll(grey, string); print(string);
  867. }
  868. return 1;
  869. }
  870.  
  871. //==============================================================================
  872.  
  873. public OnPlayerDisconnect(playerid, reason)
  874. {
  875. new PlayerName[MAX_PLAYER_NAME], str[128];
  876. GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  877.  
  878. if(ServerInfo[ConnectMessages] == 1)
  879. {
  880. switch (reason) {
  881. case 0: format(str, sizeof(str), "*** %s (%d) has left Truckers Life Freeroam (Timeout)", PlayerName, playerid);
  882. case 1: format(str, sizeof(str), "*** %s (%d) has left Truckers Life Freeroam (Leaving)", PlayerName, playerid);
  883. case 2: format(str, sizeof(str), "{ff0000}*** %s (%d) has left Truckers Life Freeroam (Kicked/Banned)", PlayerName, playerid);
  884. }
  885. SendClientMessageToAll(grey, str);
  886. }
  887.  
  888. if(PlayerInfo[playerid][LoggedIn] == 1) SavePlayer(playerid);
  889. if(udb_Exists(PlayerName2(playerid))) dUserSetINT(PlayerName2(playerid)).("loggedin",0);
  890. PlayerInfo[playerid][LoggedIn] = 0;
  891. PlayerInfo[playerid][Level] = 0;
  892. PlayerInfo[playerid][Jailed] = 0;
  893. PlayerInfo[playerid][Frozen] = 0;
  894.  
  895. if(PlayerInfo[playerid][Jailed] == 1) KillTimer( JailTimer[playerid] );
  896. if(PlayerInfo[playerid][Frozen] == 1) KillTimer( FreezeTimer[playerid] );
  897. if(ServerInfo[Locked] == 1) KillTimer( LockKickTimer[playerid] );
  898.  
  899. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  900.  
  901. #if defined ENABLE_SPEC
  902. for(new x=0; x<MAX_PLAYERS; x++)
  903. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
  904. AdvanceSpectate(x);
  905. #endif
  906.  
  907. return 1;
  908. }
  909.  
  910. forward DelayKillPlayer(playerid);
  911. public DelayKillPlayer(playerid)
  912. {
  913. SetPlayerHealth(playerid,0.0);
  914. ForceClassSelection(playerid);
  915. }
  916.  
  917. //==============================================================================
  918. public OnPlayerSpawn(playerid)
  919. {
  920. if(IsPlayerNPC(playerid)) return 1;
  921. if(ServerInfo[Locked] == 1 && PlayerInfo[playerid][AllowedIn] == false)
  922. {
  923. GameTextForPlayer(playerid,"~r~Server Locked~n~You must enter password before spawning~n~/password <password>",4000,3);
  924. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  925. return 1;
  926. }
  927.  
  928. if(ServerInfo[MustLogin] == 1 && PlayerInfo[playerid][Registered] == 1 && PlayerInfo[playerid][LoggedIn] == 0)
  929. {
  930. GameTextForPlayer(playerid,"~r~You must login before playing!",4000,3);
  931. Kick(playerid);
  932. return 1;
  933. }
  934.  
  935. if(ServerInfo[MustRegister] == 1 && PlayerInfo[playerid][Registered] == 0)
  936. {
  937. GameTextForPlayer(playerid,"~r~You must register before playing!",4000,3);
  938. Kick(playerid);
  939. return 1;
  940. }
  941.  
  942. PlayerInfo[playerid][Spawned] = 1;
  943.  
  944. if(PlayerInfo[playerid][Frozen] == 1) {
  945. TogglePlayerControllable(playerid,false); return SendClientMessage(playerid,red,"You cant escape your punishment. You Are Still Frozen");
  946. }
  947.  
  948. if(PlayerInfo[playerid][Jailed] == 1) {
  949. SetTimerEx("JailPlayer",3000,0,"d",playerid); return SendClientMessage(playerid,red,"You Are Still In Jail");
  950. }
  951.  
  952. if(ServerInfo[AdminOnlySkins] == 1) {
  953. if( (GetPlayerSkin(playerid) == ServerInfo[AdminSkin]) || (GetPlayerSkin(playerid) == ServerInfo[AdminSkin2]) ) {
  954. if(PlayerInfo[playerid][Level] >= 1)
  955. GameTextForPlayer(playerid,"~b~Welcome~n~~w~Admin",3000,1);
  956. else {
  957. GameTextForPlayer(playerid,"~r~This Skin Is For~n~Administrators~n~Only",4000,1);
  958. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  959. return 1;
  960. }
  961. }
  962. }
  963.  
  964. if((dUserINT(PlayerName2(playerid)).("UseSkin")) == 1)
  965. if((PlayerInfo[playerid][Level] >= 1) && (PlayerInfo[playerid][LoggedIn] == 1))
  966. SetPlayerSkin(playerid,(dUserINT(PlayerName2(playerid)).("FavSkin")) );
  967.  
  968. if(ServerInfo[GiveWeap] == 1) {
  969. if(PlayerInfo[playerid][LoggedIn] == 1) {
  970. PlayerInfo[playerid][TimesSpawned]++;
  971. if(PlayerInfo[playerid][TimesSpawned] == 1)
  972. {
  973. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap1"), dUserINT(PlayerName2(playerid)).("weap1ammo") );
  974. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap2"), dUserINT(PlayerName2(playerid)).("weap2ammo") );
  975. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap3"), dUserINT(PlayerName2(playerid)).("weap3ammo") );
  976. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap4"), dUserINT(PlayerName2(playerid)).("weap4ammo") );
  977. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap5"), dUserINT(PlayerName2(playerid)).("weap5ammo") );
  978. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap6"), dUserINT(PlayerName2(playerid)).("weap6ammo") );
  979. }
  980. }
  981. }
  982. return 1;
  983. }
  984.  
  985. //==============================================================================
  986.  
  987. public OnPlayerDeath(playerid, killerid, reason)
  988. {
  989. #if defined USE_STATS
  990. PlayerInfo[playerid][Deaths]++;
  991. #endif
  992. InDuel[playerid] = 0;
  993.  
  994. if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
  995. {
  996. #if defined USE_STATS
  997. PlayerInfo[killerid][Kills]++;
  998. #endif
  999.  
  1000. if(InDuel[playerid] == 1 && InDuel[killerid] == 1)
  1001. {
  1002. GameTextForPlayer(playerid,"Loser !",3000,3);
  1003. GameTextForPlayer(killerid,"Winner !",3000,3);
  1004. InDuel[killerid] = 0;
  1005. SetPlayerPos(killerid, 0.0, 0.0, 0.0);
  1006. SpawnPlayer(killerid);
  1007. }
  1008. else if(InDuel[playerid] == 1 && InDuel[killerid] == 0)
  1009. {
  1010. GameTextForPlayer(playerid,"Loser !",3000,3);
  1011. }
  1012. }
  1013.  
  1014. #if defined ENABLE_SPEC
  1015. for(new x=0; x<MAX_PLAYERS; x++)
  1016. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
  1017. AdvanceSpectate(x);
  1018. #endif
  1019.  
  1020.  
  1021. return 1;
  1022. }
  1023.  
  1024. //==============================================================================
  1025.  
  1026. public OnPlayerText(playerid, text[])
  1027. {
  1028. if(text[0] == '#' && PlayerInfo[playerid][Level] >= 1) {
  1029. new string[128]; GetPlayerName(playerid,string,sizeof(string));
  1030. format(string,sizeof(string),"Admin Chat: %s: %s",string,text[1]); MessageToAdmins(green,string);
  1031. return 0;
  1032. }
  1033.  
  1034. if(ServerInfo[DisableChat] == 1) {
  1035. SendClientMessage(playerid,red,"Chat has been disabled");
  1036. return 0;
  1037. }
  1038.  
  1039. if(PlayerInfo[playerid][Muted] == 1)
  1040. {
  1041. PlayerInfo[playerid][MuteWarnings]++;
  1042. new string[128];
  1043. if(PlayerInfo[playerid][MuteWarnings] < ServerInfo[MaxMuteWarnings]) {
  1044. format(string, sizeof(string),"WARNING: You are muted, if you continue to speak you will be kicked. (%d / %d)", PlayerInfo[playerid][MuteWarnings], ServerInfo[MaxMuteWarnings] );
  1045. SendClientMessage(playerid,red,string);
  1046. } else {
  1047. SendClientMessage(playerid,red,"You have been warned ! Now you have been kicked");
  1048. format(string, sizeof(string),"***%s (ID %d) was kicked for exceeding mute warnings", PlayerName2(playerid), playerid);
  1049. SendClientMessageToAll(grey,string);
  1050. SaveToFile("KickLog",string); Kick(playerid);
  1051. } return 0;
  1052. }
  1053.  
  1054. if(ServerInfo[AntiSpam] == 1 && (PlayerInfo[playerid][Level] == 0 && !IsPlayerAdmin(playerid)) )
  1055. {
  1056. if(PlayerInfo[playerid][SpamCount] == 0) PlayerInfo[playerid][SpamTime] = TimeStamp();
  1057.  
  1058. PlayerInfo[playerid][SpamCount]++;
  1059. if(TimeStamp() - PlayerInfo[playerid][SpamTime] > SPAM_TIMELIMIT) { // Its OK your messages were far enough apart
  1060. PlayerInfo[playerid][SpamCount] = 0;
  1061. PlayerInfo[playerid][SpamTime] = TimeStamp();
  1062. }
  1063. else if(PlayerInfo[playerid][SpamCount] == SPAM_MAX_MSGS) {
  1064. new string[64]; format(string,sizeof(string),"%s has been kicked (Flood/Spam Protection)", PlayerName2(playerid));
  1065. SendClientMessageToAll(grey,string); print(string);
  1066. SaveToFile("KickLog",string);
  1067. Kick(playerid);
  1068. }
  1069. else if(PlayerInfo[playerid][SpamCount] == SPAM_MAX_MSGS-1) {
  1070. SendClientMessage(playerid,red,"Anti Spam Warning! Next is a kick.");
  1071. return 0;
  1072. }
  1073. }
  1074.  
  1075. if(ServerInfo[AntiSwear] == 1 && PlayerInfo[playerid][Level] < ServerInfo[MaxAdminLevel])
  1076. for(new s = 0; s < ForbiddenWordCount; s++)
  1077. {
  1078. new pos;
  1079. while((pos = strfind(text,ForbiddenWords[s],true)) != -1) for(new i = pos, j = pos + strlen(ForbiddenWords[s]); i < j; i++) text[i] = '*';
  1080. }
  1081.  
  1082. if(PlayerInfo[playerid][Caps] == 1) UpperToLower(text);
  1083. if(ServerInfo[NoCaps] == 1) UpperToLower(text);
  1084.  
  1085. for(new i = 1; i < MAX_CHAT_LINES-1; i++) Chat[i] = Chat[i+1];
  1086. new ChatSTR[128]; GetPlayerName(playerid,ChatSTR,sizeof(ChatSTR)); format(ChatSTR,128,"[lchat]%s: %s",ChatSTR, text[0] );
  1087. Chat[MAX_CHAT_LINES-1] = ChatSTR;
  1088. return 1;
  1089. }
  1090.  
  1091. //==============================================================================
  1092. public OnPlayerPrivmsg(playerid, recieverid, text[])
  1093. {
  1094. if(ServerInfo[ReadPMs] == 1 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel])
  1095. {
  1096. new string[128],recievername[MAX_PLAYER_NAME];
  1097. GetPlayerName(playerid, string, sizeof(string)); GetPlayerName(recieverid, recievername, sizeof(recievername));
  1098. format(string, sizeof(string), "***PM: %s To %s: %s", string, recievername, text);
  1099. for (new a = 0; a < MAX_PLAYERS; a++) if (IsPlayerConnected(a) && (PlayerInfo[a][Level] >= ServerInfo[MaxAdminLevel]) && a != playerid)
  1100. SendClientMessage(a, grey, string);
  1101. }
  1102.  
  1103. if(PlayerInfo[playerid][Muted] == 1)
  1104. {
  1105. new string[128];
  1106. PlayerInfo[playerid][MuteWarnings]++;
  1107. if(PlayerInfo[playerid][MuteWarnings] < ServerInfo[MaxMuteWarnings]) {
  1108. format(string, sizeof(string),"WARNING: You are muted, if you continue to speak you will be kicked (Warning: %d/%d)", PlayerInfo[playerid][MuteWarnings], ServerInfo[MaxMuteWarnings] );
  1109. SendClientMessage(playerid,red,string);
  1110. } else {
  1111. SendClientMessage(playerid,red,"You have been warned! Now you have been kicked");
  1112. GetPlayerName(playerid, string, sizeof(string));
  1113. format(string, sizeof(string),"%s [ID %d] Kicked for exceeding mute warnings", string, playerid);
  1114. SendClientMessageToAll(grey,string);
  1115. SaveToFile("KickLog",string); Kick(playerid);
  1116. } return 0;
  1117. }
  1118. return 1;
  1119. }
  1120.  
  1121. forward HighLight(playerid);
  1122. public HighLight(playerid)
  1123. {
  1124. if(!IsPlayerConnected(playerid)) return 1;
  1125. if(PlayerInfo[playerid][blipS] == 0) { SetPlayerColor(playerid, 0xFF0000AA); PlayerInfo[playerid][blipS] = 1; }
  1126. else { SetPlayerColor(playerid, 0x33FF33AA); PlayerInfo[playerid][blipS] = 0; }
  1127. return 0;
  1128. }
  1129.  
  1130. //===================== [ DCMD Commands ]=======================================
  1131.  
  1132. dcmd_makelht(playerid, params[])
  1133. {
  1134. if(PlayerInfo[playerid][Level] >= 5)
  1135. {
  1136. new tmp[256], Index;
  1137. tmp = strtok(params,Index);
  1138. if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /makelht [playerid]");
  1139. new player1 = strval(tmp);
  1140. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
  1141. {
  1142. new str[128];
  1143. GetPlayerName(player1, str, sizeof(str));
  1144. format(str, sizeof(str), "LHTmem/%s", str);
  1145. new INI:lol = INI_Open(str);
  1146. INI_WriteInt(lol, "RandomName", 1337);
  1147. INI_Close(lol);
  1148. SetPVarInt(player1, "LHT:IsMember", 1);
  1149. GetPlayerName(player1, str, sizeof(str));
  1150. format(str, sizeof(str), "\"%s\" is now a member of LHT!!! {ffff00}Congratulations!!!!!", str);
  1151. for(new i; i < MAX_PLAYERS; i++) SendClientMessage(i, red, str);
  1152. } else return SendClientMessage(playerid, red, "ERROR: Player is not connected!");
  1153. } else SendClientMessage(playerid, red, "ERROR: You are not a high enough level to use this command");
  1154. return 1;
  1155. }
  1156.  
  1157. dcmd_giveweapon(playerid,params[]) {
  1158. if(PlayerInfo[playerid][Level] >= 3) {
  1159. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  1160. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /giveweapon [playerid] [weapon id/weapon name] [ammo]");
  1161. new player1 = strval(tmp), weap, ammo, WeapName[32], string[128];
  1162. if(!strlen(tmp3) || !IsNumeric(tmp3) || strval(tmp3) <= 0 || strval(tmp3) > 99999) ammo = 500; else ammo = strval(tmp3);
  1163. if(!IsNumeric(tmp2)) weap = GetWeaponIDFromName(tmp2); else weap = strval(tmp2);
  1164. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1165. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid weapon ID");
  1166. CMDMessageToAdmins(playerid,"GIVEWEAPON");
  1167. GetWeaponName(weap,WeapName,32);
  1168. format(string, sizeof(string), "You have given \"%s\" a %s (%d) with %d rounds of ammo", PlayerName2(player1), WeapName, weap, ammo); SendClientMessage(playerid,blue,string);
  1169. 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); }
  1170. return GivePlayerWeapon(player1, weap, ammo);
  1171. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1172. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1173. }
  1174.  
  1175. dcmd_sethealth(playerid,params[]) {
  1176. if(PlayerInfo[playerid][Level] >= 3) {
  1177. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1178. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /sethealth [playerid] [amount]");
  1179. if(strval(tmp2) < 0 || strval(tmp2) > 100 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid, red, "ERROR: Invaild health amount");
  1180. new player1 = strval(tmp), health = strval(tmp2), string[128];
  1181. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1182. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1183. CMDMessageToAdmins(playerid,"SETHEALTH");
  1184. format(string, sizeof(string), "You have set \"%s's\" health to '%d", pName(player1), health); SendClientMessage(playerid,blue,string);
  1185. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your health to '%d'", pName(playerid), health); SendClientMessage(player1,blue,string); }
  1186. return SetPlayerHealth(player1, health);
  1187. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1188. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1189. }
  1190.  
  1191. dcmd_setarmour(playerid,params[]) {
  1192. if(PlayerInfo[playerid][Level] >= 5) {
  1193. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1194. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setarmour [playerid] [amount]");
  1195. if(strval(tmp2) < 0 || strval(tmp2) > 100 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid, red, "ERROR: Invaild health amount");
  1196. new player1 = strval(tmp), armour = strval(tmp2), string[128];
  1197. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1198. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1199. CMDMessageToAdmins(playerid,"SETARMOUR");
  1200. format(string, sizeof(string), "You have set \"%s's\" armour to '%d", pName(player1), armour); SendClientMessage(playerid,blue,string);
  1201. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your armour to '%d'", pName(playerid), armour); SendClientMessage(player1,blue,string); }
  1202. return SetPlayerArmour(player1, armour);
  1203. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1204. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1205. }
  1206.  
  1207. dcmd_setcash(playerid,params[]) {
  1208. if(PlayerInfo[playerid][Level] >= 5) {
  1209. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1210. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setcash [playerid] [amount]");
  1211. new player1 = strval(tmp), cash = strval(tmp2), string[128];
  1212. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1213. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1214. CMDMessageToAdmins(playerid,"SETCASH");
  1215. format(string, sizeof(string), "You have set \"%s's\" cash to '$%d", pName(player1), cash); SendClientMessage(playerid,blue,string);
  1216. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your cash to '$%d'", pName(playerid), cash); SendClientMessage(player1,blue,string); }
  1217. ResetPlayerMoney(player1);
  1218. return GivePlayerMoney(player1, cash);
  1219. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1220. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1221. }
  1222.  
  1223. dcmd_setscore(playerid,params[]) {
  1224. if(PlayerInfo[playerid][Level] >= 5) {
  1225. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1226. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setscore [playerid] [score]");
  1227. new player1 = strval(tmp), score = strval(tmp2), string[128];
  1228. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1229. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1230. CMDMessageToAdmins(playerid,"SETSCORE");
  1231. format(string, sizeof(string), "You have set \"%s's\" score to '%d' ", pName(player1), score); SendClientMessage(playerid,blue,string);
  1232. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your score to '%d'", pName(playerid), score); SendClientMessage(player1,blue,string); }
  1233. return SetPlayerScore(player1, score);
  1234. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1235. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1236. }
  1237.  
  1238. dcmd_setskin(playerid,params[]) {
  1239. if(PlayerInfo[playerid][Level] >= 3) {
  1240. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1241. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setskin [playerid] [skin id]");
  1242. new player1 = strval(tmp), skin = strval(tmp2), string[128];
  1243. if(!IsValidSkin(skin)) return SendClientMessage(playerid, red, "ERROR: Invaild Skin ID");
  1244. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1245. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1246. CMDMessageToAdmins(playerid,"SETSKIN");
  1247. format(string, sizeof(string), "You have set \"%s's\" skin to '%d", pName(player1), skin); SendClientMessage(playerid,blue,string);
  1248. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your skin to '%d'", pName(playerid), skin); SendClientMessage(player1,blue,string); }
  1249. return SetPlayerSkin(player1, skin);
  1250. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1251. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1252. }
  1253.  
  1254. dcmd_setwanted(playerid,params[]) {
  1255. if(PlayerInfo[playerid][Level] >= 3) {
  1256. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1257. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setwanted [playerid] [level]");
  1258. new player1 = strval(tmp), wanted = strval(tmp2), string[128];
  1259. // if(wanted > 6) return SendClientMessage(playerid, red, "ERROR: Invaild wanted level");
  1260. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1261. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1262. CMDMessageToAdmins(playerid,"SETWANTED");
  1263. format(string, sizeof(string), "You have set \"%s's\" wanted level to '%d", pName(player1), wanted); SendClientMessage(playerid,blue,string);
  1264. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your wanted level to '%d'", pName(playerid), wanted); SendClientMessage(player1,blue,string); }
  1265. return SetPlayerWantedLevel(player1, wanted);
  1266. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1267. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1268. }
  1269.  
  1270. dcmd_setname(playerid,params[]) {
  1271. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  1272. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1273. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
  1274. new player1 = strval(tmp), length = strlen(tmp2), string[128];
  1275. if(length < 3 || length > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
  1276. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1277. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1278. CMDMessageToAdmins(playerid,"SETNAME");
  1279. format(string, sizeof(string), "You have set \"%s's\" name to \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
  1280. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
  1281. SetPlayerName(player1, tmp2);
  1282. return OnPlayerConnect(player1);
  1283. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1284. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1285. }
  1286.  
  1287. dcmd_setcolour(playerid,params[]) {
  1288. if(PlayerInfo[playerid][Level] >= 2) {
  1289. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1290. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) {
  1291. SendClientMessage(playerid, red, "USAGE: /setcolour [playerid] [Colour]");
  1292. 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");
  1293. }
  1294. new player1 = strval(tmp), Colour = strval(tmp2), string[128], colour[24];
  1295. 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");
  1296. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1297. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1298. CMDMessageToAdmins(playerid,"SETCOLOUR");
  1299. switch (Colour)
  1300. {
  1301. case 0: { SetPlayerColor(player1,black); colour = "Black"; }
  1302. case 1: { SetPlayerColor(player1,COLOR_WHITE); colour = "White"; }
  1303. case 2: { SetPlayerColor(player1,red); colour = "Red"; }
  1304. case 3: { SetPlayerColor(player1,orange); colour = "Orange"; }
  1305. case 4: { SetPlayerColor(player1,orange); colour = "Yellow"; }
  1306. case 5: { SetPlayerColor(player1,COLOR_GREEN1); colour = "Green"; }
  1307. case 6: { SetPlayerColor(player1,COLOR_BLUE); colour = "Blue"; }
  1308. case 7: { SetPlayerColor(player1,COLOR_PURPLE); colour = "Purple"; }
  1309. case 8: { SetPlayerColor(player1,COLOR_BROWN); colour = "Brown"; }
  1310. case 9: { SetPlayerColor(player1,COLOR_PINK); colour = "Pink"; }
  1311. }
  1312. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set colour to '%s' ", pName(playerid), colour); SendClientMessage(player1,blue,string); }
  1313. format(string, sizeof(string), "You have set \"%s's\" colour to '%s' ", pName(player1), colour);
  1314. return SendClientMessage(playerid,blue,string);
  1315. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1316. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1317. }
  1318.  
  1319. dcmd_setweather(playerid,params[]) {
  1320. if(PlayerInfo[playerid][Level] >= 3) {
  1321. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1322. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setweather [playerid] [weather id]");
  1323. new player1 = strval(tmp), weather = strval(tmp2), string[128];
  1324. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1325. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1326. CMDMessageToAdmins(playerid,"SETWEATHER");
  1327. format(string, sizeof(string), "You have set \"%s's\" weather to '%d", pName(player1), weather); SendClientMessage(playerid,blue,string);
  1328. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your weather to '%d'", pName(playerid), weather); SendClientMessage(player1,blue,string); }
  1329. SetPlayerWeather(player1,weather); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1330. return PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  1331. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1332. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1333. }
  1334.  
  1335. dcmd_settime(playerid,params[]) {
  1336. if(PlayerInfo[playerid][Level] >= 3) {
  1337. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1338. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /settime [playerid] [hour]");
  1339. new player1 = strval(tmp), time = strval(tmp2), string[128];
  1340. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1341. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1342. CMDMessageToAdmins(playerid,"SETTIME");
  1343. format(string, sizeof(string), "You have set \"%s's\" time to %d:00", pName(player1), time); SendClientMessage(playerid,blue,string);
  1344. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your time to %d:00", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1345. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1346. return SetPlayerTime(player1, time, 0);
  1347. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1348. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1349. }
  1350.  
  1351. dcmd_setworld(playerid,params[]) {
  1352. if(PlayerInfo[playerid][Level] >= 3) {
  1353. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1354. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setworld [playerid] [virtual world]");
  1355. new player1 = strval(tmp), time = strval(tmp2), string[128];
  1356. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1357. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1358. CMDMessageToAdmins(playerid,"SETWORLD");
  1359. format(string, sizeof(string), "You have set \"%s's\" virtual world to '%d'", pName(player1), time); SendClientMessage(playerid,blue,string);
  1360. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your virtual world to '%d' ", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1361. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1362. return SetPlayerVirtualWorld(player1, time);
  1363. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1364. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1365. }
  1366.  
  1367. dcmd_setinterior(playerid,params[]) {
  1368. if(PlayerInfo[playerid][Level] >= 3) {
  1369. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1370. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setinterior [playerid] [interior]");
  1371. new player1 = strval(tmp), time = strval(tmp2), string[128];
  1372. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1373. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1374. CMDMessageToAdmins(playerid,"SETINTERIOR");
  1375. format(string, sizeof(string), "You have set \"%s's\" interior to '%d' ", pName(player1), time); SendClientMessage(playerid,blue,string);
  1376. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your interior to '%d' ", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1377. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1378. return SetPlayerInterior(player1, time);
  1379. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1380. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1381. }
  1382.  
  1383. dcmd_setmytime(playerid,params[]) {
  1384. if(PlayerInfo[playerid][Level] >= 1) {
  1385. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setmytime [hour]");
  1386. new time = strval(params), string[128];
  1387. CMDMessageToAdmins(playerid,"SETMYTIME");
  1388. format(string,sizeof(string),"You have set your time to %d:00", time); SendClientMessage(playerid,blue,string);
  1389. return SetPlayerTime(playerid, time, 0);
  1390. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1391. }
  1392.  
  1393. dcmd_force(playerid,params[]) {
  1394. if(PlayerInfo[playerid][Level] >= 3) {
  1395. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /force [playerid]");
  1396. new player1 = strval(params), string[128];
  1397. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1398. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1399. CMDMessageToAdmins(playerid,"FORCE");
  1400. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has forced you into class selection", pName(playerid) ); SendClientMessage(player1,blue,string); }
  1401. format(string,sizeof(string),"You have forced \"%s\" into class selection", pName(player1)); SendClientMessage(playerid,blue,string);
  1402. ForceClassSelection(player1);
  1403. return SetPlayerHealth(player1,0.0);
  1404. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1405. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1406. }
  1407.  
  1408. dcmd_eject(playerid,params[]) {
  1409. if(PlayerInfo[playerid][Level] >= 3) {
  1410. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /eject [playerid]");
  1411. new player1 = strval(params), string[128], Float:x, Float:y, Float:z;
  1412. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1413. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1414. if(IsPlayerInAnyVehicle(player1)) {
  1415. CMDMessageToAdmins(playerid,"EJECT");
  1416. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has ejected you from your vehicle", pName(playerid) ); SendClientMessage(player1,blue,string); }
  1417. format(string,sizeof(string),"You have ejected \"%s\" from their vehicle", pName(player1)); SendClientMessage(playerid,blue,string);
  1418. GetPlayerPos(player1,x,y,z);
  1419. return SetPlayerPos(player1,x,y,z+3);
  1420. } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  1421. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1422. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1423. }
  1424.  
  1425. dcmd_lockcar(playerid,params[]) {
  1426. #pragma unused params
  1427. if(PlayerInfo[playerid][Level] >= 2) {
  1428. if(IsPlayerInAnyVehicle(playerid)) {
  1429. for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,true);
  1430. CMDMessageToAdmins(playerid,"LOCKCAR");
  1431. PlayerInfo[playerid][DoorsLocked] = 1;
  1432. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has locked his car", pName(playerid));
  1433. return SendClientMessageToAll(blue,string);
  1434. } else return SendClientMessage(playerid,red,"ERROR: You need to be in a vehicle to lock the doors");
  1435. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1436. }
  1437.  
  1438. dcmd_unlockcar(playerid,params[]) {
  1439. #pragma unused params
  1440. if(PlayerInfo[playerid][Level] >= 2) {
  1441. if(IsPlayerInAnyVehicle(playerid)) {
  1442. for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,false);
  1443. CMDMessageToAdmins(playerid,"UNLOCKCAR");
  1444. PlayerInfo[playerid][DoorsLocked] = 0;
  1445. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unlocked his car", pName(playerid));
  1446. return SendClientMessageToAll(blue,string);
  1447. } else return SendClientMessage(playerid,red,"ERROR: You need to be in a vehicle to lock the doors");
  1448. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1449. }
  1450.  
  1451. dcmd_burn(playerid,params[]) {
  1452. if(PlayerInfo[playerid][Level] >= 3) {
  1453. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /burn [playerid]");
  1454. new player1 = strval(params), string[128], Float:x, Float:y, Float:z;
  1455. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1456. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1457. CMDMessageToAdmins(playerid,"BURN");
  1458. format(string, sizeof(string), "You have burnt \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1459. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has burnt you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1460. GetPlayerPos(player1, x, y, z);
  1461. return CreateExplosion(x, y , z + 3, 1, 10);
  1462. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1463. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1464. }
  1465.  
  1466. dcmd_spawnplayer(playerid,params[])
  1467. {
  1468. return dcmd_spawn(playerid,params);
  1469. }
  1470.  
  1471. dcmd_spawn(playerid,params[]) {
  1472. if(PlayerInfo[playerid][Level] >= 3) {
  1473. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /spawn [playerid]");
  1474. new player1 = strval(params), string[128];
  1475. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1476. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1477. CMDMessageToAdmins(playerid,"SPAWN");
  1478. format(string, sizeof(string), "You have spawned \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1479. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has spawned you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1480. SetPlayerPos(player1, 0.0, 0.0, 0.0);
  1481. return SpawnPlayer(player1);
  1482. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1483. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1484. }
  1485.  
  1486. dcmd_disarm(playerid,params[]) {
  1487. if(PlayerInfo[playerid][Level] >= 3) {
  1488. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /disarm [playerid]");
  1489. new player1 = strval(params), string[128];
  1490. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1491. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1492. CMDMessageToAdmins(playerid,"DISARM"); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1493. format(string, sizeof(string), "You have disarmed \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1494. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has disarmed you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1495. ResetPlayerWeapons(player1);
  1496. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1497. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1498. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1499. }
  1500.  
  1501. dcmd_crash(playerid,params[]) {
  1502. if(PlayerInfo[playerid][Level] >= 4) {
  1503. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /crash [playerid]");
  1504. new player1 = strval(params), string[128], Float:X,Float:Y,Float:Z;
  1505. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1506. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1507. CMDMessageToAdmins(playerid,"CRASH");
  1508. GetPlayerPos(player1,X,Y,Z);
  1509. new objectcrash = CreatePlayerObject(player1,11111111,X,Y,Z,0,0,0);
  1510. DestroyObject(objectcrash);
  1511. format(string, sizeof(string), "You have crashed \"%s's\" game", pName(player1) );
  1512. return SendClientMessage(playerid,blue, string);
  1513. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1514. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1515. }
  1516.  
  1517. dcmd_ip(playerid,params[]) {
  1518. if(PlayerInfo[playerid][Level] >= 5) {
  1519. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ip [playerid]");
  1520. new player1 = strval(params), string[128];
  1521. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1522. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1523. CMDMessageToAdmins(playerid,"IP");
  1524. new tmp3[50]; GetPlayerIp(player1,tmp3,50);
  1525. format(string,sizeof(string),"\"%s's\" ip is '%s'", pName(player1), tmp3);
  1526. return SendClientMessage(playerid,blue,string);
  1527. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1528. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1529. }
  1530.  
  1531. dcmd_bankrupt(playerid,params[]) {
  1532. if(PlayerInfo[playerid][Level] >= 5) {
  1533. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /bankrupt [playerid]");
  1534. new player1 = strval(params), string[128];
  1535. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1536. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1537. CMDMessageToAdmins(playerid,"BANKRUPT");
  1538. format(string, sizeof(string), "You have reset \"%s's\" cash", pName(player1)); SendClientMessage(playerid,blue,string);
  1539. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has reset your cash'", pName(playerid)); SendClientMessage(player1,blue,string); }
  1540. return ResetPlayerMoney(player1);
  1541. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1542. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1543. }
  1544.  
  1545. dcmd_sbankrupt(playerid,params[]) {
  1546. if(PlayerInfo[playerid][Level] >= 5) {
  1547. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /sbankrupt [playerid]");
  1548. new player1 = strval(params), string[128];
  1549. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1550. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1551. CMDMessageToAdmins(playerid,"BANKRUPT");
  1552. format(string, sizeof(string), "You have silently reset \"%s's\" cash", pName(player1)); SendClientMessage(playerid,blue,string);
  1553. return ResetPlayerMoney(player1);
  1554. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1555. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1556. }
  1557.  
  1558. dcmd_kill(playerid,params[]) {
  1559. #pragma unused params
  1560. return SetPlayerHealth(playerid,0.0);
  1561. }
  1562.  
  1563. dcmd_time(playerid,params[]) {
  1564. #pragma unused params
  1565. new string[64], hour,minuite,second; gettime(hour,minuite,second);
  1566. format(string, sizeof(string), "~g~|~w~%d:%d~g~|", hour, minuite);
  1567. return GameTextForPlayer(playerid, string, 5000, 1);
  1568. }
  1569.  
  1570. dcmd_ubound(playerid,params[]) {
  1571. if(PlayerInfo[playerid][Level] >= 5) {
  1572. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ubound [playerid]");
  1573. new string[128], player1 = strval(params);
  1574.  
  1575. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1576. CMDMessageToAdmins(playerid,"UBOUND");
  1577. SetPlayerWorldBounds(player1, 9999.9, -9999.9, 9999.9, -9999.9 );
  1578. format(string, sizeof(string), "Administrator %s has removed your world boundaries", PlayerName2(playerid)); if(player1 != playerid) SendClientMessage(player1,blue,string);
  1579. format(string,sizeof(string),"You have removed %s's world boundaries", PlayerName2(player1));
  1580. return SendClientMessage(playerid,blue,string);
  1581. } else return SendClientMessage(playerid, red, "Player is not connected");
  1582. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1583. }
  1584.  
  1585. dcmd_lhelp(playerid,params[]) {
  1586. #pragma unused params
  1587. if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] >= 1) {
  1588. SendClientMessage(playerid,blue,"--== [ LAdmin Help ] ==--");
  1589. SendClientMessage(playerid,blue, "For admin commands type: /lcommands | Credits: /lcredits");
  1590. SendClientMessage(playerid,blue, "Account commands are: /register, /login, /changepass, /stats, /resetstats. Also /time, /report");
  1591. SendClientMessage(playerid,blue, "There are 5 levels. Level 5 admins are immune from commands");
  1592. SendClientMessage(playerid,blue, "IMPORTANT: The filterscript must be reloaded if you change gamemodes");
  1593. }
  1594. else if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] < 1) {
  1595. SendClientMessage(playerid,green, "Your commands are: /register, /login, /report, /stats, /time, /changepass, /resetstats, /getid");
  1596. }
  1597. else if(PlayerInfo[playerid][LoggedIn] == 0) {
  1598. SendClientMessage(playerid,green, "Your commands are: /time, /getid (You are not logged in, log in for more commands)");
  1599. } return 1;
  1600. }
  1601.  
  1602. dcmd_lcmds(playerid,params[]) {
  1603. #pragma unused params
  1604. if(PlayerInfo[playerid][Level] > 0)
  1605. {
  1606. SendClientMessage(playerid,lightblue," ---------------------------------Truckers Life Admin Commands------------------------------------------------------------------------");
  1607. SendClientMessage(playerid,lightblue,"GENERAL: getinfo, lmenu, announce, write, miniguns, richlist, lspec(off), move, lweaps, adminarea, countdown, duel, giveweapon");
  1608. SendClientMessage(playerid,lightblue,"GENERAL: slap, burn, warn, kick, ban, explode, jail, freeze, mute, crash, ubound, god, godcar, ping");
  1609. SendClientMessage(playerid,lightblue,"GENERAL: setping, lockserver, enable/disable, setlevel, setinterior, givecar, jetpack, force, spawn");
  1610. SendClientMessage(playerid,lightblue,"VEHICLE: flip, fix, , lockcar, eject, ltc, car, lcar, lbike, lplane, lheli, lboat, cm");
  1611. SendClientMessage(playerid,lightblue,"TELE: goto, gethere, get, teleplayer, ltele, vgoto, lgoto, moveplayer");
  1612. SendClientMessage(playerid,lightblue,"SET: set(cash/health/armour/gravity/name/time/weather/skin/colour/wanted/templevel)");
  1613. SendClientMessage(playerid,lightblue,"SETALL: setall(world/weather/wanted/time/score/cash)");
  1614. SendClientMessage(playerid,lightblue,"ALL: giveallweapon, healall, armourall, freezeall, kickall, ejectall, killall, disarmall, slapall, spawnall");
  1615. SendClientMessage(playerid,lightblue,"---------------------------------------------------------------------------------------------------------------------------------");
  1616. }
  1617. return 1;
  1618. }
  1619.  
  1620. dcmd_lcommands(playerid,params[]) {
  1621. #pragma unused params
  1622. if(PlayerInfo[playerid][Level] > 0)
  1623. {
  1624. SendClientMessage(playerid,lightblue," ---= All Admin Commands =---");
  1625. SendClientMessage(playerid,lightblue," /level1, /level2, /level3, /level4, /level5, /rcon ladmin");
  1626. SendClientMessage(playerid,lightblue,"Player Commands: /register, /login, /report, /stats, /time, /changepass, /resetstats, /getid");
  1627. }
  1628. return 1;
  1629. }
  1630.  
  1631. dcmd_level1(playerid,params[]) {
  1632. #pragma unused params
  1633. if(PlayerInfo[playerid][Level] > 0)
  1634. {
  1635. SendClientMessage(playerid,lightblue," ---=Level 1 Admin Commands =---");
  1636. SendClientMessage(playerid,lightblue,"getinfo, weaps, vr, ltune, lhy, lp, asay, ping, lslowmo, ltc,");
  1637. SendClientMessage(playerid,lightblue,"morning, adminarea, reports, richlist, miniguns, saveplacae, gotoplace,");
  1638. SendClientMessage(playerid,lightblue,"saveskin, useskin, dontuseskin, setmytime, ip, lconfig.");
  1639. }
  1640. return 1;
  1641. }
  1642.  
  1643. dcmd_level2(playerid,params[]) {
  1644. #pragma unused params
  1645. if(PlayerInfo[playerid][Level] > 0)
  1646. {
  1647. SendClientMessage(playerid,lightblue," ---=Level 2 Admin Commands =---");
  1648. SendClientMessage(playerid,lightblue,"giveweapon, setcolour, lockcar, unlockcar, burn, spawn, disarm, lcar, lbike,");
  1649. SendClientMessage(playerid,lightblue,"lheli, lboat, lplane, hightlight, announce, announce2, screen, jetpack, flip,");
  1650. SendClientMessage(playerid,lightblue,"goto, vgoto, lgoto, fu, warn, slap, jailed, frozen, mute, unmute, muted,");
  1651. SendClientMessage(playerid,lightblue,"laston, lspec, lspecoff, lspecvehicle, clearchat, lmenu, ltele, cm, ltmenu,");
  1652. SendClientMessage(playerid,lightblue,"write.");
  1653. }
  1654. return 1;
  1655. }
  1656.  
  1657. dcmd_level3(playerid,params[]) {
  1658. #pragma unused params
  1659. if(PlayerInfo[playerid][Level] > 0)
  1660. {
  1661. SendClientMessage(playerid,lightblue," ---=Level 3 Admin Commands =---");
  1662. SendClientMessage(playerid,lightblue,"sethealth, ban, setarmour, setcash, setscore, setskin, setwanted, setname, setweather,");
  1663. SendClientMessage(playerid,lightblue,"settime, setworld, setinterior, force, eject, bankrupt, sbankrupt, ubound, lweaps,");
  1664. SendClientMessage(playerid,lightblue,"lammo, countdown, duel, car, carhealth, carcolour, setping, setgravity, destroycar,");
  1665. SendClientMessage(playerid,lightblue,"teleplayer, vget, givecar, gethere, get, kick, explode, jail, unjail, freeze, ");
  1666. SendClientMessage(playerid,lightblue,"unfreeze, akill,aka, disablechat, clearallchat, caps, move, moveplayer, healall,");
  1667. SendClientMessage(playerid,lightblue,"armourall, setallskin, setallwanted, setallweather, setalltime, setallworld,");
  1668. SendClientMessage(playerid,lightblue,"setallscore, setallcash, giveallcash, giveallweapon, lweather, ltime, lweapons, setpass");
  1669. }
  1670. return 1;
  1671. }
  1672.  
  1673. dcmd_level4(playerid,params[]) {
  1674. #pragma unused params
  1675. if(PlayerInfo[playerid][Level] > 0)
  1676. {
  1677. SendClientMessage(playerid,lightblue," ---=Level 4 Admin Commands =---");
  1678. SendClientMessage(playerid,lightblue,"enable, disable, ban, rban, settemplevel, crash, spam, die, uconfig,");
  1679. SendClientMessage(playerid,lightblue,"botcheck, lockserver, unlockserver, forbidname, forbidword, ");
  1680. SendClientMessage(playerid,lightblue,"fakedeath, spawnall, muteall, unmuteall, getall, killall, freezeall,");
  1681. SendClientMessage(playerid,lightblue,"unfreezeall, kickall, slapalll, explodeall, disarmall, ejectall.");
  1682. }
  1683. return 1;
  1684. }
  1685.  
  1686. dcmd_level5(playerid,params[]) {
  1687. #pragma unused params
  1688. if(PlayerInfo[playerid][Level] > 0)
  1689. {
  1690. SendClientMessage(playerid,lightblue," ---=Level 5 Admin Commands =---");
  1691. SendClientMessage(playerid,lightblue,"god, sgod, setlevel, pickup, object, fakechat.");
  1692. }
  1693. return 1;
  1694. }
  1695.  
  1696. dcmd_lconfig(playerid,params[]) {
  1697. #pragma unused params
  1698. if(PlayerInfo[playerid][Level] > 0)
  1699. {
  1700. new string[128];
  1701. SendClientMessage(playerid,blue," ---=== LAdmin Configuration ===---");
  1702. 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] );
  1703. SendClientMessage(playerid,blue,string);
  1704. 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] );
  1705. SendClientMessage(playerid,blue,string);
  1706. 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] );
  1707. SendClientMessage(playerid,blue,string);
  1708. format(string, sizeof(string), "AutoLogin %d | MaxMuteWarnings %d | ChatDisabled %d | MustLogin %d | MustRegister %d", ServerInfo[AutoLogin], ServerInfo[MaxMuteWarnings], ServerInfo[DisableChat], ServerInfo[MustLogin], ServerInfo[MustRegister] );
  1709. SendClientMessage(playerid,blue,string);
  1710. }
  1711. return 1;
  1712. }
  1713.  
  1714. dcmd_getinfo(playerid,params[]) {
  1715. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  1716. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /getinfo [playerid]");
  1717. new player1, string[128];
  1718. player1 = strval(params);
  1719.  
  1720. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1721. new Float:player1health, Float:player1armour, playerip[128], Float:x, Float:y, Float:z, tmp2[256], file[256],
  1722. year, month, day, P1Jailed[4], P1Frozen[4], P1Logged[4], P1Register[4], RegDate[256], TimesOn;
  1723.  
  1724. GetPlayerHealth(player1,player1health);
  1725. GetPlayerArmour(player1,player1armour);
  1726. GetPlayerIp(player1, playerip, sizeof(playerip));
  1727. GetPlayerPos(player1,x,y,z);
  1728. getdate(year, month, day);
  1729. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(player1)));
  1730.  
  1731. if(PlayerInfo[player1][Jailed] == 1) P1Jailed = "Yes"; else P1Jailed = "No";
  1732. if(PlayerInfo[player1][Frozen] == 1) P1Frozen = "Yes"; else P1Frozen = "No";
  1733. if(PlayerInfo[player1][LoggedIn] == 1) P1Logged = "Yes"; else P1Logged = "No";
  1734. if(fexist(file)) P1Register = "Yes"; else P1Register = "No";
  1735. if(dUserINT(PlayerName2(player1)).("LastOn")==0) tmp2 = "Never"; else tmp2 = dini_Get(file,"LastOn");
  1736. if(strlen(dini_Get(file,"RegisteredDate")) < 3) RegDate = "n/a"; else RegDate = dini_Get(file,"RegisteredDate");
  1737. TimesOn = dUserINT(PlayerName2(player1)).("TimesOnServer");
  1738.  
  1739. new Sum, Average, w;
  1740. while (w < PING_MAX_EXCEEDS) {
  1741. Sum += PlayerInfo[player1][pPing][w];
  1742. w++;
  1743. }
  1744. Average = (Sum / PING_MAX_EXCEEDS);
  1745.  
  1746. format(string, sizeof(string),"(Player Info) ---====> Name: %s ID: %d <====---", PlayerName2(player1), player1);
  1747. SendClientMessage(playerid,lightblue,string);
  1748. 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),
  1749. GetPlayerScore(player1),GetPlayerMoney(player1),GetPlayerSkin(player1),playerip,GetPlayerPing(player1), Average );
  1750. SendClientMessage(playerid,red,string);
  1751. 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);
  1752. SendClientMessage(playerid,orange,string);
  1753. 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] );
  1754. SendClientMessage(playerid,yellow,string);
  1755. format(string, sizeof(string),"Registered: %s Logged In: %s In Jail: %s Frozen: %s", P1Register, P1Logged, P1Jailed, P1Frozen );
  1756. SendClientMessage(playerid,green,string);
  1757. format(string, sizeof(string),"Last On Server: %s Register Date: %s Todays Date: %d/%d/%d", tmp2, RegDate, day,month,year );
  1758. SendClientMessage(playerid,COLOR_GREEN,string);
  1759.  
  1760. if(IsPlayerInAnyVehicle(player1)) {
  1761. new Float:VHealth, carid = GetPlayerVehicleID(playerid); GetVehicleHealth(carid,VHealth);
  1762. format(string, sizeof(string),"VehicleID: %d Model: %d Vehicle Name: %s Vehicle Health: %d",carid, GetVehicleModel(carid), VehicleNames[GetVehicleModel(carid)-400], floatround(VHealth) );
  1763. SendClientMessage(playerid,COLOR_BLUE,string);
  1764. }
  1765.  
  1766. new slot, ammo, weap, Count, WeapName[24], WeapSTR[128], p; WeapSTR = "Weaps: ";
  1767. for (slot = 0; slot < 14; slot++) { GetPlayerWeaponData(player1, slot, weap, ammo); if( ammo != 0 && weap != 0) Count++; }
  1768. if(Count < 1) return SendClientMessage(playerid,lightblue,"Player has no weapons");
  1769. else {
  1770. for (slot = 0; slot < 14; slot++)
  1771. {
  1772. GetPlayerWeaponData(player1, slot, weap, ammo);
  1773. if (ammo > 0 && weap > 0)
  1774. {
  1775. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  1776. if (ammo == 65535 || ammo == 1) format(WeapSTR,sizeof(WeapSTR),"%s%s (1)",WeapSTR, WeapName);
  1777. else format(WeapSTR,sizeof(WeapSTR),"%s%s (%d)",WeapSTR, WeapName, ammo);
  1778. p++;
  1779. if(p >= 5) { SendClientMessage(playerid, lightblue, WeapSTR); format(WeapSTR, sizeof(WeapSTR), "Weaps: "); p = 0;
  1780. } else format(WeapSTR, sizeof(WeapSTR), "%s, ", WeapSTR);
  1781. }
  1782. }
  1783. if(p <= 4 && p > 0) {
  1784. string[strlen(string)-3] = '.';
  1785. SendClientMessage(playerid, lightblue, WeapSTR);
  1786. }
  1787. }
  1788. return 1;
  1789. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1790. } else return SendClientMessage(playerid,red,"ERROR: You need to be administrator level 2 to use this command");
  1791. }
  1792.  
  1793. dcmd_disable(playerid,params[]) {
  1794. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  1795. if(!strlen(params)) {
  1796. SendClientMessage(playerid,red,"USAGE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps / admincmdmsgs");
  1797. return SendClientMessage(playerid,red," /connectmsgs / autologin ]");
  1798. }
  1799. new string[128], file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  1800. if(strcmp(params,"antiswear",true) == 0) {
  1801. ServerInfo[AntiSwear] = 0;
  1802. dini_IntSet(file,"AntiSwear",0);
  1803. format(string,sizeof(string),"Administrator %s has disabled antiswear", PlayerName2(playerid));
  1804. SendClientMessageToAll(blue,string);
  1805. } else if(strcmp(params,"namekick",true) == 0) {
  1806. ServerInfo[NameKick] = 0;
  1807. dini_IntSet(file,"NameKick",0);
  1808. format(string,sizeof(string),"Administrator %s has disabled namekick", PlayerName2(playerid));
  1809. SendClientMessageToAll(blue,string);
  1810. } else if(strcmp(params,"antispam",true) == 0) {
  1811. ServerInfo[AntiSpam] = 0;
  1812. dini_IntSet(file,"AntiSpam",0);
  1813. format(string,sizeof(string),"Administrator %s has disabled antispam", PlayerName2(playerid));
  1814. SendClientMessageToAll(blue,string);
  1815. } else if(strcmp(params,"ping",true) == 0) {
  1816. ServerInfo[MaxPing] = 0;
  1817. dini_IntSet(file,"MaxPing",0);
  1818. format(string,sizeof(string),"Administrator %s has disabled ping kick", PlayerName2(playerid));
  1819. SendClientMessageToAll(blue,string);
  1820. } else if(strcmp(params,"readcmds",true) == 0) {
  1821. ServerInfo[ReadCmds] = 0;
  1822. dini_IntSet(file,"ReadCMDs",0);
  1823. format(string,sizeof(string),"Administrator %s has disabled reading commands", PlayerName2(playerid));
  1824. MessageToAdmins(blue,string);
  1825. } else if(strcmp(params,"readpms",true) == 0) {
  1826. ServerInfo[ReadPMs] = 0;
  1827. dini_IntSet(file,"ReadPMs",0);
  1828. format(string,sizeof(string),"Administrator %s has disabled reading pms", PlayerName2(playerid));
  1829. MessageToAdmins(blue,string);
  1830. } else if(strcmp(params,"caps",true) == 0) {
  1831. ServerInfo[NoCaps] = 1;
  1832. dini_IntSet(file,"NoCaps",1);
  1833. format(string,sizeof(string),"Administrator %s has prevented captial letters in chat", PlayerName2(playerid));
  1834. SendClientMessageToAll(blue,string);
  1835. } else if(strcmp(params,"admincmdmsgs",true) == 0) {
  1836. ServerInfo[AdminCmdMsg] = 0;
  1837. dini_IntSet(file,"AdminCMDMessages",0);
  1838. format(string,sizeof(string),"Administrator %s has disabled admin command messages", PlayerName2(playerid));
  1839. MessageToAdmins(green,string);
  1840. } else if(strcmp(params,"connectmsgs",true) == 0) {
  1841. ServerInfo[ConnectMessages] = 0;
  1842. dini_IntSet(file,"ConnectMessages",0);
  1843. format(string,sizeof(string),"Administrator %s has disabled connect & disconnect messages", PlayerName2(playerid));
  1844. MessageToAdmins(green,string);
  1845. } else if(strcmp(params,"autologin",true) == 0) {
  1846. ServerInfo[AutoLogin] = 0;
  1847. dini_IntSet(file,"AutoLogin",0);
  1848. format(string,sizeof(string),"Administrator %s has disabled auto login", PlayerName2(playerid));
  1849. MessageToAdmins(green,string);
  1850. } else {
  1851. SendClientMessage(playerid,red,"USAGE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps /cmdmsg ]");
  1852. } return 1;
  1853. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1854. }
  1855.  
  1856. dcmd_enable(playerid,params[]) {
  1857. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  1858. if(!strlen(params)) {
  1859. SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps / admincmdmsgs");
  1860. return SendClientMessage(playerid,red," /connectmsgs / autologin ]");
  1861. }
  1862. new string[128], file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  1863. if(strcmp(params,"antiswear",true) == 0) {
  1864. ServerInfo[AntiSwear] = 1;
  1865. dini_IntSet(file,"AntiSwear",1);
  1866. format(string,sizeof(string),"Administrator %s has enabled antiswear", PlayerName2(playerid));
  1867. SendClientMessageToAll(blue,string);
  1868. } else if(strcmp(params,"namekick",true) == 0) {
  1869. ServerInfo[NameKick] = 1;
  1870. format(string,sizeof(string),"Administrator %s has enabled namekick", PlayerName2(playerid));
  1871. SendClientMessageToAll(blue,string);
  1872. } else if(strcmp(params,"antispam",true) == 0) {
  1873. ServerInfo[AntiSpam] = 1;
  1874. dini_IntSet(file,"AntiSpam",1);
  1875. format(string,sizeof(string),"Administrator %s has enabled antispam", PlayerName2(playerid));
  1876. SendClientMessageToAll(blue,string);
  1877. } else if(strcmp(params,"ping",true) == 0) {
  1878. ServerInfo[MaxPing] = 800;
  1879. dini_IntSet(file,"MaxPing",800);
  1880. format(string,sizeof(string),"Administrator %s has enabled ping kick", PlayerName2(playerid));
  1881. SendClientMessageToAll(blue,string);
  1882. } else if(strcmp(params,"readcmds",true) == 0) {
  1883. ServerInfo[ReadCmds] = 1;
  1884. dini_IntSet(file,"ReadCMDs",1);
  1885. format(string,sizeof(string),"Administrator %s has enabled reading commands", PlayerName2(playerid));
  1886. MessageToAdmins(blue,string);
  1887. } else if(strcmp(params,"readpms",true) == 0) {
  1888. ServerInfo[ReadPMs] = 1;
  1889. dini_IntSet(file,"ReadPMs",1);
  1890. format(string,sizeof(string),"Administrator %s has enabled reading pms", PlayerName2(playerid));
  1891. MessageToAdmins(blue,string);
  1892. } else if(strcmp(params,"caps",true) == 0) {
  1893. ServerInfo[NoCaps] = 0;
  1894. dini_IntSet(file,"NoCaps",0);
  1895. format(string,sizeof(string),"Administrator %s has allowed captial letters in chat", PlayerName2(playerid));
  1896. SendClientMessageToAll(blue,string);
  1897. } else if(strcmp(params,"admincmdmsgs",true) == 0) {
  1898. ServerInfo[AdminCmdMsg] = 1;
  1899. dini_IntSet(file,"AdminCmdMessages",1);
  1900. format(string,sizeof(string),"Administrator %s has enabled admin command messages", PlayerName2(playerid));
  1901. MessageToAdmins(green,string);
  1902. } else if(strcmp(params,"connectmsgs",true) == 0) {
  1903. ServerInfo[ConnectMessages] = 1;
  1904. dini_IntSet(file,"ConnectMessages",1);
  1905. format(string,sizeof(string),"Administrator %s has enabled connect & disconnect messages", PlayerName2(playerid));
  1906. MessageToAdmins(green,string);
  1907. } else if(strcmp(params,"autologin",true) == 0) {
  1908. ServerInfo[AutoLogin] = 1;
  1909. dini_IntSet(file,"AutoLogin",1);
  1910. format(string,sizeof(string),"Administrator %s has enabled auto login", PlayerName2(playerid));
  1911. MessageToAdmins(green,string);
  1912. } else {
  1913. SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps /cmdmsg ]");
  1914. } return 1;
  1915. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1916. }
  1917.  
  1918. dcmd_lweaps(playerid,params[]) {
  1919. #pragma unused params
  1920. if(PlayerInfo[playerid][Level] >= 3) {
  1921. GivePlayerWeapon(playerid,28,1000); GivePlayerWeapon(playerid,31,1000); GivePlayerWeapon(playerid,34,1000);
  1922. GivePlayerWeapon(playerid,38,1000); GivePlayerWeapon(playerid,16,1000); GivePlayerWeapon(playerid,42,1000);
  1923. GivePlayerWeapon(playerid,14,1000); GivePlayerWeapon(playerid,46,1000); GivePlayerWeapon(playerid,9,1);
  1924. GivePlayerWeapon(playerid,24,1000); GivePlayerWeapon(playerid,26,1000); return 1;
  1925. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  1926. }
  1927.  
  1928. dcmd_countdown(playerid,params[]) {
  1929. #pragma unused params
  1930. if(PlayerInfo[playerid][Level] >= 3) {
  1931. if(CountDown == -1) {
  1932. CountDown = 6;
  1933. SetTimer("countdown",1000,0);
  1934. return CMDMessageToAdmins(playerid,"COUNTDOWN");
  1935. } else return SendClientMessage(playerid,red,"ERROR: Countdown in progress");
  1936. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1937. }
  1938.  
  1939. dcmd_duel(playerid,params[]) {
  1940. if(PlayerInfo[playerid][Level] >= 5) {
  1941. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  1942. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp) || !IsNumeric(tmp2)) {
  1943. SendClientMessage(playerid, red, "USAGE: /duel [player1 id] [player2 id] [location] (Locations: 1, 2, 3]");
  1944. return SendClientMessage(playerid, red, "If location isnt stated then players duel at their present location");
  1945. }
  1946. new player1 = strval(tmp), player2 = strval(tmp2), location, string[128];
  1947. if(!strlen(tmp3)) location = 0; else location = strval(tmp3);
  1948. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1949. if(PlayerInfo[player2][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1950. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1951. if(IsPlayerConnected(player2) && player2 != INVALID_PLAYER_ID) {
  1952. if(InDuel[player1] == 1) return SendClientMessage(playerid,red,"ERROR: Player1 is already in a duel");
  1953. if(InDuel[player2] == 1) return SendClientMessage(playerid,red,"ERROR: Player2 is already in a duel");
  1954.  
  1955. if(location == 1) {
  1956. SetPlayerInterior(player1,16); SetPlayerPos(player1,-1404.067, 1270.3706, 1042.8672);
  1957. SetPlayerInterior(player2,16); SetPlayerPos(player2,-1395.067, 1261.3706, 1042.8672);
  1958. } else if(location == 2) {
  1959. SetPlayerInterior(player1,0); SetPlayerPos(player1,1353.407,2188.155,11.02344);
  1960. SetPlayerInterior(player2,0); SetPlayerPos(player2,1346.255,2142.843,11.01563);
  1961. } else if(location == 3) {
  1962. SetPlayerInterior(player1,10); SetPlayerPos(player1,-1041.037,1078.729,1347.678); SetPlayerFacingAngle(player1,135);
  1963. SetPlayerInterior(player2,10); SetPlayerPos(player2,-1018.061,1052.502,1346.327); SetPlayerFacingAngle(player2,45);
  1964. }
  1965. InDuel[player1] = 1;
  1966. InDuel[player2] = 1;
  1967. CMDMessageToAdmins(playerid,"DUEL");
  1968. cdt[player1] = 6;
  1969. SetTimerEx("Duel",1000,0,"dd", player1, player2);
  1970. format(string, sizeof(string), "Administrator \"%s\" has started a duel between \"%s\" and \"%s\" ", pName(playerid), pName(player1), pName(player2) );
  1971. SendClientMessage(player1, blue, string); SendClientMessage(player2, blue, string);
  1972. return SendClientMessage(playerid, blue, string);
  1973. } else return SendClientMessage(playerid, red, "Player2 is not connected");
  1974. } else return SendClientMessage(playerid, red, "Player1 is not connected");
  1975. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1976. }
  1977.  
  1978. dcmd_lammo(playerid,params[]) {
  1979. #pragma unused params
  1980. if(PlayerInfo[playerid][Level] >= 3) {
  1981. MaxAmmo(playerid);
  1982. return CMDMessageToAdmins(playerid,"LAMMO");
  1983. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  1984. }
  1985.  
  1986. dcmd_vr(playerid,params[]) {
  1987. #pragma unused params
  1988. if(PlayerInfo[playerid][Level] >= 1) {
  1989. if (IsPlayerInAnyVehicle(playerid)) {
  1990. SetVehicleHealth(GetPlayerVehicleID(playerid),1250.0);
  1991. return SendClientMessage(playerid,blue,"Vehicle Fixed");
  1992. } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  1993. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  1994. }
  1995.  
  1996. dcmd_fix(playerid,params[])
  1997. {
  1998. return dcmd_vr(playerid, params);
  1999. }
  2000.  
  2001. dcmd_repair(playerid,params[])
  2002. {
  2003. #pragma unused params
  2004. if(PlayerInfo[playerid][Level] >= 1)
  2005. {
  2006. if (IsPlayerInAnyVehicle(playerid))
  2007. {
  2008. new VehicleID = GetPlayerVehicleID(playerid);
  2009. RepairVehicle(VehicleID);
  2010. GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~Vehicle ~g~Repaired!",3000,3);
  2011. return SetVehicleHealth(VehicleID, 1000);
  2012. }
  2013. else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  2014. }
  2015. else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  2016. }
  2017.  
  2018. dcmd_ltune(playerid,params[]) {
  2019. #pragma unused params
  2020. if(PlayerInfo[playerid][Level] >= 1) {
  2021. if(IsPlayerInAnyVehicle(playerid)) {
  2022. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  2023. switch(LModel)
  2024. {
  2025. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  2026. return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle");
  2027. }
  2028. CMDMessageToAdmins(playerid,"LTUNE");
  2029. SetVehicleHealth(LVehicleID,2000.0);
  2030. TuneLCar(LVehicleID);
  2031. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  2032. } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  2033. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  2034. }
  2035.  
  2036. dcmd_lhy(playerid,params[]) {
  2037. #pragma unused params
  2038. if(PlayerInfo[playerid][Level] >= 1) {
  2039. if(IsPlayerInAnyVehicle(playerid)) {
  2040. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  2041. switch(LModel)
  2042. {
  2043. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  2044. return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!");
  2045. }
  2046. AddVehicleComponent(LVehicleID, 1087);
  2047. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  2048. } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  2049. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  2050. }
  2051.  
  2052. dcmd_lcar(playerid,params[]) {
  2053. #pragma unused params
  2054. if(PlayerInfo[playerid][Level] >= 3) {
  2055. if (!IsPlayerInAnyVehicle(playerid)) {
  2056. CarSpawner(playerid,415);
  2057. CMDMessageToAdmins(playerid,"LCAR");
  2058. return SendClientMessage(playerid,blue,"Enjoy your new car");
  2059. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2060. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2061. }
  2062.  
  2063. dcmd_lbike(playerid,params[]) {
  2064. #pragma unused params
  2065. if(PlayerInfo[playerid][Level] >= 3) {
  2066. if (!IsPlayerInAnyVehicle(playerid)) {
  2067. CarSpawner(playerid,522);
  2068. CMDMessageToAdmins(playerid,"LBIKE");
  2069. return SendClientMessage(playerid,blue,"Enjoy your new bike");
  2070. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2071. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2072. }
  2073.  
  2074. dcmd_lheli(playerid,params[]) {
  2075. #pragma unused params
  2076. if(PlayerInfo[playerid][Level] >= 6) {
  2077. if (!IsPlayerInAnyVehicle(playerid)) {
  2078. CarSpawner(playerid,487);
  2079. CMDMessageToAdmins(playerid,"LHELI");
  2080. return SendClientMessage(playerid,blue,"Enjoy your new helicopter");
  2081. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2082. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2083. }
  2084.  
  2085. dcmd_lboat(playerid,params[]) {
  2086. #pragma unused params
  2087. if(PlayerInfo[playerid][Level] >= 6) {
  2088. if (!IsPlayerInAnyVehicle(playerid)) {
  2089. CarSpawner(playerid,493);
  2090. CMDMessageToAdmins(playerid,"LBOAT");
  2091. return SendClientMessage(playerid,blue,"Enjoy your new boat");
  2092. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2093. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2094. }
  2095.  
  2096. dcmd_lplane(playerid,params[]) {
  2097. #pragma unused params
  2098. if(PlayerInfo[playerid][Level] >= 6) {
  2099. if (!IsPlayerInAnyVehicle(playerid)) {
  2100. CarSpawner(playerid,513);
  2101. CMDMessageToAdmins(playerid,"LPLANE");
  2102. return SendClientMessage(playerid,blue,"Enjoy your new plane");
  2103. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2104. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2105. }
  2106.  
  2107. dcmd_lnos(playerid,params[]) {
  2108. #pragma unused params
  2109. if(PlayerInfo[playerid][Level] >= 1) {
  2110. if(IsPlayerInAnyVehicle(playerid)) {
  2111. switch(GetVehicleModel( GetPlayerVehicleID(playerid) )) {
  2112. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  2113. return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!");
  2114. }
  2115. AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  2116. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  2117. } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  2118. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2119. }
  2120.  
  2121. dcmd_linkcar(playerid,params[]) {
  2122. #pragma unused params
  2123. if(IsPlayerInAnyVehicle(playerid)) {
  2124. LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(playerid));
  2125. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playerid));
  2126. return SendClientMessage(playerid,lightblue, "Your vehicle is now in your virtual world and interior");
  2127. } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  2128. }
  2129.  
  2130. dcmd_car(playerid,params[]) {
  2131. if(PlayerInfo[playerid][Level] >= 3) {
  2132. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2133. if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /car [Modelid/Name] [colour1] [colour2]");
  2134. new car, colour1, colour2, string[128];
  2135. if(!IsNumeric(tmp)) car = GetVehicleModelIDFromName(tmp); else car = strval(tmp);
  2136. if(car < 400 || car > 611) return SendClientMessage(playerid, red, "ERROR: Invalid Vehicle Model");
  2137. if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
  2138. if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
  2139. if(PlayerInfo[playerid][pCar] != -1 && !IsPlayerAdmin(playerid) ) CarDeleter(PlayerInfo[playerid][pCar]);
  2140. new LVehicleID,Float:X,Float:Y,Float:Z, Float:Angle,int1; GetPlayerPos(playerid, X,Y,Z); GetPlayerFacingAngle(playerid,Angle); int1 = GetPlayerInterior(playerid);
  2141. LVehicleID = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, -1); LinkVehicleToInterior(LVehicleID,int1);
  2142. PlayerInfo[playerid][pCar] = LVehicleID;
  2143. CMDMessageToAdmins(playerid,"CAR");
  2144. 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);
  2145. SaveToFile("CarSpawns",string);
  2146. format(string, sizeof(string), "You have spawned a \"%s\" (Model:%d) colour (%d, %d)", VehicleNames[car-400], car, colour1, colour2);
  2147. return SendClientMessage(playerid,lightblue, string);
  2148. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  2149. }
  2150.  
  2151. dcmd_carhealth(playerid,params[]) {
  2152. if(PlayerInfo[playerid][Level] >= 3) {
  2153. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2154. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /carhealth [playerid] [amount]");
  2155. new player1 = strval(tmp), health = strval(tmp2), string[128];
  2156. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2157. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2158. if(IsPlayerInAnyVehicle(player1)) {
  2159. CMDMessageToAdmins(playerid,"CARHEALTH");
  2160. format(string, sizeof(string), "You have set \"%s's\" vehicle health to '%d", pName(player1), health); SendClientMessage(playerid,blue,string);
  2161. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your vehicle's health to '%d'", pName(playerid), health); SendClientMessage(player1,blue,string); }
  2162. return SetVehicleHealth(GetPlayerVehicleID(player1), health);
  2163. } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  2164. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  2165. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2166. }
  2167.  
  2168. dcmd_carcolour(playerid,params[]) {
  2169. if(PlayerInfo[playerid][Level] >= 3) {
  2170. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2171. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /carcolour [playerid] [colour1] [colour2]");
  2172. new player1 = strval(tmp), colour1, colour2, string[128];
  2173. if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
  2174. if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
  2175. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2176. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2177. if(IsPlayerInAnyVehicle(player1)) {
  2178. CMDMessageToAdmins(playerid,"CARCOLOUR");
  2179. format(string, sizeof(string), "You have changed the colour of \"%s's\" %s to '%d,%d'", pName(player1), VehicleNames[GetVehicleModel(GetPlayerVehicleID(player1))-400], colour1, colour2 ); SendClientMessage(playerid,blue,string);
  2180. 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); }
  2181. return ChangeVehicleColor(GetPlayerVehicleID(player1), colour1, colour2);
  2182. } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  2183. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  2184. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2185. }
  2186.  
  2187. dcmd_god(playerid,params[]) {
  2188. #pragma unused params
  2189. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  2190. if(PlayerInfo[playerid][God] == 0) {
  2191. PlayerInfo[playerid][God] = 1;
  2192. SetPlayerHealth(playerid,100000);
  2193. GivePlayerWeapon(playerid,16,50000); GivePlayerWeapon(playerid,26,50000);
  2194. SendClientMessage(playerid,green,"GODMODE ON");
  2195. return CMDMessageToAdmins(playerid,"GOD");
  2196. } else {
  2197. PlayerInfo[playerid][God] = 0;
  2198. SendClientMessage(playerid,red,"GODMODE OFF");
  2199. SetPlayerHealth(playerid, 100);
  2200. } return GivePlayerWeapon(playerid,35,0);
  2201. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 5 to use this command");
  2202. }
  2203.  
  2204. dcmd_sgod(playerid,params[]) {
  2205. #pragma unused params
  2206. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  2207. if(PlayerInfo[playerid][God] == 0) {
  2208. PlayerInfo[playerid][God] = 1;
  2209. SetPlayerHealth(playerid,100000);
  2210. GivePlayerWeapon(playerid,16,50000); GivePlayerWeapon(playerid,26,50000);
  2211. return SendClientMessage(playerid,green,"GODMODE ON");
  2212. } else {
  2213. PlayerInfo[playerid][God] = 0;
  2214. SendClientMessage(playerid,red,"GODMODE OFF");
  2215. SetPlayerHealth(playerid, 100); return GivePlayerWeapon(playerid,35,0); }
  2216. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 5 to use this command");
  2217. }
  2218.  
  2219. dcmd_godcar(playerid,params[]) {
  2220. #pragma unused params
  2221. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  2222. if(IsPlayerInAnyVehicle(playerid)) {
  2223. if(PlayerInfo[playerid][GodCar] == 0) {
  2224. PlayerInfo[playerid][GodCar] = 1;
  2225. CMDMessageToAdmins(playerid,"GODCAR");
  2226. return SendClientMessage(playerid,green,"GODCARMODE ON");
  2227. } else {
  2228. PlayerInfo[playerid][GodCar] = 0;
  2229. return SendClientMessage(playerid,red,"GODCARMODE OFF"); }
  2230. } else return SendClientMessage(playerid,red,"ERROR: You need to be in a car to use this command");
  2231. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 5 to use this command");
  2232. }
  2233.  
  2234. dcmd_die(playerid,params[]) {
  2235. #pragma unused params
  2236. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  2237. new Float:x, Float:y, Float:z ;
  2238. GetPlayerPos( playerid, Float:x, Float:y, Float:z );
  2239. CreateExplosion(Float:x+10, Float:y, Float:z, 8,10.0);
  2240. CreateExplosion(Float:x-10, Float:y, Float:z, 8,10.0);
  2241. CreateExplosion(Float:x, Float:y+10, Float:z, 8,10.0);
  2242. CreateExplosion(Float:x, Float:y-10, Float:z, 8,10.0);
  2243. CreateExplosion(Float:x+10, Float:y+10, Float:z, 8,10.0);
  2244. CreateExplosion(Float:x-10, Float:y+10, Float:z, 8,10.0);
  2245. return CreateExplosion(Float:x-10, Float:y-10, Float:z, 8,10.0);
  2246. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  2247. }
  2248.  
  2249. dcmd_getid(playerid,params[]) {
  2250. if(!strlen(params)) return SendClientMessage(playerid,blue,"Correct Usage: /getid [part of nick]");
  2251. new found, string[128], playername[MAX_PLAYER_NAME];
  2252. format(string,sizeof(string),"Searched for: \"%s\" ",params);
  2253. SendClientMessage(playerid,blue,string);
  2254. for(new i=0; i <= MAX_PLAYERS; i++)
  2255. {
  2256. if(IsPlayerConnected(i))
  2257. {
  2258. GetPlayerName(i, playername, MAX_PLAYER_NAME);
  2259. new namelen = strlen(playername);
  2260. new bool:searched=false;
  2261. for(new pos=0; pos <= namelen; pos++)
  2262. {
  2263. if(searched != true)
  2264. {
  2265. if(strfind(playername,params,true) == pos)
  2266. {
  2267. found++;
  2268. format(string,sizeof(string),"%d. %s (ID %d)",found,playername,i);
  2269. SendClientMessage(playerid, green ,string);
  2270. searched = true;
  2271. }
  2272. }
  2273. }
  2274. }
  2275. }
  2276. if(found == 0) SendClientMessage(playerid, lightblue, "No players have this in their nick");
  2277. return 1;
  2278. }
  2279.  
  2280. dcmd_asay(playerid,params[]) {
  2281. #pragma unused params
  2282. if(PlayerInfo[playerid][Level] >= 1) {
  2283. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /asay [text]");
  2284. new string[128]; format(string, sizeof(string), "**Admin %s: %s", PlayerName2(playerid), params[0] );
  2285. return SendClientMessageToAll(COLOR_PINK,string);
  2286. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2287. }
  2288.  
  2289. dcmd_setping(playerid,params[]) {
  2290. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2291. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setping [ping] Set to 0 to disable");
  2292. new string[128], ping = strval(params);
  2293. ServerInfo[MaxPing] = ping;
  2294. CMDMessageToAdmins(playerid,"SETPING");
  2295. new file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  2296. dini_IntSet(file,"MaxPing",ping);
  2297. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayerPlaySound(i,1057,0.0,0.0,0.0);
  2298. if(ping == 0) format(string,sizeof(string),"Administrator %s has disabled maximum ping", PlayerName2(playerid), ping);
  2299. else format(string,sizeof(string),"Administrator %s has set the maximum ping to %d", PlayerName2(playerid), ping);
  2300. return SendClientMessageToAll(blue,string);
  2301. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  2302. }
  2303.  
  2304. dcmd_ping(playerid,params[]) {
  2305. if(PlayerInfo[playerid][Level] >= 1) {
  2306. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ping [playerid]");
  2307. new player1 = strval(params), string[128];
  2308. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2309. new Sum, Average, x;
  2310. while (x < PING_MAX_EXCEEDS) {
  2311. Sum += PlayerInfo[player1][pPing][x];
  2312. x++;
  2313. }
  2314. Average = (Sum / PING_MAX_EXCEEDS);
  2315. 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] );
  2316. return SendClientMessage(playerid,blue,string);
  2317. } else return SendClientMessage(playerid, red, "Player is not connected");
  2318. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2319. }
  2320.  
  2321. dcmd_highlight(playerid,params[]) {
  2322. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2323. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /highlight [playerid]");
  2324. new player1, playername[MAX_PLAYER_NAME], string[128];
  2325. player1 = strval(params);
  2326.  
  2327. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2328. GetPlayerName(player1, playername, sizeof(playername));
  2329. if(PlayerInfo[player1][blip] == 0) {
  2330. CMDMessageToAdmins(playerid,"HIGHLIGHT");
  2331. PlayerInfo[player1][pColour] = GetPlayerColor(player1);
  2332. PlayerInfo[player1][blip] = 1;
  2333. BlipTimer[player1] = SetTimerEx("HighLight", 1000, 1, "i", player1);
  2334. format(string,sizeof(string),"You have highlighted %s's marker", playername);
  2335. } else {
  2336. KillTimer( BlipTimer[player1] );
  2337. PlayerInfo[player1][blip] = 0;
  2338. SetPlayerColor(player1, PlayerInfo[player1][pColour] );
  2339. format(string,sizeof(string),"You have stopped highlighting %s's marker", playername);
  2340. }
  2341. return SendClientMessage(playerid,blue,string);
  2342. } else return SendClientMessage(playerid, red, "Player is not connected");
  2343. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2344. }
  2345.  
  2346. dcmd_setgravity(playerid,params[]) {
  2347. if(PlayerInfo[playerid][Level] >= 3) {
  2348. if(!strlen(params)||!(strval(params)<=50&&strval(params)>=-50)) return SendClientMessage(playerid,red,"USAGE: /setgravity <-50.0 - 50.0>");
  2349. CMDMessageToAdmins(playerid,"SETGRAVITY");
  2350. 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);
  2351. SetGravity(Gravity); return SendClientMessageToAll(blue,string);
  2352. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2353. }
  2354.  
  2355. dcmd_lcredits(playerid,params[]) {
  2356. #pragma unused params
  2357. return SendClientMessage(playerid,green,"LAdmin. Adminscript for sa-mp 0.2.x. Created by LethaL. Version: 4. Released: 07/2008");
  2358. }
  2359.  
  2360. dcmd_serverinfo(playerid,params[]) {
  2361. #pragma unused params
  2362. new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000); DestroyVehicle(TotalVehicles);
  2363. new numo = CreateObject(1245,0,0,1000,0,0,0); DestroyObject(numo);
  2364. new nump = CreatePickup(371,2,0,0,1000); DestroyPickup(nump);
  2365. new gz = GangZoneCreate(3,3,5,5); GangZoneDestroy(gz);
  2366.  
  2367. new model[250], nummodel;
  2368. for(new i=1;i<TotalVehicles;i++) model[GetVehicleModel(i)-400]++;
  2369. for(new i=0;i<250;i++) if(model[i]!=0) nummodel++;
  2370.  
  2371. new string[256];
  2372. format(string,sizeof(string),"Server Info: [ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
  2373. SendClientMessage(playerid,green,string);
  2374. format(string,sizeof(string),"Server Info: [ Vehicles: %d || Models %d || Players In Vehicle: %d || InCar %d / OnBike %d ]",TotalVehicles-1,nummodel, InVehCount(),InCarCount(),OnBikeCount() );
  2375. SendClientMessage(playerid,green,string);
  2376. format(string,sizeof(string),"Server Info: [ Objects: %d || Pickups %d || Gangzones %d ]",numo-1, nump, gz);
  2377. SendClientMessage(playerid,green,string);
  2378. format(string,sizeof(string),"Server Info: [ Players In Jail %d || Players Frozen %d || Muted %d ]",JailedPlayers(),FrozenPlayers(), MutedPlayers() );
  2379. return SendClientMessage(playerid,green,string);
  2380. }
  2381.  
  2382. dcmd_announce(playerid,params[]) {
  2383. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2384. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /announce <text>");
  2385. CMDMessageToAdmins(playerid,"ANNOUNCE");
  2386. return GameTextForAll(params,4000,3);
  2387. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2388. }
  2389.  
  2390. dcmd_announce2(playerid,params[]) {
  2391. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2392. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index) ,tmp3 = strtok(params,Index);
  2393. if(!strlen(tmp)||!strlen(tmp2)||!strlen(tmp3)) return SendClientMessage(playerid,red,"USAGE: /announce <style> <time> <text>");
  2394. if(!(strval(tmp) >= 0 && strval(tmp) <= 6) || strval(tmp) == 2) return SendClientMessage(playerid,red,"ERROR: Invalid gametext style. Range: 0 - 6");
  2395. CMDMessageToAdmins(playerid,"ANNOUNCE2");
  2396. return GameTextForAll(params[(strlen(tmp)+strlen(tmp2)+2)], strval(tmp2), strval(tmp));
  2397. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2398. }
  2399.  
  2400. dcmd_lslowmo(playerid,params[]) {
  2401. #pragma unused params
  2402. if(PlayerInfo[playerid][Level] >= 1) {
  2403. new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); CreatePickup(1241, 4, x, y, z);
  2404. return CMDMessageToAdmins(playerid,"LSLOWMO");
  2405. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2406. }
  2407.  
  2408. dcmd_jetpack(playerid,params[]) {
  2409. if(!strlen(params)) {
  2410. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2411. SendClientMessage(playerid,blue,"Jetpack Spawned.");
  2412. CMDMessageToAdmins(playerid,"JETPACK");
  2413. return SetPlayerSpecialAction(playerid, 2);
  2414. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2415. } else {
  2416. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2417. player1 = strval(params);
  2418. if(PlayerInfo[playerid][Level] >= 4) {
  2419. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2420. CMDMessageToAdmins(playerid,"JETPACK"); SetPlayerSpecialAction(player1, 2);
  2421. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2422. format(string,sizeof(string),"Administrator \"%s\" has given you a jetpack",adminname); SendClientMessage(player1,blue,string);
  2423. format(string,sizeof(string),"You have given %s a jetpack", playername);
  2424. return SendClientMessage(playerid,blue,string);
  2425. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2426. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2427. }
  2428. }
  2429.  
  2430. dcmd_flip(playerid,params[]) {
  2431. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2432. if(!strlen(params)) {
  2433. if(IsPlayerInAnyVehicle(playerid)) {
  2434. new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(playerid, X, Y, Z); VehicleID = GetPlayerVehicleID(playerid);
  2435. GetVehicleZAngle(VehicleID, Angle); SetVehiclePos(VehicleID, X, Y, Z); SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1000.0);
  2436. CMDMessageToAdmins(playerid,"FLIP"); return SendClientMessage(playerid, blue,"Vehicle Flipped. You can also do /flip [playerid]");
  2437. } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle. You can also do /flip [playerid]");
  2438. }
  2439. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2440. player1 = strval(params);
  2441.  
  2442. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2443. CMDMessageToAdmins(playerid,"FLIP");
  2444. if (IsPlayerInAnyVehicle(player1)) {
  2445. new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(player1, X, Y, Z); VehicleID = GetPlayerVehicleID(player1);
  2446. GetVehicleZAngle(VehicleID, Angle); SetVehiclePos(VehicleID, X, Y, Z); SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1000.0);
  2447. CMDMessageToAdmins(playerid,"FLIP");
  2448. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2449. format(string,sizeof(string),"Administrator %s flipped your vehicle",adminname); SendClientMessage(player1,blue,string);
  2450. format(string,sizeof(string),"You have flipped %s's vehicle", playername);
  2451. return SendClientMessage(playerid, blue,string);
  2452. } else return SendClientMessage(playerid,red,"Error: This player isn't in a vehicle");
  2453. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2454. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2455. }
  2456.  
  2457. dcmd_destroycar(playerid,params[]) {
  2458. #pragma unused params
  2459. if(PlayerInfo[playerid][Level] >= 3) return EraseVehicle(GetPlayerVehicleID(playerid));
  2460. else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2461. }
  2462. dcmd_ltc(playerid,params[]) {
  2463. #pragma unused params
  2464. if(PlayerInfo[playerid][Level] >= 1) {
  2465. if(!IsPlayerInAnyVehicle(playerid)) {
  2466. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  2467. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  2468. 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);
  2469. AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  2470. AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  2471. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,0);
  2472. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  2473. return PlayerInfo[playerid][pCar] = LVehicleIDt;
  2474. } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2475. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  2476. }
  2477.  
  2478. dcmd_warp(playerid,params[])
  2479. {
  2480. return dcmd_teleplayer(playerid,params);
  2481. }
  2482.  
  2483. dcmd_teleplayer(playerid,params[]) {
  2484. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2485. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2486. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /teleplayer [playerid] to [playerid]");
  2487. new player1 = strval(tmp), player2 = strval(tmp2), string[128], Float:plocx,Float:plocy,Float:plocz;
  2488. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2489. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2490. if(IsPlayerConnected(player2) && player2 != INVALID_PLAYER_ID) {
  2491. CMDMessageToAdmins(playerid,"TELEPLAYER");
  2492. GetPlayerPos(player2, plocx, plocy, plocz);
  2493. new intid = GetPlayerInterior(player2); SetPlayerInterior(player1,intid);
  2494. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(player2));
  2495. if (GetPlayerState(player1) == PLAYER_STATE_DRIVER)
  2496. {
  2497. new VehicleID = GetPlayerVehicleID(player1);
  2498. SetVehiclePos(VehicleID, plocx, plocy+4, plocz); LinkVehicleToInterior(VehicleID,intid);
  2499. SetVehicleVirtualWorld(VehicleID, GetPlayerVirtualWorld(player2) );
  2500. }
  2501. else SetPlayerPos(player1,plocx,plocy+2, plocz);
  2502. format(string,sizeof(string),"Administrator \"%s\" has teleported \"%s\" to \"%s's\" location", pName(playerid), pName(player1), pName(player2) );
  2503. SendClientMessage(player1,blue,string); SendClientMessage(player2,blue,string);
  2504. format(string,sizeof(string),"You have teleported \"%s\" to \"%s's\" location", pName(player1), pName(player2) );
  2505. return SendClientMessage(playerid,blue,string);
  2506. } else return SendClientMessage(playerid, red, "Player2 is not connected");
  2507. } else return SendClientMessage(playerid, red, "Player1 is not connected");
  2508. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2509. }
  2510.  
  2511. dcmd_goto(playerid,params[]) {
  2512. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2513. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /goto [playerid]");
  2514. new player1, string[128];
  2515. if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
  2516. else player1 = strval(params);
  2517. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2518. CMDMessageToAdmins(playerid,"GOTO");
  2519. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z); SetPlayerInterior(playerid,GetPlayerInterior(player1));
  2520. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
  2521. if(GetPlayerState(playerid) == 2) {
  2522. SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z); LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(player1));
  2523. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(player1));
  2524. } else SetPlayerPos(playerid,x+2,y,z);
  2525. format(string,sizeof(string),"You have teleported to \"%s\"", pName(player1));
  2526. return SendClientMessage(playerid,blue,string);
  2527. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2528. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2529. }
  2530.  
  2531. dcmd_vgoto(playerid,params[]) {
  2532. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2533. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /vgoto [vehicleid]");
  2534. new player1, string[128];
  2535. player1 = strval(params);
  2536. CMDMessageToAdmins(playerid,"VGOTO");
  2537. new Float:x, Float:y, Float:z; GetVehiclePos(player1,x,y,z);
  2538. SetPlayerVirtualWorld(playerid,GetVehicleVirtualWorld(player1));
  2539. if(GetPlayerState(playerid) == 2) {
  2540. SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z);
  2541. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetVehicleVirtualWorld(player1) );
  2542. } else SetPlayerPos(playerid,x+2,y,z);
  2543. format(string,sizeof(string),"You have teleported to vehicle id %d", player1);
  2544. return SendClientMessage(playerid,blue,string);
  2545. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2546. }
  2547.  
  2548. dcmd_vget(playerid,params[]) {
  2549. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2550. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /vget [vehicleid]");
  2551. new player1, string[128];
  2552. player1 = strval(params);
  2553. CMDMessageToAdmins(playerid,"VGET");
  2554. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z);
  2555. SetVehiclePos(player1,x+3,y,z);
  2556. SetVehicleVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2557. format(string,sizeof(string),"You have brough vehicle id %d to your location", player1);
  2558. return SendClientMessage(playerid,blue,string);
  2559. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2560. }
  2561.  
  2562. dcmd_lgoto(playerid,params[]) {
  2563. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2564. new Float:x, Float:y, Float:z;
  2565. new tmp[256], tmp2[256], tmp3[256];
  2566. new string[128], Index; tmp = strtok(params,Index); tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2567. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid,red,"USAGE: /lgoto [x] [y] [z]");
  2568. x = strval(tmp); y = strval(tmp2); z = strval(tmp3);
  2569. CMDMessageToAdmins(playerid,"LGOTO");
  2570. if(GetPlayerState(playerid) == 2) SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
  2571. else SetPlayerPos(playerid,x,y,z);
  2572. format(string,sizeof(string),"You have teleported to %f, %f, %f", x,y,z); return SendClientMessage(playerid,blue,string);
  2573. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2574. }
  2575.  
  2576. dcmd_givecar(playerid,params[]) {
  2577. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2578. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /givecar [playerid]");
  2579. new player1 = strval(params), playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2580. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2581. if(IsPlayerInAnyVehicle(player1)) return SendClientMessage(playerid,red,"ERROR: Player already has a vehicle");
  2582. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2583. CMDMessageToAdmins(playerid,"GIVECAR");
  2584. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  2585. CarSpawner(player1,411);
  2586. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2587. format(string,sizeof(string),"Administrator %s has given you a Infernus",adminname); SendClientMessage(player1,blue,string);
  2588. format(string,sizeof(string),"You have given %s a car", playername); return SendClientMessage(playerid,blue,string);
  2589. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2590. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2591. }
  2592.  
  2593. dcmd_gethere(playerid,params[]) {
  2594. if(PlayerInfo[playerid][Level] >= 3) {
  2595. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /gethere [playerid]");
  2596. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2597. player1 = strval(params);
  2598. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2599. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2600. CMDMessageToAdmins(playerid,"GETHERE");
  2601. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
  2602. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2603. if(GetPlayerState(player1) == 2) {
  2604. new VehicleID = GetPlayerVehicleID(player1);
  2605. SetVehiclePos(VehicleID,x+3,y,z); LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  2606. SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
  2607. } else SetPlayerPos(player1,x+2,y,z);
  2608. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2609. format(string,sizeof(string),"You have been teleported to Administrator %s's location",adminname); SendClientMessage(player1,blue,string);
  2610. format(string,sizeof(string),"You have teleported %s to your location", playername); return SendClientMessage(playerid,blue,string);
  2611. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2612. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2613. }
  2614.  
  2615. dcmd_get(playerid,params[]) {
  2616. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2617. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /get [playerid]");
  2618. new player1, string[128];
  2619. if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
  2620. else player1 = strval(params);
  2621. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2622. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2623. CMDMessageToAdmins(playerid,"GET");
  2624. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
  2625. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2626. if(GetPlayerState(player1) == 2) {
  2627. new VehicleID = GetPlayerVehicleID(player1);
  2628. SetVehiclePos(VehicleID,x+3,y,z); LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  2629. SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
  2630. } else SetPlayerPos(player1,x+2,y,z);
  2631. format(string,sizeof(string),"You have been teleported to Administrator \"%s's\" location", pName(playerid) ); SendClientMessage(player1,blue,string);
  2632. format(string,sizeof(string),"You have teleported \"%s\" to your location", pName(player1) );
  2633. return SendClientMessage(playerid,blue,string);
  2634. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2635. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2636. }
  2637.  
  2638. dcmd_fu(playerid,params[]) {
  2639. if(PlayerInfo[playerid][Level] >= 2) {
  2640. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /fu [playerid]");
  2641. new player1 = strval(params), string[128], NewName[MAX_PLAYER_NAME];
  2642. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2643. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2644. CMDMessageToAdmins(playerid,"FU");
  2645. SetPlayerHealth(player1,1.0); SetPlayerArmour(player1,0.0); ResetPlayerWeapons(player1);ResetPlayerMoney(player1);GivePlayerWeapon(player1,12,1);
  2646. SetPlayerSkin(player1, 137); SetPlayerScore(player1, 0); SetPlayerColor(player1,COLOR_PINK); SetPlayerWeather(player1,19); SetPlayerWantedLevel(player1,6);
  2647. format(NewName,sizeof(NewName),"[N00B]%s", pName(player1) ); SetPlayerName(player1,NewName);
  2648. if(IsPlayerInAnyVehicle(player1)) EraseVehicle(GetPlayerVehicleID(player1));
  2649. if(player1 != playerid) { format(string,sizeof(string),"~w~%s: ~r~Fuck You", pName(playerid) ); GameTextForPlayer(player1, string, 2500, 3); }
  2650. format(string,sizeof(string),"Fuck you \"%s\"", pName(player1) ); return SendClientMessage(playerid,blue,string);
  2651. } else return SendClientMessage(playerid, red, "Player is not connected");
  2652. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2653. }
  2654.  
  2655. dcmd_warn(playerid,params[]) {
  2656. if(PlayerInfo[playerid][Level] >= 2) {
  2657. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2658. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /warn [playerid] [reason]");
  2659. new warned = strval(tmp), str[128];
  2660. if(PlayerInfo[warned][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2661. if(IsPlayerConnected(warned) && warned != INVALID_PLAYER_ID) {
  2662. if(warned != playerid) {
  2663. CMDMessageToAdmins(playerid,"WARN");
  2664. PlayerInfo[warned][Warnings]++;
  2665. if( PlayerInfo[warned][Warnings] == MAX_WARNINGS) {
  2666. 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);
  2667. SendClientMessageToAll(grey, str);
  2668. SaveToFile("KickLog",str); Kick(warned);
  2669. return PlayerInfo[warned][Warnings] = 0;
  2670. } else {
  2671. 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);
  2672. return SendClientMessageToAll(yellow, str);
  2673. }
  2674. } else return SendClientMessage(playerid, red, "ERROR: You cannot warn yourself");
  2675. } else return SendClientMessage(playerid, red, "ERROR: Player is not connected");
  2676. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2677. }
  2678.  
  2679. dcmd_kick(playerid,params[]) {
  2680. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2681. if(PlayerInfo[playerid][Level] >= 3) {
  2682. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2683. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /kick [playerid] [reason]");
  2684. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2685. player1 = strval(tmp);
  2686.  
  2687. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2688. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2689. CMDMessageToAdmins(playerid,"KICK");
  2690. if(!strlen(tmp2)) {
  2691. format(string,sizeof(string),"%s has been kicked by Administrator %s [no reason given] ",playername,adminname); SendClientMessageToAll(grey,string);
  2692. SaveToFile("KickLog",string); print(string); return Kick(player1);
  2693. } else {
  2694. format(string,sizeof(string),"%s has been kicked by Administrator %s [reason: %s] ",playername,adminname,params[2]); SendClientMessageToAll(grey,string);
  2695. SaveToFile("KickLog",string); print(string); return Kick(player1); }
  2696. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2697. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2698. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2699. }
  2700.  
  2701. public OnBanResponse(index, response_code, data[])
  2702. {
  2703. if(response_code == 200)
  2704. {
  2705. if(strcmp(data, "Success?Ban added", true)) printf("[SAMP-BANS]: Error, API responded with: %s", data);
  2706. else print("[SAMP-BANS]: Ban added successfully");
  2707. }
  2708. else printf("[SAMP-BANS]: Encountered an error, the page didn't respond");
  2709. }
  2710.  
  2711. public OnRemoveResponse(index, response_code, data[])
  2712. {
  2713. if(response_code == 200)
  2714. {
  2715. if(sscanf(data, "p?ss", error, code)) printf("[SAMP-BANS]: Error, API responded with: %s", data);
  2716. else if(strcmp(error, "Success", true) == 0) SendClientMessage(index, COLOR_RED, code);
  2717. }
  2718. else printf("[SAMP-BANS]: Encountered an error, the page didn't respond");
  2719. }
  2720.  
  2721. public OnCheckResponse(index, response_code, data[])
  2722. {
  2723. if(response_code == 200)
  2724. {
  2725. if(sscanf(data, "p?ss", error, code)) printf("[SAMP-BANS]: Error, API responded with: %s", data);
  2726. else if(strcmp(error, "Success", true) == 0)
  2727. {
  2728. SendClientMessage(index, 0xFFFFFF, code);
  2729. Kick(index);
  2730. printf("[SAMP-BANS]: %s", code);
  2731. }
  2732. else if(strcmp(code, "Ban not found")) printf("[SAMP-BANS]: Error, API responded with: %s", code);
  2733. }
  2734. else printf("[SAMP-BANS]: Encountered an error, the page didn't respond");
  2735. }
  2736.  
  2737.  
  2738. dcmd_ban(playerid,params[]) {
  2739. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2740. if(PlayerInfo[playerid][Level] >= 3) {
  2741. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2742. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ban [playerid] [reason]");
  2743. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "ERROR: You must give a reason");
  2744. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2745. player1 = strval(tmp);
  2746.  
  2747. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2748. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2749. new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
  2750. CMDMessageToAdmins(playerid,"BAN");
  2751. format(post_string, sizeof(post_string), "action=addban&apikey="#APIKEY"&ban_user=%s&ban_reason=%s&ban_admin=%s&ban_ip=%s&ban_time=0", playername, params[2], adminname, ips[player1]);
  2752. HTTP(playerid, HTTP_POST, APIPATH, post_string, "OnBanResponse");
  2753. 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);
  2754. SendClientMessageToAll(grey,string);
  2755. SaveToFile("BanLog",string);
  2756. print(string);
  2757. if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
  2758. format(string,sizeof(string),"banned by Administrator %s. Reason: %s", adminname, params[2] );
  2759. return BanEx(player1, string);
  2760. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2761. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2762. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2763. }
  2764.  
  2765. dcmd_rban(playerid,params[]) {
  2766. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2767. if(PlayerInfo[playerid][Level] >= 4) {
  2768. new ip[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2769. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /rban [playerid] [reason]");
  2770. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "ERROR: You must give a reason");
  2771. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2772. player1 = strval(tmp);
  2773.  
  2774. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2775. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2776. new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
  2777. CMDMessageToAdmins(playerid,"RBAN");
  2778. 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);
  2779. SendClientMessageToAll(grey,string);
  2780. SaveToFile("BanLog",string);
  2781. print(string);
  2782. if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
  2783. GetPlayerIp(player1,ip,sizeof(ip));
  2784. strdel(ip,strlen(ip)-2,strlen(ip));
  2785. format(ip,128,"%s**",ip);
  2786. format(ip,128,"banip %s",ip);
  2787. format(post_string, sizeof(post_string), "action=addban&apikey="#APIKEY"&ban_user=%s&ban_reason=%s&ban_admin=%s&ban_ip=%s&ban_time=0", playername, params[2], adminname, ip);
  2788. HTTP(playerid, HTTP_POST, APIPATH, post_string, "OnBanResponse");
  2789. SendRconCommand(ip);
  2790. return 1;
  2791. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2792. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2793. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2794. }
  2795.  
  2796. dcmd_slap(playerid,params[]) {
  2797. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2798. if(PlayerInfo[playerid][Level] >= 2) {
  2799. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2800. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /slap [playerid] [reason/with]");
  2801. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2802. player1 = strval(tmp);
  2803.  
  2804. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2805. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2806. CMDMessageToAdmins(playerid,"SLAP");
  2807. new Float:Health, Float:x, Float:y, Float:z; GetPlayerHealth(player1,Health); SetPlayerHealth(player1,Health-25);
  2808. 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);
  2809.  
  2810. if(strlen(tmp2)) {
  2811. format(string,sizeof(string),"You have been slapped by Administrator %s %s ",adminname,params[2]); SendClientMessage(player1,red,string);
  2812. format(string,sizeof(string),"You have slapped %s %s ",playername,params[2]); return SendClientMessage(playerid,blue,string);
  2813. } else {
  2814. format(string,sizeof(string),"You have been slapped by Administrator %s ",adminname); SendClientMessage(player1,red,string);
  2815. format(string,sizeof(string),"You have slapped %s",playername); return SendClientMessage(playerid,blue,string); }
  2816. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2817. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2818. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2819. }
  2820.  
  2821. dcmd_explode(playerid,params[]) {
  2822. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2823. if(PlayerInfo[playerid][Level] >= 3) {
  2824. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2825. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /explode [playerid] [reason]");
  2826. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2827. player1 = strval(tmp);
  2828.  
  2829. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2830. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2831. CMDMessageToAdmins(playerid,"EXPLODE");
  2832. new Float:burnx, Float:burny, Float:burnz; GetPlayerPos(player1,burnx, burny, burnz); CreateExplosion(burnx, burny , burnz, 7,10.0);
  2833.  
  2834. if(strlen(tmp2)) {
  2835. format(string,sizeof(string),"You have been exploded by Administrator %s [reason: %s]",adminname,params[2]); SendClientMessage(player1,blue,string);
  2836. format(string,sizeof(string),"You have exploded %s [reason: %s]", playername,params[2]); return SendClientMessage(playerid,blue,string);
  2837. } else {
  2838. format(string,sizeof(string),"You have been exploded by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2839. format(string,sizeof(string),"You have exploded %s", playername); return SendClientMessage(playerid,blue,string); }
  2840. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2841. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2842. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2843. }
  2844.  
  2845. forward JailPlayerEx(playerid, jtime);
  2846. public JailPlayerEx(playerid, jtime)
  2847. {
  2848. if(PlayerInfo[playerid][Jailed] != 0) KillTimer(JailTimer[playerid]);
  2849. PlayerInfo[playerid][JailTime] = jtime*1000*60;
  2850. SetPlayerPos(playerid,197.6661,173.8179,1003.0234);
  2851. SetPlayerInterior(playerid,3);
  2852. SetCameraBehindPlayer(playerid);
  2853. JailTimer[playerid] = SetTimerEx("JailRelease",PlayerInfo[playerid][JailTime],0,"d",playerid);
  2854. PlayerInfo[playerid][Jailed] = 1;
  2855. return 1;
  2856. }
  2857.  
  2858. dcmd_jail(playerid,params[]) {
  2859. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2860. if(PlayerInfo[playerid][Level] >= 3) {
  2861. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  2862. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid] [minutes] [reason]");
  2863. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2864. player1 = strval(tmp);
  2865.  
  2866. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2867. if(PlayerInfo[player1][Jailed] == 0) {
  2868. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2869. new jtime = strval(tmp2);
  2870. if(jtime == 0) jtime = 9999;
  2871.  
  2872. CMDMessageToAdmins(playerid,"JAIL");
  2873. PlayerInfo[player1][JailTime] = jtime*1000*60;
  2874. SetTimerEx("JailPlayer",5000,0,"d",player1);
  2875. SetTimerEx("Jail1",1000,0,"d",player1);
  2876. PlayerInfo[player1][Jailed] = 1;
  2877.  
  2878. if(jtime == 9999) {
  2879. if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has jailed %s ",adminname, playername);
  2880. else format(string,sizeof(string),"Administrator %s has jailed %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
  2881. } else {
  2882. if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes",adminname, playername, jtime);
  2883. else format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes [reason: %s]",adminname, playername, jtime, params[strlen(tmp2)+strlen(tmp)+1] );
  2884. }
  2885. return SendClientMessageToAll(blue,string);
  2886. } else return SendClientMessage(playerid, red, "Player is already in jail");
  2887. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2888. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2889. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2890. }
  2891.  
  2892. dcmd_unjail(playerid,params[]) {
  2893. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2894. if(PlayerInfo[playerid][Level] >= 3) {
  2895. new tmp[256], Index; tmp = strtok(params,Index);
  2896. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid]");
  2897. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2898. player1 = strval(tmp);
  2899.  
  2900. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2901. if(PlayerInfo[player1][Jailed] == 1) {
  2902. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2903. format(string,sizeof(string),"Administrator %s has unjailed you",adminname); SendClientMessage(player1,blue,string);
  2904. format(string,sizeof(string),"Administrator %s has unjailed %s",adminname, playername);
  2905. JailRelease(player1);
  2906. return SendClientMessageToAll(blue,string);
  2907. } else return SendClientMessage(playerid, red, "Player is not in jail");
  2908. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2909. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2910. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2911. }
  2912.  
  2913. dcmd_jailed(playerid,params[]) {
  2914. #pragma unused params
  2915. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2916. if(PlayerInfo[playerid][Level] >= 2) {
  2917. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2918. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed]) Count++;
  2919. if(Count == 0) return SendClientMessage(playerid,red, "No players are jailed");
  2920.  
  2921. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed]) {
  2922. GetPlayerName(i, adminname, sizeof(adminname));
  2923. if(!First2) { format(string, sizeof(string), "Jailed Players: (%d)%s", i,adminname); First2 = true; }
  2924. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2925. }
  2926. return SendClientMessage(playerid,COLOR_WHITE,string);
  2927. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2928. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2929. }
  2930.  
  2931. dcmd_freeze(playerid,params[]) {
  2932. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2933. if(PlayerInfo[playerid][Level] >= 3) {
  2934. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  2935. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /freeze [playerid] [minutes] [reason]");
  2936. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2937. player1 = strval(tmp);
  2938.  
  2939. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2940. if(PlayerInfo[player1][Frozen] == 0) {
  2941. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2942. new ftime = strval(tmp2);
  2943. if(ftime == 0) ftime = 9999;
  2944.  
  2945. CMDMessageToAdmins(playerid,"FREEZE");
  2946. TogglePlayerControllable(player1,false); PlayerInfo[player1][Frozen] = 1; PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  2947. PlayerInfo[player1][FreezeTime] = ftime*1000*60;
  2948. FreezeTimer[player1] = SetTimerEx("UnFreezeMe",PlayerInfo[player1][FreezeTime],0,"d",player1);
  2949.  
  2950. if(ftime == 9999) {
  2951. if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has frozen %s ",adminname, playername);
  2952. else format(string,sizeof(string),"Administrator %s has frozen %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
  2953. } else {
  2954. if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has frozen %s for %d minutes",adminname, playername, ftime);
  2955. else format(string,sizeof(string),"Administrator %s has frozen %s for %d minutes [reason: %s]",adminname, playername, ftime, params[strlen(tmp2)+strlen(tmp)+1] );
  2956. }
  2957. return SendClientMessageToAll(blue,string);
  2958. } else return SendClientMessage(playerid, red, "Player is already frozen");
  2959. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2960. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2961. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2962. }
  2963.  
  2964. dcmd_unfreeze(playerid,params[]) {
  2965. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2966. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2967. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /unfreeze [playerid]");
  2968. new player1, string[128];
  2969. player1 = strval(params);
  2970.  
  2971. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2972. if(PlayerInfo[player1][Frozen] == 1) {
  2973. CMDMessageToAdmins(playerid,"UNFREEZE");
  2974. UnFreezeMe(player1);
  2975. format(string,sizeof(string),"Administrator %s has unfrozen you", PlayerName2(playerid) ); SendClientMessage(player1,blue,string);
  2976. format(string,sizeof(string),"Administrator %s has unfrozen %s", PlayerName2(playerid), PlayerName2(player1));
  2977. return SendClientMessageToAll(blue,string);
  2978. } else return SendClientMessage(playerid, red, "Player is not frozen");
  2979. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2980. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2981. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2982. }
  2983.  
  2984. dcmd_frozen(playerid,params[]) {
  2985. #pragma unused params
  2986. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2987. if(PlayerInfo[playerid][Level] >= 2) {
  2988. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2989. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen]) Count++;
  2990. if(Count == 0) return SendClientMessage(playerid,red, "No players are frozen");
  2991.  
  2992. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen]) {
  2993. GetPlayerName(i, adminname, sizeof(adminname));
  2994. if(!First2) { format(string, sizeof(string), "Frozen Players: (%d)%s", i,adminname); First2 = true; }
  2995. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2996. }
  2997. return SendClientMessage(playerid,COLOR_WHITE,string);
  2998. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2999. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3000. }
  3001.  
  3002. dcmd_mute(playerid,params[]) {
  3003. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3004. if(PlayerInfo[playerid][Level] >= 2) {
  3005. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3006. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /mute [playerid] [reason]");
  3007. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3008. player1 = strval(tmp);
  3009.  
  3010. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  3011. if(PlayerInfo[player1][Muted] == 0) {
  3012. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3013. CMDMessageToAdmins(playerid,"MUTE");
  3014. PlayerPlaySound(player1,1057,0.0,0.0,0.0); PlayerInfo[player1][Muted] = 1; PlayerInfo[player1][MuteWarnings] = 0;
  3015.  
  3016. if(strlen(tmp2)) {
  3017. format(string,sizeof(string),"You have been muted by Administrator %s [reason: %s]",adminname,params[2]); SendClientMessage(player1,blue,string);
  3018. format(string,sizeof(string),"You have muted %s [reason: %s]", playername,params[2]); return SendClientMessage(playerid,blue,string);
  3019. } else {
  3020. format(string,sizeof(string),"You have been muted by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  3021. format(string,sizeof(string),"You have muted %s", playername); return SendClientMessage(playerid,blue,string); }
  3022. } else return SendClientMessage(playerid, red, "Player is already muted");
  3023. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  3024. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3025. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3026. }
  3027.  
  3028. dcmd_unmute(playerid,params[]) {
  3029. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3030. if(PlayerInfo[playerid][Level] >= 2) {
  3031. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /unmute [playerid]");
  3032. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3033. player1 = strval(params);
  3034.  
  3035. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  3036. if(PlayerInfo[player1][Muted] == 1) {
  3037. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3038. CMDMessageToAdmins(playerid,"UNMUTE");
  3039. PlayerPlaySound(player1,1057,0.0,0.0,0.0); PlayerInfo[player1][Muted] = 0; PlayerInfo[player1][MuteWarnings] = 0;
  3040. format(string,sizeof(string),"You have been unmuted by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  3041. format(string,sizeof(string),"You have unmuted %s", playername); return SendClientMessage(playerid,blue,string);
  3042. } else return SendClientMessage(playerid, red, "Player is not muted");
  3043. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  3044. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3045. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3046. }
  3047.  
  3048. dcmd_muted(playerid,params[]) {
  3049. #pragma unused params
  3050. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3051. if(PlayerInfo[playerid][Level] >= 2) {
  3052. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  3053. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted]) Count++;
  3054. if(Count == 0) return SendClientMessage(playerid,red, "No players are muted");
  3055.  
  3056. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted]) {
  3057. GetPlayerName(i, adminname, sizeof(adminname));
  3058. if(!First2) { format(string, sizeof(string), "Muted Players: (%d)%s", i,adminname); First2 = true; }
  3059. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  3060. }
  3061. return SendClientMessage(playerid,COLOR_WHITE,string);
  3062. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3063. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3064. }
  3065.  
  3066. dcmd_akill(playerid,params[]) {
  3067. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3068. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  3069. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /akill [playerid]");
  3070. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3071. player1 = strval(params);
  3072.  
  3073. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3074. if( (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel] ) )
  3075. return SendClientMessage(playerid, red, "You cannot akill the highest level admin");
  3076. CMDMessageToAdmins(playerid,"AKILL");
  3077. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3078. format(string,sizeof(string),"Administrator %s has killed you",adminname); SendClientMessage(player1,blue,string);
  3079. format(string,sizeof(string),"You have killed %s",playername); SendClientMessage(playerid,blue,string);
  3080. return SetPlayerHealth(player1,0.0);
  3081. } else return SendClientMessage(playerid, red, "Player is not connected");
  3082. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3083. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3084. }
  3085.  
  3086. dcmd_weaps(playerid,params[]) {
  3087. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  3088. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /weaps [playerid]");
  3089. new player1, string[128], string2[64], WeapName[24], slot, weap, ammo, Count, x;
  3090. player1 = strval(params);
  3091.  
  3092. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3093. format(string2,sizeof(string2),"[>> %s Weapons (id:%d) <<]", PlayerName2(player1), player1); SendClientMessage(playerid,blue,string2);
  3094. for (slot = 0; slot < 14; slot++) { GetPlayerWeaponData(player1, slot, weap, ammo); if( ammo != 0 && weap != 0) Count++; }
  3095. if(Count < 1) return SendClientMessage(playerid,blue,"Player has no weapons");
  3096.  
  3097. if(Count >= 1)
  3098. {
  3099. for (slot = 0; slot < 14; slot++)
  3100. {
  3101. GetPlayerWeaponData(player1, slot, weap, ammo);
  3102. if( ammo != 0 && weap != 0)
  3103. {
  3104. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  3105. if(ammo == 65535 || ammo == 1) format(string,sizeof(string),"%s%s (1)",string, WeapName );
  3106. else format(string,sizeof(string),"%s%s (%d)",string, WeapName, ammo );
  3107. x++;
  3108. if(x >= 5)
  3109. {
  3110. SendClientMessage(playerid, blue, string);
  3111. x = 0;
  3112. format(string, sizeof(string), "");
  3113. }
  3114. else format(string, sizeof(string), "%s, ", string);
  3115. }
  3116. }
  3117. if(x <= 4 && x > 0) {
  3118. string[strlen(string)-3] = '.';
  3119. SendClientMessage(playerid, blue, string);
  3120. }
  3121. }
  3122. return 1;
  3123. } else return SendClientMessage(playerid, red, "Player is not connected");
  3124. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3125. }
  3126.  
  3127. dcmd_aka(playerid,params[]) {
  3128. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  3129. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /aka [playerid]");
  3130. new player1, playername[MAX_PLAYER_NAME], str[128], tmp3[50];
  3131. player1 = strval(params);
  3132. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3133. GetPlayerIp(player1,tmp3,50);
  3134. GetPlayerName(player1, playername, sizeof(playername));
  3135. format(str,sizeof(str),"AKA: [%s id:%d] [%s] %s", playername, player1, tmp3, dini_Get("ladmin/config/aka.txt",tmp3) );
  3136. return SendClientMessage(playerid,blue,str);
  3137. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  3138. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3139. }
  3140.  
  3141. dcmd_screen(playerid,params[]) {
  3142. if(PlayerInfo[playerid][Level] >= 2) {
  3143. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3144. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /screen [playerid] [text]");
  3145. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3146. player1 = strval(params);
  3147.  
  3148. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  3149. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3150. CMDMessageToAdmins(playerid,"SCREEN");
  3151. format(string,sizeof(string),"Administrator %s has sent you a screen message",adminname); SendClientMessage(player1,blue,string);
  3152. format(string,sizeof(string),"You have sent %s a screen message (%s)", playername, params[2]); SendClientMessage(playerid,blue,string);
  3153. return GameTextForPlayer(player1, params[2],4000,3);
  3154. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  3155. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3156. }
  3157.  
  3158. dcmd_laston(playerid,params[]) {
  3159. if(PlayerInfo[playerid][Level] >= 2) {
  3160. new tmp2[256], file[256],player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], str[128];
  3161. GetPlayerName(playerid, adminname, sizeof(adminname));
  3162.  
  3163. if(!strlen(params)) {
  3164. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(adminname));
  3165. if(!fexist(file)) return SendClientMessage(playerid, red, "Error: File doesnt exist, player isnt registered");
  3166. if(dUserINT(PlayerName2(playerid)).("LastOn")==0) { format(str, sizeof(str),"Never"); tmp2 = str;
  3167. } else { tmp2 = dini_Get(file,"LastOn"); }
  3168. format(str, sizeof(str),"You were last on the server on %s",tmp2);
  3169. return SendClientMessage(playerid, red, str);
  3170. }
  3171. player1 = strval(params);
  3172. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  3173. CMDMessageToAdmins(playerid,"LASTON");
  3174. GetPlayerName(player1,playername,sizeof(playername)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(playername));
  3175. if(!fexist(file)) return SendClientMessage(playerid, red, "Error: File doesnt exist, player isnt registered");
  3176. if(dUserINT(PlayerName2(player1)).("LastOn")==0) { format(str, sizeof(str),"Never"); tmp2 = str;
  3177. } else { tmp2 = dini_Get(file,"LastOn"); }
  3178. format(str, sizeof(str),"%s was last on the server on %s",playername,tmp2);
  3179. return SendClientMessage(playerid, red, str);
  3180. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  3181. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3182. }
  3183.  
  3184. dcmd_admins(playerid,params[]) {
  3185. #pragma unused params
  3186. new Count[2], i, string[128];
  3187. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
  3188. {
  3189. if(PlayerInfo[i][Level] > 0) Count[0]++;
  3190. if(IsPlayerAdmin(i)) Count[1]++;
  3191. }
  3192.  
  3193. #if defined HIDE_ADMINS
  3194. if(PlayerInfo[playerid][Level] == 0) {
  3195. if(Count[0] >= 1) {
  3196. format(string, sizeof(string), "There are %d Administrators online. Use /report <id> <reason> if you suspect a player of cheating", Count[0]);
  3197. return SendClientMessage(playerid, blue, string);
  3198. } else return SendClientMessage(playerid, blue, "No Administrators online");
  3199. }
  3200. #endif
  3201.  
  3202. if( (Count[0] == 0 && Count[1] == 0) || (Count[0] == 0 && Count[1] >= 1 && PlayerInfo[playerid][Level] == 0) ) return SendClientMessage(playerid, blue, "No Administrators online");
  3203.  
  3204. if(Count[0] == 1) {
  3205. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] > 0) {
  3206. format(string, sizeof(string), "Admin: (%d)%s [%d]", i, PlayerName2(i), PlayerInfo[i][Level] ); SendClientMessage(playerid, blue, string);
  3207. }
  3208. }
  3209.  
  3210. if(Count[0] > 1) {
  3211. new x; format(string, sizeof(string), "Admins: ");
  3212. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] > 0)
  3213. {
  3214. format(string,sizeof(string),"%s(%d)%s [%d]",string,i,PlayerName2(i),PlayerInfo[i][Level]);
  3215. x++;
  3216. if(x >= 5) {
  3217. SendClientMessage(playerid, blue, string); format(string, sizeof(string), "Admins: "); x = 0;
  3218. }
  3219. else format(string, sizeof(string), "%s, ", string);
  3220. }
  3221. if(x <= 4 && x > 0) {
  3222. string[strlen(string)-3] = '.';
  3223. SendClientMessage(playerid, blue, string);
  3224. }
  3225. }
  3226.  
  3227. if( (Count[1] == 1) && (PlayerInfo[playerid][Level] > 0) ) {
  3228. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) {
  3229. format(string, sizeof(string), "RCON Admin: (%d)%s", i, PlayerName2(i)); SendClientMessage(playerid, COLOR_WHITE, string);
  3230. }
  3231. }
  3232. if(Count[1] > 1) {
  3233. new x; format(string, sizeof(string), "RCON Admins: ");
  3234. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i))
  3235. {
  3236. format(string,sizeof(string),"%s(%d)%s",string,i,PlayerName2(i));
  3237. x++;
  3238. if(x >= 5) {
  3239. SendClientMessage(playerid, COLOR_WHITE, string); format(string, sizeof(string), "RCON Admins: "); x = 0;
  3240. }
  3241. else format(string, sizeof(string), "%s, ", string);
  3242. }
  3243. if(x <= 4 && x > 0) {
  3244. string[strlen(string)-3] = '.';
  3245. SendClientMessage(playerid, COLOR_WHITE, string);
  3246. }
  3247. }
  3248. return 1;
  3249. }
  3250.  
  3251. dcmd_morning(playerid,params[]) {
  3252. #pragma unused params
  3253. if(PlayerInfo[playerid][Level] >= 1) {
  3254. CMDMessageToAdmins(playerid,"MORNING");
  3255. return SetPlayerTime(playerid,7,0);
  3256. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  3257. }
  3258.  
  3259. dcmd_adminarea(playerid,params[]) {
  3260. #pragma unused params
  3261. if(PlayerInfo[playerid][Level] >= 1) {
  3262. CMDMessageToAdmins(playerid,"ADMINAREA");
  3263. SetPlayerPos(playerid, AdminArea[0], AdminArea[1], AdminArea[2]);
  3264. SetPlayerFacingAngle(playerid, AdminArea[3]);
  3265. SetPlayerInterior(playerid, AdminArea[4]);
  3266. SetPlayerVirtualWorld(playerid, AdminArea[5]);
  3267. return GameTextForPlayer(playerid,"Welcome Admin",1000,3);
  3268. } else {
  3269. SetPlayerHealth(playerid,1.0);
  3270. new string[100]; format(string, sizeof(string),"%s has used adminarea (non admin)", PlayerName2(playerid) );
  3271. MessageToAdmins(red,string);
  3272. } return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command.");
  3273. }
  3274.  
  3275. dcmd_setlevel(playerid,params[]) {
  3276. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3277. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3278. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3279. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");
  3280. new player1, level, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3281. player1 = strval(tmp);
  3282. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");
  3283. level = strval(tmp2);
  3284.  
  3285. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3286. if(PlayerInfo[player1][LoggedIn] == 1) {
  3287. if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
  3288. if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  3289. CMDMessageToAdmins(playerid,"SETLEVEL");
  3290. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3291. new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  3292.  
  3293. if(level > 0) format(string,sizeof(string),"Administrator %s has set you to Administrator Status [level %d]",adminname, level);
  3294. else format(string,sizeof(string),"Administrator %s has set you to Player Status [level %d]",adminname, level);
  3295. SendClientMessage(player1,blue,string);
  3296.  
  3297. if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"Promoted", 2000, 3);
  3298. else GameTextForPlayer(player1,"Demoted", 2000, 3);
  3299.  
  3300. format(string,sizeof(string),"You have made %s Level %d on %d/%d/%d at %d:%d:%d", playername, level, day, month, year, hour, minute, second); SendClientMessage(playerid,blue,string);
  3301. 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);
  3302. SaveToFile("AdminLog",string);
  3303. dUserSetINT(PlayerName2(player1)).("level",(level));
  3304. PlayerInfo[player1][Level] = level;
  3305. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  3306. } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
  3307. } else return SendClientMessage(playerid, red, "Player is not connected");
  3308. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3309. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3310. }
  3311.  
  3312. dcmd_settemplevel(playerid,params[]) {
  3313. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3314. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  3315. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3316. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /settemplevel [playerid] [level]");
  3317. new player1, level, string[128];
  3318. player1 = strval(tmp);
  3319. level = strval(tmp2);
  3320.  
  3321. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3322. if(PlayerInfo[player1][LoggedIn] == 1) {
  3323. if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
  3324. if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  3325. CMDMessageToAdmins(playerid,"SETTEMPLEVEL");
  3326. new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  3327.  
  3328. if(level > 0) format(string,sizeof(string),"Administrator %s has temporarily set you to Administrator Status [level %d]", pName(playerid), level);
  3329. else format(string,sizeof(string),"Administrator %s has temporarily set you to Player Status [level %d]", pName(playerid), level);
  3330. SendClientMessage(player1,blue,string);
  3331.  
  3332. if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"Promoted", 2000, 3);
  3333. else GameTextForPlayer(player1,"Demoted", 2000, 3);
  3334.  
  3335. format(string,sizeof(string),"You have made %s Level %d on %d/%d/%d at %d:%d:%d", pName(player1), level, day, month, year, hour, minute, second); SendClientMessage(playerid,blue,string);
  3336. 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);
  3337. SaveToFile("TempAdminLog",string);
  3338. PlayerInfo[player1][Level] = level;
  3339. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  3340. } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
  3341. } else return SendClientMessage(playerid, red, "Player is not connected");
  3342. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3343. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3344. }
  3345.  
  3346. dcmd_report(playerid,params[]) {
  3347. new reported, tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3348. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /report [playerid] [reason]");
  3349. reported = strval(tmp);
  3350.  
  3351. if(IsPlayerConnected(reported) && reported != INVALID_PLAYER_ID) {
  3352. if(PlayerInfo[reported][Level] == ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot report this administrator");
  3353. if(playerid == reported) return SendClientMessage(playerid,red,"ERROR: You Cannot report yourself");
  3354. if(strlen(params) > 7) {
  3355. new reportedname[MAX_PLAYER_NAME], reporter[MAX_PLAYER_NAME], str[128], hour,minute,second; gettime(hour,minute,second);
  3356. GetPlayerName(reported, reportedname, sizeof(reportedname)); GetPlayerName(playerid, reporter, sizeof(reporter));
  3357. 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);
  3358. MessageToAdmins(COLOR_WHITE,str);
  3359. SaveToFile("ReportLog",str);
  3360. 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]);
  3361. for(new i = 1; i < MAX_REPORTS-1; i++) Reports[i] = Reports[i+1];
  3362. Reports[MAX_REPORTS-1] = str;
  3363. return SendClientMessage(playerid,yellow, "Your report has been sent to online administrators.");
  3364. } else return SendClientMessage(playerid,red,"ERROR: Must be a valid reason");
  3365. } else return SendClientMessage(playerid, red, "Player is not connected");
  3366. }
  3367.  
  3368. dcmd_reports(playerid,params[]) {
  3369. #pragma unused params
  3370. if(PlayerInfo[playerid][Level] >= 1) {
  3371. new ReportCount;
  3372. for(new i = 1; i < MAX_REPORTS; i++)
  3373. {
  3374. if(strcmp( Reports[i], "<none>", true) != 0) { ReportCount++; SendClientMessage(playerid,COLOR_WHITE,Reports[i]); }
  3375. }
  3376. if(ReportCount == 0) SendClientMessage(playerid,COLOR_WHITE,"There have been no reports");
  3377. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  3378. return 1;
  3379. }
  3380.  
  3381. dcmd_richlist(playerid,params[]) {
  3382. #pragma unused params
  3383. if(PlayerInfo[playerid][Level] >= 1) {
  3384. new string[128], Slot1 = -1, Slot2 = -1, Slot3 = -1, Slot4 = -1, HighestCash = -9999;
  3385. SendClientMessage(playerid,COLOR_WHITE,"Rich List:");
  3386.  
  3387. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x)) if (GetPlayerMoney(x) >= HighestCash) {
  3388. HighestCash = GetPlayerMoney(x);
  3389. Slot1 = x;
  3390. }
  3391. HighestCash = -9999;
  3392. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1) if (GetPlayerMoney(x) >= HighestCash) {
  3393. HighestCash = GetPlayerMoney(x);
  3394. Slot2 = x;
  3395. }
  3396. HighestCash = -9999;
  3397. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1 && x != Slot2) if (GetPlayerMoney(x) >= HighestCash) {
  3398. HighestCash = GetPlayerMoney(x);
  3399. Slot3 = x;
  3400. }
  3401. HighestCash = -9999;
  3402. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1 && x != Slot2 && x != Slot3) if (GetPlayerMoney(x) >= HighestCash) {
  3403. HighestCash = GetPlayerMoney(x);
  3404. Slot4 = x;
  3405. }
  3406. format(string, sizeof(string), "(%d) %s - $%d", Slot1,PlayerName2(Slot1),GetPlayerMoney(Slot1) );
  3407. SendClientMessage(playerid,COLOR_WHITE,string);
  3408. if(Slot2 != -1) {
  3409. format(string, sizeof(string), "(%d) %s - $%d", Slot2,PlayerName2(Slot2),GetPlayerMoney(Slot2) );
  3410. SendClientMessage(playerid,COLOR_WHITE,string);
  3411. }
  3412. if(Slot3 != -1) {
  3413. format(string, sizeof(string), "(%d) %s - $%d", Slot3,PlayerName2(Slot3),GetPlayerMoney(Slot3) );
  3414. SendClientMessage(playerid,COLOR_WHITE,string);
  3415. }
  3416. if(Slot4 != -1) {
  3417. format(string, sizeof(string), "(%d) %s - $%d", Slot4,PlayerName2(Slot4),GetPlayerMoney(Slot4) );
  3418. SendClientMessage(playerid,COLOR_WHITE,string);
  3419. }
  3420. return 1;
  3421. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3422. }
  3423.  
  3424. dcmd_miniguns(playerid,params[]) {
  3425. #pragma unused params
  3426. if(PlayerInfo[playerid][Level] >= 1) {
  3427. new bool:First2 = false, Count, string[128], i, slot, weap, ammo;
  3428. for(i = 0; i < MAX_PLAYERS; i++) {
  3429. if(IsPlayerConnected(i)) {
  3430. for(slot = 0; slot < 14; slot++) {
  3431. GetPlayerWeaponData(i, slot, weap, ammo);
  3432. if(ammo != 0 && weap == 38) {
  3433. Count++;
  3434. if(!First2) { format(string, sizeof(string), "Minigun: (%d)%s(ammo%d)", i, PlayerName2(i), ammo); First2 = true; }
  3435. else format(string,sizeof(string),"%s, (%d)%s(ammo%d) ",string, i, PlayerName2(i), ammo);
  3436. }
  3437. }
  3438. }
  3439. }
  3440. if(Count == 0) return SendClientMessage(playerid,COLOR_WHITE,"No players have a minigun"); else return SendClientMessage(playerid,COLOR_WHITE,string);
  3441. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3442. }
  3443.  
  3444. dcmd_uconfig(playerid,params[]) {
  3445. #pragma unused params
  3446. if(PlayerInfo[playerid][Level] >= 4)
  3447. {
  3448. UpdateConfig();
  3449. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  3450. return CMDMessageToAdmins(playerid,"UCONFIG");
  3451. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3452. }
  3453.  
  3454. dcmd_botcheck(playerid,params[]) {
  3455. #pragma unused params
  3456. if(PlayerInfo[playerid][Level] >= 4) {
  3457. for(new i=0; i<MAX_PLAYERS; i++) BotCheck(i);
  3458. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  3459. return CMDMessageToAdmins(playerid,"BOTCHECK");
  3460. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3461. }
  3462.  
  3463. dcmd_lockserver(playerid,params[]) {
  3464. if(PlayerInfo[playerid][Level] >= 4) {
  3465. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /lockserver [password]");
  3466. new adminname[MAX_PLAYER_NAME], string[128];
  3467. ServerInfo[Locked] = 1;
  3468. strmid(ServerInfo[Password], params[0], 0, strlen(params[0]), 128);
  3469. GetPlayerName(playerid, adminname, sizeof(adminname));
  3470. format(string, sizeof(string), "Administrator \"%s\" has locked the server",adminname);
  3471. SendClientMessageToAll(red,"________________________________________");
  3472. SendClientMessageToAll(red," ");
  3473. SendClientMessageToAll(red,string);
  3474. SendClientMessageToAll(red,"________________________________________");
  3475. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][AllowedIn] = true; }
  3476. CMDMessageToAdmins(playerid,"LOCKSERVER");
  3477. format(string, sizeof(string), "Administrator \"%s\" has set the server password to '%s'",adminname, ServerInfo[Password] );
  3478. return MessageToAdmins(COLOR_WHITE, string);
  3479. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3480. }
  3481.  
  3482. dcmd_unlockserver(playerid,params[]) {
  3483. #pragma unused params
  3484. if(PlayerInfo[playerid][Level] >= 4) {
  3485. if(ServerInfo[Locked] == 1) {
  3486. new adminname[MAX_PLAYER_NAME], string[128];
  3487. ServerInfo[Locked] = 0;
  3488. strmid(ServerInfo[Password], "", 0, strlen(""), 128);
  3489. GetPlayerName(playerid, adminname, sizeof(adminname));
  3490. format(string, sizeof(string), "Administrator \"%s\" has unlocked the server",adminname);
  3491. SendClientMessageToAll(green,"________________________________________");
  3492. SendClientMessageToAll(green," ");
  3493. SendClientMessageToAll(green,string);
  3494. SendClientMessageToAll(green,"________________________________________");
  3495. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][AllowedIn] = true; }
  3496. return CMDMessageToAdmins(playerid,"UNLOCKSERVER");
  3497. } else return SendClientMessage(playerid,red,"ERROR: Server is not locked");
  3498. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3499. }
  3500.  
  3501. dcmd_password(playerid,params[]) {
  3502. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /password [password]");
  3503. if(ServerInfo[Locked] == 1) {
  3504. if(PlayerInfo[playerid][AllowedIn] == false) {
  3505. if(!strcmp(ServerInfo[Password],params[0],true)) {
  3506. KillTimer( LockKickTimer[playerid] );
  3507. PlayerInfo[playerid][AllowedIn] = true;
  3508. new string[128];
  3509. SendClientMessage(playerid,COLOR_WHITE,"You have successsfully entered the server password and may now spawn");
  3510. format(string, sizeof(string), "%s has successfully entered server password",PlayerName2(playerid));
  3511. return MessageToAdmins(COLOR_WHITE, string);
  3512. } else return SendClientMessage(playerid,red,"ERROR: Incorrect server password");
  3513. } else return SendClientMessage(playerid,red,"ERROR: You are already logged in");
  3514. } else return SendClientMessage(playerid,red,"ERROR: Server isnt Locked");
  3515. }
  3516.  
  3517. //------------------------------------------------------------------------------
  3518. dcmd_forbidname(playerid,params[]) {
  3519. if(PlayerInfo[playerid][Level] >= 4) {
  3520. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /forbidname [nickname]");
  3521. new File:BLfile, string[128];
  3522. BLfile = fopen("ladmin/config/ForbiddenNames.cfg",io_append);
  3523. format(string,sizeof(string),"%s\r\n",params[1]);
  3524. fwrite(BLfile,string);
  3525. fclose(BLfile);
  3526. UpdateConfig();
  3527. CMDMessageToAdmins(playerid,"FORBIDNAME");
  3528. format(string, sizeof(string), "Administrator \"%s\" has added the name \"%s\" to the forbidden name list", pName(playerid), params );
  3529. return MessageToAdmins(green,string);
  3530. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3531. }
  3532.  
  3533. dcmd_forbidword(playerid,params[]) {
  3534. if(PlayerInfo[playerid][Level] >= 4) {
  3535. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /forbidword [word]");
  3536. new File:BLfile, string[128];
  3537. BLfile = fopen("ladmin/config/ForbiddenWords.cfg",io_append);
  3538. format(string,sizeof(string),"%s\r\n",params[1]);
  3539. fwrite(BLfile,string);
  3540. fclose(BLfile);
  3541. UpdateConfig();
  3542. CMDMessageToAdmins(playerid,"FORBIDWORD");
  3543. format(string, sizeof(string), "Administrator \"%s\" has added the word \"%s\" to the forbidden word list", pName(playerid), params );
  3544. return MessageToAdmins(green,string);
  3545. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3546. }
  3547.  
  3548. //==========================[ Spectate Commands ]===============================
  3549. #if defined ENABLE_SPEC
  3550.  
  3551. dcmd_lspec(playerid,params[]) {
  3552. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3553. if(!strlen(params) || !IsNumeric(params)) return SendClientMessage(playerid, red, "USAGE: /lspec [playerid]");
  3554. new specplayerid = strval(params);
  3555. if(PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3556. if(IsPlayerConnected(specplayerid) && specplayerid != INVALID_PLAYER_ID) {
  3557. if(specplayerid == playerid) return SendClientMessage(playerid, red, "ERROR: You cannot spectate yourself");
  3558. if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && PlayerInfo[specplayerid][SpecID] != INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "Spectate: Player spectating someone else");
  3559. if(GetPlayerState(specplayerid) != 1 && GetPlayerState(specplayerid) != 2 && GetPlayerState(specplayerid) != 3) return SendClientMessage(playerid, red, "Spectate: Player not spawned");
  3560. if( (PlayerInfo[specplayerid][Level] != ServerInfo[MaxAdminLevel]) || (PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] == ServerInfo[MaxAdminLevel]) ) {
  3561. StartSpectate(playerid, specplayerid);
  3562. CMDMessageToAdmins(playerid,"LSPEC");
  3563. GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  3564. GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  3565. return SendClientMessage(playerid,blue,"Now Spectating");
  3566. } else return SendClientMessage(playerid,red,"ERROR: You cannot spectate the highest level admin");
  3567. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3568. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3569. }
  3570.  
  3571. dcmd_lspecvehicle(playerid,params[]) {
  3572. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3573. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /lspecvehicle [vehicleid]");
  3574. new specvehicleid = strval(params);
  3575. if(specvehicleid < MAX_VEHICLES) {
  3576. TogglePlayerSpectating(playerid, 1);
  3577. PlayerSpectateVehicle(playerid, specvehicleid);
  3578. PlayerInfo[playerid][SpecID] = specvehicleid;
  3579. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  3580. CMDMessageToAdmins(playerid,"SPEC VEHICLE");
  3581. GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  3582. GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  3583. return SendClientMessage(playerid,blue,"Now Spectating");
  3584. } else return SendClientMessage(playerid,red, "ERROR: Invalid Vehicle ID");
  3585. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3586. }
  3587. dcmd_lspecoff(playerid,params[]) {
  3588. #pragma unused params
  3589. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3590. if(PlayerInfo[playerid][SpecType] != ADMIN_SPEC_TYPE_NONE) {
  3591. StopSpectate(playerid);
  3592. SetTimerEx("PosAfterSpec",3000,0,"d",playerid);
  3593. return SendClientMessage(playerid,blue,"No Longer Spectating");
  3594. } else return SendClientMessage(playerid,red,"ERROR: You are not spectating");
  3595. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3596. }
  3597.  
  3598. #endif
  3599.  
  3600. //==========================[ CHAT COMMANDS ]===================================
  3601.  
  3602. dcmd_disablechat(playerid,params[]) {
  3603. #pragma unused params
  3604. if(PlayerInfo[playerid][Level] >= 3) {
  3605. CMDMessageToAdmins(playerid,"DISABLECHAT");
  3606. new string[128];
  3607. if(ServerInfo[DisableChat] == 0) {
  3608. ServerInfo[DisableChat] = 1;
  3609. format(string,sizeof(string),"Administrator \"%s\" has disabled chat", pName(playerid) );
  3610. } else {
  3611. ServerInfo[DisableChat] = 0;
  3612. format(string,sizeof(string),"Administrator \"%s\" has enabled chat", pName(playerid) );
  3613. } return SendClientMessageToAll(blue,string);
  3614. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3615. }
  3616.  
  3617. dcmd_clearchat(playerid,params[]) {
  3618. #pragma unused params
  3619. if(PlayerInfo[playerid][Level] >= 2) {
  3620. CMDMessageToAdmins(playerid,"CLEARCHAT");
  3621. for(new i = 0; i < 11; i++) SendClientMessageToAll(green," "); return 1;
  3622. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3623. }
  3624.  
  3625. dcmd_clearallchat(playerid,params[]) {
  3626. #pragma unused params
  3627. if(PlayerInfo[playerid][Level] >= 3) {
  3628. CMDMessageToAdmins(playerid,"CLEARALLCHAT");
  3629. for(new i = 0; i < 50; i++) SendClientMessageToAll(green," "); return 1;
  3630. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3631. }
  3632.  
  3633. dcmd_caps(playerid,params[]) {
  3634. if(PlayerInfo[playerid][Level] >= 3) {
  3635. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3636. if(!strlen(tmp) || !strlen(tmp2) || IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [\"on\" / \"off\"]");
  3637. new player1 = strval(tmp), string[128];
  3638. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3639. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3640. if(strcmp(tmp2,"on",true) == 0) {
  3641. CMDMessageToAdmins(playerid,"CAPS");
  3642. PlayerInfo[player1][Caps] = 0;
  3643. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has allowed you to use capitals in chat", pName(playerid) ); SendClientMessage(playerid,blue,string); }
  3644. format(string,sizeof(string),"You have allowed \"%s\" to use capitals in chat", pName(player1) ); return SendClientMessage(playerid,blue,string);
  3645. } else if(strcmp(tmp2,"off",true) == 0) {
  3646. CMDMessageToAdmins(playerid,"CAPS");
  3647. PlayerInfo[player1][Caps] = 1;
  3648. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has prevented you from using capitals in chat", pName(playerid) ); SendClientMessage(playerid,blue,string); }
  3649. format(string,sizeof(string),"You have prevented \"%s\" from using capitals in chat", pName(player1) ); return SendClientMessage(playerid,blue,string);
  3650. } else return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [\"on\" / \"off\"]");
  3651. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3652. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3653. }
  3654.  
  3655. //==================[ Object & Pickup ]=========================================
  3656. dcmd_pickup(playerid,params[]) {
  3657. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3658. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /pickup [pickup id]");
  3659. new pickup = strval(params), string[128], Float:x, Float:y, Float:z, Float:a;
  3660. CMDMessageToAdmins(playerid,"PICKUP");
  3661. GetPlayerPos(playerid, x, y, z);
  3662. GetPlayerFacingAngle(playerid, a);
  3663. x += (3 * floatsin(-a, degrees));
  3664. y += (3 * floatcos(-a, degrees));
  3665. CreatePickup(pickup, 2, x+2, y, z);
  3666. format(string, sizeof(string), "CreatePickup(%d, 2, %0.2f, %0.2f, %0.2f);", pickup, x+2, y, z);
  3667. SaveToFile("Pickups",string);
  3668. return SendClientMessage(playerid,yellow, string);
  3669. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3670. }
  3671.  
  3672. dcmd_object(playerid,params[]) {
  3673. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3674. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /object [object id]");
  3675. new object = strval(params), string[128], Float:x, Float:y, Float:z, Float:a;
  3676. CMDMessageToAdmins(playerid,"OBJECT");
  3677. GetPlayerPos(playerid, x, y, z);
  3678. GetPlayerFacingAngle(playerid, a);
  3679. x += (3 * floatsin(-a, degrees));
  3680. y += (3 * floatcos(-a, degrees));
  3681. CreateObject(object, x, y, z, 0.0, 0.0, a);
  3682. format(string, sizeof(string), "CreateObject(%d, %0.2f, %0.2f, %0.2f, 0.00, 0.00, %0.2f);", object, x, y, z, a);
  3683. SaveToFile("Objects",string);
  3684. format(string, sizeof(string), "You Have Created Object %d, at %0.2f, %0.2f, %0.2f Angle %0.2f", object, x, y, z, a);
  3685. return SendClientMessage(playerid,yellow, string);
  3686. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3687. }
  3688.  
  3689. //===================[ Move ]===================================================
  3690.  
  3691. dcmd_move(playerid,params[]) {
  3692. if(PlayerInfo[playerid][Level] >= 3) {
  3693. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /move [up / down / +x / -x / +y / -y / off]");
  3694. new Float:X, Float:Y, Float:Z;
  3695. if(strcmp(params,"up",true) == 0) {
  3696. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z+5); SetCameraBehindPlayer(playerid); }
  3697. else if(strcmp(params,"down",true) == 0) {
  3698. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z-5); SetCameraBehindPlayer(playerid); }
  3699. else if(strcmp(params,"+x",true) == 0) {
  3700. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X+5,Y,Z); }
  3701. else if(strcmp(params,"-x",true) == 0) {
  3702. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X-5,Y,Z); }
  3703. else if(strcmp(params,"+y",true) == 0) {
  3704. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y+5,Z); }
  3705. else if(strcmp(params,"-y",true) == 0) {
  3706. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y-5,Z); }
  3707. else if(strcmp(params,"off",true) == 0) {
  3708. TogglePlayerControllable(playerid,true); }
  3709. else return SendClientMessage(playerid,red,"USAGE: /move [up / down / +x / -x / +y / -y / off]");
  3710. return 1;
  3711. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3712. }
  3713.  
  3714. dcmd_moveplayer(playerid,params[]) {
  3715. if(PlayerInfo[playerid][Level] >= 3) {
  3716. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3717. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp)) return SendClientMessage(playerid, red, "USAGE: /moveplayer [playerid] [up / down / +x / -x / +y / -y / off]");
  3718. new Float:X, Float:Y, Float:Z, player1 = strval(tmp);
  3719. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3720. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3721. if(strcmp(tmp2,"up",true) == 0) {
  3722. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y,Z+5); SetCameraBehindPlayer(player1); }
  3723. else if(strcmp(tmp2,"down",true) == 0) {
  3724. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y,Z-5); SetCameraBehindPlayer(player1); }
  3725. else if(strcmp(tmp2,"+x",true) == 0) {
  3726. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X+5,Y,Z); }
  3727. else if(strcmp(tmp2,"-x",true) == 0) {
  3728. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X-5,Y,Z); }
  3729. else if(strcmp(tmp2,"+y",true) == 0) {
  3730. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y+5,Z); }
  3731. else if(strcmp(tmp2,"-y",true) == 0) {
  3732. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y-5,Z); }
  3733. else SendClientMessage(playerid,red,"USAGE: /moveplayer [up / down / +x / -x / +y / -y / off]");
  3734. return 1;
  3735. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3736. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3737. }
  3738.  
  3739. //===================[ Fake ]===================================================
  3740.  
  3741. #if defined ENABLE_FAKE_CMDS
  3742. dcmd_fakedeath(playerid,params[]) {
  3743. if(PlayerInfo[playerid][Level] >= 4) {
  3744. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  3745. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid, red, "USAGE: /fakedeath [killer] [killee] [weapon]");
  3746. new killer = strval(tmp), killee = strval(tmp2), weap = strval(tmp3);
  3747. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid Weapon ID");
  3748. if(PlayerInfo[killer][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3749. if(PlayerInfo[killee][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3750.  
  3751. if(IsPlayerConnected(killer) && killer != INVALID_PLAYER_ID) {
  3752. if(IsPlayerConnected(killee) && killee != INVALID_PLAYER_ID) {
  3753. CMDMessageToAdmins(playerid,"FAKEDEATH");
  3754. SendDeathMessage(killer,killee,weap);
  3755. return SendClientMessage(playerid,blue,"Fake death message sent");
  3756. } else return SendClientMessage(playerid,red,"ERROR: Killee is not connected");
  3757. } else return SendClientMessage(playerid,red,"ERROR: Killer is not connected");
  3758. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3759. }
  3760.  
  3761. dcmd_fakechat(playerid,params[]) {
  3762. if(PlayerInfo[playerid][Level] >= 5) {
  3763. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3764. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /fakechat [playerid] [text]");
  3765. new player1 = strval(tmp);
  3766. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3767. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3768. CMDMessageToAdmins(playerid,"FAKECHAT");
  3769. SendPlayerMessageToAll(player1, params[strlen(tmp)+1]);
  3770. return SendClientMessage(playerid,blue,"Fake message sent");
  3771. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3772. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3773. }
  3774.  
  3775. dcmd_fakecmd(playerid,params[]) {
  3776. if(PlayerInfo[playerid][Level] >= 5) {
  3777. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3778. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /fakecmd [playerid] [command]");
  3779. new player1 = strval(tmp);
  3780. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3781. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3782. CMDMessageToAdmins(playerid,"FAKECMD");
  3783. CallRemoteFunction("OnPlayerCommandText", "is", player1, tmp2);
  3784. return SendClientMessage(playerid,blue,"Fake command sent");
  3785. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3786. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3787. }
  3788. #endif
  3789.  
  3790. //----------------------------------------------------------------------------//
  3791. // /all Commands //
  3792. //----------------------------------------------------------------------------//
  3793.  
  3794. dcmd_pm(playerid, params[])
  3795. {
  3796. new givepid, text[128];
  3797. if(!sscanf(params, "us[128]", givepid, text))
  3798. {
  3799. if(givepid > 499) return SendClientMessage(playerid,red,"Usage: \"/pm [playerid/name] [text]\"");
  3800. if(givepid == playerid) return SendClientMessage(playerid,red,"ERROR: You can't PM yourself!");
  3801. if(!IsPlayerConnected(givepid)) return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3802. if(!OnPlayerPrivmsg(playerid, givepid, text)) return 1;
  3803. new string[128];
  3804. format(string, sizeof(string), "** PM from \"%s\" (%d): %s **", PlayerName2(playerid), playerid, text);
  3805. PlayerPlaySound(givepid, 1057, 0.0, 0.0, 0.0);
  3806. SendClientMessage(givepid, yellow, string);
  3807. format(string, sizeof(string), "** PM to \"%s\" (%d): %s **", PlayerName2(givepid), givepid, text);
  3808. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  3809. SendClientMessage(playerid, yellow, string);
  3810. new recievername[MAX_PLAYER_NAME];
  3811. GetPlayerName(playerid, string, sizeof(string));
  3812. GetPlayerName(givepid, recievername, sizeof(recievername));
  3813. format(string, sizeof(string), "*** PM from \"%s\" (%d) to \"%s\" (%d): %s ***", string, playerid, recievername, givepid, text);
  3814. for(new a = 0; a < MAX_PLAYERS; a++)
  3815. {
  3816. if(IsPlayerConnected(a) && a != playerid && GetPVarInt(a, "Level") > 1) SendClientMessage(a, grey, string);
  3817. }
  3818. }
  3819. else
  3820. {
  3821. SendClientMessage(playerid, red, "Usage: \"/pm [playerid/name] [text]\"");
  3822. }
  3823. return 1;
  3824. }
  3825.  
  3826. dcmd_nopms(playerid, params[])
  3827. {
  3828. #pragma unused params
  3829. if(GetPVarInt(playerid, "PMStatus") == 0)
  3830. {
  3831. SetPVarInt(playerid, "PMStatus", 1);
  3832. SendClientMessage(playerid, blue, "You have disabled PMing");
  3833. } else {
  3834. SetPVarInt(playerid, "PMStatus", 0);
  3835. SendClientMessage(playerid, blue, "You have enabled PMing");
  3836. }
  3837. return 1;
  3838. }
  3839.  
  3840. dcmd_spawnall(playerid,params[]) {
  3841. #pragma unused params
  3842. if(PlayerInfo[playerid][Level] >= 4) {
  3843. CMDMessageToAdmins(playerid,"SPAWNAll");
  3844. for(new i = 0; i < MAX_PLAYERS; i++) {
  3845. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3846. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerPos(i, 0.0, 0.0, 0.0); SpawnPlayer(i);
  3847. }
  3848. }
  3849. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has spawned all players", pName(playerid) );
  3850. return SendClientMessageToAll(blue, string);
  3851. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3852. }
  3853.  
  3854. dcmd_muteall(playerid,params[]) {
  3855. #pragma unused params
  3856. if(PlayerInfo[playerid][Level] >= 4) {
  3857. CMDMessageToAdmins(playerid,"MUTEALL");
  3858. for(new i = 0; i < MAX_PLAYERS; i++) {
  3859. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3860. PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][Muted] = 1; PlayerInfo[i][MuteWarnings] = 0;
  3861. }
  3862. }
  3863. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has muted all players", pName(playerid) );
  3864. return SendClientMessageToAll(blue, string);
  3865. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3866. }
  3867.  
  3868. dcmd_unmuteall(playerid,params[]) {
  3869. #pragma unused params
  3870. if(PlayerInfo[playerid][Level] >= 4) {
  3871. CMDMessageToAdmins(playerid,"UNMUTEAll");
  3872. for(new i = 0; i < MAX_PLAYERS; i++) {
  3873. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3874. PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][Muted] = 0; PlayerInfo[i][MuteWarnings] = 0;
  3875. }
  3876. }
  3877. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unmuted all players", pName(playerid) );
  3878. return SendClientMessageToAll(blue, string);
  3879. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3880. }
  3881.  
  3882. dcmd_getall(playerid,params[]) {
  3883. #pragma unused params
  3884. if(PlayerInfo[playerid][Level] >= 4) {
  3885. CMDMessageToAdmins(playerid,"GETAll");
  3886. new Float:x,Float:y,Float:z, interior = GetPlayerInterior(playerid);
  3887. GetPlayerPos(playerid,x,y,z);
  3888. for(new i = 0; i < MAX_PLAYERS; i++) {
  3889. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3890. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerPos(i,x+(playerid/4)+1,y+(playerid/4),z); SetPlayerInterior(i,interior);
  3891. }
  3892. }
  3893. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has teleported all players", pName(playerid) );
  3894. return SendClientMessageToAll(blue, string);
  3895. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3896. }
  3897.  
  3898. dcmd_healall(playerid,params[]) {
  3899. #pragma unused params
  3900. if(PlayerInfo[playerid][Level] >= 3) {
  3901. CMDMessageToAdmins(playerid,"HEALALL");
  3902. for(new i = 0; i < MAX_PLAYERS; i++) {
  3903. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3904. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerHealth(i,100.0);
  3905. }
  3906. }
  3907. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has healed all players", pName(playerid) );
  3908. return SendClientMessageToAll(blue, string);
  3909. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3910. }
  3911.  
  3912. dcmd_armourall(playerid,params[]) {
  3913. #pragma unused params
  3914. if(PlayerInfo[playerid][Level] >= 3) {
  3915. CMDMessageToAdmins(playerid,"ARMOURALL");
  3916. for(new i = 0; i < MAX_PLAYERS; i++) {
  3917. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3918. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerArmour(i,100.0);
  3919. }
  3920. }
  3921. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has restored all players armour", pName(playerid) );
  3922. return SendClientMessageToAll(blue, string);
  3923. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3924. }
  3925.  
  3926. dcmd_killall(playerid,params[]) {
  3927. #pragma unused params
  3928. if(PlayerInfo[playerid][Level] >= 4) {
  3929. CMDMessageToAdmins(playerid,"KILLALL");
  3930. for(new i = 0; i < MAX_PLAYERS; i++) {
  3931. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3932. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerHealth(i,0.0);
  3933. }
  3934. }
  3935. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has killed all players", pName(playerid) );
  3936. return SendClientMessageToAll(blue, string);
  3937. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3938. }
  3939.  
  3940. dcmd_freezeall(playerid,params[]) {
  3941. #pragma unused params
  3942. if(PlayerInfo[playerid][Level] >= 4) {
  3943. CMDMessageToAdmins(playerid,"FREEZEALL");
  3944. for(new i = 0; i < MAX_PLAYERS; i++) {
  3945. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3946. PlayerPlaySound(i,1057,0.0,0.0,0.0); TogglePlayerControllable(playerid,false); PlayerInfo[i][Frozen] = 1;
  3947. }
  3948. }
  3949. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has frozen all players", pName(playerid) );
  3950. return SendClientMessageToAll(blue, string);
  3951. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3952. }
  3953.  
  3954. dcmd_unfreezeall(playerid,params[]) {
  3955. #pragma unused params
  3956. if(PlayerInfo[playerid][Level] >= 4) {
  3957. CMDMessageToAdmins(playerid,"UNFREEZEALL");
  3958. for(new i = 0; i < MAX_PLAYERS; i++) {
  3959. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3960. PlayerPlaySound(i,1057,0.0,0.0,0.0); TogglePlayerControllable(playerid,true); PlayerInfo[i][Frozen] = 0;
  3961. }
  3962. }
  3963. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unfrozen all players", pName(playerid) );
  3964. return SendClientMessageToAll(blue, string);
  3965. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3966. }
  3967.  
  3968. dcmd_kickall(playerid,params[]) {
  3969. #pragma unused params
  3970. if(PlayerInfo[playerid][Level] >= 4) {
  3971. CMDMessageToAdmins(playerid,"KICKALL");
  3972. for(new i = 0; i < MAX_PLAYERS; i++) {
  3973. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3974. PlayerPlaySound(i,1057,0.0,0.0,0.0); Kick(i);
  3975. }
  3976. }
  3977. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has kicked all players", pName(playerid) );
  3978. SaveToFile("KickLog",string);
  3979. return SendClientMessageToAll(blue, string);
  3980. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3981. }
  3982.  
  3983. dcmd_slapall(playerid,params[]) {
  3984. #pragma unused params
  3985. if(PlayerInfo[playerid][Level] >= 4) {
  3986. CMDMessageToAdmins(playerid,"SLAPALL");
  3987. new Float:x, Float:y, Float:z;
  3988. for(new i = 0; i < MAX_PLAYERS; i++) {
  3989. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3990. PlayerPlaySound(i,1190,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); SetPlayerPos(i,x,y,z+4);
  3991. }
  3992. }
  3993. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has slapped all players", pName(playerid) );
  3994. return SendClientMessageToAll(blue, string);
  3995. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3996. }
  3997.  
  3998. dcmd_explodeall(playerid,params[]) {
  3999. #pragma unused params
  4000. if(PlayerInfo[playerid][Level] >= 4) {
  4001. CMDMessageToAdmins(playerid,"EXPLODEALL");
  4002. new Float:x, Float:y, Float:z;
  4003. for(new i = 0; i < MAX_PLAYERS; i++) {
  4004. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  4005. PlayerPlaySound(i,1190,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); CreateExplosion(x, y , z, 7, 10.0);
  4006. }
  4007. }
  4008. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has exploded all players", pName(playerid) );
  4009. return SendClientMessageToAll(blue, string);
  4010. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  4011. }
  4012.  
  4013. dcmd_disarmall(playerid,params[]) {
  4014. #pragma unused params
  4015. if(PlayerInfo[playerid][Level] >= 4) {
  4016. CMDMessageToAdmins(playerid,"DISARMALL");
  4017. for(new i = 0; i < MAX_PLAYERS; i++) {
  4018. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  4019. PlayerPlaySound(i,1057,0.0,0.0,0.0); ResetPlayerWeapons(i);
  4020. }
  4021. }
  4022. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has disarmed all players", pName(playerid) );
  4023. return SendClientMessageToAll(blue, string);
  4024. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  4025. }
  4026.  
  4027. dcmd_ejectall(playerid,params[]) {
  4028. #pragma unused params
  4029. if(PlayerInfo[playerid][Level] >= 4) {
  4030. CMDMessageToAdmins(playerid,"EJECTALL");
  4031. new Float:x, Float:y, Float:z;
  4032. for(new i = 0; i < MAX_PLAYERS; i++) {
  4033. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  4034. if(IsPlayerInAnyVehicle(i)) {
  4035. PlayerPlaySound(i,1057,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); SetPlayerPos(i,x,y,z+3);
  4036. }
  4037. }
  4038. }
  4039. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has ejected all players", pName(playerid) );
  4040. return SendClientMessageToAll(blue, string);
  4041. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  4042. }
  4043.  
  4044. //-------------==== Set All Commands ====-------------//
  4045.  
  4046. dcmd_setallskin(playerid,params[]) {
  4047. if(PlayerInfo[playerid][Level] >= 3) {
  4048. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallskin [skinid]");
  4049. new var = strval(params), string[128];
  4050. if(!IsValidSkin(var)) return SendClientMessage(playerid, red, "ERROR: Invaild Skin ID");
  4051. CMDMessageToAdmins(playerid,"SETALLSKIN");
  4052. for(new i = 0; i < MAX_PLAYERS; i++) {
  4053. if(IsPlayerConnected(i)) {
  4054. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4055. SetPlayerSkin(i,var);
  4056. }
  4057. }
  4058. format(string,sizeof(string),"Administrator \"%s\" has set all players skin to '%d'", pName(playerid), var );
  4059. return SendClientMessageToAll(blue, string);
  4060. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4061. }
  4062.  
  4063. dcmd_setallwanted(playerid,params[]) {
  4064. if(PlayerInfo[playerid][Level] >= 3) {
  4065. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallwanted [wanted level]");
  4066. new var = strval(params), string[128];
  4067. CMDMessageToAdmins(playerid,"SETALLWANTED");
  4068. for(new i = 0; i < MAX_PLAYERS; i++) {
  4069. if(IsPlayerConnected(i)) {
  4070. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4071. SetPlayerWantedLevel(i,var);
  4072. }
  4073. }
  4074. format(string,sizeof(string),"Administrator \"%s\" has set all players wanted level to '%d'", pName(playerid), var );
  4075. return SendClientMessageToAll(blue, string);
  4076. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4077. }
  4078.  
  4079. dcmd_setallweather(playerid,params[]) {
  4080. if(PlayerInfo[playerid][Level] >= 3) {
  4081. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallweather [weather ID]");
  4082. new var = strval(params), string[128];
  4083. CMDMessageToAdmins(playerid,"SETALLWEATHER");
  4084. for(new i = 0; i < MAX_PLAYERS; i++) {
  4085. if(IsPlayerConnected(i)) {
  4086. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4087. SetPlayerWeather(i, var);
  4088. }
  4089. }
  4090. format(string,sizeof(string),"Administrator \"%s\" has set all players weather to '%d'", pName(playerid), var );
  4091. return SendClientMessageToAll(blue, string);
  4092. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4093. }
  4094.  
  4095. dcmd_setalltime(playerid,params[]) {
  4096. if(PlayerInfo[playerid][Level] >= 3) {
  4097. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setalltime [hour]");
  4098. new var = strval(params), string[128];
  4099. if(var > 24) return SendClientMessage(playerid, red, "ERROR: Invalid hour");
  4100. CMDMessageToAdmins(playerid,"SETALLTIME");
  4101. for(new i = 0; i < MAX_PLAYERS; i++) {
  4102. if(IsPlayerConnected(i)) {
  4103. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4104. SetPlayerTime(i, var, 0);
  4105. }
  4106. }
  4107. format(string,sizeof(string),"Administrator \"%s\" has set all players time to '%d:00'", pName(playerid), var );
  4108. return SendClientMessageToAll(blue, string);
  4109. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4110. }
  4111.  
  4112. dcmd_setallworld(playerid,params[]) {
  4113. if(PlayerInfo[playerid][Level] >= 3) {
  4114. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallworld [virtual world]");
  4115. new var = strval(params), string[128];
  4116. CMDMessageToAdmins(playerid,"SETALLWORLD");
  4117. for(new i = 0; i < MAX_PLAYERS; i++) {
  4118. if(IsPlayerConnected(i)) {
  4119. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4120. SetPlayerVirtualWorld(i,var);
  4121. }
  4122. }
  4123. format(string,sizeof(string),"Administrator \"%s\" has set all players virtual worlds to '%d'", pName(playerid), var );
  4124. return SendClientMessageToAll(blue, string);
  4125. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4126. }
  4127.  
  4128. dcmd_setallscore(playerid,params[]) {
  4129. if(PlayerInfo[playerid][Level] >= 3) {
  4130. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallscore [score]");
  4131. new var = strval(params), string[128];
  4132. CMDMessageToAdmins(playerid,"SETALLSCORE");
  4133. for(new i = 0; i < MAX_PLAYERS; i++) {
  4134. if(IsPlayerConnected(i)) {
  4135. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4136. SetPlayerScore(i,var);
  4137. }
  4138. }
  4139. format(string,sizeof(string),"Administrator \"%s\" has set all players scores to '%d'", pName(playerid), var );
  4140. return SendClientMessageToAll(blue, string);
  4141. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4142. }
  4143.  
  4144. dcmd_setallcash(playerid,params[]) {
  4145. if(PlayerInfo[playerid][Level] >= 3) {
  4146. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallcash [Amount]");
  4147. new var = strval(params), string[128];
  4148. CMDMessageToAdmins(playerid,"SETALLCASH");
  4149. for(new i = 0; i < MAX_PLAYERS; i++) {
  4150. if(IsPlayerConnected(i)) {
  4151. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4152. ResetPlayerMoney(i);
  4153. GivePlayerMoney(i,var);
  4154. }
  4155. }
  4156. format(string,sizeof(string),"Administrator \"%s\" has set all players cash to '$%d'", pName(playerid), var );
  4157. return SendClientMessageToAll(blue, string);
  4158. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4159. }
  4160.  
  4161. dcmd_giveallcash(playerid,params[]) {
  4162. if(PlayerInfo[playerid][Level] >= 3) {
  4163. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /giveallcash [Amount]");
  4164. new var = strval(params), string[128];
  4165. CMDMessageToAdmins(playerid,"GIVEALLCASH");
  4166. for(new i = 0; i < MAX_PLAYERS; i++) {
  4167. if(IsPlayerConnected(i)) {
  4168. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4169. GivePlayerMoney(i,var);
  4170. }
  4171. }
  4172. format(string,sizeof(string),"Administrator \"%s\" has given all players '$%d'", pName(playerid), var );
  4173. return SendClientMessageToAll(blue, string);
  4174. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4175. }
  4176.  
  4177. dcmd_giveallweapon(playerid,params[]) {
  4178. if(PlayerInfo[playerid][Level] >= 3) {
  4179. new tmp[256], tmp2[256], Index, ammo, weap, WeapName[32], string[128]; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4180. if(!strlen(tmp) ) return SendClientMessage(playerid, red, "USAGE: /giveallweapon [weapon id/weapon name] [ammo]");
  4181. if(!strlen(tmp2) || !IsNumeric(tmp2) || strval(tmp2) <= 0 || strval(tmp2) > 99999) ammo = 500;
  4182. if(!IsNumeric(tmp)) weap = GetWeaponIDFromName(tmp); else weap = strval(tmp);
  4183. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid weapon ID");
  4184. CMDMessageToAdmins(playerid,"GIVEALLWEAPON");
  4185. for(new i = 0; i < MAX_PLAYERS; i++) {
  4186. if(IsPlayerConnected(i)) {
  4187. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4188. GivePlayerWeapon(i,weap,ammo);
  4189. }
  4190. }
  4191. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  4192. format(string,sizeof(string),"Administrator \"%s\" has given all players a %s (%d) with %d rounds of ammo", pName(playerid), WeapName, weap, ammo);
  4193. return SendClientMessageToAll(blue, string);
  4194. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4195. }
  4196.  
  4197.  
  4198. //================================[ Menu Commands ]=============================
  4199.  
  4200. #if defined USE_MENUS
  4201.  
  4202. dcmd_lmenu(playerid,params[]) {
  4203. #pragma unused params
  4204. if(PlayerInfo[playerid][Level] >= 2) {
  4205. if(IsPlayerInAnyVehicle(playerid)) {
  4206. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LMainMenu,playerid);
  4207. } else return ShowMenuForPlayer(LMainMenu,playerid);
  4208. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4209. }
  4210. dcmd_ltele(playerid,params[]) {
  4211. #pragma unused params
  4212. if(PlayerInfo[playerid][Level] >= 2) {
  4213. if(IsPlayerInAnyVehicle(playerid)) {
  4214. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTele,playerid);
  4215. } else return ShowMenuForPlayer(LTele,playerid);
  4216. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4217. }
  4218. dcmd_lweather(playerid,params[]) {
  4219. #pragma unused params
  4220. if(PlayerInfo[playerid][Level] >= 3) {
  4221. if(IsPlayerInAnyVehicle(playerid)) {
  4222. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LWeather,playerid);
  4223. } else return ShowMenuForPlayer(LWeather,playerid);
  4224. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4225. }
  4226. dcmd_ltime(playerid,params[]) {
  4227. #pragma unused params
  4228. if(PlayerInfo[playerid][Level] >= 3) {
  4229. if(IsPlayerInAnyVehicle(playerid)) {
  4230. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTime,playerid);
  4231. } else return ShowMenuForPlayer(LTime,playerid);
  4232. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4233. }
  4234. dcmd_cm(playerid,params[]) {
  4235. #pragma unused params
  4236. if(PlayerInfo[playerid][Level] >= 2) {
  4237. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You already have a car.");
  4238. else { ShowMenuForPlayer(LCars,playerid); return TogglePlayerControllable(playerid,false); }
  4239. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4240. }
  4241. dcmd_ltmenu(playerid,params[]) {
  4242. #pragma unused params
  4243. if(PlayerInfo[playerid][Level] >= 2) {
  4244. if(IsPlayerInAnyVehicle(playerid)) {
  4245. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  4246. 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!"); }
  4247. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTuneMenu,playerid);
  4248. } else return SendClientMessage(playerid,red,"ERROR: You do not have a vehicle to tune");
  4249. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4250. }
  4251. dcmd_lweapons(playerid,params[]) {
  4252. #pragma unused params
  4253. if(PlayerInfo[playerid][Level] >= 3) {
  4254. if(IsPlayerInAnyVehicle(playerid)) {
  4255. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(XWeapons,playerid);
  4256. } else return ShowMenuForPlayer(XWeapons,playerid);
  4257. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4258. }
  4259. dcmd_lvehicle(playerid,params[]) {
  4260. #pragma unused params
  4261. if(PlayerInfo[playerid][Level] >= 2) {
  4262. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You already have a car.");
  4263. else { ShowMenuForPlayer(LVehicles,playerid); return TogglePlayerControllable(playerid,false); }
  4264. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4265. }
  4266.  
  4267. #endif
  4268.  
  4269. //----------------------===== Place & Skin Saving =====-------------------------
  4270. dcmd_gotoplace(playerid,params[]) {
  4271. #pragma unused params
  4272. if(PlayerInfo[playerid][LoggedIn] == 1 && PlayerInfo[playerid][Level] >= 1) {
  4273. if (dUserINT(PlayerName2(playerid)).("x")!=0) {
  4274. PutAtPos(playerid);
  4275. SetPlayerVirtualWorld(playerid, (dUserINT(PlayerName2(playerid)).("world")) );
  4276. return SendClientMessage(playerid,yellow,"You have successfully teleported to your saved place");
  4277. } else return SendClientMessage(playerid,red,"ERROR: You must save a place before you can teleport to it");
  4278. } else return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");
  4279. }
  4280.  
  4281. dcmd_saveplace(playerid,params[]) {
  4282. #pragma unused params
  4283. if(PlayerInfo[playerid][LoggedIn] == 1 && PlayerInfo[playerid][Level] >= 1) {
  4284. new Float:x,Float:y,Float:z, interior;
  4285. GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
  4286. dUserSetINT(PlayerName2(playerid)).("x",floatround(x));
  4287. dUserSetINT(PlayerName2(playerid)).("y",floatround(y));
  4288. dUserSetINT(PlayerName2(playerid)).("z",floatround(z));
  4289. dUserSetINT(PlayerName2(playerid)).("interior",interior);
  4290. dUserSetINT(PlayerName2(playerid)).("world", (GetPlayerVirtualWorld(playerid)) );
  4291. return SendClientMessage(playerid,yellow,"You have successfully saved these coordinates");
  4292. } else return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");
  4293. }
  4294.  
  4295. dcmd_saveskin(playerid,params[]) {
  4296. if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4297. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /saveskin [skinid]");
  4298. new string[128], SkinID = strval(params);
  4299. 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))
  4300. {
  4301. dUserSetINT(PlayerName2(playerid)).("FavSkin",SkinID);
  4302. format(string, sizeof(string), "You have successfully saved this skin (ID %d)",SkinID);
  4303. SendClientMessage(playerid,yellow,string);
  4304. SendClientMessage(playerid,yellow,"Type: /useskin to use this skin when you spawn or /dontuseskin to stop using skin");
  4305. dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
  4306. return CMDMessageToAdmins(playerid,"SAVESKIN");
  4307. } else return SendClientMessage(playerid, green, "ERROR: Invalid Skin ID");
  4308. } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4309. }
  4310.  
  4311. dcmd_useskin(playerid,params[]) {
  4312. #pragma unused params
  4313. if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4314. dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
  4315. SetPlayerSkin(playerid,dUserINT(PlayerName2(playerid)).("FavSkin"));
  4316. return SendClientMessage(playerid,yellow,"Skin now in use");
  4317. } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4318. }
  4319.  
  4320. dcmd_dontuseskin(playerid,params[]) {
  4321. #pragma unused params
  4322. if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4323. dUserSetINT(PlayerName2(playerid)).("UseSkin",0);
  4324. return SendClientMessage(playerid,yellow,"Skin will no longer be used");
  4325. } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4326. }
  4327.  
  4328. //====================== [REGISTER & LOGIN] ==================================
  4329. #if defined USE_AREGISTER
  4330.  
  4331. dcmd_aregister(playerid,params[])
  4332. {
  4333. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already registered and logged in.");
  4334. if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: This account already exists, please use '/alogin [password]'.");
  4335. if (strlen(params) == 0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/aregister [password]'");
  4336. if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,red,"ACCOUNT: Password length must be greater than three characters");
  4337. if (udb_Create(PlayerName2(playerid),params))
  4338. {
  4339. new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  4340. new strdate[20], year,month,day; getdate(year, month, day);
  4341. GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  4342. GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  4343. // dini_Set(file,"password",params);
  4344. dUserSetINT(PlayerName2(playerid)).("registered",1);
  4345. format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  4346. dini_Set(file,"RegisteredDate",strdate);
  4347. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4348. dUserSetINT(PlayerName2(playerid)).("banned",0);
  4349. dUserSetINT(PlayerName2(playerid)).("level",0);
  4350. dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  4351. dUserSetINT(PlayerName2(playerid)).("money",0);
  4352. dUserSetINT(PlayerName2(playerid)).("vrules",0);
  4353. dUserSetINT(PlayerName2(playerid)).("kills",0);
  4354. dUserSetINT(PlayerName2(playerid)).("deaths",0);
  4355. PlayerInfo[playerid][LoggedIn] = 1;
  4356. PlayerInfo[playerid][Registered] = 1;
  4357. SendClientMessage(playerid, green, "ACCOUNT: You are now registered, and have been automaticaly logged in");
  4358. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4359. return 1;
  4360. }
  4361. return 1;
  4362. }
  4363.  
  4364. dcmd_alogin(playerid,params[])
  4365. {
  4366. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
  4367. if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/aregister [password]'.");
  4368. if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/alogin [password]'");
  4369. if (udb_CheckLogin(PlayerName2(playerid),params))
  4370. {
  4371. new file[256], tmp3[100], string[128];
  4372. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  4373. GetPlayerIp(playerid,tmp3,100);
  4374. dini_Set(file,"ip",tmp3);
  4375. LoginPlayer(playerid);
  4376. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4377. if(PlayerInfo[playerid][Level] > 0) {
  4378. format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
  4379. return SendClientMessage(playerid,green,string);
  4380. } else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
  4381. }
  4382. else {
  4383. PlayerInfo[playerid][FailLogin]++;
  4384. printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
  4385. if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
  4386. {
  4387. new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
  4388. SendClientMessageToAll(grey, string); print(string);
  4389. Kick(playerid);
  4390. }
  4391. return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
  4392. }
  4393. }
  4394.  
  4395. dcmd_achangepass(playerid,params[]) {
  4396. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4397. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /achangepass [new password]");
  4398. if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
  4399. new string[128];
  4400. dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(params) );
  4401. dUserSet(PlayerName2(playerid)).("Password",params);
  4402. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4403. format(string, sizeof(string),"ACCOUNT: You have successfully changed your password to [ %s ]",params);
  4404. return SendClientMessage(playerid,yellow,string);
  4405. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4406. }
  4407.  
  4408. dcmd_asetpass(playerid,params[]) {
  4409. if(PlayerInfo[playerid][Level] >= 3) {
  4410. new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4411. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /asetpass [playername] [new password]");
  4412. if(strlen(tmp2) < 4 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect password length");
  4413. if(udb_Exists(tmp)) {
  4414. dUserSetINT(tmp).("password_hash", udb_hash(tmp2));
  4415. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4416. format(string, sizeof(string),"ACCOUNT: You have successfully set \"%s's\" account password to \"%s\"", tmp, tmp2);
  4417. return SendClientMessage(playerid,yellow,string);
  4418. } else return SendClientMessage(playerid,red, "ERROR: This player doesnt have an account");
  4419. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4420. }
  4421.  
  4422. #if defined USE_STATS
  4423. dcmd_aresetstats(playerid,params[]) {
  4424. #pragma unused params
  4425. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4426. // save as backup
  4427. dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
  4428. dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
  4429. // stats reset
  4430. PlayerInfo[playerid][Kills] = 0;
  4431. PlayerInfo[playerid][Deaths] = 0;
  4432. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  4433. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  4434. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4435. return SendClientMessage(playerid,yellow,"ACCOUNT: You have successfully reset your stats. Your kills and deaths are: 0");
  4436. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4437. }
  4438.  
  4439. dcmd_astats(playerid,params[]) {
  4440. new string[128], pDeaths, player1, h, m, s;
  4441. if(!strlen(params)) player1 = playerid;
  4442. else player1 = strval(params);
  4443.  
  4444. if(IsPlayerConnected(player1)) {
  4445. TotalGameTime(player1, h, m, s);
  4446. if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
  4447. 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);
  4448. return SendClientMessage(playerid, green, string);
  4449. } else return SendClientMessage(playerid, red, "Player Not Connected!");
  4450. }
  4451. #endif
  4452.  
  4453.  
  4454. #else
  4455.  
  4456.  
  4457. dcmd_register(playerid,params[])
  4458. {
  4459. #pragma unused params
  4460. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already registered and logged in.");
  4461. if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: This account already exists, please use '/login'.");
  4462. ShowPlayerDialog(playerid,13338,DIALOG_STYLE_INPUT,"{00ff00}Register","{ffffff}Enter your password below:","Register","Disconnect");
  4463. return 1;
  4464. }
  4465.  
  4466. dcmd_login(playerid,params[])
  4467. {
  4468. #pragma unused params
  4469. if(PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
  4470. if(!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register'.");
  4471. ShowPlayerDialog(playerid,13337,DIALOG_STYLE_INPUT,"{00ff00}Login","{ffffff}Enter your password below:","Login","Disconnect");
  4472. return 1;
  4473. }
  4474.  
  4475. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  4476. {
  4477. switch(dialogid)
  4478. {
  4479. case 6969:
  4480. {
  4481. if(response)
  4482. {
  4483. if(getsMoney[playerid])
  4484. {
  4485. GivePlayerMoney(playerid, 10000);
  4486. return 0;
  4487. }
  4488. }
  4489. }
  4490. case 13339:
  4491. {
  4492. if(!response)
  4493. {
  4494. SendClientMessage(playerid, 0xffffffff, "No? {ff0000}GTFO THEN!!");
  4495. Kick(playerid);
  4496. return 0;
  4497. }
  4498. SendClientMessage(playerid, green, "Welcome! {ff0000}Thanks for accepting our rules!");
  4499. ShowPlayerDialog(playerid,13338,DIALOG_STYLE_INPUT,"{00ff00}Register","{ffffff}Enter your password below:","Register","Disconnect");
  4500. return 0;
  4501. }
  4502. case 13337:
  4503. {
  4504. if(!response)
  4505. {
  4506. Kick(playerid);
  4507. return 0;
  4508. }
  4509. if(udb_CheckLogin(PlayerName2(playerid),inputtext))
  4510. {
  4511. new file[256], tmp3[100], string[128];
  4512. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  4513. GetPlayerIp(playerid,tmp3,100);
  4514. dini_Set(file,"ip",tmp3);
  4515. LoginPlayer(playerid);
  4516. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4517. if(PlayerInfo[playerid][Level] > 0)
  4518. {
  4519. format(string,sizeof(string),"ACCOUNT: Successfully Logged In. [Level %d]", PlayerInfo[playerid][Level] );
  4520. SendClientMessage(playerid,green,string);
  4521. return 0;
  4522. }
  4523. else
  4524. {
  4525. SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
  4526. return 0;
  4527. }
  4528. }
  4529. else
  4530. {
  4531. PlayerInfo[playerid][FailLogin]++;
  4532. printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), inputtext, PlayerInfo[playerid][FailLogin] );
  4533. if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
  4534. {
  4535. new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
  4536. SendClientMessageToAll(grey, string);
  4537. print(string);
  4538. Kick(playerid);
  4539. return 0;
  4540. }
  4541. ShowPlayerDialog(playerid,13337,DIALOG_STYLE_INPUT,"{00ff00}Login","{ff0000}ERROR: Wrong password!\r\n{ffffff}Enter your password below:","Login","Disconnect");
  4542. return 0;
  4543. }
  4544. }
  4545. case 13338:
  4546. {
  4547. if(!response)
  4548. {
  4549. Kick(playerid);
  4550. return 0;
  4551. }
  4552. if(udb_Create(PlayerName2(playerid),inputtext))
  4553. {
  4554. new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  4555. new strdate[20], year,month,day; getdate(year, month, day);
  4556. GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  4557. GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  4558. //dini_Set(file,"password",params);
  4559. dUserSetINT(PlayerName2(playerid)).("registered",1);
  4560. format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  4561. dini_Set(file,"RegisteredDate",strdate);
  4562. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4563. dUserSetINT(PlayerName2(playerid)).("banned",0);
  4564. dUserSetINT(PlayerName2(playerid)).("level",0);
  4565. dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  4566. dUserSetINT(PlayerName2(playerid)).("money",0);
  4567. dUserSetINT(PlayerName2(playerid)).("vrules",0);
  4568. dUserSetINT(PlayerName2(playerid)).("kills",0);
  4569. dUserSetINT(PlayerName2(playerid)).("deaths",0);
  4570. dUserSetINT(PlayerName2(playerid)).("hours",0);
  4571. dUserSetINT(PlayerName2(playerid)).("minutes",0);
  4572. dUserSetINT(PlayerName2(playerid)).("seconds",0);
  4573. PlayerInfo[playerid][LoggedIn] = 1;
  4574. PlayerInfo[playerid][Registered] = 1;
  4575. SendClientMessage(playerid, green, "ACCOUNT: You are now registered, and have been automaticaly logged in");
  4576. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4577. return 0;
  4578. }
  4579. else
  4580. {
  4581. ShowPlayerDialog(playerid,13338,DIALOG_STYLE_INPUT,"{00ff00}Register","{ff0000}There was an error creating your account! {ffff00}Please try again!\r\n{ffffff}Enter your password below:","Login","Disconnect");
  4582. return 0;
  4583. }
  4584. }
  4585. }
  4586. return 0;
  4587. }
  4588.  
  4589. dcmd_changepass(playerid,params[]) {
  4590. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4591. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /changepass [new password]");
  4592. if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
  4593. new string[128];
  4594. dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(params) );
  4595. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4596. format(string, sizeof(string),"ACCOUNT: You have successfully changed your password to \"%s\"",params);
  4597. return SendClientMessage(playerid,yellow,string);
  4598. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4599. }
  4600.  
  4601. dcmd_setpass(playerid,params[]) {
  4602. if(PlayerInfo[playerid][Level] >= 3) {
  4603. new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4604. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setpass [playername] [new password]");
  4605. if(strlen(tmp2) < 4 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect password length");
  4606. if(udb_Exists(tmp)) {
  4607. dUserSetINT(tmp).("password_hash", udb_hash(tmp2));
  4608. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4609. format(string, sizeof(string),"ACCOUNT: You have successfully set \"%s's\" account password to \"%s\"", tmp, tmp2);
  4610. return SendClientMessage(playerid,yellow,string);
  4611. } else return SendClientMessage(playerid,red, "ERROR: This player doesnt have an account");
  4612. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4613. }
  4614.  
  4615. #if defined USE_STATS
  4616. dcmd_resetstats(playerid,params[]) {
  4617. #pragma unused params
  4618. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4619. // save as backup
  4620. dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
  4621. dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
  4622. // stats reset
  4623. PlayerInfo[playerid][Kills] = 0;
  4624. PlayerInfo[playerid][Deaths] = 0;
  4625. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  4626. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  4627. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4628. return SendClientMessage(playerid,yellow,"ACCOUNT: You have successfully reset your stats. Your kills and deaths are: 0");
  4629. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4630. }
  4631. #endif
  4632.  
  4633. #if defined USE_STATS
  4634. dcmd_stats(playerid,params[]) {
  4635. new string[128], pDeaths, player1, h, m, s;
  4636. if(!strlen(params)) player1 = playerid;
  4637. else player1 = strval(params);
  4638.  
  4639. if(IsPlayerConnected(player1)) {
  4640. TotalGameTime(player1, h, m, s);
  4641. if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
  4642. 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);
  4643. return SendClientMessage(playerid, green, string);
  4644. } else return SendClientMessage(playerid, red, "Player Not Connected!");
  4645. }
  4646. #endif
  4647.  
  4648.  
  4649. #endif
  4650.  
  4651.  
  4652. LoginPlayer(playerid)
  4653. {
  4654. if(ServerInfo[GiveMoney] == 1) {ResetPlayerMoney(playerid); GivePlayerMoney(playerid, dUserINT(PlayerName2(playerid)).("money") ); }
  4655. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4656. SetPlayerScore(playerid, (dUserINT(PlayerName2(playerid)).("Score")));
  4657. SetPlayerWantedLevel(playerid, (dUserINT(PlayerName2(playerid)).("Wanted")));
  4658. PlayerInfo[playerid][Deaths] = (dUserINT(PlayerName2(playerid)).("deaths"));
  4659. PlayerInfo[playerid][Kills] = (dUserINT(PlayerName2(playerid)).("kills"));
  4660. PlayerInfo[playerid][Level] = (dUserINT(PlayerName2(playerid)).("level"));
  4661. viewedRules[playerid] = (dUserINT(PlayerName2(playerid)).("vrules"));
  4662. PlayerInfo[playerid][hours] = dUserINT(PlayerName2(playerid)).("hours");
  4663. PlayerInfo[playerid][mins] = dUserINT(PlayerName2(playerid)).("minutes");
  4664. PlayerInfo[playerid][secs] = dUserINT(PlayerName2(playerid)).("seconds");
  4665. PlayerInfo[playerid][Registered] = 1;
  4666. PlayerInfo[playerid][LoggedIn] = 1;
  4667. }
  4668.  
  4669. //==============================================================================
  4670. public OnPlayerCommandText(playerid, cmdtext[])
  4671. {
  4672. if(PlayerInfo[playerid][Jailed] == 1 && PlayerInfo[playerid][Level] < 1) return
  4673. SendClientMessage(playerid,red,"You cannot use commands in jail");
  4674.  
  4675. new cmd[256], string[128], tmp[256], idx;
  4676. cmd = strtok(cmdtext, idx);
  4677. dcmd(makelht,7,cmdtext);
  4678. #if defined USE_AREGISTER
  4679. dcmd(aregister,9,cmdtext);
  4680. dcmd(alogin,6,cmdtext);
  4681. dcmd(achangepass,11,cmdtext);
  4682. dcmd(asetpass,8,cmdtext);
  4683. #if defined USE_STATS
  4684. dcmd(astats,6,cmdtext);
  4685. dcmd(aresetstats,11,cmdtext);
  4686. #endif
  4687.  
  4688. #else
  4689.  
  4690. dcmd(register,8,cmdtext);
  4691. dcmd(login,5,cmdtext);
  4692. dcmd(changepass,10,cmdtext);
  4693. dcmd(setpass,7,cmdtext);
  4694. #if defined USE_STATS
  4695. dcmd(stats,5,cmdtext);
  4696. dcmd(resetstats,10,cmdtext);
  4697. #endif
  4698.  
  4699. #endif
  4700. dcmd(pm,2,cmdtext);
  4701. dcmd(nopms,5,cmdtext);
  4702. dcmd(report,6,cmdtext);
  4703. dcmd(reports,7,cmdtext);
  4704.  
  4705. //================ [ Read Comamands ] ===========================//
  4706. if(ServerInfo[ReadCmds] == 1)
  4707. {
  4708. format(string, sizeof(string), "*** %s (%d) typed: %s", pName(playerid),playerid,cmdtext);
  4709. for(new i = 0; i < MAX_PLAYERS; i++) {
  4710. if(IsPlayerConnected(i)) {
  4711. if( (PlayerInfo[i][Level] > PlayerInfo[playerid][Level]) && (PlayerInfo[i][Level] > 1) && (i != playerid) ) {
  4712. SendClientMessage(i, grey, string);
  4713. }
  4714. }
  4715. }
  4716. }
  4717.  
  4718. //-= Spectate Commands =-//
  4719. #if defined ENABLE_SPEC
  4720. dcmd(lspec,5,cmdtext);
  4721. dcmd(lspecoff,8,cmdtext);
  4722. dcmd(lspecvehicle,12,cmdtext);
  4723. #endif
  4724.  
  4725. //-= Chat Commands =-//
  4726. dcmd(disablechat,11,cmdtext);
  4727. dcmd(clearchat,9,cmdtext);
  4728. dcmd(clearallchat,12,cmdtext);
  4729. dcmd(caps,4,cmdtext);
  4730.  
  4731. //-= Vehicle Commands =-//
  4732. dcmd(destroycar,10,cmdtext);
  4733. dcmd(lockcar,7,cmdtext);
  4734. dcmd(unlockcar,9,cmdtext);
  4735. dcmd(carhealth,9,cmdtext);
  4736. dcmd(carcolour,9,cmdtext);
  4737. dcmd(car,3,cmdtext);
  4738. dcmd(vr,2,cmdtext);
  4739. dcmd(fix,3,cmdtext);
  4740.  
  4741. dcmd(ltune,5,cmdtext);
  4742. dcmd(lhy,3,cmdtext);
  4743. dcmd(lcar,4,cmdtext);
  4744. dcmd(lbike,5,cmdtext);
  4745. dcmd(lheli,5,cmdtext);
  4746. dcmd(lboat,5,cmdtext);
  4747. //dcmd(lnos,4,cmdtext);
  4748. dcmd(lplane,6,cmdtext);
  4749. dcmd(vgoto,5,cmdtext);
  4750. dcmd(vget,4,cmdtext);
  4751. dcmd(givecar,7,cmdtext);
  4752. dcmd(flip,4,cmdtext);
  4753. dcmd(ltc,3,cmdtext);
  4754. dcmd(linkcar,7,cmdtext);
  4755.  
  4756. //-= Playerid Commands =-//
  4757. dcmd(crash,5,cmdtext);
  4758. dcmd(ip,2,cmdtext);
  4759. dcmd(force,5,cmdtext);
  4760. dcmd(burn,4,cmdtext);
  4761. dcmd(spawn,5,cmdtext);
  4762. dcmd(spawnplayer,11,cmdtext);
  4763. dcmd(disarm,6,cmdtext);
  4764. dcmd(eject,5,cmdtext);
  4765. dcmd(bankrupt,8,cmdtext);
  4766. dcmd(sbankrupt,9,cmdtext);
  4767. dcmd(setworld,8,cmdtext);
  4768. dcmd(setinterior,11,cmdtext);
  4769. dcmd(ubound,6,cmdtext);
  4770. dcmd(setwanted,9,cmdtext);
  4771. dcmd(setcolour,9,cmdtext);
  4772. dcmd(settime,7,cmdtext);
  4773. dcmd(setweather,10,cmdtext);
  4774. dcmd(setname,7,cmdtext);
  4775. dcmd(setskin,7,cmdtext);
  4776. dcmd(setscore,8,cmdtext);
  4777. dcmd(setcash,7,cmdtext);
  4778. dcmd(sethealth,9,cmdtext);
  4779. dcmd(setarmour,9,cmdtext);
  4780. dcmd(giveweapon,10,cmdtext);
  4781. dcmd(warp,4,cmdtext);
  4782. dcmd(teleplayer,10,cmdtext);
  4783. dcmd(goto,4,cmdtext);
  4784. dcmd(gethere,7,cmdtext);
  4785. dcmd(get,3,cmdtext);
  4786. dcmd(setlevel,8,cmdtext);
  4787. dcmd(settemplevel,12,cmdtext);
  4788. dcmd(fu,2,cmdtext);
  4789. dcmd(warn,4,cmdtext);
  4790. dcmd(kick,4,cmdtext);
  4791. dcmd(ban,3,cmdtext);
  4792. dcmd(rban,4,cmdtext);
  4793. dcmd(slap,4,cmdtext);
  4794. dcmd(explode,7,cmdtext);
  4795. dcmd(jail,4,cmdtext);
  4796. dcmd(unjail,6,cmdtext);
  4797. dcmd(jailed,6,cmdtext);
  4798. dcmd(freeze,6,cmdtext);
  4799. dcmd(unfreeze,8,cmdtext);
  4800. dcmd(frozen,6,cmdtext);
  4801. dcmd(mute,4,cmdtext);
  4802. dcmd(unmute,6,cmdtext);
  4803. dcmd(muted,5,cmdtext);
  4804. dcmd(akill,5,cmdtext);
  4805. dcmd(weaps,5,cmdtext);
  4806. dcmd(screen,6,cmdtext);
  4807. dcmd(lgoto,5,cmdtext);
  4808. dcmd(aka,3,cmdtext);
  4809. dcmd(highlight,9,cmdtext);
  4810.  
  4811. //-= /All Commands =-//
  4812. dcmd(healall,7,cmdtext);
  4813. dcmd(armourall,9,cmdtext);
  4814. dcmd(muteall,7,cmdtext);
  4815. dcmd(unmuteall,9,cmdtext);
  4816. dcmd(killall,7,cmdtext);
  4817. dcmd(getall,6,cmdtext);
  4818. dcmd(spawnall,8,cmdtext);
  4819. dcmd(freezeall,9,cmdtext);
  4820. dcmd(unfreezeall,11,cmdtext);
  4821. dcmd(explodeall,10,cmdtext);
  4822. dcmd(kickall,7,cmdtext);
  4823. dcmd(slapall,7,cmdtext);
  4824. dcmd(ejectall,8,cmdtext);
  4825. dcmd(disarmall,9,cmdtext);
  4826. dcmd(setallskin,10,cmdtext);
  4827. dcmd(setallwanted,12,cmdtext);
  4828. dcmd(setallweather,13,cmdtext);
  4829. dcmd(setalltime,10,cmdtext);
  4830. dcmd(setallworld,11,cmdtext);
  4831. dcmd(setallscore,11,cmdtext);
  4832. dcmd(setallcash,10,cmdtext);
  4833. dcmd(giveallcash,11,cmdtext);
  4834. dcmd(giveallweapon,13,cmdtext);
  4835.  
  4836. //-= No params =-//
  4837. dcmd(lslowmo,7,cmdtext);
  4838. dcmd(lweaps,6,cmdtext);
  4839. dcmd(lammo,5,cmdtext);
  4840. dcmd(god,3,cmdtext);
  4841. dcmd(sgod,4,cmdtext);
  4842. dcmd(godcar,6,cmdtext);
  4843. dcmd(die,3,cmdtext);
  4844. dcmd(jetpack,7,cmdtext);
  4845. dcmd(admins,6,cmdtext);
  4846. dcmd(morning,7,cmdtext);
  4847.  
  4848. //-= Admin special =-//
  4849. dcmd(saveplace,9,cmdtext);
  4850. dcmd(gotoplace,9,cmdtext);
  4851. dcmd(saveskin,8,cmdtext);
  4852. dcmd(useskin,7,cmdtext);
  4853. dcmd(dontuseskin,11,cmdtext);
  4854.  
  4855. //-= Config =-//
  4856. dcmd(disable,7,cmdtext);
  4857. dcmd(enable,6,cmdtext);
  4858. dcmd(setping,7,cmdtext);
  4859. dcmd(setgravity,10,cmdtext);
  4860. dcmd(uconfig,7,cmdtext);
  4861. dcmd(lconfig,7,cmdtext);
  4862. dcmd(forbidname,10,cmdtext);
  4863. dcmd(forbidword,10,cmdtext);
  4864.  
  4865. //-= Misc =-//
  4866. dcmd(setmytime,9,cmdtext);
  4867. dcmd(kill,4,cmdtext);
  4868. dcmd(time,4,cmdtext);
  4869. dcmd(lhelp,5,cmdtext);
  4870. dcmd(lcmds,5,cmdtext);
  4871. dcmd(lcommands,9,cmdtext);
  4872. dcmd(level1,6,cmdtext);
  4873. dcmd(level2,6,cmdtext);
  4874. dcmd(level3,6,cmdtext);
  4875. dcmd(level4,6,cmdtext);
  4876. dcmd(level5,6,cmdtext);
  4877. dcmd(lcredits,8,cmdtext);
  4878. dcmd(serverinfo,10,cmdtext);
  4879. dcmd(getid,5,cmdtext);
  4880. dcmd(getinfo,7,cmdtext);
  4881. dcmd(laston,6,cmdtext);
  4882. dcmd(ping,4,cmdtext);
  4883. dcmd(countdown,9,cmdtext);
  4884. dcmd(duel,4,cmdtext);
  4885. dcmd(asay,4,cmdtext);
  4886. dcmd(password,8,cmdtext);
  4887. dcmd(lockserver,10,cmdtext);
  4888. dcmd(unlockserver,12,cmdtext);
  4889. dcmd(adminarea,9,cmdtext);
  4890. dcmd(announce,8,cmdtext);
  4891. dcmd(announce2,9,cmdtext);
  4892. dcmd(richlist,8,cmdtext);
  4893. dcmd(miniguns,8,cmdtext);
  4894. dcmd(botcheck,8,cmdtext);
  4895. dcmd(object,6,cmdtext);
  4896. dcmd(pickup,6,cmdtext);
  4897. dcmd(move,4,cmdtext);
  4898. dcmd(moveplayer,10,cmdtext);
  4899.  
  4900. #if defined ENABLE_FAKE_CMDS
  4901. dcmd(fakedeath,9,cmdtext);
  4902. dcmd(fakechat,8,cmdtext);
  4903. dcmd(fakecmd,7,cmdtext);
  4904. #endif
  4905.  
  4906. //-= Menu Commands =-//
  4907. #if defined USE_MENUS
  4908. dcmd(lmenu,5,cmdtext);
  4909. dcmd(ltele,5,cmdtext);
  4910. dcmd(lvehicle,8,cmdtext);
  4911. dcmd(lweapons,8,cmdtext);
  4912. dcmd(lweather,8,cmdtext);
  4913. dcmd(ltmenu,6,cmdtext);
  4914. dcmd(ltime,5,cmdtext);
  4915. dcmd(cm,2,cmdtext);
  4916. #endif
  4917.  
  4918.  
  4919.  
  4920.  
  4921. //========================= [ Car Commands ]====================================
  4922.  
  4923. if(!strcmp(cmdtext, "/rules")) // before you write /rules test /debug. and then type /rules and check /debug again ok
  4924. {
  4925. new str[1111];
  4926. if(viewedRules[playerid] != 0) // Has viewed rules.
  4927. {
  4928. str = "{FFFFFF}No cheating, glitching or using any script exploit! Every cheater or bug MUST be reported by /report or on forum\nNo ramming or blocking\nNo carjacking! Locking vehicles not owned by you\nNo killing, punching, carkilling or running over\nNo Spamming\nNo flaming, racism or disrespecting other players\nNo asking for admin level";
  4929. ShowPlayerDialog(playerid,6969,DIALOG_STYLE_MSGBOX,"{FF0000}Server Rules",str,"Ok","Back");
  4930. getsMoney[playerid] = 0; // Will NOT get any money.
  4931. }
  4932. else if(viewedRules[playerid] == 0)
  4933. {
  4934. str = "{FFFFFF}No cheating, glitching or using any script exploit! Every cheater or bug MUST be reported by /report or on forum\nNo ramming or blocking\nNo carjacking! Locking vehicles not owned by you\nNo killing, punching, carkilling or running over\nNo Spamming\nNo flaming, racism or disrespecting other players\nNo asking for admin level";
  4935. ShowPlayerDialog(playerid,6969,DIALOG_STYLE_MSGBOX,"{FF0000}Server Rules",str,"Ok","Back");
  4936. viewedRules[playerid] = 1; // Has viewed rules.
  4937. getsMoney[playerid] = 1; // Will get money.
  4938. }
  4939. return 1;
  4940. }
  4941. if(strcmp(cmdtext, "/ltunedcar2", true)==0 || strcmp(cmdtext, "/ltc2", true)==0) {
  4942. if(PlayerInfo[playerid][Level] >= 1) {
  4943. if(IsPlayerInAnyVehicle(playerid)) {
  4944. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4945. } else {
  4946. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4947. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4948. 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);
  4949. AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  4950. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,1);
  4951. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  4952. PlayerInfo[playerid][pCar] = LVehicleIDt;
  4953. }
  4954. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4955. return 1; }
  4956. //------------------------------------------------------------------------------
  4957. if(strcmp(cmdtext, "/ltunedcar3", true)==0 || strcmp(cmdtext, "/ltc3", true)==0) {
  4958. if(PlayerInfo[playerid][Level] >= 1) {
  4959. if(IsPlayerInAnyVehicle(playerid)) {
  4960. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4961. } else {
  4962. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4963. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4964. 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);
  4965. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,2);
  4966. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  4967. PlayerInfo[playerid][pCar] = LVehicleIDt;
  4968. }
  4969. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4970. return 1; }
  4971. //------------------------------------------------------------------------------
  4972. if(strcmp(cmdtext, "/ltunedcar4", true)==0 || strcmp(cmdtext, "/ltc4", true)==0) {
  4973. if(PlayerInfo[playerid][Level] >= 1) {
  4974. if(IsPlayerInAnyVehicle(playerid)) {
  4975. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4976. } else {
  4977. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4978. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4979. carid = CreateVehicle(559,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4980. AddVehicleComponent(carid,1065); AddVehicleComponent(carid,1067); AddVehicleComponent(carid,1162); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4981. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4982. PlayerInfo[playerid][pCar] = carid;
  4983. }
  4984. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4985. return 1; }
  4986. //------------------------------------------------------------------------------
  4987. if(strcmp(cmdtext, "/ltunedcar5", true)==0 || strcmp(cmdtext, "/ltc5", true)==0) {
  4988. if(PlayerInfo[playerid][Level] >= 1) {
  4989. if(IsPlayerInAnyVehicle(playerid)) {
  4990. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4991. } else {
  4992. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4993. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4994. carid = CreateVehicle(565,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4995. AddVehicleComponent(carid,1046); AddVehicleComponent(carid,1049); AddVehicleComponent(carid,1053); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4996. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4997. PlayerInfo[playerid][pCar] = carid;
  4998. }
  4999. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5000. return 1; }
  5001. //------------------------------------------------------------------------------
  5002. if(strcmp(cmdtext, "/ltunedcar6", true)==0 || strcmp(cmdtext, "/ltc6", true)==0) {
  5003. if(PlayerInfo[playerid][Level] >= 1) {
  5004. if(IsPlayerInAnyVehicle(playerid)) {
  5005. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  5006. } else {
  5007. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5008. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  5009. carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  5010. AddVehicleComponent(carid,1088); AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1139); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  5011. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  5012. PlayerInfo[playerid][pCar] = carid;
  5013. }
  5014. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5015. return 1; }
  5016. //------------------------------------------------------------------------------
  5017. if(strcmp(cmdtext, "/ltunedcar7", true)==0 || strcmp(cmdtext, "/ltc7", true)==0) {
  5018. if(PlayerInfo[playerid][Level] >= 1) {
  5019. if(IsPlayerInAnyVehicle(playerid)) {
  5020. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  5021. } else {
  5022. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5023. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  5024. carid = CreateVehicle(561,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  5025. AddVehicleComponent(carid,1055); AddVehicleComponent(carid,1058); AddVehicleComponent(carid,1064); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  5026. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  5027. PlayerInfo[playerid][pCar] = carid;
  5028. }
  5029. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5030. return 1; }
  5031. //------------------------------------------------------------------------------
  5032. if(strcmp(cmdtext, "/ltunedcar8", true)==0 || strcmp(cmdtext, "/ltc8", true)==0) {
  5033. if(PlayerInfo[playerid][Level] >= 1) {
  5034. if(IsPlayerInAnyVehicle(playerid)) {
  5035. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  5036. } else {
  5037. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5038. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  5039. carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  5040. AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  5041. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  5042. PlayerInfo[playerid][pCar] = carid;
  5043. }
  5044. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5045. return 1; }
  5046. //------------------------------------------------------------------------------
  5047. if(strcmp(cmdtext, "/ltunedcar9", true)==0 || strcmp(cmdtext, "/ltc9", true)==0) {
  5048. if(PlayerInfo[playerid][Level] >= 1) {
  5049. if(IsPlayerInAnyVehicle(playerid)) {
  5050. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  5051. } else {
  5052. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5053. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  5054. carid = CreateVehicle(567,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  5055. 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);
  5056. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  5057. PlayerInfo[playerid][pCar] = carid;
  5058. }
  5059. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5060. return 1; }
  5061. //------------------------------------------------------------------------------
  5062. if(strcmp(cmdtext, "/ltunedcar10", true)==0 || strcmp(cmdtext, "/ltc10", true)==0) {
  5063. if(PlayerInfo[playerid][Level] >= 1) {
  5064. if(IsPlayerInAnyVehicle(playerid)) {
  5065. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  5066. } else {
  5067. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5068. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  5069. carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  5070. AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1166); AddVehicleComponent(carid,1165); AddVehicleComponent(carid,1090);
  5071. AddVehicleComponent(carid,1094); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1163);//SPOILER
  5072. AddVehicleComponent(carid,1091); ChangeVehiclePaintjob(carid,2);
  5073. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  5074. PlayerInfo[playerid][pCar] = carid;
  5075. }
  5076. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5077. return 1; }
  5078. //------------------------------------------------------------------------------
  5079. if(strcmp(cmdtext, "/ltunedcar11", true)==0 || strcmp(cmdtext, "/ltc11", true)==0) {
  5080. if(PlayerInfo[playerid][Level] >= 1) {
  5081. if(IsPlayerInAnyVehicle(playerid)) {
  5082. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  5083. } else {
  5084. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5085. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  5086. carid = CreateVehicle(557,X,Y,Z,Angle,1,1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  5087. AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1081);
  5088. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  5089. PlayerInfo[playerid][pCar] = carid;
  5090. }
  5091. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5092. return 1; }
  5093. //------------------------------------------------------------------------------
  5094. if(strcmp(cmdtext, "/ltunedcar12", true)==0 || strcmp(cmdtext, "/ltc12", true)==0) {
  5095. if(PlayerInfo[playerid][Level] >= 1) {
  5096. if(IsPlayerInAnyVehicle(playerid)) {
  5097. SendClientMessage(playerid,red,"Error: You already have a vehicle");
  5098. } else {
  5099. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5100. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  5101. carid = CreateVehicle(535,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  5102. ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1109); AddVehicleComponent(carid,1115); AddVehicleComponent(carid,1117); AddVehicleComponent(carid,1073); AddVehicleComponent(carid,1010);
  5103. AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1114); AddVehicleComponent(carid,1081); AddVehicleComponent(carid,1119); AddVehicleComponent(carid,1121);
  5104. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  5105. PlayerInfo[playerid][pCar] = carid;
  5106. }
  5107. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5108. return 1; }
  5109. //------------------------------------------------------------------------------
  5110. if(strcmp(cmdtext, "/ltunedcar13", true)==0 || strcmp(cmdtext, "/ltc13", true)==0) {
  5111. if(PlayerInfo[playerid][Level] >= 1) {
  5112. if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid,red,"Error: You already have a vehicle");
  5113. else {
  5114. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5115. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  5116. carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  5117. AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147);
  5118. AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,0);
  5119. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  5120. PlayerInfo[playerid][pCar] = carid;
  5121. }
  5122. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5123. return 1; }
  5124. //------------------------------------------------------------------------------
  5125. if(strcmp(cmd, "/lp", true) == 0) {
  5126. if(PlayerInfo[playerid][Level] >= 1) {
  5127. if (GetPlayerState(playerid) == 2)
  5128. {
  5129. new VehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(VehicleID);
  5130. 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"); }
  5131. new str[128], Float:pos[3]; format(str, sizeof(str), "%s", cmdtext[2]);
  5132. SetVehicleNumberPlate(VehicleID, str);
  5133. GetPlayerPos(playerid, pos[0], pos[1], pos[2]); SetPlayerPos(playerid, pos[0]+1, pos[1], pos[2]);
  5134. SetVehicleToRespawn(VehicleID); SetVehiclePos(VehicleID, pos[0], pos[1], pos[2]);
  5135. SetTimerEx("TuneLCar",4000,0,"d",VehicleID); PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  5136. SendClientMessage(playerid, blue, "You have changed your licence plate"); CMDMessageToAdmins(playerid,"LP");
  5137. } else {
  5138. SendClientMessage(playerid,red,"Error: You have to be the driver of a vehicle to change its licence plate"); }
  5139. } else {
  5140. SendClientMessage(playerid,red,"ERROR: You need to be level 1 use this command"); }
  5141. return 1; }
  5142.  
  5143. //------------------------------------------------------------------------------
  5144. if(strcmp(cmd, "/spam", true) == 0) {
  5145. if(PlayerInfo[playerid][Level] >= 5) {
  5146. tmp = strtok(cmdtext, idx);
  5147. if(!strlen(tmp)) {
  5148. SendClientMessage(playerid, red, "USAGE: /spam [Colour] [Text]");
  5149. SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  5150. return 1;
  5151. }
  5152. new Colour = strval(tmp);
  5153. 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");
  5154. tmp = strtok(cmdtext, idx);
  5155.  
  5156. format(string,sizeof(string),"%s",cmdtext[8]);
  5157.  
  5158. if(Colour == 0) for(new i; i < 50; i++) SendClientMessageToAll(black,string);
  5159. else if(Colour == 1) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_WHITE,string);
  5160. else if(Colour == 2) for(new i; i < 50; i++) SendClientMessageToAll(red,string);
  5161. else if(Colour == 3) for(new i; i < 50; i++) SendClientMessageToAll(orange,string);
  5162. else if(Colour == 4) for(new i; i < 50; i++) SendClientMessageToAll(yellow,string);
  5163. else if(Colour == 5) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_GREEN1,string);
  5164. else if(Colour == 6) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_BLUE,string);
  5165. else if(Colour == 7) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_PURPLE,string);
  5166. else if(Colour == 8) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_BROWN,string);
  5167. else if(Colour == 9) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_PINK,string);
  5168. return 1;
  5169. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 5 to use this command");
  5170. }
  5171.  
  5172. //------------------------------------------------------------------------------
  5173. if(strcmp(cmd, "/write", true) == 0) {
  5174. if(PlayerInfo[playerid][Level] >= 2) {
  5175. tmp = strtok(cmdtext, idx);
  5176. if(!strlen(tmp)) {
  5177. SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
  5178. 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");
  5179. }
  5180. new Colour;
  5181. Colour = strval(tmp);
  5182. if(Colour > 9 ) {
  5183. SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
  5184. 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");
  5185. }
  5186. tmp = strtok(cmdtext, idx);
  5187.  
  5188. CMDMessageToAdmins(playerid,"WRITE");
  5189.  
  5190. if(Colour == 0) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(black,string); return 1; }
  5191. else if(Colour == 1) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_WHITE,string); return 1; }
  5192. else if(Colour == 2) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(red,string); return 1; }
  5193. else if(Colour == 3) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(orange,string); return 1; }
  5194. else if(Colour == 4) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(yellow,string); return 1; }
  5195. else if(Colour == 5) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_GREEN1,string); return 1; }
  5196. else if(Colour == 6) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BLUE,string); return 1; }
  5197. else if(Colour == 7) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_PURPLE,string); return 1; }
  5198. else if(Colour == 8) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BROWN,string); return 1; }
  5199. else if(Colour == 9) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_PINK,string); return 1; }
  5200. return 1;
  5201. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  5202. }
  5203.  
  5204. //------------------------------------------------------------------------------
  5205. // Remote Console
  5206. //------------------------------------------------------------------------------
  5207.  
  5208. if(strcmp(cmd, "/loadfs", true) == 0) {
  5209. if(PlayerInfo[playerid][Level] >= 5) {
  5210. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  5211. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5212. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5213. }
  5214.  
  5215. if(strcmp(cmd, "/unloadfs", true) == 0) {
  5216. if(PlayerInfo[playerid][Level] >= 5) {
  5217. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  5218. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5219. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5220. }
  5221.  
  5222. if(strcmp(cmd, "/changemode", true) == 0) {
  5223. if(PlayerInfo[playerid][Level] >= 4) {
  5224. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  5225. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5226. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5227. }
  5228.  
  5229. if(strcmp(cmd, "/gmx", true) == 0) {
  5230. if(PlayerInfo[playerid][Level] >= 5) {
  5231. OnFilterScriptExit(); SetTimer("RestartGM",5000,0);
  5232. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5233. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5234. }
  5235.  
  5236. if(strcmp(cmd, "/loadladmin", true) == 0) {
  5237. if(PlayerInfo[playerid][Level] >= 5) {
  5238. SendRconCommand("loadfs ladmin4");
  5239. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5240. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5241. }
  5242.  
  5243. if(strcmp(cmd, "/unloadladmin", true) == 0) {
  5244. if(PlayerInfo[playerid][Level] >= 5) {
  5245. SendRconCommand("unloadfs ladmin4");
  5246. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5247. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5248. }
  5249.  
  5250. if(strcmp(cmd, "/reloadladmin", true) == 0) {
  5251. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid) ) {
  5252. SendRconCommand("reloadfs ladmin4");
  5253. SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5254. return CMDMessageToAdmins(playerid,"RELOADLADMIN");
  5255. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5256. }
  5257.  
  5258.  
  5259. return 0;
  5260. }
  5261.  
  5262.  
  5263. //==============================================================================
  5264. #if defined ENABLE_SPEC
  5265.  
  5266. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  5267. {
  5268. new x = 0;
  5269. while(x!=MAX_PLAYERS) {
  5270. if( IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_SPECTATING &&
  5271. PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_PLAYER )
  5272. {
  5273. SetPlayerInterior(x,newinteriorid);
  5274. }
  5275. x++;
  5276. }
  5277. }
  5278.  
  5279. //==============================================================================
  5280. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  5281. {
  5282. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5283. {
  5284. if(newkeys == KEY_JUMP) AdvanceSpectate(playerid);
  5285. else if(newkeys == KEY_SPRINT) ReverseSpectate(playerid);
  5286. }
  5287. return 1;
  5288. }
  5289.  
  5290. //==============================================================================
  5291. public OnPlayerEnterVehicle(playerid, vehicleid) {
  5292. for(new x=0; x<MAX_PLAYERS; x++) {
  5293. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
  5294. TogglePlayerSpectating(x, 1);
  5295. PlayerSpectateVehicle(x, vehicleid);
  5296. PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  5297. }
  5298. }
  5299. return 1;
  5300. }
  5301.  
  5302. //==============================================================================
  5303. public OnPlayerStateChange(playerid, newstate, oldstate) {
  5304. switch(newstate) {
  5305. case PLAYER_STATE_ONFOOT: {
  5306. switch(oldstate) {
  5307. case PLAYER_STATE_DRIVER: OnPlayerExitVehicle(playerid,255);
  5308. case PLAYER_STATE_PASSENGER: OnPlayerExitVehicle(playerid,255);
  5309. }
  5310. }
  5311. }
  5312. return 1;
  5313. }
  5314.  
  5315. #endif
  5316.  
  5317. //==============================================================================
  5318. public OnPlayerExitVehicle(playerid, vehicleid)
  5319. {
  5320. if(PlayerInfo[playerid][DoorsLocked] == 1) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,false,false);
  5321.  
  5322. #if defined ENABLE_SPEC
  5323. for(new x=0; x<MAX_PLAYERS; x++) {
  5324. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_VEHICLE) {
  5325. TogglePlayerSpectating(x, 1);
  5326. PlayerSpectatePlayer(x, playerid);
  5327. PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
  5328. }
  5329. }
  5330. #endif
  5331.  
  5332. return 1;
  5333. }
  5334.  
  5335. //==============================================================================
  5336. #if defined ENABLE_SPEC
  5337.  
  5338. stock StartSpectate(playerid, specplayerid)
  5339. {
  5340. for(new x=0; x<MAX_PLAYERS; x++) {
  5341. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
  5342. AdvanceSpectate(x);
  5343. }
  5344. }
  5345. SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
  5346. TogglePlayerSpectating(playerid, 1);
  5347.  
  5348. if(IsPlayerInAnyVehicle(specplayerid)) {
  5349. PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
  5350. PlayerInfo[playerid][SpecID] = specplayerid;
  5351. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  5352. }
  5353. else {
  5354. PlayerSpectatePlayer(playerid, specplayerid);
  5355. PlayerInfo[playerid][SpecID] = specplayerid;
  5356. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
  5357. }
  5358. new string[100], Float:hp, Float:ar;
  5359. GetPlayerName(specplayerid,string,sizeof(string));
  5360. GetPlayerHealth(specplayerid, hp); GetPlayerArmour(specplayerid, ar);
  5361. 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) );
  5362. GameTextForPlayer(playerid,string,25000,3);
  5363. return 1;
  5364. }
  5365.  
  5366. stock StopSpectate(playerid)
  5367. {
  5368. TogglePlayerSpectating(playerid, 0);
  5369. PlayerInfo[playerid][SpecID] = INVALID_PLAYER_ID;
  5370. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_NONE;
  5371. GameTextForPlayer(playerid,"~n~~n~~n~~w~Spectate mode ended",1000,3);
  5372. return 1;
  5373. }
  5374.  
  5375. stock AdvanceSpectate(playerid)
  5376. {
  5377. if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
  5378. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5379. {
  5380. for(new x=PlayerInfo[playerid][SpecID]+1; x<=MAX_PLAYERS; x++)
  5381. {
  5382. if(x == MAX_PLAYERS) x = 0;
  5383. if(IsPlayerConnected(x) && x != playerid)
  5384. {
  5385. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
  5386. {
  5387. continue;
  5388. }
  5389. else
  5390. {
  5391. StartSpectate(playerid, x);
  5392. break;
  5393. }
  5394. }
  5395. }
  5396. }
  5397. return 1;
  5398. }
  5399.  
  5400. stock ReverseSpectate(playerid)
  5401. {
  5402. if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
  5403. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5404. {
  5405. for(new x=PlayerInfo[playerid][SpecID]-1; x>=0; x--)
  5406. {
  5407. if(x == 0) x = MAX_PLAYERS;
  5408. if(IsPlayerConnected(x) && x != playerid)
  5409. {
  5410. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
  5411. {
  5412. continue;
  5413. }
  5414. else
  5415. {
  5416. StartSpectate(playerid, x);
  5417. break;
  5418. }
  5419. }
  5420. }
  5421. }
  5422. return 1;
  5423. }
  5424.  
  5425. //-------------------------------------------
  5426. forward PosAfterSpec(playerid);
  5427. public PosAfterSpec(playerid)
  5428. {
  5429. SetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  5430. SetPlayerFacingAngle(playerid,Pos[playerid][3]);
  5431. }
  5432. #endif
  5433.  
  5434. //==============================================================================
  5435. EraseVehicle(vehicleid)
  5436. {
  5437. for(new players=0;players<=MAX_PLAYERS;players++)
  5438. {
  5439. new Float:X,Float:Y,Float:Z;
  5440. if (IsPlayerInVehicle(players,vehicleid))
  5441. {
  5442. GetPlayerPos(players,X,Y,Z);
  5443. SetPlayerPos(players,X,Y,Z+2);
  5444. SetVehicleToRespawn(vehicleid);
  5445. }
  5446. SetVehicleParamsForPlayer(vehicleid,players,0,1);
  5447. }
  5448. SetTimerEx("VehRes",3000,0,"d",vehicleid);
  5449. return 1;
  5450. }
  5451.  
  5452. forward CarSpawner(playerid,model);
  5453. public CarSpawner(playerid,model)
  5454. {
  5455. if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, red, "You already have a car!");
  5456. else
  5457. {
  5458. new Float:x, Float:y, Float:z, Float:angle;
  5459. GetPlayerPos(playerid, x, y, z);
  5460. GetPlayerFacingAngle(playerid, angle);
  5461. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5462. new vehicleid=CreateVehicle(model, x, y, z, angle, -1, -1, -1);
  5463. PutPlayerInVehicle(playerid, vehicleid, 0);
  5464. SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
  5465. LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid));
  5466. ChangeVehicleColor(vehicleid,0,7);
  5467. PlayerInfo[playerid][pCar] = vehicleid;
  5468. }
  5469. return 1;
  5470. }
  5471.  
  5472. forward CarDeleter(vehicleid);
  5473. public CarDeleter(vehicleid)
  5474. {
  5475. for(new i=0;i<MAX_PLAYERS;i++) {
  5476. new Float:X,Float:Y,Float:Z;
  5477. if(IsPlayerInVehicle(i, vehicleid)) {
  5478. RemovePlayerFromVehicle(i);
  5479. GetPlayerPos(i,X,Y,Z);
  5480. SetPlayerPos(i,X,Y+3,Z);
  5481. }
  5482. SetVehicleParamsForPlayer(vehicleid,i,0,1);
  5483. }
  5484. SetTimerEx("VehRes",1500,0,"i",vehicleid);
  5485. }
  5486.  
  5487. forward VehRes(vehicleid);
  5488. public VehRes(vehicleid)
  5489. {
  5490. DestroyVehicle(vehicleid);
  5491. }
  5492.  
  5493. public OnVehicleSpawn(vehicleid)
  5494. {
  5495. for(new i=0;i<MAX_PLAYERS;i++)
  5496. {
  5497. if(vehicleid==PlayerInfo[i][pCar])
  5498. {
  5499. CarDeleter(vehicleid);
  5500. PlayerInfo[i][pCar]=-1;
  5501. }
  5502. }
  5503. return 1;
  5504. }
  5505. //==============================================================================
  5506. forward TuneLCar(VehicleID);
  5507. public TuneLCar(VehicleID)
  5508. {
  5509. ChangeVehicleColor(VehicleID,0,7);
  5510. AddVehicleComponent(VehicleID, 1010); AddVehicleComponent(VehicleID, 1087);
  5511. }
  5512.  
  5513. //==============================================================================
  5514.  
  5515. public OnRconCommand(cmd[])
  5516. {
  5517. if( strlen(cmd) > 50 || strlen(cmd) == 1 ) return print("Invalid command length (exceeding 50 characters)");
  5518.  
  5519. if(strcmp(cmd, "ladmin", true)==0) {
  5520. print("Rcon Commands");
  5521. print("info, aka, pm, asay, ann, uconfig, chat");
  5522. return true;
  5523. }
  5524.  
  5525. if(strcmp(cmd, "info", true)==0)
  5526. {
  5527. new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000); DestroyVehicle(TotalVehicles);
  5528. new numo = CreateObject(1245,0,0,1000,0,0,0); DestroyObject(numo);
  5529. new nump = CreatePickup(371,2,0,0,1000); DestroyPickup(nump);
  5530. new gz = GangZoneCreate(3,3,5,5); GangZoneDestroy(gz);
  5531.  
  5532. new model[250], nummodel;
  5533. for(new i=1;i<TotalVehicles;i++) model[GetVehicleModel(i)-400]++;
  5534. for(new i=0;i<250;i++) { if(model[i]!=0) { nummodel++; } }
  5535.  
  5536. new string[256];
  5537. print(" ===========================================================================");
  5538. printf(" Server Info:");
  5539. format(string,sizeof(string),"[ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
  5540. printf(string);
  5541. format(string,sizeof(string),"[ Vehicles: %d || Models %d || Players In Vehicle: %d ]",TotalVehicles-1,nummodel, InVehCount() );
  5542. printf(string);
  5543. format(string,sizeof(string),"[ InCar %d || OnBike %d ]",InCarCount(),OnBikeCount() );
  5544. printf(string);
  5545. format(string,sizeof(string),"[ Objects: %d || Pickups %d || Gangzones %d]",numo-1, nump, gz);
  5546. printf(string);
  5547. format(string,sizeof(string),"[ Players In Jail %d || Players Frozen %d || Muted %d ]",JailedPlayers(),FrozenPlayers(), MutedPlayers() );
  5548. printf(string);
  5549. format(string,sizeof(string),"[ Admins online %d RCON admins online %d ]",AdminCount(), RconAdminCount() );
  5550. printf(string);
  5551. print(" ===========================================================================");
  5552. return true;
  5553. }
  5554.  
  5555. if(!strcmp(cmd, "pm", .length = 2))
  5556. {
  5557. new arg_1 = argpos(cmd), arg_2 = argpos(cmd, arg_1),targetid = strval(cmd[arg_1]), message[128];
  5558.  
  5559. if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > MAX_PLAYERS || targetid < 0 || !cmd[arg_2])
  5560. print("Usage: \"pm <playerid> <message>\"");
  5561.  
  5562. else if ( !IsPlayerConnected(targetid) ) print("This player is not connected!");
  5563. else
  5564. {
  5565. format(message, sizeof(message), "[RCON] PM: %s", cmd[arg_2]);
  5566. SendClientMessage(targetid, COLOR_WHITE, message);
  5567. printf("Rcon PM '%s' sent", cmd[arg_1] );
  5568. }
  5569. return true;
  5570. }
  5571.  
  5572. if(!strcmp(cmd, "asay", .length = 4))
  5573. {
  5574. new arg_1 = argpos(cmd), message[128];
  5575.  
  5576. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"asay <message>\" (MessageToAdmins)");
  5577. else
  5578. {
  5579. format(message, sizeof(message), "[RCON] MessageToAdmins: %s", cmd[arg_1]);
  5580. MessageToAdmins(COLOR_WHITE, message);
  5581. printf("Admin Message '%s' sent", cmd[arg_1] );
  5582. }
  5583. return true;
  5584. }
  5585.  
  5586. if(!strcmp(cmd, "ann", .length = 3))
  5587. {
  5588. new arg_1 = argpos(cmd), message[128];
  5589. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"ann <message>\" (GameTextForAll)");
  5590. else
  5591. {
  5592. format(message, sizeof(message), "[RCON]: %s", cmd[arg_1]);
  5593. GameTextForAll(message,3000,3);
  5594. printf("GameText Message '%s' sent", cmd[arg_1] );
  5595. }
  5596. return true;
  5597. }
  5598.  
  5599. if(!strcmp(cmd, "msg", .length = 3))
  5600. {
  5601. new arg_1 = argpos(cmd), message[128];
  5602. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"msg <message>\" (SendClientMessageToAll)");
  5603. else
  5604. {
  5605. format(message, sizeof(message), "[RCON]: %s", cmd[arg_1]);
  5606. SendClientMessageToAll(COLOR_WHITE, message);
  5607. printf("MessageToAll '%s' sent", cmd[arg_1] );
  5608. }
  5609. return true;
  5610. }
  5611.  
  5612. if(strcmp(cmd, "uconfig", true)==0)
  5613. {
  5614. UpdateConfig();
  5615. print("Configuration Successfully Updated");
  5616. return true;
  5617. }
  5618.  
  5619. if(!strcmp(cmd, "aka", .length = 3))
  5620. {
  5621. new arg_1 = argpos(cmd), targetid = strval(cmd[arg_1]);
  5622.  
  5623. if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > MAX_PLAYERS || targetid < 0)
  5624. print("Usage: aka <playerid>");
  5625. else if ( !IsPlayerConnected(targetid) ) print("This player is not connected!");
  5626. else
  5627. {
  5628. new tmp3[50], playername[MAX_PLAYER_NAME];
  5629. GetPlayerIp(targetid,tmp3,50);
  5630. GetPlayerName(targetid, playername, sizeof(playername));
  5631. printf("AKA: [%s id:%d] [%s] %s", playername, targetid, tmp3, dini_Get("ladmin/config/aka.txt",tmp3) );
  5632. }
  5633. return true;
  5634. }
  5635.  
  5636. if(!strcmp(cmd, "chat", .length = 4)) {
  5637. for(new i = 1; i < MAX_CHAT_LINES; i++) print(Chat[i]);
  5638. return true;
  5639. }
  5640.  
  5641. return 0;
  5642. }
  5643.  
  5644. //==============================================================================
  5645. // Menus
  5646. //==============================================================================
  5647.  
  5648. #if defined USE_MENUS
  5649. public OnPlayerSelectedMenuRow(playerid, row) {
  5650. new Menu:Current = GetPlayerMenu(playerid);
  5651. new string[128];
  5652.  
  5653. if(Current == LMainMenu) {
  5654. switch(row)
  5655. {
  5656. case 0:
  5657. {
  5658. if(PlayerInfo[playerid][Level] >= 4) ShowMenuForPlayer(AdminEnable,playerid);
  5659. else {
  5660. SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5661. TogglePlayerControllable(playerid,true);
  5662. }
  5663. }
  5664. case 1:
  5665. {
  5666. if(PlayerInfo[playerid][Level] >= 4) ShowMenuForPlayer(AdminDisable,playerid);
  5667. else {
  5668. SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5669. TogglePlayerControllable(playerid,true);
  5670. }
  5671. }
  5672. case 2: ShowMenuForPlayer(LWeather,playerid);
  5673. case 3: ShowMenuForPlayer(LTime,playerid);
  5674. case 4: ShowMenuForPlayer(LVehicles,playerid);
  5675. case 5: ShowMenuForPlayer(LCars,playerid);
  5676. case 6:
  5677. {
  5678. if(PlayerInfo[playerid][Level] >= 2)
  5679. {
  5680. if(IsPlayerInAnyVehicle(playerid))
  5681. {
  5682. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  5683. switch(LModel)
  5684. {
  5685. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  5686. {
  5687. SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle"); TogglePlayerControllable(playerid,true);
  5688. return 1;
  5689. }
  5690. }
  5691. TogglePlayerControllable(playerid,false); ShowMenuForPlayer(LTuneMenu,playerid);
  5692. }
  5693. else { SendClientMessage(playerid,red,"ERROR: You do not have a vehicle to tune"); TogglePlayerControllable(playerid,true); }
  5694. } else { SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); TogglePlayerControllable(playerid,true); }
  5695. }
  5696. case 7:
  5697. {
  5698. if(PlayerInfo[playerid][Level] >= 3) ShowMenuForPlayer(XWeapons,playerid);
  5699. else SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); TogglePlayerControllable(playerid,true);
  5700. }
  5701. case 8: ShowMenuForPlayer(LTele,playerid);
  5702. case 9:
  5703. {
  5704. new Menu:Currentxmenu = GetPlayerMenu(playerid);
  5705. HideMenuForPlayer(Currentxmenu,playerid); TogglePlayerControllable(playerid,true);
  5706. }
  5707. }
  5708. return 1;
  5709. }//-------------------------------------------------------------------------
  5710. if(Current == AdminEnable) {
  5711. new adminname[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5712. format(file,sizeof(file),"ladmin/config/Config.ini");
  5713. switch(row){
  5714. case 0: { ServerInfo[AntiSwear] = 1; dini_IntSet(file,"AntiSwear",1); format(string,sizeof(string),"Administrator %s has enabled antiswear",adminname); SendClientMessageToAll(blue,string); }
  5715. case 1: { ServerInfo[NameKick] = 1; dini_IntSet(file,"NameKick",1); format(string,sizeof(string),"Administrator %s has enabled namekick",adminname); SendClientMessageToAll(blue,string); }
  5716. case 2: { ServerInfo[AntiSpam] = 1; dini_IntSet(file,"AntiSpam",1); format(string,sizeof(string),"Administrator %s has enabled antispam",adminname); SendClientMessageToAll(blue,string); }
  5717. case 3: { ServerInfo[MaxPing] = 1000; dini_IntSet(file,"MaxPing",1000); format(string,sizeof(string),"Administrator %s has enabled ping kick",adminname); SendClientMessageToAll(blue,string); }
  5718. case 4: { ServerInfo[ReadCmds] = 1; dini_IntSet(file,"ReadCmds",1); format(string,sizeof(string),"Administrator %s has enabled reading commands",adminname); MessageToAdmins(green,string); }
  5719. case 5: { ServerInfo[ReadPMs] = 1; dini_IntSet(file,"ReadPMs",1); format(string,sizeof(string),"Administrator %s has enabled reading pms",adminname); MessageToAdmins(green,string); }
  5720. 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); }
  5721. case 7: { ServerInfo[ConnectMessages] = 1; dini_IntSet(file,"ConnectMessages",1); format(string,sizeof(string),"Administrator %s has enabled connect messages",adminname); SendClientMessageToAll(blue,string); }
  5722. 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); }
  5723. case 9: { ServerInfo[AutoLogin] = 1; dini_IntSet(file,"AutoLogin",1); format(string,sizeof(string),"Administrator %s has enabled auto login",adminname); SendClientMessageToAll(blue,string); }
  5724. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5725. }
  5726. return TogglePlayerControllable(playerid,true);
  5727. }//------------------------------------------------------------------------
  5728. if(Current == AdminDisable) {
  5729. new adminname[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5730. format(file,sizeof(file),"ladmin/config/Config.ini");
  5731. switch(row){
  5732. case 0: { ServerInfo[AntiSwear] = 0; dini_IntSet(file,"AntiSwear",0); format(string,sizeof(string),"Administrator %s has disabled antiswear",adminname); SendClientMessageToAll(blue,string); }
  5733. case 1: { ServerInfo[NameKick] = 0; dini_IntSet(file,"NameKick",0); format(string,sizeof(string),"Administrator %s has disabled namekick",adminname); SendClientMessageToAll(blue,string); }
  5734. case 2: { ServerInfo[AntiSpam] = 0; dini_IntSet(file,"AntiSpam",0); format(string,sizeof(string),"Administrator %s has disabled antispam",adminname); SendClientMessageToAll(blue,string); }
  5735. case 3: { ServerInfo[MaxPing] = 0; dini_IntSet(file,"MaxPing",0); format(string,sizeof(string),"Administrator %s has disabled ping kick",adminname); SendClientMessageToAll(blue,string); }
  5736. case 4: { ServerInfo[ReadCmds] = 0; dini_IntSet(file,"ReadCmds",0); format(string,sizeof(string),"Administrator %s has disabled reading commands",adminname); MessageToAdmins(green,string); }
  5737. case 5: { ServerInfo[ReadPMs] = 0; dini_IntSet(file,"ReadPMs",0); format(string,sizeof(string),"Administrator %s has disabled reading pms",adminname); MessageToAdmins(green,string); }
  5738. 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); }
  5739. case 7: { ServerInfo[ConnectMessages] = 0; dini_IntSet(file,"ConnectMessages",0); format(string,sizeof(string),"Administrator %s has disabled connect messages",adminname); SendClientMessageToAll(blue,string); }
  5740. 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); }
  5741. case 9: { ServerInfo[AutoLogin] = 0; dini_IntSet(file,"AutoLogin",0); format(string,sizeof(string),"Administrator %s has disabled auto login",adminname); SendClientMessageToAll(blue,string); }
  5742. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5743. }
  5744. return TogglePlayerControllable(playerid,true);
  5745. }//-------------------------------------------------------------------------
  5746. if(Current==LVehicles){
  5747. switch(row){
  5748. case 0: ChangeMenu(playerid,Current,twodoor);
  5749. case 1: ChangeMenu(playerid,Current,fourdoor);
  5750. case 2: ChangeMenu(playerid,Current,fastcar);
  5751. case 3: ChangeMenu(playerid,Current,Othercars);
  5752. case 4: ChangeMenu(playerid,Current,bikes);
  5753. case 5: ChangeMenu(playerid,Current,boats);
  5754. case 6: ChangeMenu(playerid,Current,planes);
  5755. case 7: ChangeMenu(playerid,Current,helicopters);
  5756. case 8: return ChangeMenu(playerid,Current,LMainMenu);
  5757. }
  5758. return 1;
  5759. }
  5760. if(Current==twodoor){
  5761. new vehid;
  5762. switch(row){
  5763. case 0: vehid = 533;
  5764. case 1: vehid = 439;
  5765. case 2: vehid = 555;
  5766. case 3: vehid = 422;
  5767. case 4: vehid = 554;
  5768. case 5: vehid = 575;
  5769. case 6: vehid = 536;
  5770. case 7: vehid = 535;
  5771. case 8: vehid = 576;
  5772. case 9: vehid = 401;
  5773. case 10: vehid = 526;
  5774. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5775. }
  5776. return SelectCar(playerid,vehid,Current);
  5777. }
  5778. if(Current==fourdoor){
  5779. new vehid;
  5780. switch(row){
  5781. case 0: vehid = 404;
  5782. case 1: vehid = 566;
  5783. case 2: vehid = 412;
  5784. case 3: vehid = 445;
  5785. case 4: vehid = 507;
  5786. case 5: vehid = 466;
  5787. case 6: vehid = 546;
  5788. case 7: vehid = 511;
  5789. case 8: vehid = 467;
  5790. case 9: vehid = 426;
  5791. case 10: vehid = 405;
  5792. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5793. }
  5794. return SelectCar(playerid,vehid,Current);
  5795. }
  5796. if(Current==fastcar){
  5797. new vehid;
  5798. switch(row){
  5799. case 0: vehid = 480;
  5800. case 1: vehid = 402;
  5801. case 2: vehid = 415;
  5802. case 3: vehid = 587;
  5803. case 4: vehid = 494;
  5804. case 5: vehid = 411;
  5805. case 6: vehid = 603;
  5806. case 7: vehid = 506;
  5807. case 8: vehid = 451;
  5808. case 9: vehid = 477;
  5809. case 10: vehid = 541;
  5810. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5811. }
  5812. return SelectCar(playerid,vehid,Current);
  5813. }
  5814. if(Current==Othercars){
  5815. new vehid;
  5816. switch(row){
  5817. case 0: vehid = 556;
  5818. case 1: vehid = 408;
  5819. case 2: vehid = 431;
  5820. case 3: vehid = 437;
  5821. case 4: vehid = 427;
  5822. case 5: vehid = 432;
  5823. case 6: vehid = 601;
  5824. case 7: vehid = 524;
  5825. case 8: vehid = 455;
  5826. case 9: vehid = 424;
  5827. case 10: vehid = 573;
  5828. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5829. }
  5830. return SelectCar(playerid,vehid,Current);
  5831. }
  5832. if(Current==bikes){
  5833. new vehid;
  5834. switch(row){
  5835. case 0: vehid = 581;
  5836. case 1: vehid = 481;
  5837. case 2: vehid = 462;
  5838. case 3: vehid = 521;
  5839. case 4: vehid = 463;
  5840. case 5: vehid = 522;
  5841. case 6: vehid = 461;
  5842. case 7: vehid = 448;
  5843. case 8: vehid = 471;
  5844. case 9: vehid = 468;
  5845. case 10: vehid = 586;
  5846. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5847. }
  5848. return SelectCar(playerid,vehid,Current);
  5849. }
  5850. if(Current==boats){
  5851. new vehid;
  5852. switch(row){
  5853. case 0: vehid = 472;
  5854. case 1: vehid = 473;
  5855. case 2: vehid = 493;
  5856. case 3: vehid = 595;
  5857. case 4: vehid = 484;
  5858. case 5: vehid = 430;
  5859. case 6: vehid = 453;
  5860. case 7: vehid = 452;
  5861. case 8: vehid = 446;
  5862. case 9: vehid = 454;
  5863. case 10: return ChangeMenu(playerid,Current,LVehicles);
  5864. }
  5865. return SelectCar(playerid,vehid,Current);
  5866. }
  5867. if(Current==planes){
  5868. new vehid;
  5869. switch(row){
  5870. case 0: vehid = 592;
  5871. case 1: vehid = 577;
  5872. case 2: vehid = 511;
  5873. case 3: vehid = 512;
  5874. case 4: vehid = 593;
  5875. case 5: vehid = 520;
  5876. case 6: vehid = 553;
  5877. case 7: vehid = 476;
  5878. case 8: vehid = 519;
  5879. case 9: vehid = 460;
  5880. case 10: vehid = 513;
  5881. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5882. }
  5883. return SelectCar(playerid,vehid,Current);
  5884. }
  5885. if(Current==helicopters){
  5886. new vehid;
  5887. switch(row){
  5888. case 0: vehid = 548;
  5889. case 1: vehid = 425;
  5890. case 2: vehid = 417;
  5891. case 3: vehid = 487;
  5892. case 4: vehid = 488;
  5893. case 5: vehid = 497;
  5894. case 6: vehid = 563;
  5895. case 7: vehid = 447;
  5896. case 8: vehid = 469;
  5897. case 9: return ChangeMenu(playerid,Current,LVehicles);
  5898. }
  5899. return SelectCar(playerid,vehid,Current);
  5900. }
  5901.  
  5902. if(Current==XWeapons){
  5903. switch(row){
  5904. case 0: { GivePlayerWeapon(playerid,24,500); }
  5905. case 1: { GivePlayerWeapon(playerid,31,500); }
  5906. case 2: { GivePlayerWeapon(playerid,26,500); }
  5907. case 3: { GivePlayerWeapon(playerid,27,500); }
  5908. case 4: { GivePlayerWeapon(playerid,28,500); }
  5909. case 5: { GivePlayerWeapon(playerid,35,500); }
  5910. case 6: { GivePlayerWeapon(playerid,38,1000); }
  5911. case 7: { GivePlayerWeapon(playerid,34,500); }
  5912. case 8: return ChangeMenu(playerid,Current,XWeaponsBig);
  5913. case 9: return ChangeMenu(playerid,Current,XWeaponsSmall);
  5914. case 10: return ChangeMenu(playerid,Current,XWeaponsMore);
  5915. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5916. }
  5917. return TogglePlayerControllable(playerid,true);
  5918. }
  5919.  
  5920. if(Current==XWeaponsBig){
  5921. switch(row){
  5922. case 0: { GivePlayerWeapon(playerid,25,500); }
  5923. case 1: { GivePlayerWeapon(playerid,30,500); }
  5924. case 2: { GivePlayerWeapon(playerid,33,500); }
  5925. case 3: { GivePlayerWeapon(playerid,36,500); }
  5926. case 4: { GivePlayerWeapon(playerid,37,500); }
  5927. case 5: { GivePlayerWeapon(playerid,29,500); }
  5928. case 6: { GivePlayerWeapon(playerid,32,1000); }
  5929. case 7: return ChangeMenu(playerid,Current,XWeapons);
  5930. }
  5931. return TogglePlayerControllable(playerid,true);
  5932. }
  5933.  
  5934. if(Current==XWeaponsSmall){
  5935. switch(row){
  5936. case 0: { GivePlayerWeapon(playerid,22,500); }//9mm
  5937. case 1: { GivePlayerWeapon(playerid,23,500); }//s9
  5938. case 2: { GivePlayerWeapon(playerid,18,500); }// MC
  5939. case 3: { GivePlayerWeapon(playerid,42,500); }//FE
  5940. case 4: { GivePlayerWeapon(playerid,41,500); }//spraycan
  5941. case 5: { GivePlayerWeapon(playerid,16,500); }//grenade
  5942. case 6: { GivePlayerWeapon(playerid,8,500); }//Katana
  5943. case 7: { GivePlayerWeapon(playerid,9,1000); }//chainsaw
  5944. case 8: return ChangeMenu(playerid,Current,XWeapons);
  5945. }
  5946. return TogglePlayerControllable(playerid,true);
  5947. }
  5948.  
  5949. if(Current==XWeaponsMore){
  5950. switch(row){
  5951. case 0: SetPlayerSpecialAction(playerid, 2);
  5952. case 1: GivePlayerWeapon(playerid,4,500);
  5953. case 2: GivePlayerWeapon(playerid,14,500);
  5954. case 3: GivePlayerWeapon(playerid,43,500);
  5955. case 4: GivePlayerWeapon(playerid,7,500);
  5956. case 5: GivePlayerWeapon(playerid,5,500);
  5957. case 6: GivePlayerWeapon(playerid,2,1000);
  5958. case 7: MaxAmmo(playerid);
  5959. case 8: return ChangeMenu(playerid,Current,XWeapons);
  5960. }
  5961. return TogglePlayerControllable(playerid,true);
  5962. }
  5963.  
  5964. if(Current == LTele)
  5965. {
  5966. switch(row)
  5967. {
  5968. case 0: ChangeMenu(playerid,Current,LasVenturasMenu);
  5969. case 1: ChangeMenu(playerid,Current,LosSantosMenu);
  5970. case 2: ChangeMenu(playerid,Current,SanFierroMenu);
  5971. case 3: ChangeMenu(playerid,Current,DesertMenu);
  5972. case 4: ChangeMenu(playerid,Current,FlintMenu);
  5973. case 5: ChangeMenu(playerid,Current,MountChiliadMenu);
  5974. case 6: ChangeMenu(playerid,Current,InteriorsMenu);
  5975. case 7: return ChangeMenu(playerid,Current,LMainMenu);
  5976. }
  5977. return 1;
  5978. }
  5979.  
  5980. if(Current == LasVenturasMenu)
  5981. {
  5982. switch(row)
  5983. {
  5984. case 0: { SetPlayerPos(playerid,2037.0,1343.0,12.0); SetPlayerInterior(playerid,0); }// strip
  5985. case 1: { SetPlayerPos(playerid,2163.0,1121.0,23); SetPlayerInterior(playerid,0); }// come a lot
  5986. case 2: { SetPlayerPos(playerid,1688.0,1615.0,12.0); SetPlayerInterior(playerid,0); }// lv airport
  5987. case 3: { SetPlayerPos(playerid,2503.0,2764.0,10.0); SetPlayerInterior(playerid,0); }// military fuel
  5988. case 4: { SetPlayerPos(playerid,1418.0,2733.0,10.0); SetPlayerInterior(playerid,0); }// golf lv
  5989. case 5: { SetPlayerPos(playerid,1377.0,2196.0,9.0); SetPlayerInterior(playerid,0); }// pitch match
  5990. case 6: return ChangeMenu(playerid,Current,LTele);
  5991. }
  5992. return TogglePlayerControllable(playerid,true);
  5993. }
  5994.  
  5995. if(Current == LosSantosMenu)
  5996. {
  5997. switch(row)
  5998. {
  5999. case 0: { SetPlayerPos(playerid,2495.0,-1688.0,13.0); SetPlayerInterior(playerid,0); }// ganton
  6000. case 1: { SetPlayerPos(playerid,1979.0,-2241.0,13.0); SetPlayerInterior(playerid,0); }// ls airport
  6001. case 2: { SetPlayerPos(playerid,2744.0,-2435.0,15.0); SetPlayerInterior(playerid,0); }// docks
  6002. case 3: { SetPlayerPos(playerid,1481.0,-1656.0,14.0); SetPlayerInterior(playerid,0); }// square
  6003. case 4: { SetPlayerPos(playerid,1150.0,-2037.0,69.0); SetPlayerInterior(playerid,0); }// veradant bluffs
  6004. case 5: { SetPlayerPos(playerid,425.0,-1815.0,6.0); SetPlayerInterior(playerid,0); }// santa beach
  6005. case 6: { SetPlayerPos(playerid,1240.0,-744.0,95.0); SetPlayerInterior(playerid,0); }// mullholland
  6006. case 7: { SetPlayerPos(playerid,679.0,-1070.0,49.0); SetPlayerInterior(playerid,0); }// richman
  6007. case 8: return ChangeMenu(playerid,Current,LTele);
  6008. }
  6009. return TogglePlayerControllable(playerid,true);
  6010. }
  6011.  
  6012. if(Current == SanFierroMenu)
  6013. {
  6014. switch(row)
  6015. {
  6016. case 0: { SetPlayerPos(playerid,-1990.0,137.0,27.0); SetPlayerInterior(playerid,0); } // sf station
  6017. case 1: { SetPlayerPos(playerid,-1528.0,-206.0,14.0); SetPlayerInterior(playerid,0); }// sf airport
  6018. case 2: { SetPlayerPos(playerid,-2709.0,198.0,4.0); SetPlayerInterior(playerid,0); }// ocean flats
  6019. case 3: { SetPlayerPos(playerid,-2738.0,-295.0,6.0); SetPlayerInterior(playerid,0); }// avispa country club
  6020. case 4: { SetPlayerPos(playerid,-1457.0,465.0,7.0); SetPlayerInterior(playerid,0); }// easter basic docks
  6021. case 5: { SetPlayerPos(playerid,-1853.0,1404.0,7.0); SetPlayerInterior(playerid,0); }// esplanadae north
  6022. case 6: { SetPlayerPos(playerid,-2620.0,1373.0,7.0); SetPlayerInterior(playerid,0); }// battery point
  6023. case 7: return ChangeMenu(playerid,Current,LTele);
  6024. }
  6025. return TogglePlayerControllable(playerid,true);
  6026. }
  6027.  
  6028. if(Current == DesertMenu)
  6029. {
  6030. switch(row)
  6031. {
  6032. case 0: { SetPlayerPos(playerid,416.0,2516.0,16.0); SetPlayerInterior(playerid,0); } // plane graveyard
  6033. case 1: { SetPlayerPos(playerid,81.0,1920.0,17.0); SetPlayerInterior(playerid,0); }// area51
  6034. case 2: { SetPlayerPos(playerid,-324.0,1516.0,75.0); SetPlayerInterior(playerid,0); }// big ear
  6035. case 3: { SetPlayerPos(playerid,-640.0,2051.0,60.0); SetPlayerInterior(playerid,0); }// dam
  6036. case 4: { SetPlayerPos(playerid,-766.0,1545.0,27.0); SetPlayerInterior(playerid,0); }// las barrancas
  6037. case 5: { SetPlayerPos(playerid,-1514.0,2597.0,55.0); SetPlayerInterior(playerid,0); }// el qyebrados
  6038. case 6: { SetPlayerPos(playerid,442.0,1427.0,9.0); SetPlayerInterior(playerid,0); }// actane springs
  6039. case 7: return ChangeMenu(playerid,Current,LTele);
  6040. }
  6041. return TogglePlayerControllable(playerid,true);
  6042. }
  6043.  
  6044. if(Current == FlintMenu)
  6045. {
  6046. switch(row)
  6047. {
  6048. case 0: { SetPlayerPos(playerid,-849.0,-1940.0,13.0); SetPlayerInterior(playerid,0); }// lake
  6049. case 1: { SetPlayerPos(playerid,-1107.0,-1619.0,76.0); SetPlayerInterior(playerid,0); }// leafy hollow
  6050. case 2: { SetPlayerPos(playerid,-1049.0,-1199.0,128.0); SetPlayerInterior(playerid,0); }// the farm
  6051. case 3: { SetPlayerPos(playerid,-1655.0,-2219.0,32.0); SetPlayerInterior(playerid,0); }// shady cabin
  6052. case 4: { SetPlayerPos(playerid,-375.0,-1441.0,25.0); SetPlayerInterior(playerid,0); }// flint range
  6053. case 5: { SetPlayerPos(playerid,-367.0,-1049.0,59.0); SetPlayerInterior(playerid,0); }// beacon hill
  6054. case 6: { SetPlayerPos(playerid,-494.0,-555.0,25.0); SetPlayerInterior(playerid,0); }// fallen tree
  6055. case 7: return ChangeMenu(playerid,Current,LTele);
  6056. }
  6057. return TogglePlayerControllable(playerid,true);
  6058. }
  6059.  
  6060. if(Current == MountChiliadMenu)
  6061. {
  6062. switch(row)
  6063. {
  6064. case 0: { SetPlayerPos(playerid,-2308.0,-1657.0,483.0); SetPlayerInterior(playerid,0); }// chiliad jump
  6065. case 1: { SetPlayerPos(playerid,-2331.0,-2180.0,35.0); SetPlayerInterior(playerid,0); }// bottom chiliad
  6066. case 2: { SetPlayerPos(playerid,-2431.0,-1620.0,526.0); SetPlayerInterior(playerid,0); }// highest point
  6067. case 3: { SetPlayerPos(playerid,-2136.0,-1775.0,208.0); SetPlayerInterior(playerid,0); }// chiliad path
  6068. case 4: return ChangeMenu(playerid,Current,LTele);
  6069. }
  6070. return TogglePlayerControllable(playerid,true);
  6071. }
  6072.  
  6073. if(Current == InteriorsMenu)
  6074. {
  6075. switch(row)
  6076. {
  6077. case 0: { SetPlayerPos(playerid,386.5259, 173.6381, 1008.3828); SetPlayerInterior(playerid,3); }
  6078. case 1: { SetPlayerPos(playerid,288.4723, 170.0647, 1007.1794); SetPlayerInterior(playerid,3); }
  6079. case 2: { SetPlayerPos(playerid,372.5565, -131.3607, 1001.4922); SetPlayerInterior(playerid,5); }
  6080. case 3: { SetPlayerPos(playerid,-1129.8909, 1057.5424, 1346.4141); SetPlayerInterior(playerid,10); }
  6081. case 4: { SetPlayerPos(playerid,2233.9363, 1711.8038, 1011.6312); SetPlayerInterior(playerid,1); }
  6082. case 5: { SetPlayerPos(playerid,2536.5322, -1294.8425, 1044.125); SetPlayerInterior(playerid,2); }
  6083. case 6: { SetPlayerPos(playerid,1267.8407, -776.9587, 1091.9063); SetPlayerInterior(playerid,5); }
  6084. case 7: { SetPlayerPos(playerid,-1421.5618, -663.8262, 1059.5569); SetPlayerInterior(playerid,4); }
  6085. case 8: { SetPlayerPos(playerid,-1401.067, 1265.3706, 1039.8672); SetPlayerInterior(playerid,16); }
  6086. case 9: { SetPlayerPos(playerid,285.8361, -39.0166, 1001.5156); SetPlayerInterior(playerid,1); }
  6087. case 10: { SetPlayerPos(playerid,1727.2853, -1642.9451, 20.2254); SetPlayerInterior(playerid,18); }
  6088. case 11: return ChangeMenu(playerid,Current,LTele);
  6089. }
  6090. return TogglePlayerControllable(playerid,true);
  6091. }
  6092.  
  6093. if(Current == LWeather)
  6094. {
  6095. new adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname));
  6096. switch(row)
  6097. {
  6098. 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); }
  6099. 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); }
  6100. 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); }
  6101. 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); }
  6102. 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); }
  6103. 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); }
  6104. 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); }
  6105. 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); }
  6106. 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); }
  6107. 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); }
  6108. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  6109. }
  6110. return TogglePlayerControllable(playerid,true);
  6111. }
  6112.  
  6113. if(Current == LTuneMenu)
  6114. {
  6115. switch(row)
  6116. {
  6117. case 0: { AddVehicleComponent(GetPlayerVehicleID(playerid),1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  6118. case 1: { AddVehicleComponent(GetPlayerVehicleID(playerid),1087); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  6119. case 2: { AddVehicleComponent(GetPlayerVehicleID(playerid),1081); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  6120. case 3: { AddVehicleComponent(GetPlayerVehicleID(playerid),1078); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  6121. case 4: { AddVehicleComponent(GetPlayerVehicleID(playerid),1098); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  6122. case 5: { AddVehicleComponent(GetPlayerVehicleID(playerid),1074); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  6123. case 6: { AddVehicleComponent(GetPlayerVehicleID(playerid),1082); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  6124. case 7: { AddVehicleComponent(GetPlayerVehicleID(playerid),1085); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  6125. case 8: { AddVehicleComponent(GetPlayerVehicleID(playerid),1025); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  6126. case 9: { AddVehicleComponent(GetPlayerVehicleID(playerid),1077); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  6127. case 10: return ChangeMenu(playerid,Current,PaintMenu);
  6128. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  6129. }
  6130. return TogglePlayerControllable(playerid,true);
  6131. }
  6132.  
  6133. if(Current == PaintMenu)
  6134. {
  6135. switch(row)
  6136. {
  6137. 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"); }
  6138. 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"); }
  6139. 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"); }
  6140. 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"); }
  6141. 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"); }
  6142. 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"); }
  6143. 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"); }
  6144. 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"); }
  6145. 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"); }
  6146. case 9: return ChangeMenu(playerid,Current,LTuneMenu);
  6147. }
  6148. return TogglePlayerControllable(playerid,true);
  6149. }
  6150.  
  6151. if(Current == LTime)
  6152. {
  6153. new adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname));
  6154. switch(row)
  6155. {
  6156. 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); }
  6157. 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); }
  6158. 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); }
  6159. 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); }
  6160. 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); }
  6161. case 5: return ChangeMenu(playerid,Current,LMainMenu);
  6162. }
  6163. return TogglePlayerControllable(playerid,true);
  6164. }
  6165.  
  6166. if(Current == LCars)
  6167. {
  6168. new vehid;
  6169. switch(row) {
  6170. case 0: vehid = 451;//Turismo
  6171. case 1: vehid = 568;//Bandito
  6172. case 2: vehid = 539;//Vortex
  6173. case 3: vehid = 522;//nrg
  6174. case 4: vehid = 601;//s.w.a.t
  6175. case 5: vehid = 425; //hunter
  6176. case 6: vehid = 493;//jetmax
  6177. case 7: vehid = 432;//rhino
  6178. case 8: vehid = 444; //mt
  6179. case 9: vehid = 447; //sea sparrow
  6180. case 10: return ChangeMenu(playerid,Current,LCars2);
  6181. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  6182. }
  6183. return SelectCar(playerid,vehid,Current);
  6184. }
  6185.  
  6186. if(Current == LCars2)
  6187. {
  6188. new vehid;
  6189. switch(row) {
  6190. case 0: vehid = 406;// dumper
  6191. case 1: vehid = 564; //rc tank
  6192. case 2: vehid = 441;//RC Bandit
  6193. case 3: vehid = 464;// rc baron
  6194. case 4: vehid = 501; //rc goblin
  6195. case 5: vehid = 465; //rc raider
  6196. case 6: vehid = 594; // rc cam
  6197. case 7: vehid = 449; //tram
  6198. case 8: return ChangeMenu(playerid,Current,LCars);
  6199. }
  6200. return SelectCar(playerid,vehid,Current);
  6201. }
  6202.  
  6203. return 1;
  6204. }
  6205.  
  6206. //==============================================================================
  6207.  
  6208. public OnPlayerExitedMenu(playerid)
  6209. {
  6210. new Menu:Current = GetPlayerMenu(playerid);
  6211. HideMenuForPlayer(Current,playerid);
  6212. return TogglePlayerControllable(playerid,true);
  6213. }
  6214.  
  6215. //==============================================================================
  6216.  
  6217. ChangeMenu(playerid,Menu:oldmenu,Menu:newmenu)
  6218. {
  6219. if(IsValidMenu(oldmenu)) {
  6220. HideMenuForPlayer(oldmenu,playerid);
  6221. ShowMenuForPlayer(newmenu,playerid);
  6222. }
  6223. return 1;
  6224. }
  6225.  
  6226. CloseMenu(playerid,Menu:oldmenu)
  6227. {
  6228. HideMenuForPlayer(oldmenu,playerid);
  6229. TogglePlayerControllable(playerid,1);
  6230. return 1;
  6231. }
  6232. SelectCar(playerid,vehid,Menu:menu)
  6233. {
  6234. CloseMenu(playerid,menu);
  6235. SetCameraBehindPlayer(playerid);
  6236. CarSpawner(playerid,vehid);
  6237. return 1;
  6238. }
  6239. #endif
  6240.  
  6241. //==============================================================================
  6242. forward countdown();
  6243. public countdown()
  6244. {
  6245. if(CountDown==6) GameTextForAll("~p~Starting...",1000,6);
  6246.  
  6247. CountDown--;
  6248. if(CountDown==0)
  6249. {
  6250. GameTextForAll("~g~GO~ r~!",1000,6);
  6251. CountDown = -1;
  6252. for(new i = 0; i < MAX_PLAYERS; i++) {
  6253. TogglePlayerControllable(i,true);
  6254. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  6255. }
  6256. return 0;
  6257. }
  6258. else
  6259. {
  6260. new text[7]; format(text,sizeof(text),"~w~%d",CountDown);
  6261. for(new i = 0; i < MAX_PLAYERS; i++) {
  6262. PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
  6263. TogglePlayerControllable(i,false);
  6264. }
  6265. GameTextForAll(text,1000,6);
  6266. }
  6267.  
  6268. SetTimer("countdown",1000,0);
  6269. return 0;
  6270. }
  6271.  
  6272. forward Duel(player1, player2);
  6273. public Duel(player1, player2)
  6274. {
  6275. if(cdt[player1]==6) {
  6276. GameTextForPlayer(player1,"~p~Duel Starting...",1000,6); GameTextForPlayer(player2,"~p~Duel Starting...",1000,6);
  6277. }
  6278.  
  6279. cdt[player1]--;
  6280. if(cdt[player1]==0)
  6281. {
  6282. TogglePlayerControllable(player1,1); TogglePlayerControllable(player2,1);
  6283. PlayerPlaySound(player1, 1057, 0.0, 0.0, 0.0); PlayerPlaySound(player2, 1057, 0.0, 0.0, 0.0);
  6284. GameTextForPlayer(player1,"~g~GO~ r~!",1000,6); GameTextForPlayer(player2,"~g~GO~ r~!",1000,6);
  6285. return 0;
  6286. }
  6287. else
  6288. {
  6289. new text[7]; format(text,sizeof(text),"~w~%d",cdt[player1]);
  6290. PlayerPlaySound(player1, 1056, 0.0, 0.0, 0.0); PlayerPlaySound(player2, 1056, 0.0, 0.0, 0.0);
  6291. TogglePlayerControllable(player1,0); TogglePlayerControllable(player2,0);
  6292. GameTextForPlayer(player1,text,1000,6); GameTextForPlayer(player2,text,1000,6);
  6293. }
  6294.  
  6295. SetTimerEx("Duel",1000,0,"dd", player1, player2);
  6296. return 0;
  6297. }
  6298.  
  6299. //==================== [ Jail & Freeze ]========================================
  6300.  
  6301. forward Jail1(player1);
  6302. public Jail1(player1)
  6303. {
  6304. TogglePlayerControllable(player1,false);
  6305. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6306. SetPlayerCameraPos(player1,x+10,y,z+10);SetPlayerCameraLookAt(player1,x,y,z);
  6307. SetTimerEx("Jail2",1000,0,"d",player1);
  6308. }
  6309.  
  6310. forward Jail2(player1);
  6311. public Jail2(player1)
  6312. {
  6313. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6314. SetPlayerCameraPos(player1,x+7,y,z+5); SetPlayerCameraLookAt(player1,x,y,z);
  6315. if(GetPlayerState(player1) == PLAYER_STATE_ONFOOT) SetPlayerSpecialAction(player1,SPECIAL_ACTION_HANDSUP);
  6316. GameTextForPlayer(player1,"~r~Busted By Admins",3000,3);
  6317. SetTimerEx("Jail3",1000,0,"d",player1);
  6318. }
  6319.  
  6320. forward Jail3(player1);
  6321. public Jail3(player1)
  6322. {
  6323. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6324. SetPlayerCameraPos(player1,x+3,y,z); SetPlayerCameraLookAt(player1,x,y,z);
  6325. }
  6326.  
  6327. forward JailPlayer(player1);
  6328. public JailPlayer(player1)
  6329. {
  6330. TogglePlayerControllable(player1,true);
  6331. SetPlayerPos(player1,197.6661,173.8179,1003.0234);
  6332. SetPlayerInterior(player1,3);
  6333. SetCameraBehindPlayer(player1);
  6334. JailTimer[player1] = SetTimerEx("JailRelease",PlayerInfo[player1][JailTime],0,"d",player1);
  6335. PlayerInfo[player1][Jailed] = 1;
  6336. }
  6337.  
  6338. forward JailRelease(player1);
  6339. public JailRelease(player1)
  6340. {
  6341. KillTimer( JailTimer[player1] );
  6342. PlayerInfo[player1][JailTime] = 0; PlayerInfo[player1][Jailed] = 0;
  6343. SetPlayerInterior(player1,0); SetPlayerPos(player1, 0.0, 0.0, 0.0); SpawnPlayer(player1);
  6344. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  6345. GameTextForPlayer(player1,"~g~Released ~n~From Jail",3000,3);
  6346. }
  6347.  
  6348. //------------------------------------------------------------------------------
  6349. forward UnFreezeMe(player1);
  6350. public UnFreezeMe(player1)
  6351. {
  6352. KillTimer( FreezeTimer[player1] );
  6353. TogglePlayerControllable(player1,true); PlayerInfo[player1][Frozen] = 0;
  6354. PlayerPlaySound(player1,1057,0.0,0.0,0.0); GameTextForPlayer(player1,"~g~Unfrozen",3000,3);
  6355. }
  6356.  
  6357. //==============================================================================
  6358. forward RepairCar(playerid);
  6359. public RepairCar(playerid)
  6360. {
  6361. if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid),Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]+0.5);
  6362. SetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[playerid][3]);
  6363. SetCameraBehindPlayer(playerid);
  6364. }
  6365.  
  6366. //============================ [ Timers ]=======================================
  6367.  
  6368. forward PingKick();
  6369. public PingKick()
  6370. {
  6371. if(ServerInfo[MaxPing] != 0)
  6372. {
  6373. PingPos++; if(PingPos > PING_MAX_EXCEEDS) PingPos = 0;
  6374.  
  6375. for(new i=0; i<MAX_PLAYERS; i++)
  6376. {
  6377. PlayerInfo[i][pPing][PingPos] = GetPlayerPing(i);
  6378.  
  6379. if(GetPlayerPing(i) > ServerInfo[MaxPing])
  6380. {
  6381. if(PlayerInfo[i][PingCount] == 0) PlayerInfo[i][PingTime] = TimeStamp();
  6382.  
  6383. PlayerInfo[i][PingCount]++;
  6384. if(TimeStamp() - PlayerInfo[i][PingTime] > PING_TIMELIMIT)
  6385. {
  6386. PlayerInfo[i][PingTime] = TimeStamp();
  6387. PlayerInfo[i][PingCount] = 1;
  6388. }
  6389. else if(PlayerInfo[i][PingCount] >= PING_MAX_EXCEEDS)
  6390. {
  6391. new Sum, Average, x, string[128];
  6392. while (x < PING_MAX_EXCEEDS) {
  6393. Sum += PlayerInfo[i][pPing][x];
  6394. x++;
  6395. }
  6396. Average = (Sum / PING_MAX_EXCEEDS);
  6397. 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] );
  6398. SendClientMessageToAll(grey,string);
  6399. SaveToFile("KickLog",string);
  6400. Kick(i);
  6401. }
  6402. }
  6403. else if(GetPlayerPing(i) < 1 && ServerInfo[AntiBot] == 1)
  6404. {
  6405. PlayerInfo[i][BotPing]++;
  6406. if(PlayerInfo[i][BotPing] >= 3) BotCheck(i);
  6407. }
  6408. else
  6409. {
  6410. PlayerInfo[i][BotPing] = 0;
  6411. }
  6412. }
  6413. }
  6414.  
  6415. #if defined ANTI_MINIGUN
  6416. new weap, ammo;
  6417. for(new i = 0; i < MAX_PLAYERS; i++)
  6418. {
  6419. if(IsPlayerConnected(i) && PlayerInfo[i][Level] == 0)
  6420. {
  6421. GetPlayerWeaponData(i, 7, weap, ammo);
  6422. if(ammo > 1 && weap == 38) {
  6423. new string[128]; format(string,sizeof(string),"INFO: %s has a mingun with %d ammo", PlayerName2(i), ammo);
  6424. MessageToAdmins(COLOR_WHITE,string);
  6425. }
  6426. }
  6427. }
  6428. #endif
  6429. }
  6430.  
  6431. //==============================================================================
  6432. forward GodUpdate();
  6433. public GodUpdate()
  6434. {
  6435. for(new i = 0; i < MAX_PLAYERS; i++)
  6436. {
  6437. if(IsPlayerConnected(i) && PlayerInfo[i][God] == 1)
  6438. {
  6439. SetPlayerHealth(i,100000);
  6440. }
  6441. if(IsPlayerConnected(i) && PlayerInfo[i][GodCar] == 1 && IsPlayerInAnyVehicle(i))
  6442. {
  6443. SetVehicleHealth(GetPlayerVehicleID(i),10000);
  6444. }
  6445. }
  6446. }
  6447.  
  6448. //==========================[ Server Info ]====================================
  6449.  
  6450. forward ConnectedPlayers();
  6451. public ConnectedPlayers()
  6452. {
  6453. new Connected;
  6454. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) Connected++;
  6455. return Connected;
  6456. }
  6457.  
  6458. forward JailedPlayers();
  6459. public JailedPlayers()
  6460. {
  6461. new JailedCount;
  6462. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed] == 1) JailedCount++;
  6463. return JailedCount;
  6464. }
  6465.  
  6466. forward FrozenPlayers();
  6467. public FrozenPlayers()
  6468. {
  6469. new FrozenCount; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen] == 1) FrozenCount++;
  6470. return FrozenCount;
  6471. }
  6472.  
  6473. forward MutedPlayers();
  6474. public MutedPlayers()
  6475. {
  6476. new Count; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted] == 1) Count++;
  6477. return Count;
  6478. }
  6479.  
  6480. forward InVehCount();
  6481. public InVehCount()
  6482. {
  6483. new InVeh; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) InVeh++;
  6484. return InVeh;
  6485. }
  6486.  
  6487. forward OnBikeCount();
  6488. public OnBikeCount()
  6489. {
  6490. new BikeCount;
  6491. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  6492. new LModel = GetVehicleModel(GetPlayerVehicleID(i));
  6493. switch(LModel)
  6494. {
  6495. case 448,461,462,463,468,471,509,510,521,522,523,581,586: BikeCount++;
  6496. }
  6497. }
  6498. return BikeCount;
  6499. }
  6500.  
  6501. forward InCarCount();
  6502. public InCarCount()
  6503. {
  6504. new PInCarCount;
  6505. for(new i = 0; i < MAX_PLAYERS; i++) {
  6506. if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  6507. new LModel = GetVehicleModel(GetPlayerVehicleID(i));
  6508. switch(LModel)
  6509. {
  6510. case 448,461,462,463,468,471,509,510,521,522,523,581,586: {}
  6511. default: PInCarCount++;
  6512. }
  6513. }
  6514. }
  6515. return PInCarCount;
  6516. }
  6517.  
  6518. forward AdminCount();
  6519. public AdminCount()
  6520. {
  6521. new LAdminCount;
  6522. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] >= 1) LAdminCount++;
  6523. return LAdminCount;
  6524. }
  6525.  
  6526. forward RconAdminCount();
  6527. public RconAdminCount()
  6528. {
  6529. new rAdminCount;
  6530. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) rAdminCount++;
  6531. return rAdminCount;
  6532. }
  6533.  
  6534. //==========================[ Remote Console ]==================================
  6535.  
  6536. forward RestartGM();
  6537. public RestartGM()
  6538. {
  6539. SendRconCommand("gmx");
  6540. }
  6541.  
  6542. forward UnloadFS();
  6543. public UnloadFS()
  6544. {
  6545. SendRconCommand("unloadfs ladmin4v2");
  6546. }
  6547.  
  6548. forward PrintWarning(const string[]);
  6549. public PrintWarning(const string[])
  6550. {
  6551. new str[128];
  6552. print("\n\n> WARNING:\n");
  6553. format(str, sizeof(str), " The %s folder is missing from scriptfiles", string);
  6554. print(str);
  6555. print("\n Please Create This Folder And Reload the Filterscript\n\n");
  6556. }
  6557.  
  6558. //============================[ Bot Check ]=====================================
  6559. forward BotCheck(playerid);
  6560. public BotCheck(playerid)
  6561. {
  6562. if(IsPlayerConnected(playerid))
  6563. {
  6564. if(GetPlayerPing(playerid) < 1)
  6565. {
  6566. new string[128], ip[20]; GetPlayerIp(playerid,ip,sizeof(ip));
  6567. format(string,sizeof(string),"BOT: %s id:%d ip: %s ping: %d",PlayerName2(playerid),playerid,ip,GetPlayerPing(playerid));
  6568. SaveToFile("BotKickLog",string);
  6569. SaveToFile("KickLog",string);
  6570. printf("[ADMIN] Possible bot has been detected (Kicked %s ID:%d)", PlayerName2(playerid), playerid);
  6571. Kick(playerid);
  6572. }
  6573. }
  6574. }
  6575.  
  6576. //==============================================================================
  6577. forward PutAtPos(playerid);
  6578. public PutAtPos(playerid)
  6579. {
  6580. if (dUserINT(PlayerName2(playerid)).("x")!=0) {
  6581. SetPlayerPos(playerid, float(dUserINT(PlayerName2(playerid)).("x")), float(dUserINT(PlayerName2(playerid)).("y")), float(dUserINT(PlayerName2(playerid)).("z")) );
  6582. SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior")) );
  6583. }
  6584. }
  6585.  
  6586. forward PutAtDisconectPos(playerid);
  6587. public PutAtDisconectPos(playerid)
  6588. {
  6589. if (dUserINT(PlayerName2(playerid)).("x1")!=0) {
  6590. SetPlayerPos(playerid, float(dUserINT(PlayerName2(playerid)).("x1")), float(dUserINT(PlayerName2(playerid)).("y1")), float(dUserINT(PlayerName2(playerid)).("z1")) );
  6591. SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior1")) );
  6592. }
  6593. }
  6594.  
  6595. TotalGameTime(playerid, &h=0, &m=0, &s=0)
  6596. {
  6597. PlayerInfo[playerid][TotalTime] = ( (gettime() - PlayerInfo[playerid][ConnectTime]) + (PlayerInfo[playerid][hours]*60*60) + (PlayerInfo[playerid][mins]*60) + (PlayerInfo[playerid][secs]) );
  6598.  
  6599. h = floatround(PlayerInfo[playerid][TotalTime] / 3600, floatround_floor);
  6600. m = floatround(PlayerInfo[playerid][TotalTime] / 60, floatround_floor) % 60;
  6601. s = floatround(PlayerInfo[playerid][TotalTime] % 60, floatround_floor);
  6602.  
  6603. return PlayerInfo[playerid][TotalTime];
  6604. }
  6605.  
  6606. //==============================================================================
  6607. MaxAmmo(playerid)
  6608. {
  6609. new slot, weap, ammo;
  6610. for (slot = 0; slot < 14; slot++)
  6611. {
  6612. GetPlayerWeaponData(playerid, slot, weap, ammo);
  6613. if(IsValidWeapon(weap))
  6614. {
  6615. GivePlayerWeapon(playerid, weap, 99999);
  6616. }
  6617. }
  6618. return 1;
  6619. }
  6620.  
  6621. stock PlayerName2(playerid) {
  6622. new name[MAX_PLAYER_NAME];
  6623. GetPlayerName(playerid, name, sizeof(name));
  6624. return name;
  6625. }
  6626.  
  6627. stock pName(playerid)
  6628. {
  6629. new name[MAX_PLAYER_NAME];
  6630. GetPlayerName(playerid, name, sizeof(name));
  6631. return name;
  6632. }
  6633.  
  6634. stock TimeStamp()
  6635. {
  6636. new time = GetTickCount() / 1000;
  6637. return time;
  6638. }
  6639.  
  6640. stock PlayerSoundForAll(SoundID)
  6641. {
  6642. for(new i = 0; i < MAX_PLAYERS; i++) PlayerPlaySound(i, SoundID, 0.0, 0.0, 0.0);
  6643. }
  6644.  
  6645. stock IsValidWeapon(weaponid)
  6646. {
  6647. if (weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47) return 1;
  6648. return 0;
  6649. }
  6650.  
  6651. stock IsValidSkin(SkinID)
  6652. {
  6653. 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;
  6654. else return false;
  6655. }
  6656.  
  6657. stock IsNumeric(string[])
  6658. {
  6659. for (new i = 0, j = strlen(string); i < j; i++)
  6660. {
  6661. if (string[i] > '9' || string[i] < '0') return 0;
  6662. }
  6663. return 1;
  6664. }
  6665.  
  6666. stock ReturnPlayerID(PlayerName[])
  6667. {
  6668. for(new i = 0; i < MAX_PLAYERS; i++)
  6669. {
  6670. if(IsPlayerConnected(i))
  6671. {
  6672. if(strfind(pName(i),PlayerName,true)!=-1) return i;
  6673. }
  6674. }
  6675. return INVALID_PLAYER_ID;
  6676. }
  6677.  
  6678. GetVehicleModelIDFromName(vname[])
  6679. {
  6680. for(new i = 0; i < 211; i++)
  6681. {
  6682. if ( strfind(VehicleNames[i], vname, true) != -1 )
  6683. return i + 400;
  6684. }
  6685. return -1;
  6686. }
  6687.  
  6688. stock GetWeaponIDFromName(WeaponName[])
  6689. {
  6690. if(strfind("molotov",WeaponName,true)!=-1) return 18;
  6691. for(new i = 0; i <= 46; i++)
  6692. {
  6693. switch(i)
  6694. {
  6695. case 0,19,20,21,44,45: continue;
  6696. default:
  6697. {
  6698. new name[32]; GetWeaponName(i,name,32);
  6699. if(strfind(name,WeaponName,true) != -1) return i;
  6700. }
  6701. }
  6702. }
  6703. return -1;
  6704. }
  6705.  
  6706. stock DisableWord(const badword[], text[])
  6707. {
  6708. for(new i=0; i<256; i++)
  6709. {
  6710. if (strfind(text[i], badword, true) == 0)
  6711. {
  6712. for(new a=0; a<256; a++)
  6713. {
  6714. if (a >= i && a < i+strlen(badword)) text[a]='*';
  6715. }
  6716. }
  6717. }
  6718. }
  6719.  
  6720. argpos(const string[], idx = 0, sep = ' ')// (by yom)
  6721. {
  6722. for(new i = idx, j = strlen(string); i < j; i++)
  6723. if (string[i] == sep && string[i+1] != sep)
  6724. return i+1;
  6725.  
  6726. return -1;
  6727. }
  6728.  
  6729. //==============================================================================
  6730. forward MessageToAdmins(color,const string[]);
  6731. public MessageToAdmins(color,const string[])
  6732. {
  6733. for(new i = 0; i < MAX_PLAYERS; i++)
  6734. {
  6735. if(IsPlayerConnected(i) == 1) if (PlayerInfo[i][Level] >= 1) SendClientMessage(i, color, string);
  6736. }
  6737. return 1;
  6738. }
  6739.  
  6740. stock CMDMessageToAdmins(playerid,command[])
  6741. {
  6742. if(ServerInfo[AdminCmdMsg] == 0) return 1;
  6743. new string[128]; GetPlayerName(playerid,string,sizeof(string));
  6744. format(string,sizeof(string),"[ADMIN] %s has used the command %s",string,command);
  6745. return MessageToAdmins(blue,string);
  6746. }
  6747.  
  6748. //==============================================================================
  6749. SavePlayer(playerid)
  6750. {
  6751. dUserSetINT(PlayerName2(playerid)).("money",GetPlayerMoney(playerid));
  6752. dUserSetINT(PlayerName2(playerid)).("vrules",viewedRules[playerid]);
  6753. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  6754. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  6755. dUserSetINT(PlayerName2(playerid)).("Score",GetPlayerScore(playerid));
  6756. dUserSetINT(PlayerName2(playerid)).("Wanted",GetPlayerWantedLevel(playerid));
  6757. new h, m, s;
  6758. TotalGameTime(playerid, h, m, s);
  6759.  
  6760. dUserSetINT(PlayerName2(playerid)).("hours", h);
  6761. dUserSetINT(PlayerName2(playerid)).("minutes", m);
  6762. dUserSetINT(PlayerName2(playerid)).("seconds", s);
  6763.  
  6764. new Float:x,Float:y,Float:z, interior;
  6765. GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
  6766. dUserSetINT(PlayerName2(playerid)).("x1",floatround(x));
  6767. dUserSetINT(PlayerName2(playerid)).("y1",floatround(y));
  6768. dUserSetINT(PlayerName2(playerid)).("z1",floatround(z));
  6769. dUserSetINT(PlayerName2(playerid)).("interior1",interior);
  6770.  
  6771. new weap1, ammo1, weap2, ammo2, weap3, ammo3, weap4, ammo4, weap5, ammo5, weap6, ammo6;
  6772. GetPlayerWeaponData(playerid,2,weap1,ammo1);// hand gun
  6773. GetPlayerWeaponData(playerid,3,weap2,ammo2);//shotgun
  6774. GetPlayerWeaponData(playerid,4,weap3,ammo3);// SMG
  6775. GetPlayerWeaponData(playerid,5,weap4,ammo4);// AK47 / M4
  6776. GetPlayerWeaponData(playerid,6,weap5,ammo5);// rifle
  6777. GetPlayerWeaponData(playerid,7,weap6,ammo6);// rocket launcher
  6778. dUserSetINT(PlayerName2(playerid)).("weap1",weap1); dUserSetINT(PlayerName2(playerid)).("weap1ammo",ammo1);
  6779. dUserSetINT(PlayerName2(playerid)).("weap2",weap2); dUserSetINT(PlayerName2(playerid)).("weap2ammo",ammo2);
  6780. dUserSetINT(PlayerName2(playerid)).("weap3",weap3); dUserSetINT(PlayerName2(playerid)).("weap3ammo",ammo3);
  6781. dUserSetINT(PlayerName2(playerid)).("weap4",weap4); dUserSetINT(PlayerName2(playerid)).("weap4ammo",ammo4);
  6782. dUserSetINT(PlayerName2(playerid)).("weap5",weap5); dUserSetINT(PlayerName2(playerid)).("weap5ammo",ammo5);
  6783. dUserSetINT(PlayerName2(playerid)).("weap6",weap6); dUserSetINT(PlayerName2(playerid)).("weap6ammo",ammo6);
  6784.  
  6785. new Float:health; GetPlayerHealth(playerid, Float:health);
  6786. new Float:armour; GetPlayerArmour(playerid, Float:armour);
  6787. new year,month,day; getdate(year, month, day);
  6788. new strdate[20]; format(strdate, sizeof(strdate), "%d.%d.%d",day,month,year);
  6789. new file[256]; format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  6790.  
  6791. dUserSetINT(PlayerName2(playerid)).("health",floatround(health));
  6792. dUserSetINT(PlayerName2(playerid)).("armour",floatround(armour));
  6793. dini_Set(file,"LastOn",strdate);
  6794. dUserSetINT(PlayerName2(playerid)).("loggedin",0);
  6795. dUserSetINT(PlayerName2(playerid)).("TimesOnServer",(dUserINT(PlayerName2(playerid)).("TimesOnServer"))+1);
  6796. }
  6797.  
  6798. //==============================================================================
  6799. #if defined USE_MENUS
  6800. DestroyAllMenus()
  6801. {
  6802. DestroyMenu(LVehicles); DestroyMenu(twodoor); DestroyMenu(fourdoor); DestroyMenu(fastcar); DestroyMenu(Othercars);
  6803. DestroyMenu(bikes); DestroyMenu(boats); DestroyMenu(planes); DestroyMenu(helicopters ); DestroyMenu(LTime);
  6804. DestroyMenu(XWeapons); DestroyMenu(XWeaponsBig); DestroyMenu(XWeaponsSmall); DestroyMenu(XWeaponsMore);
  6805. DestroyMenu(LWeather); DestroyMenu(LTuneMenu); DestroyMenu(PaintMenu); DestroyMenu(LCars); DestroyMenu(LCars2);
  6806. DestroyMenu(LTele); DestroyMenu(LasVenturasMenu); DestroyMenu(LosSantosMenu); DestroyMenu(SanFierroMenu);
  6807. DestroyMenu(LMainMenu); DestroyMenu(DesertMenu); DestroyMenu(FlintMenu); DestroyMenu(MountChiliadMenu); DestroyMenu(InteriorsMenu);
  6808. DestroyMenu(AdminEnable); DestroyMenu(AdminDisable);
  6809. }
  6810. #endif
  6811.  
  6812. //==============================================================================
  6813. #if defined DISPLAY_CONFIG
  6814. stock ConfigInConsole()
  6815. {
  6816. print(" ________ Configuration ___________\n");
  6817. print(" __________ Chat & Messages ______");
  6818. if(ServerInfo[AntiSwear] == 0) print(" Anti Swear: Disabled "); else print(" Anti Swear: Enabled ");
  6819. if(ServerInfo[AntiSpam] == 0) print(" Anti Spam: Disabled "); else print(" Anti Spam: Enabled ");
  6820. if(ServerInfo[ReadCmds] == 0) print(" Read Cmds: Disabled "); else print(" Read Cmds: Enabled ");
  6821. if(ServerInfo[ReadPMs] == 0) print(" Read PMs: Disabled "); else print(" Read PMs: Enabled ");
  6822. if(ServerInfo[ConnectMessages] == 0) print(" Connect Messages: Disabled "); else print(" Connect Messages: Enabled ");
  6823. if(ServerInfo[AdminCmdMsg] == 0) print(" Admin Cmd Messages: Disabled "); else print(" Admin Cmd Messages: Enabled ");
  6824. if(ServerInfo[ReadPMs] == 0) print(" Anti capital letters: Disabled \n"); else print(" Anti capital letters: Enabled \n");
  6825. print(" __________ Skins ________________");
  6826. if(ServerInfo[AdminOnlySkins] == 0) print(" AdminOnlySkins: Disabled "); else print(" AdminOnlySkins: Enabled ");
  6827. printf(" Admin Skin 1 is: %d", ServerInfo[AdminSkin] );
  6828. printf(" Admin Skin 2 is: %d\n", ServerInfo[AdminSkin2] );
  6829. print(" ________ Server Protection ______");
  6830. if(ServerInfo[AntiBot] == 0) print(" Anti Bot: Disabled "); else print(" Anti Bot: Enabled ");
  6831. if(ServerInfo[NameKick] == 0) print(" Bad Name Kick: Disabled\n"); else print(" Bad Name Kick: Enabled\n");
  6832. print(" __________ Ping Control _________");
  6833. if(ServerInfo[MaxPing] == 0) print(" Ping Control: Disabled"); else print(" Ping Control: Enabled");
  6834. printf(" Max Ping: %d\n", ServerInfo[MaxPing] );
  6835. print(" __________ Players ______________");
  6836. if(ServerInfo[GiveWeap] == 0) print(" Save/Give Weaps: Disabled"); else print(" Save/Give Weaps: Enabled");
  6837. if(ServerInfo[GiveMoney] == 0) print(" Save/Give Money: Disabled\n"); else print(" Save/Give Money: Enabled\n");
  6838. print(" __________ Other ________________");
  6839. printf(" Max Admin Level: %d", ServerInfo[MaxAdminLevel] );
  6840. if(ServerInfo[Locked] == 0) print(" Server Locked: No"); else print(" Server Locked: Yes");
  6841. if(ServerInfo[AutoLogin] == 0) print(" Auto Login: Disabled\n"); else print(" Auto Login: Enabled\n");
  6842. }
  6843. #endif
  6844.  
  6845. //=====================[ Configuration ] =======================================
  6846. stock UpdateConfig()
  6847. {
  6848. new file[256], File:file2, string[100]; format(file,sizeof(file),"ladmin/config/Config.ini");
  6849. ForbiddenWordCount = 0;
  6850. BadNameCount = 0;
  6851. BadPartNameCount = 0;
  6852.  
  6853. if(!dini_Exists("ladmin/config/aka.txt")) dini_Create("ladmin/config/aka.txt");
  6854.  
  6855. if(!dini_Exists(file))
  6856. {
  6857. dini_Create(file);
  6858. print("\n >Configuration File Successfully Created");
  6859. }
  6860.  
  6861. if(!dini_Isset(file,"MaxPing")) dini_IntSet(file,"MaxPing",1200);
  6862. if(!dini_Isset(file,"ReadPms")) dini_IntSet(file,"ReadPMs",1);
  6863. if(!dini_Isset(file,"ReadCmds")) dini_IntSet(file,"ReadCmds",1);
  6864. if(!dini_Isset(file,"MaxAdminLevel")) dini_IntSet(file,"MaxAdminLevel",5);
  6865. if(!dini_Isset(file,"AdminOnlySkins")) dini_IntSet(file,"AdminOnlySkins",0);
  6866. if(!dini_Isset(file,"AdminSkin")) dini_IntSet(file,"AdminSkin",217);
  6867. if(!dini_Isset(file,"AdminSkin2")) dini_IntSet(file,"AdminSkin2",214);
  6868. if(!dini_Isset(file,"AntiBot")) dini_IntSet(file,"AntiBot",1);
  6869. if(!dini_Isset(file,"AntiSpam")) dini_IntSet(file,"AntiSpam",1);
  6870. if(!dini_Isset(file,"AntiSwear")) dini_IntSet(file,"AntiSwear",1);
  6871. if(!dini_Isset(file,"NameKick")) dini_IntSet(file,"NameKick",1);
  6872. if(!dini_Isset(file,"PartNameKick")) dini_IntSet(file,"PartNameKick",1);
  6873. if(!dini_Isset(file,"NoCaps")) dini_IntSet(file,"NoCaps",0);
  6874. if(!dini_Isset(file,"Locked")) dini_IntSet(file,"Locked",0);
  6875. if(!dini_Isset(file,"SaveWeap")) dini_IntSet(file,"SaveWeap",1);
  6876. if(!dini_Isset(file,"SaveMoney")) dini_IntSet(file,"SaveMoney",1);
  6877. if(!dini_Isset(file,"ConnectMessages")) dini_IntSet(file,"ConnectMessages",1);
  6878. if(!dini_Isset(file,"AdminCmdMessages")) dini_IntSet(file,"AdminCmdMessages",1);
  6879. if(!dini_Isset(file,"AutoLogin")) dini_IntSet(file,"AutoLogin",1);
  6880. if(!dini_Isset(file,"MaxMuteWarnings")) dini_IntSet(file,"MaxMuteWarnings",4);
  6881. if(!dini_Isset(file,"MustLogin")) dini_IntSet(file,"MustLogin",0);
  6882. if(!dini_Isset(file,"MustRegister")) dini_IntSet(file,"MustRegister",0);
  6883.  
  6884. if(dini_Exists(file))
  6885. {
  6886. ServerInfo[MaxPing] = dini_Int(file,"MaxPing");
  6887. ServerInfo[ReadPMs] = dini_Int(file,"ReadPMs");
  6888. ServerInfo[ReadCmds] = dini_Int(file,"ReadCmds");
  6889. ServerInfo[MaxAdminLevel] = dini_Int(file,"MaxAdminLevel");
  6890. ServerInfo[AdminOnlySkins] = dini_Int(file,"AdminOnlySkins");
  6891. ServerInfo[AdminSkin] = dini_Int(file,"AdminSkin");
  6892. ServerInfo[AdminSkin2] = dini_Int(file,"AdminSkin2");
  6893. ServerInfo[AntiBot] = dini_Int(file,"AntiBot");
  6894. ServerInfo[AntiSpam] = dini_Int(file,"AntiSpam");
  6895. ServerInfo[AntiSwear] = dini_Int(file,"AntiSwear");
  6896. ServerInfo[NameKick] = dini_Int(file,"NameKick");
  6897. ServerInfo[PartNameKick] = dini_Int(file,"PartNameKick");
  6898. ServerInfo[NoCaps] = dini_Int(file,"NoCaps");
  6899. ServerInfo[Locked] = dini_Int(file,"Locked");
  6900. ServerInfo[GiveWeap] = dini_Int(file,"SaveWeap");
  6901. ServerInfo[GiveMoney] = dini_Int(file,"SaveMoney");
  6902. ServerInfo[ConnectMessages] = dini_Int(file,"ConnectMessages");
  6903. ServerInfo[AdminCmdMsg] = dini_Int(file,"AdminCmdMessages");
  6904. ServerInfo[AutoLogin] = dini_Int(file,"AutoLogin");
  6905. ServerInfo[MaxMuteWarnings] = dini_Int(file,"MaxMuteWarnings");
  6906. ServerInfo[MustLogin] = dini_Int(file,"MustLogin");
  6907. ServerInfo[MustRegister] = dini_Int(file,"MustRegister");
  6908. print("\n -Configuration Settings Loaded");
  6909. }
  6910.  
  6911. //forbidden names
  6912. if((file2 = fopen("ladmin/config/ForbiddenNames.cfg",io_read)))
  6913. {
  6914. while(fread(file2,string))
  6915. {
  6916. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6917. BadNames[BadNameCount] = string;
  6918. BadNameCount++;
  6919. }
  6920. fclose(file2); printf(" -%d Forbidden Names Loaded", BadNameCount);
  6921. }
  6922.  
  6923. //forbidden part of names
  6924. if((file2 = fopen("ladmin/config/ForbiddenPartNames.cfg",io_read)))
  6925. {
  6926. while(fread(file2,string))
  6927. {
  6928. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6929. BadPartNames[BadPartNameCount] = string;
  6930. BadPartNameCount++;
  6931. }
  6932. fclose(file2); printf(" -%d Forbidden Tags Loaded", BadPartNameCount);
  6933. }
  6934.  
  6935. //forbidden words
  6936. if((file2 = fopen("ladmin/config/ForbiddenWords.cfg",io_read)))
  6937. {
  6938. while(fread(file2,string))
  6939. {
  6940. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6941. ForbiddenWords[ForbiddenWordCount] = string;
  6942. ForbiddenWordCount++;
  6943. }
  6944. fclose(file2); printf(" -%d Forbidden Words Loaded", ForbiddenWordCount);
  6945. }
  6946. }
  6947. //=====================[ SAVING DATA ] =========================================
  6948.  
  6949. forward SaveToFile(filename[],text[]);
  6950. public SaveToFile(filename[],text[])
  6951. {
  6952. #if defined SAVE_LOGS
  6953. new File:LAdminfile, filepath[256], string[256], year,month,day, hour,minute,second;
  6954. getdate(year,month,day); gettime(hour,minute,second);
  6955.  
  6956. format(filepath,sizeof(filepath),"ladmin/logs/%s.txt",filename);
  6957. LAdminfile = fopen(filepath,io_append);
  6958. format(string,sizeof(string),"[%d.%d.%d %d:%d:%d] %s\r\n",day,month,year,hour,minute,second,text);
  6959. fwrite(LAdminfile,string);
  6960. fclose(LAdminfile);
  6961. #endif
  6962.  
  6963. return 1;
  6964. }
  6965.  
  6966. //============================[ EOF ]===========================================
  6967.  
  6968.  
Advertisement
Add Comment
Please, Sign In to add comment