MrMegaTx

[FS]Bancoy[FS]Ladmin4v2

Nov 20th, 2011
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 344.54 KB | None | 0 0
  1. #include <a_samp>
  2. #include <lethaldudb2>
  3. #include <zcmd>
  4. #include <dini>
  5.  
  6. #pragma dynamic 145000
  7. #pragma tabsize 0
  8.  
  9. /*
  10. |===============================================|
  11. | --== LethaL Adminscript ==-- |
  12. | -== Version 4.2 ==-- |
  13. | ladmin4v2.pwn |
  14. |===============================================|
  15. */
  16.  
  17. //-----------------------------------------------------------------------------------//
  18.  
  19. #define USE_MENUS // Comment to remove all menus. Uncomment to enable menus
  20. //#define DISPLAY_CONFIG // displays configuration in console window on filterscript load
  21. #define SAVE_LOGS // Comment if your server runs linux (logs wont be saved)
  22. #define ENABLE_SPEC // Comment if you are using a spectate system already
  23. #define USE_STATS // Comment to disable /stats
  24. #define ANTI_MINIGUN // Displays who has a minigun
  25. //#define USE_AREGISTER // Changes /register, /login etc to /areister, /alogin etc
  26. //#define HIDE_ADMINS // Displays number of admins online instead of level and names
  27. #define ENABLE_FAKE_CMDS // Comment to disable /fakechat, /fakedeath, /fakecmd commanads
  28.  
  29. //-----------------------------------------------------------------------------------//
  30.  
  31. #define MAX_WARNINGS 3 // /warn command
  32.  
  33. #define MAX_REPORTS 7
  34. #define MAX_CHAT_LINES 7
  35.  
  36. #define SPAM_MAX_MSGS 5
  37. #define SPAM_TIMELIMIT 8 // SECONDS
  38.  
  39. #define PING_MAX_EXCEEDS 4
  40. #define PING_TIMELIMIT 60 // SECONDS
  41.  
  42. #define MAX_FAIL_LOGINS 4
  43.  
  44.  
  45. // Admin Area
  46. new AdminArea[6] = {
  47. 377, // X
  48. 170, // Y
  49. 1008, // Z
  50. 90, // Angle
  51. 3, // Interior
  52. 0 // Virtual World
  53. };
  54.  
  55. //-=Main colours=-
  56. #define blue 0x375FFFFF
  57. #define red 0xFF0000AA
  58. #define green 0x33FF33AA
  59. #define yellow 0xFFFF00AA
  60. #define grey 0xC0C0C0AA
  61. #define blue1 0x2641FEAA
  62. #define lightblue 0x33CCFFAA
  63. #define orange 0xFF9900AA
  64. #define black 0x2C2727AA
  65. #define COLOR_GREEN 0x33AA33AA
  66. #define COLOR_PINK 0xFF66FFAA
  67. #define COLOR_BLUE 0x0000BBAA
  68. #define COLOR_PURPLE 0x800080AA
  69. #define COLOR_BLACK 0x000000AA
  70. #define COLOR_WHITE 0xFFFFFFAA
  71. #define COLOR_GREEN1 0x33AA33AA
  72. #define COLOR_BROWN 0xA52A2AAA
  73. #define COLOR_LIGHTBLUE 0x33CCFFAA
  74. #define COLOR_LIGHTGREEN 0x00ff00ff
  75.  
  76. // DCMD
  77. #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
  78.  
  79. // Caps
  80. #define UpperToLower(%1) for ( new ToLowerChar; ToLowerChar < strlen( %1 ); ToLowerChar ++ ) if ( %1[ ToLowerChar ]> 64 && %1[ ToLowerChar ] < 91 ) %1[ ToLowerChar ] += 32
  81.  
  82. // Spec
  83. #define ADMIN_SPEC_TYPE_NONE 0
  84. #define ADMIN_SPEC_TYPE_PLAYER 1
  85. #define ADMIN_SPEC_TYPE_VEHICLE 2
  86.  
  87. // Enums
  88. enum PlayerData
  89. {
  90. Registered,
  91. LoggedIn,
  92. Level,
  93. Muted,
  94. Caps,
  95. Jailed,
  96. JailTime,
  97. Frozen,
  98. FreezeTime,
  99. Kills,
  100. Deaths,
  101. hours,
  102. mins,
  103. secs,
  104. TotalTime,
  105. ConnectTime,
  106. MuteWarnings,
  107. Warnings,
  108. Spawned,
  109. TimesSpawned,
  110. God,
  111. GodCar,
  112. DoorsLocked,
  113. SpamCount,
  114. SpamTime,
  115. PingCount,
  116. PingTime,
  117. BotPing,
  118. pPing[PING_MAX_EXCEEDS],
  119. blip,
  120. blipS,
  121. pColour,
  122. pCar,
  123. SpecID,
  124. SpecType,
  125. bool:AllowedIn,
  126. FailLogin,
  127. };
  128. new PlayerInfo[MAX_PLAYERS][PlayerData];
  129.  
  130. enum ServerData
  131. {
  132. MaxPing,
  133. ReadPMs,
  134. ReadCmds,
  135. MaxAdminLevel,
  136. AdminOnlySkins,
  137. AdminSkin,
  138. AdminSkin2,
  139. NameKick,
  140. PartNameKick,
  141. AntiBot,
  142. AntiSpam,
  143. AntiSwear,
  144. NoCaps,
  145. Locked,
  146. Password[128],
  147. GiveWeap,
  148. GiveMoney,
  149. ConnectMessages,
  150. AdminCmdMsg,
  151. AutoLogin,
  152. MaxMuteWarnings,
  153. DisableChat,
  154. MustLogin,
  155. MustRegister,
  156. };
  157.  
  158.  
  159. new ServerInfo[ServerData];
  160.  
  161. new Float:Pos[MAX_PLAYERS][4];
  162.  
  163. //Banco
  164. new archivo[256];
  165.  
  166. // rcon
  167. new Chat[MAX_CHAT_LINES][128];
  168.  
  169. //Timers
  170. new PingTimer;
  171. new GodTimer;
  172. new BlipTimer[MAX_PLAYERS];
  173. new JailTimer[MAX_PLAYERS];
  174. new FreezeTimer[MAX_PLAYERS];
  175. new LockKickTimer[MAX_PLAYERS];
  176.  
  177. //Duel
  178. new CountDown = -1, cdt[MAX_PLAYERS] = -1;
  179. new InDuel[MAX_PLAYERS];
  180.  
  181. // Menus
  182. #if defined USE_MENUS
  183. new Menu:LMainMenu, Menu:AdminEnable, Menu:AdminDisable,
  184. Menu:LVehicles, Menu:twodoor, Menu:fourdoor, Menu:fastcar, Menu:Othercars,
  185. Menu:bikes, Menu:boats, Menu:planes, Menu:helicopters,
  186. Menu:XWeapons, Menu:XWeaponsBig, Menu:XWeaponsSmall, Menu:XWeaponsMore,
  187. Menu:LWeather,Menu:LTime,
  188. Menu:LTuneMenu, Menu:PaintMenu, Menu:LCars, Menu:LCars2,
  189. Menu:LTele, Menu:LasVenturasMenu, Menu:LosSantosMenu, Menu:SanFierroMenu,
  190. Menu:DesertMenu, Menu:FlintMenu, Menu:MountChiliadMenu, Menu:InteriorsMenu;
  191. #endif
  192.  
  193. // Forbidden Names & Words
  194. new BadNames[100][100], // Whole Names
  195. BadNameCount = 0,
  196. BadPartNames[100][100], // Part of name
  197. BadPartNameCount = 0,
  198. ForbiddenWords[100][100],
  199. ForbiddenWordCount = 0;
  200.  
  201. // Report
  202. new Reports[MAX_REPORTS][128];
  203.  
  204. // Ping Kick
  205. new PingPos;
  206.  
  207. new VehicleNames[212][] = {
  208. "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  209. "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
  210. "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  211. "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  212. "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  213. "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
  214. "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
  215. "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
  216. "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
  217. "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  218. "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
  219. "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
  220. "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
  221. "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
  222. "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  223. "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  224. "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  225. };
  226.  
  227. //==============================================================================
  228.  
  229. public OnFilterScriptInit()
  230. {
  231.  
  232. if(!fexist("ladmin/"))
  233. {
  234. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  235. SetTimerEx("PrintWarning",2500,0,"s","ladmin");
  236. return 1;
  237. }
  238. if(!fexist("ladmin/logs/"))
  239. {
  240. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  241. SetTimerEx("PrintWarning",2500,0,"s","ladmin/logs");
  242. return 1;
  243. }
  244. if(!fexist("ladmin/config/"))
  245. {
  246. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  247. SetTimerEx("PrintWarning",2500,0,"s","ladmin/config");
  248. return 1;
  249. }
  250. if(!fexist("ladmin/users/"))
  251. {
  252. print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  253. SetTimerEx("PrintWarning",2500,0,"s","ladmin/users");
  254. return 1;
  255. }
  256.  
  257. UpdateConfig();
  258.  
  259. #if defined DISPLAY_CONFIG
  260. ConfigInConsole();
  261. #endif
  262.  
  263. //===================== [ The Menus ]===========================//
  264. #if defined USE_MENUS
  265.  
  266. LMainMenu = CreateMenu("Main Menu", 2, 55.0, 200.0, 100.0, 80.0);
  267. SetMenuColumnHeader(LMainMenu, 0, "Choose an option below");
  268. AddMenuItem(LMainMenu, 0, "Enable");
  269. AddMenuItem(LMainMenu, 0, "Disable");
  270. AddMenuItem(LMainMenu, 0, "Server Weather");
  271. AddMenuItem(LMainMenu, 0, "Server Time");
  272. AddMenuItem(LMainMenu, 0, "All Vehicles");
  273. AddMenuItem(LMainMenu, 0, "Admin Cars");
  274. AddMenuItem(LMainMenu, 0, "Tuning Menu");
  275. AddMenuItem(LMainMenu, 0, "Choose Weapon");
  276. AddMenuItem(LMainMenu, 0, "Teleports");
  277. AddMenuItem(LMainMenu, 0, "Exit Menu");//
  278.  
  279. AdminEnable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
  280. SetMenuColumnHeader(AdminEnable, 0, "Enable");
  281. AddMenuItem(AdminEnable, 0, "Anti Swear");
  282. AddMenuItem(AdminEnable, 0, "Bad Name Kick");
  283. AddMenuItem(AdminEnable, 0, "Anti Spam");
  284. AddMenuItem(AdminEnable, 0, "Ping Kick");
  285. AddMenuItem(AdminEnable, 0, "Read Cmds");
  286. AddMenuItem(AdminEnable, 0, "Read PMs");
  287. AddMenuItem(AdminEnable, 0, "Capital Letters");
  288. AddMenuItem(AdminEnable, 0, "ConnectMessages");
  289. AddMenuItem(AdminEnable, 0, "AdminCmdMessages");
  290. AddMenuItem(AdminEnable, 0, "Auto Login");
  291. AddMenuItem(AdminEnable, 0, "Return");
  292.  
  293. AdminDisable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
  294. SetMenuColumnHeader(AdminDisable, 0, "Disable");
  295. AddMenuItem(AdminDisable, 0, "Anti Swear");
  296. AddMenuItem(AdminDisable, 0, "Bad Name Kick");
  297. AddMenuItem(AdminDisable, 0, "Anti Spam");
  298. AddMenuItem(AdminDisable, 0, "Ping Kick");
  299. AddMenuItem(AdminDisable, 0, "Read Cmds");
  300. AddMenuItem(AdminDisable, 0, "Read PMs");
  301. AddMenuItem(AdminDisable, 0, "Capital Letters");
  302. AddMenuItem(AdminDisable, 0, "ConnectMessages");
  303. AddMenuItem(AdminDisable, 0, "AdminCmdMessages");
  304. AddMenuItem(AdminDisable, 0, "Auto Login");
  305. AddMenuItem(AdminDisable, 0, "Return");
  306.  
  307. LWeather = CreateMenu("~b~Weather ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  308. SetMenuColumnHeader(LWeather, 0, "Set Weather");
  309. AddMenuItem(LWeather, 0, "Clear Blue Sky");
  310. AddMenuItem(LWeather, 0, "Sand Storm");
  311. AddMenuItem(LWeather, 0, "Thunderstorm");
  312. AddMenuItem(LWeather, 0, "Foggy");
  313. AddMenuItem(LWeather, 0, "Cloudy");
  314. AddMenuItem(LWeather, 0, "High Tide");
  315. AddMenuItem(LWeather, 0, "Purple Sky");
  316. AddMenuItem(LWeather, 0, "Black/White Sky");
  317. AddMenuItem(LWeather, 0, "Dark, Green Sky");
  318. AddMenuItem(LWeather, 0, "Heatwave");
  319. AddMenuItem(LWeather,0,"Return");
  320.  
  321. LTime = CreateMenu("~b~Time ~g~ Menu", 2, 55.0, 200.0, 100.0, 80.0);
  322. SetMenuColumnHeader(LTime, 0, "Set Time");
  323. AddMenuItem(LTime, 0, "Morning");
  324. AddMenuItem(LTime, 0, "Mid day");
  325. AddMenuItem(LTime, 0, "Afternoon");
  326. AddMenuItem(LTime, 0, "Evening");
  327. AddMenuItem(LTime, 0, "Midnight");
  328. AddMenuItem(LTime, 0, "Return");
  329.  
  330. LCars = CreateMenu("~b~LethaL ~g~Cars", 2, 55.0, 150.0, 100.0, 80.0);
  331. SetMenuColumnHeader(LCars, 0, "Choose a car");
  332. AddMenuItem(LCars, 0, "Turismo");
  333. AddMenuItem(LCars, 0, "Bandito");
  334. AddMenuItem(LCars, 0, "Vortex");
  335. AddMenuItem(LCars, 0, "NRG");
  336. AddMenuItem(LCars, 0, "S.W.A.T");
  337. AddMenuItem(LCars, 0, "Hunter");
  338. AddMenuItem(LCars, 0, "Jetmax (boat)");
  339. AddMenuItem(LCars, 0, "Rhino");
  340. AddMenuItem(LCars, 0, "Monster Truck");
  341. AddMenuItem(LCars, 0, "Sea Sparrow");
  342. AddMenuItem(LCars, 0, "More");
  343. AddMenuItem(LCars, 0, "Return");
  344.  
  345. LCars2 = CreateMenu("~b~LethaL ~g~Cars", 2, 55.0, 150.0, 100.0, 80.0);
  346. SetMenuColumnHeader(LCars2, 0, "Choose a car");
  347. AddMenuItem(LCars2, 0, "Dumper");
  348. AddMenuItem(LCars2, 0, "RC Tank");
  349. AddMenuItem(LCars2, 0, "RC Bandit");
  350. AddMenuItem(LCars2, 0, "RC Baron");
  351. AddMenuItem(LCars2, 0, "RC Goblin");
  352. AddMenuItem(LCars2, 0, "RC Raider");
  353. AddMenuItem(LCars2, 0, "RC Cam");
  354. AddMenuItem(LCars2, 0, "Tram");
  355. AddMenuItem(LCars2, 0, "Return");
  356.  
  357. LTuneMenu = CreateMenu("~b~Tuning ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  358. SetMenuColumnHeader(LTuneMenu, 0, "Add to car");
  359. AddMenuItem(LTuneMenu,0,"NOS");
  360. AddMenuItem(LTuneMenu,0,"Hydraulics");
  361. AddMenuItem(LTuneMenu,0,"Wire Wheels");
  362. AddMenuItem(LTuneMenu,0,"Twist Wheels");
  363. AddMenuItem(LTuneMenu,0,"Access Wheels");
  364. AddMenuItem(LTuneMenu,0,"Mega Wheels");
  365. AddMenuItem(LTuneMenu,0,"Import Wheels");
  366. AddMenuItem(LTuneMenu,0,"Atomic Wheels");
  367. AddMenuItem(LTuneMenu,0,"Offroad Wheels");
  368. AddMenuItem(LTuneMenu,0,"Classic Wheels");
  369. AddMenuItem(LTuneMenu,0,"Paint Jobs");
  370. AddMenuItem(LTuneMenu,0,"Return");
  371.  
  372. PaintMenu = CreateMenu("~b~Paint Job ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  373. SetMenuColumnHeader(PaintMenu, 0, "Choose paint");
  374. AddMenuItem(PaintMenu,0,"Paint Job 1");
  375. AddMenuItem(PaintMenu,0,"Paint Job 2");
  376. AddMenuItem(PaintMenu,0,"Paint Job 3");
  377. AddMenuItem(PaintMenu,0,"Paint Job 4");
  378. AddMenuItem(PaintMenu,0,"Paint Job 5");
  379. AddMenuItem(PaintMenu,0,"Black");
  380. AddMenuItem(PaintMenu,0,"White");
  381. AddMenuItem(PaintMenu,0,"Blue");
  382. AddMenuItem(PaintMenu,0,"Pink");
  383. AddMenuItem(PaintMenu,0,"Return");
  384.  
  385. LVehicles = CreateMenu("~b~Vehicles ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  386. SetMenuColumnHeader(LVehicles, 0, "Choose a car");
  387. AddMenuItem(LVehicles,0,"2-door Cars");
  388. AddMenuItem(LVehicles,0,"4-door Cars");
  389. AddMenuItem(LVehicles,0,"Fast Cars");
  390. AddMenuItem(LVehicles,0,"Other Vehicles");
  391. AddMenuItem(LVehicles,0,"Bikes");
  392. AddMenuItem(LVehicles,0,"Boats");
  393. AddMenuItem(LVehicles,0,"Planes");
  394. AddMenuItem(LVehicles,0,"Helicopters");
  395. AddMenuItem(LVehicles,0,"Return");
  396.  
  397. twodoor = CreateMenu("~b~2-door Cars",2, 55.0, 200.0, 100.0, 80.0);
  398. SetMenuColumnHeader(twodoor, 0, "Choose a car");
  399. AddMenuItem(twodoor,0,"Feltzer");//533
  400. AddMenuItem(twodoor,0,"Stallion");//139
  401. AddMenuItem(twodoor,0,"Windsor");//555
  402. AddMenuItem(twodoor,0,"Bobcat");//422
  403. AddMenuItem(twodoor,0,"Yosemite");//554
  404. AddMenuItem(twodoor,0,"Broadway");//575
  405. AddMenuItem(twodoor,0,"Blade");//536
  406. AddMenuItem(twodoor,0,"Slamvan");//535
  407. AddMenuItem(twodoor,0,"Tornado");//576
  408. AddMenuItem(twodoor,0,"Bravura");//401
  409. AddMenuItem(twodoor,0,"Fortune");//526
  410. AddMenuItem(twodoor,0,"Return");
  411.  
  412. fourdoor = CreateMenu("~b~4-door Cars",2, 55.0, 200.0, 100.0, 80.0);
  413. SetMenuColumnHeader(fourdoor, 0, "Choose a car");
  414. AddMenuItem(fourdoor,0,"Perenniel");//404
  415. AddMenuItem(fourdoor,0,"Tahoma");//566
  416. AddMenuItem(fourdoor,0,"Voodoo");//412
  417. AddMenuItem(fourdoor,0,"Admiral");//445
  418. AddMenuItem(fourdoor,0,"Elegant");//507
  419. AddMenuItem(fourdoor,0,"Glendale");//466
  420. AddMenuItem(fourdoor,0,"Intruder");//546
  421. AddMenuItem(fourdoor,0,"Merit");//551
  422. AddMenuItem(fourdoor,0,"Oceanic");//467
  423. AddMenuItem(fourdoor,0,"Premier");//426
  424. AddMenuItem(fourdoor,0,"Sentinel");//405
  425. AddMenuItem(fourdoor,0,"Return");
  426.  
  427. fastcar = CreateMenu("~b~Fast Cars",2, 55.0, 200.0, 100.0, 80.0);
  428. SetMenuColumnHeader(fastcar, 0, "Choose a car");
  429. AddMenuItem(fastcar,0,"Comet");//480
  430. AddMenuItem(fastcar,0,"Buffalo");//402
  431. AddMenuItem(fastcar,0,"Cheetah");//415
  432. AddMenuItem(fastcar,0,"Euros");//587
  433. AddMenuItem(fastcar,0,"Hotring Racer");//494
  434. AddMenuItem(fastcar,0,"Infernus");//411
  435. AddMenuItem(fastcar,0,"Phoenix");//603
  436. AddMenuItem(fastcar,0,"Super GT");//506
  437. AddMenuItem(fastcar,0,"Turismo");//451
  438. AddMenuItem(fastcar,0,"ZR-350");//477
  439. AddMenuItem(fastcar,0,"Bullet");//541
  440. AddMenuItem(fastcar,0,"Return");
  441.  
  442. Othercars = CreateMenu("~b~Other Vehicles",2, 55.0, 200.0, 100.0, 80.0);
  443. SetMenuColumnHeader(Othercars, 0, "Choose a car?");
  444. AddMenuItem(Othercars,0,"Monster Truck");//556
  445. AddMenuItem(Othercars,0,"Trashmaster");//408
  446. AddMenuItem(Othercars,0,"Bus");//431
  447. AddMenuItem(Othercars,0,"Coach");//437
  448. AddMenuItem(Othercars,0,"Enforcer");//427
  449. AddMenuItem(Othercars,0,"Rhino (Tank)");//432
  450. AddMenuItem(Othercars,0,"S.W.A.T.Truck");//601
  451. AddMenuItem(Othercars,0,"Cement Truck");//524
  452. AddMenuItem(Othercars,0,"Flatbed");//455
  453. AddMenuItem(Othercars,0,"BF Injection");//424
  454. AddMenuItem(Othercars,0,"Dune");//573
  455. AddMenuItem(Othercars,0,"Return");
  456.  
  457. bikes = CreateMenu("~b~Bikes",2, 55.0, 200.0, 100.0, 80.0);
  458. SetMenuColumnHeader(bikes, 0, "Choose a bike");
  459. AddMenuItem(bikes,0,"BF-400");
  460. AddMenuItem(bikes,0,"BMX");
  461. AddMenuItem(bikes,0,"Faggio");
  462. AddMenuItem(bikes,0,"FCR-900");
  463. AddMenuItem(bikes,0,"Freeway");
  464. AddMenuItem(bikes,0,"NRG-500");
  465. AddMenuItem(bikes,0,"PCJ-600");
  466. AddMenuItem(bikes,0,"Pizzaboy");
  467. AddMenuItem(bikes,0,"Quad");
  468. AddMenuItem(bikes,0,"Sanchez");
  469. AddMenuItem(bikes,0,"Wayfarer");
  470. AddMenuItem(bikes,0,"Return");
  471.  
  472. boats = CreateMenu("~b~Boats",2, 55.0, 200.0, 100.0, 80.0);
  473. SetMenuColumnHeader(boats, 0, "Choose a boat");
  474. AddMenuItem(boats,0,"Coastguard");//472
  475. AddMenuItem(boats,0,"Dingy");//473
  476. AddMenuItem(boats,0,"Jetmax");//493
  477. AddMenuItem(boats,0,"Launch");//595
  478. AddMenuItem(boats,0,"Marquis");//484
  479. AddMenuItem(boats,0,"Predator");//430
  480. AddMenuItem(boats,0,"Reefer");//453
  481. AddMenuItem(boats,0,"Speeder");//452
  482. AddMenuItem(boats,0,"Squallo");//446
  483. AddMenuItem(boats,0,"Tropic");//454
  484. AddMenuItem(boats,0,"Return");
  485.  
  486. planes = CreateMenu("~b~Planes",2, 55.0, 200.0, 100.0, 80.0);
  487. SetMenuColumnHeader(planes, 0, "Choose a plane");
  488. AddMenuItem(planes,0,"Andromada");//592
  489. AddMenuItem(planes,0,"AT400");//577
  490. AddMenuItem(planes,0,"Beagle");//511
  491. AddMenuItem(planes,0,"Cropduster");//512
  492. AddMenuItem(planes,0,"Dodo");//593
  493. AddMenuItem(planes,0,"Hydra");//520
  494. AddMenuItem(planes,0,"Nevada");//553
  495. AddMenuItem(planes,0,"Rustler");//476
  496. AddMenuItem(planes,0,"Shamal");//519
  497. AddMenuItem(planes,0,"Skimmer");//460
  498. AddMenuItem(planes,0,"Stuntplane");//513
  499. AddMenuItem(planes,0,"Return");
  500.  
  501. helicopters = CreateMenu("~b~Helicopters",2, 55.0, 200.0, 100.0, 80.0);
  502. SetMenuColumnHeader(helicopters, 0, "Choose a helicopter");
  503. AddMenuItem(helicopters,0,"Cargobob");//
  504. AddMenuItem(helicopters,0,"Hunter");//
  505. AddMenuItem(helicopters,0,"Leviathan");//
  506. AddMenuItem(helicopters,0,"Maverick");//
  507. AddMenuItem(helicopters,0,"News Chopper");//
  508. AddMenuItem(helicopters,0,"Police Maverick");//
  509. AddMenuItem(helicopters,0,"Raindance");//
  510. AddMenuItem(helicopters,0,"Seasparrow");//
  511. AddMenuItem(helicopters,0,"Sparrow");//
  512. AddMenuItem(helicopters,0,"Return");
  513.  
  514. XWeapons = CreateMenu("~b~Weapons ~g~Main Menu",2, 55.0, 200.0, 100.0, 80.0);
  515. SetMenuColumnHeader(XWeapons, 0, "Choose a weapon");
  516. AddMenuItem(XWeapons,0,"Desert Eagle");//0
  517. AddMenuItem(XWeapons,0,"M4");
  518. AddMenuItem(XWeapons,0,"Sawnoff Shotgun");
  519. AddMenuItem(XWeapons,0,"Combat Shotgun");
  520. AddMenuItem(XWeapons,0,"UZI");
  521. AddMenuItem(XWeapons,0,"Rocket Launcher");
  522. AddMenuItem(XWeapons,0,"Minigun");//6
  523. AddMenuItem(XWeapons,0,"Sniper Rifle");
  524. AddMenuItem(XWeapons,0,"Big Weapons");
  525. AddMenuItem(XWeapons,0,"Small Weapons");//9
  526. AddMenuItem(XWeapons,0,"More");
  527. AddMenuItem(XWeapons,0,"Return");//11
  528.  
  529. XWeaponsBig = CreateMenu("~b~Weapons ~g~Big Weapons",2, 55.0, 200.0, 100.0, 80.0);
  530. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  531. AddMenuItem(XWeaponsBig,0,"Shotgun");
  532. AddMenuItem(XWeaponsBig,0,"AK-47");
  533. AddMenuItem(XWeaponsBig,0,"Country Rifle");
  534. AddMenuItem(XWeaponsBig,0,"HS Rocket Launcher");
  535. AddMenuItem(XWeaponsBig,0,"Flamethrower");
  536. AddMenuItem(XWeaponsBig,0,"SMG");
  537. AddMenuItem(XWeaponsBig,0,"TEC9");
  538. AddMenuItem(XWeaponsBig,0,"Return");
  539.  
  540. XWeaponsSmall = CreateMenu("~b~Weapons ~g~Small Weapons",2, 55.0, 200.0, 100.0, 80.0);
  541. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  542. AddMenuItem(XWeaponsSmall,0,"9mm");
  543. AddMenuItem(XWeaponsSmall,0,"Silenced 9mm");
  544. AddMenuItem(XWeaponsSmall,0,"Molotov Cocktail");
  545. AddMenuItem(XWeaponsSmall,0,"Fire Extinguisher");
  546. AddMenuItem(XWeaponsSmall,0,"Spraycan");
  547. AddMenuItem(XWeaponsSmall,0,"Frag Grenades");
  548. AddMenuItem(XWeaponsSmall,0,"Katana");
  549. AddMenuItem(XWeaponsSmall,0,"Chainsaw");
  550. AddMenuItem(XWeaponsSmall,0,"Return");
  551.  
  552. XWeaponsMore = CreateMenu("~b~Weapons ~g~More Weapons",2, 55.0, 200.0, 100.0, 80.0);
  553. SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  554. AddMenuItem(XWeaponsMore,0,"Jetpack");
  555. AddMenuItem(XWeaponsMore,0,"Knife");
  556. AddMenuItem(XWeaponsMore,0,"Flowers");
  557. AddMenuItem(XWeaponsMore,0,"Camera");
  558. AddMenuItem(XWeaponsMore,0,"Pool Cue");
  559. AddMenuItem(XWeaponsMore,0,"Baseball Bat");
  560. AddMenuItem(XWeaponsMore,0,"Golf Club");
  561. AddMenuItem(XWeaponsMore,0,"MAX AMMO");
  562. AddMenuItem(XWeaponsMore,0,"Return");
  563.  
  564. LTele = CreateMenu("Teleports", 2, 55.0, 200.0, 100.0, 80.0);
  565. SetMenuColumnHeader(LTele, 0, "Teleport to where?");
  566. AddMenuItem(LTele, 0, "Las Venturas");//0
  567. AddMenuItem(LTele, 0, "Los Santos");//1
  568. AddMenuItem(LTele, 0, "San Fierro");//2
  569. AddMenuItem(LTele, 0, "The Desert");//3
  570. AddMenuItem(LTele, 0, "Flint Country");//4
  571. AddMenuItem(LTele, 0, "Mount Chiliad");//5
  572. AddMenuItem(LTele, 0, "Interiors");//6
  573. AddMenuItem(LTele, 0, "Return");//8
  574.  
  575. LasVenturasMenu = CreateMenu("Las Venturas", 2, 55.0, 200.0, 100.0, 80.0);
  576. SetMenuColumnHeader(LasVenturasMenu, 0, "Teleport to where?");
  577. AddMenuItem(LasVenturasMenu, 0, "The Strip");//0
  578. AddMenuItem(LasVenturasMenu, 0, "Come-A-Lot");//1
  579. AddMenuItem(LasVenturasMenu, 0, "LV Airport");//2
  580. AddMenuItem(LasVenturasMenu, 0, "KACC Military Fuels");//3
  581. AddMenuItem(LasVenturasMenu, 0, "Yellow Bell Golf Club");//4
  582. AddMenuItem(LasVenturasMenu, 0, "Baseball Pitch");//5
  583. AddMenuItem(LasVenturasMenu, 0, "Return");//6
  584.  
  585. LosSantosMenu = CreateMenu("Los Santos", 2, 55.0, 200.0, 100.0, 80.0);
  586. SetMenuColumnHeader(LosSantosMenu, 0, "Teleport to where?");
  587. AddMenuItem(LosSantosMenu, 0, "Ganton");//0
  588. AddMenuItem(LosSantosMenu, 0, "LS Airport");//1
  589. AddMenuItem(LosSantosMenu, 0, "Ocean Docks");//2
  590. AddMenuItem(LosSantosMenu, 0, "Pershing Square");//3
  591. AddMenuItem(LosSantosMenu, 0, "Verdant Bluffs");//4
  592. AddMenuItem(LosSantosMenu, 0, "Santa Maria Beach");//5
  593. AddMenuItem(LosSantosMenu, 0, "Mulholland");//6
  594. AddMenuItem(LosSantosMenu, 0, "Richman");//7
  595. AddMenuItem(LosSantosMenu, 0, "Return");//8
  596.  
  597. SanFierroMenu = CreateMenu("San Fierro", 2, 55.0, 200.0, 100.0, 80.0);
  598. SetMenuColumnHeader(SanFierroMenu, 0, "Teleport to where?");
  599. AddMenuItem(SanFierroMenu, 0, "SF Station");//0
  600. AddMenuItem(SanFierroMenu, 0, "SF Airport");//1
  601. AddMenuItem(SanFierroMenu, 0, "Ocean Flats");//2
  602. AddMenuItem(SanFierroMenu, 0, "Avispa Country Club");//3
  603. AddMenuItem(SanFierroMenu, 0, "Easter Basin (docks)");//4
  604. AddMenuItem(SanFierroMenu, 0, "Esplanade North");//5
  605. AddMenuItem(SanFierroMenu, 0, "Battery Point");//6
  606. AddMenuItem(SanFierroMenu, 0, "Return");//7
  607.  
  608. DesertMenu = CreateMenu("The Desert", 2, 55.0, 200.0, 100.0, 80.0);
  609. SetMenuColumnHeader(DesertMenu, 0, "Teleport to where?");
  610. AddMenuItem(DesertMenu, 0, "Aircraft Graveyard");//0
  611. AddMenuItem(DesertMenu, 0, "Area 51");//1
  612. AddMenuItem(DesertMenu, 0, "The Big Ear");//2
  613. AddMenuItem(DesertMenu, 0, "The Sherman Dam");//3
  614. AddMenuItem(DesertMenu, 0, "Las Barrancas");//4
  615. AddMenuItem(DesertMenu, 0, "El Quebrados");//5
  616. AddMenuItem(DesertMenu, 0, "Octane Springs");//6
  617. AddMenuItem(DesertMenu, 0, "Return");//7
  618.  
  619. FlintMenu = CreateMenu("Flint Country", 2, 55.0, 200.0, 100.0, 80.0);
  620. SetMenuColumnHeader(FlintMenu, 0, "Teleport to where?");
  621. AddMenuItem(FlintMenu, 0, "The Lake");//0
  622. AddMenuItem(FlintMenu, 0, "Leafy Hollow");//1
  623. AddMenuItem(FlintMenu, 0, "The Farm");//2
  624. AddMenuItem(FlintMenu, 0, "Shady Cabin");//3
  625. AddMenuItem(FlintMenu, 0, "Flint Range");//4
  626. AddMenuItem(FlintMenu, 0, "Becon Hill");//5
  627. AddMenuItem(FlintMenu, 0, "Fallen Tree");//6
  628. AddMenuItem(FlintMenu, 0, "Return");//7
  629.  
  630. MountChiliadMenu = CreateMenu("Mount Chiliad", 2, 55.0, 200.0, 100.0, 80.0);
  631. SetMenuColumnHeader(MountChiliadMenu, 0, "Teleport to where?");
  632. AddMenuItem(MountChiliadMenu, 0, "Chiliad Jump");//0
  633. AddMenuItem(MountChiliadMenu, 0, "Bottom Of Chiliad");//1
  634. AddMenuItem(MountChiliadMenu, 0, "Highest Point");//2
  635. AddMenuItem(MountChiliadMenu, 0, "Chiliad Path");//3
  636. AddMenuItem(MountChiliadMenu, 0, "Return");//7
  637.  
  638. InteriorsMenu = CreateMenu("Interiors", 2, 55.0, 200.0, 130.0, 80.0);
  639. SetMenuColumnHeader(InteriorsMenu, 0, "Teleport to where?");
  640. AddMenuItem(InteriorsMenu, 0, "Planning Department");//0
  641. AddMenuItem(InteriorsMenu, 0, "LV PD");//1
  642. AddMenuItem(InteriorsMenu, 0, "Pizza Stack");//2
  643. AddMenuItem(InteriorsMenu, 0, "RC Battlefield");//3
  644. AddMenuItem(InteriorsMenu, 0, "Caligula's Casino");//4
  645. AddMenuItem(InteriorsMenu, 0, "Big Smoke's Crack Palace");//5
  646. AddMenuItem(InteriorsMenu, 0, "Madd Dogg's Mansion");//6
  647. AddMenuItem(InteriorsMenu, 0, "Dirtbike Stadium");//7
  648. AddMenuItem(InteriorsMenu, 0, "Vice Stadium (duel)");//8
  649. AddMenuItem(InteriorsMenu, 0, "Ammu-nation");//9
  650. AddMenuItem(InteriorsMenu, 0, "Atrium");//7
  651. AddMenuItem(InteriorsMenu, 0, "Return");//8
  652. #endif
  653.  
  654. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);
  655. for(new i = 1; i < MAX_CHAT_LINES; i++) Chat[i] = "<none>";
  656. for(new i = 1; i < MAX_REPORTS; i++) Reports[i] = "<none>";
  657.  
  658. PingTimer = SetTimer("PingKick",5000,1);
  659. GodTimer = SetTimer("GodUpdate",2000,1);
  660.  
  661. new year,month,day; getdate(year, month, day);
  662. new hour,minute,second; gettime(hour,minute,second);
  663.  
  664. return 1;
  665. }
  666. //==============================================================================
  667. public OnFilterScriptExit()
  668. {
  669. KillTimer(PingTimer);
  670. KillTimer(GodTimer);
  671. #if defined USE_MENUS
  672. DestroyAllMenus();
  673. #endif
  674.  
  675. }
  676.  
  677. //==============================================================================
  678. public OnPlayerConnect(playerid)
  679. {
  680. PlayerInfo[playerid][Deaths] = 0;
  681. PlayerInfo[playerid][Kills] = 0;
  682. PlayerInfo[playerid][Jailed] = 0;
  683. PlayerInfo[playerid][Frozen] = 0;
  684. PlayerInfo[playerid][Level] = 0;
  685. PlayerInfo[playerid][LoggedIn] = 0;
  686. PlayerInfo[playerid][Registered] = 0;
  687. PlayerInfo[playerid][God] = 0;
  688. PlayerInfo[playerid][GodCar] = 0;
  689. PlayerInfo[playerid][TimesSpawned] = 0;
  690. PlayerInfo[playerid][Muted] = 0;
  691. PlayerInfo[playerid][MuteWarnings] = 0;
  692. PlayerInfo[playerid][Warnings] = 0;
  693. PlayerInfo[playerid][Caps] = 0;
  694. PlayerInfo[playerid][DoorsLocked] = 0;
  695. PlayerInfo[playerid][pCar] = -1;
  696. for(new i; i<PING_MAX_EXCEEDS; i++) PlayerInfo[playerid][pPing][i] = 0;
  697. PlayerInfo[playerid][SpamCount] = 0;
  698. PlayerInfo[playerid][SpamTime] = 0;
  699. PlayerInfo[playerid][PingCount] = 0;
  700. PlayerInfo[playerid][PingTime] = 0;
  701. PlayerInfo[playerid][FailLogin] = 0;
  702. PlayerInfo[playerid][ConnectTime] = gettime();
  703. //------------------------------------------------------
  704. new PlayerName[MAX_PLAYER_NAME], string[128], str[128], file[256];
  705. GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
  706. new tmp3[50]; GetPlayerIp(playerid,tmp3,50);
  707. //-----------------------------------------------------
  708. if(ServerInfo[ConnectMessages] == 1)
  709. {
  710. new pAKA[256]; pAKA = dini_Get("ladmin/config/aka.txt",tmp3);
  711. if (strlen(pAKA) < 3) format(str,sizeof(str),"*** %s (%d) ha entrado al servidor", PlayerName, playerid);
  712. else if (!strcmp(pAKA,PlayerName,true)) format(str,sizeof(str),"*** %s (%d) ha entrado al servidor", PlayerName, playerid);
  713. else format(str,sizeof(str),"*** %s (%d) ha entrado al servidor (aka %s)", PlayerName, playerid, pAKA );
  714.  
  715. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && playerid != i)
  716. {
  717. if(PlayerInfo[i][Level] > 2) SendClientMessage(i,grey,str);
  718. else {
  719. format(string,sizeof(string),"*** %s (%d) ha entrado al servidor", PlayerName, playerid);
  720. SendClientMessage(i,grey,string);
  721. SendClientMessage(playerid, yellow, "Este servidor esta usando LAdmin4v2 traducido por MrMegaTx.");
  722. SendClientMessage(playerid, yellow, "Para descargarlo, ingresa a www.pawnoscripting.com");
  723. }
  724. }
  725. }
  726. //-----------------------------------------------------
  727. if (dUserINT(PlayerName2(playerid)).("banned") == 1)
  728. {
  729. SendClientMessage(playerid, red, "Este nombre esta baneado de este servidor!");
  730. format(string,sizeof(string),"%s ID:%d ha sido auto kickeado. Razon: Nombre baneado del servidor",PlayerName,playerid);
  731. SendClientMessageToAll(grey, string); print(string);
  732. SaveToFile("KickLog",string); Kick(playerid);
  733. }
  734. //-----------------------------------------------------
  735. if(ServerInfo[NameKick] == 1) {
  736. for(new s = 0; s < BadNameCount; s++) {
  737. if(!strcmp(BadNames[s],PlayerName,true)) {
  738. SendClientMessage(playerid,red, "Tu nombre esta en nuestra lista negra, has sido kickeado.");
  739. format(string,sizeof(string),"%s ID:%d ha sido auto kickeado. (Razon: Nombre prohibido)",PlayerName,playerid);
  740. SendClientMessageToAll(grey, string); print(string);
  741. SaveToFile("KickLog",string); Kick(playerid);
  742. return 1;
  743. }
  744. }
  745. }
  746. //-----------------------------------------------------
  747. if(ServerInfo[PartNameKick] == 1) {
  748. for(new s = 0; s < BadPartNameCount; s++) {
  749. new pos;
  750. while((pos = strfind(PlayerName,BadPartNames[s],true)) != -1) for(new i = pos, j = pos + strlen(BadPartNames[s]); i < j; i++)
  751. {
  752. SendClientMessage(playerid,red, "Su nombre no esta permitido en este servidor, has sido kickeado.");
  753. format(string,sizeof(string),"%s ID:%d ha sido auto kickeado. (Razon: Nombre prohibido)",PlayerName,playerid);
  754. SendClientMessageToAll(grey, string); print(string);
  755. SaveToFile("KickLog",string); Kick(playerid);
  756. return 1;
  757. }
  758. }
  759. }
  760. //-----------------------------------------------------
  761. if(ServerInfo[Locked] == 1) {
  762. PlayerInfo[playerid][AllowedIn] = false;
  763. SendClientMessage(playerid,red,"El Servidor esta Bloqueado! Tienes 20 segundos para ingresar la contraseña del servidor antes de ser kickeado!");
  764. SendClientMessage(playerid,red,"Tipea /password [contraseña]");
  765. LockKickTimer[playerid] = SetTimerEx("AutoKick", 20000, 0, "i", playerid);
  766. }
  767. //-----------------------------------------------------
  768. if(strlen(dini_Get("ladmin/config/aka.txt", tmp3)) == 0) dini_Set("ladmin/config/aka.txt", tmp3, PlayerName);
  769. else
  770. {
  771. if( strfind( dini_Get("ladmin/config/aka.txt", tmp3), PlayerName, true) == -1 )
  772. {
  773. format(string,sizeof(string),"%s,%s", dini_Get("ladmin/config/aka.txt",tmp3), PlayerName);
  774. dini_Set("ladmin/config/aka.txt", tmp3, string);
  775. }
  776. }
  777. //-----------------------------------------------------
  778. if(!udb_Exists(PlayerName2(playerid))) SendClientMessage(playerid,orange, "CUENTA: Tipea /register [contraseña] para crear una cuenta");
  779. else
  780. {
  781. PlayerInfo[playerid][Registered] = 1;
  782. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName));
  783. new tmp2[256]; tmp2 = dini_Get(file,"ip");
  784. if( (!strcmp(tmp3,tmp2,true)) && (ServerInfo[AutoLogin] == 1) )
  785. {
  786. LoginPlayer(playerid);
  787. if(PlayerInfo[playerid][Level] > 0)
  788. {
  789. format(string,sizeof(string),"CUENTA: Has sido automaticamente logueado. (Nivel %d)", PlayerInfo[playerid][Level] );
  790. SendClientMessage(playerid,green,string);
  791. }
  792. else SendClientMessage(playerid,green,"CUENTA: Has sido automaticamente logueado.");
  793. }
  794. else SendClientMessage(playerid, green, "CUENTA: Este nombre esta registrado, puedes loguearte tipeando /login [contraseña]");
  795. }
  796. return 1;
  797. }
  798.  
  799. //==============================================================================
  800.  
  801. forward AutoKick(playerid);
  802. public AutoKick(playerid)
  803. {
  804. if( IsPlayerConnected(playerid) && ServerInfo[Locked] == 1 && PlayerInfo[playerid][AllowedIn] == false) {
  805. new string[128];
  806. SendClientMessage(playerid,grey,"Has sido automaticamente kickeado. Razon: Servidor Bloqueado");
  807. format(string,sizeof(string),"%s ID:%d ha sido automaticamente kickeado. Razon: Servidor Bloqueado",PlayerName2(playerid),playerid);
  808. SaveToFile("KickLog",string); Kick(playerid);
  809. SendClientMessageToAll(grey, string); print(string);
  810. }
  811. return 1;
  812. }
  813.  
  814. //==============================================================================
  815.  
  816. public OnPlayerDisconnect(playerid, reason)
  817. {
  818. new PlayerName[MAX_PLAYER_NAME], str[128];
  819. GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  820.  
  821. if(ServerInfo[ConnectMessages] == 1)
  822. {
  823. switch (reason) {
  824. case 0: format(str, sizeof(str), "*** %s (%d) ha dejado el servidor (Timeout)", PlayerName, playerid);
  825. case 1: format(str, sizeof(str), "*** %s (%d) ha dejado el servidor (Leaving)", PlayerName, playerid);
  826. case 2: format(str, sizeof(str), "*** %s (%d) ha dejado el servidor (Kicked/Banned)", PlayerName, playerid);
  827. }
  828. SendClientMessageToAll(grey, str);
  829. }
  830.  
  831. if(PlayerInfo[playerid][LoggedIn] == 1) SavePlayer(playerid);
  832. if(udb_Exists(PlayerName2(playerid))) dUserSetINT(PlayerName2(playerid)).("loggedin",0);
  833. PlayerInfo[playerid][LoggedIn] = 0;
  834. PlayerInfo[playerid][Level] = 0;
  835. PlayerInfo[playerid][Jailed] = 0;
  836. PlayerInfo[playerid][Frozen] = 0;
  837.  
  838. if(PlayerInfo[playerid][Jailed] == 1) KillTimer( JailTimer[playerid] );
  839. if(PlayerInfo[playerid][Frozen] == 1) KillTimer( FreezeTimer[playerid] );
  840. if(ServerInfo[Locked] == 1) KillTimer( LockKickTimer[playerid] );
  841.  
  842. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  843.  
  844. #if defined ENABLE_SPEC
  845. for(new x=0; x<MAX_PLAYERS; x++)
  846. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
  847. AdvanceSpectate(x);
  848. #endif
  849.  
  850. return 1;
  851. }
  852.  
  853. forward DelayKillPlayer(playerid);
  854. public DelayKillPlayer(playerid)
  855. {
  856. SetPlayerHealth(playerid,0.0);
  857. ForceClassSelection(playerid);
  858. }
  859.  
  860. //==============================================================================
  861. public OnPlayerSpawn(playerid)
  862. {
  863. if(ServerInfo[Locked] == 1 && PlayerInfo[playerid][AllowedIn] == false)
  864. {
  865. GameTextForPlayer(playerid,"~r~Servidor Bloqueado~n~Debes ingresar la contraseña antes de jugar~n~/password <contraseña>",4000,3);
  866. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  867. return 1;
  868. }
  869.  
  870.  
  871. PlayerInfo[playerid][Spawned] = 1;
  872.  
  873. if(PlayerInfo[playerid][Frozen] == 1) {
  874. TogglePlayerControllable(playerid,false); return SendClientMessage(playerid,red,"No puede escapar de su castigo. Usted sigue congelado.");
  875. }
  876.  
  877. if(PlayerInfo[playerid][Jailed] == 1) {
  878. SetTimerEx("JailPlayer",3000,0,"d",playerid); return SendClientMessage(playerid,red,"No puede escapar de su castigo. Usted sigue encarcelado");
  879. }
  880.  
  881. if(ServerInfo[AdminOnlySkins] == 1) {
  882. if( (GetPlayerSkin(playerid) == ServerInfo[AdminSkin]) || (GetPlayerSkin(playerid) == ServerInfo[AdminSkin2]) ) {
  883. if(PlayerInfo[playerid][Level] >= 1)
  884. GameTextForPlayer(playerid,"~b~Bienvenido~n~~w~Administrador",3000,1);
  885. else {
  886. GameTextForPlayer(playerid,"~r~Este skin es para~n~Administradores~n~unicamente",4000,1);
  887. SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  888. return 1;
  889. }
  890. }
  891. }
  892.  
  893. if((dUserINT(PlayerName2(playerid)).("UseSkin")) == 1)
  894. if((PlayerInfo[playerid][Level] >= 1) && (PlayerInfo[playerid][LoggedIn] == 1))
  895. SetPlayerSkin(playerid,(dUserINT(PlayerName2(playerid)).("FavSkin")) );
  896.  
  897. if(ServerInfo[GiveWeap] == 1) {
  898. if(PlayerInfo[playerid][LoggedIn] == 1) {
  899. PlayerInfo[playerid][TimesSpawned]++;
  900. if(PlayerInfo[playerid][TimesSpawned] == 1)
  901. {
  902. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap1"), dUserINT(PlayerName2(playerid)).("weap1ammo") );
  903. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap2"), dUserINT(PlayerName2(playerid)).("weap2ammo") );
  904. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap3"), dUserINT(PlayerName2(playerid)).("weap3ammo") );
  905. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap4"), dUserINT(PlayerName2(playerid)).("weap4ammo") );
  906. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap5"), dUserINT(PlayerName2(playerid)).("weap5ammo") );
  907. GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap6"), dUserINT(PlayerName2(playerid)).("weap6ammo") );
  908. }
  909. }
  910. }
  911. return 1;
  912. }
  913.  
  914. //==============================================================================
  915.  
  916. public OnPlayerDeath(playerid, killerid, reason)
  917. {
  918. #if defined USE_STATS
  919. PlayerInfo[playerid][Deaths]++;
  920. #endif
  921. InDuel[playerid] = 0;
  922.  
  923. if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
  924. {
  925. #if defined USE_STATS
  926. PlayerInfo[killerid][Kills]++;
  927. #endif
  928.  
  929. if(InDuel[playerid] == 1 && InDuel[killerid] == 1)
  930. {
  931. GameTextForPlayer(playerid,"Perdedor !",3000,3);
  932. GameTextForPlayer(killerid,"Ganador !",3000,3);
  933. InDuel[killerid] = 0;
  934. SetPlayerPos(killerid, 0.0, 0.0, 0.0);
  935. SpawnPlayer(killerid);
  936. }
  937. else if(InDuel[playerid] == 1 && InDuel[killerid] == 0)
  938. {
  939. GameTextForPlayer(playerid,"Perdedor !",3000,3);
  940. }
  941. }
  942.  
  943. #if defined ENABLE_SPEC
  944. for(new x=0; x<MAX_PLAYERS; x++)
  945. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
  946. AdvanceSpectate(x);
  947. #endif
  948.  
  949.  
  950. return 1;
  951. }
  952.  
  953. //==============================================================================
  954.  
  955. public OnPlayerText(playerid, text[])
  956. {
  957. if(text[0] == '#' && PlayerInfo[playerid][Level] >= 1) {
  958. new string[128]; GetPlayerName(playerid,string,sizeof(string));
  959. format(string,sizeof(string),"[Chat Admin]: %s: %s",string,text[1]); MessageToAdmins(green,string);
  960. return 0;
  961. }
  962.  
  963. if(ServerInfo[DisableChat] == 1) {
  964. SendClientMessage(playerid,red,"El Chat ha sido desactivado");
  965. return 0;
  966. }
  967.  
  968. if(PlayerInfo[playerid][Muted] == 1)
  969. {
  970. PlayerInfo[playerid][MuteWarnings]++;
  971. new string[128];
  972. if(PlayerInfo[playerid][MuteWarnings] < ServerInfo[MaxMuteWarnings]) {
  973. format(string, sizeof(string),"CUIDADO: Estas muteado, si continuas hablando seras kickeado. (%d / %d)", PlayerInfo[playerid][MuteWarnings], ServerInfo[MaxMuteWarnings] );
  974. SendClientMessage(playerid,red,string);
  975. } else {
  976. SendClientMessage(playerid,red,"Has sido advertido ! Ahora has sido kickeado");
  977. format(string, sizeof(string),"***%s (ID %d) ha sido kickeado por exceder las muteadas", PlayerName2(playerid), playerid);
  978. SendClientMessageToAll(grey,string);
  979. SaveToFile("KickLog",string); Kick(playerid);
  980. } return 0;
  981. }
  982.  
  983. if(ServerInfo[AntiSwear] == 1 && PlayerInfo[playerid][Level] < ServerInfo[MaxAdminLevel])
  984. for(new s = 0; s < ForbiddenWordCount; s++)
  985. {
  986. new pos;
  987. while((pos = strfind(text,ForbiddenWords[s],true)) != -1) for(new i = pos, j = pos + strlen(ForbiddenWords[s]); i < j; i++) text[i] = '*';
  988. }
  989.  
  990. if(PlayerInfo[playerid][Caps] == 1) UpperToLower(text);
  991. if(ServerInfo[NoCaps] == 1) UpperToLower(text);
  992.  
  993. for(new i = 1; i < MAX_CHAT_LINES-1; i++) Chat[i] = Chat[i+1];
  994. new ChatSTR[128]; GetPlayerName(playerid,ChatSTR,sizeof(ChatSTR)); format(ChatSTR,128,"[lchat]%s: %s",ChatSTR, text[0] );
  995. Chat[MAX_CHAT_LINES-1] = ChatSTR;
  996. return 1;
  997. }
  998.  
  999. //==============================================================================
  1000.  
  1001. forward HighLight(playerid);
  1002. public HighLight(playerid)
  1003. {
  1004. if(!IsPlayerConnected(playerid)) return 1;
  1005. if(PlayerInfo[playerid][blipS] == 0) { SetPlayerColor(playerid, 0xFF0000AA); PlayerInfo[playerid][blipS] = 1; }
  1006. else { SetPlayerColor(playerid, 0x33FF33AA); PlayerInfo[playerid][blipS] = 0; }
  1007. return 0;
  1008. }
  1009.  
  1010. //===================== [ DCMD Commands ]=======================================
  1011.  
  1012. dcmd_giveweapon(playerid,params[]) {
  1013. if(PlayerInfo[playerid][Level] >= 2) {
  1014. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  1015. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USE: /giveweapon [jugador] [ID del arma/nombre del arma] [municiones]");
  1016. new player1 = strval(tmp), weap, ammo, WeapName[32], string[128];
  1017. if(!strlen(tmp3) || !IsNumeric(tmp3) || strval(tmp3) <= 0 || strval(tmp3) > 99999) ammo = 500; else ammo = strval(tmp3);
  1018. if(!IsNumeric(tmp2)) weap = GetWeaponIDFromName(tmp2); else weap = strval(tmp2);
  1019. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1020. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: ID de arma invalida");
  1021. GetWeaponName(weap,WeapName,32);
  1022. format(string, sizeof(string), "Le has dado a \"%s\" una %s (%d) con %d municiones", PlayerName2(player1), WeapName, weap, ammo); SendClientMessage(playerid,blue,string);
  1023. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" te ha dado una %s (%d) con %d municiones", PlayerName2(playerid), WeapName, weap, ammo); SendClientMessage(player1,blue,string); }
  1024. return GivePlayerWeapon(player1, weap, ammo);
  1025. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1026. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1027. }
  1028.  
  1029. dcmd_sethealth(playerid,params[]) {
  1030. if(PlayerInfo[playerid][Level] >= 3) {
  1031. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1032. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /sethealth [jugador] [cantidad]");
  1033. if(strval(tmp2) < 0 || strval(tmp2) > 100 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid, red, "ERROR: Cantidad de vida invalida");
  1034. new player1 = strval(tmp), health = strval(tmp2), string[128];
  1035. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1036. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1037. format(string, sizeof(string), "Has puesto la vida de \"%s's\" en '%d", pName(player1), health); SendClientMessage(playerid,blue,string);
  1038. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha puesto tu vida en '%d'", pName(playerid), health); SendClientMessage(player1,blue,string); }
  1039. return SetPlayerHealth(player1, health);
  1040. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1041. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1042. }
  1043.  
  1044. dcmd_setarmour(playerid,params[]) {
  1045. if(PlayerInfo[playerid][Level] >= 3) {
  1046. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1047. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /setarmour [jugador] [cantidad]");
  1048. if(strval(tmp2) < 0 || strval(tmp2) > 100 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid, red, "ERROR: Candidad de blindaje invalido");
  1049. new player1 = strval(tmp), armour = strval(tmp2), string[128];
  1050. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1051. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1052. format(string, sizeof(string), "Has puesto el blindaje de \"%s\" en '%d", pName(player1), armour); SendClientMessage(playerid,blue,string);
  1053. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha puesto tu blindaje en '%d'", pName(playerid), armour); SendClientMessage(player1,blue,string); }
  1054. return SetPlayerArmour(player1, armour);
  1055. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1056. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1057. }
  1058.  
  1059. dcmd_setcash(playerid,params[]) {
  1060. if(PlayerInfo[playerid][Level] >= 3) {
  1061. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1062. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /setcash [jugador] [cantidad]");
  1063. new player1 = strval(tmp), cash = strval(tmp2), string[128];
  1064. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1065. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1066. format(string, sizeof(string), "Has puesto el dinero de \"%s\" en '$%d", pName(player1), cash); SendClientMessage(playerid,blue,string);
  1067. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha puesto tu dinero en '$%d'", pName(playerid), cash); SendClientMessage(player1,blue,string); }
  1068. ResetPlayerMoney(player1);
  1069. return GivePlayerMoney(player1, cash);
  1070. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1071. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1072. }
  1073.  
  1074. dcmd_setscore(playerid,params[]) {
  1075. if(PlayerInfo[playerid][Level] >= 3) {
  1076. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1077. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /setscore [jugador] [puntaje]");
  1078. new player1 = strval(tmp), score = strval(tmp2), string[128];
  1079. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1080. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1081. format(string, sizeof(string), "Has puesto el puntaje de \"%s\" en '%d' ", pName(player1), score); SendClientMessage(playerid,blue,string);
  1082. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha puesto tu puntaje en '%d'", pName(playerid), score); SendClientMessage(player1,blue,string); }
  1083. return SetPlayerScore(player1, score);
  1084. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1085. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1086. }
  1087.  
  1088. dcmd_setskin(playerid,params[]) {
  1089. if(PlayerInfo[playerid][Level] >= 3) {
  1090. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1091. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /setskin [jugador] [ID del skin]");
  1092. new player1 = strval(tmp), skin = strval(tmp2), string[128];
  1093. if(!IsValidSkin(skin)) return SendClientMessage(playerid, red, "ERROR: ID de skin invalida");
  1094. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1095. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1096. format(string, sizeof(string), "Le has puesto a \"%s\" el skin '%d", pName(player1), skin); SendClientMessage(playerid,blue,string);
  1097. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" te ha puesto el skin '%d'", pName(playerid), skin); SendClientMessage(player1,blue,string); }
  1098. return SetPlayerSkin(player1, skin);
  1099. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1100. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1101. }
  1102.  
  1103. dcmd_setwanted(playerid,params[]) {
  1104. if(PlayerInfo[playerid][Level] >= 3) {
  1105. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1106. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /setwanted [jugador] [nivel]");
  1107. new player1 = strval(tmp), wanted = strval(tmp2), string[128];
  1108. // if(wanted > 6) return SendClientMessage(playerid, red, "ERROR: Invaild wanted level");
  1109. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1110. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1111. format(string, sizeof(string), "Has puesto el nivel de busqueda de \"%s\" en '%d", pName(player1), wanted); SendClientMessage(playerid,blue,string);
  1112. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha puesto tu nivel de busqueda en '%d'", pName(playerid), wanted); SendClientMessage(player1,blue,string); }
  1113. return SetPlayerWantedLevel(player1, wanted);
  1114. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conetado");
  1115. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1116. }
  1117.  
  1118. dcmd_setname(playerid,params[]) {
  1119. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  1120. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1121. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USE: /setname [jugador] [nuevo nombre]");
  1122. new player1 = strval(tmp), length = strlen(tmp2), string[128];
  1123. if(length < 3 || length > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Numero de caracteres incorrecto");
  1124. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1125. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1126. format(string, sizeof(string), "Has cambiado el nombre de \"%s\" a \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
  1127. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" cambio tu nombre a \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
  1128. SetPlayerName(player1, tmp2);
  1129. return OnPlayerConnect(player1);
  1130. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1131. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 5 para usar este comando");
  1132. }
  1133.  
  1134. dcmd_setcolour(playerid,params[]) {
  1135. if(PlayerInfo[playerid][Level] >= 2) {
  1136. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1137. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) {
  1138. SendClientMessage(playerid, red, "USE: /setcolour [jugador] [color]");
  1139. return SendClientMessage(playerid, red, "Colores: 0=negro 1=blanco 2=rojo 3=naranja 4=amarillo 5=verde 6=azul 7=purpura 8=marron 9=rosa");
  1140. }
  1141. new player1 = strval(tmp), Colour = strval(tmp2), string[128], colour[24];
  1142. if(Colour > 9) return SendClientMessage(playerid, red, "Colores: 0=negro 1=blanco 2=rojo 3=naranja 4=amarillo 5=verde 6=azul 7=purpura 8=marron 9=rosa");
  1143. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1144. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1145. switch (Colour)
  1146. {
  1147. case 0: { SetPlayerColor(player1,black); colour = "Black"; }
  1148. case 1: { SetPlayerColor(player1,COLOR_WHITE); colour = "White"; }
  1149. case 2: { SetPlayerColor(player1,red); colour = "Red"; }
  1150. case 3: { SetPlayerColor(player1,orange); colour = "Orange"; }
  1151. case 4: { SetPlayerColor(player1,orange); colour = "Yellow"; }
  1152. case 5: { SetPlayerColor(player1,COLOR_GREEN1); colour = "Green"; }
  1153. case 6: { SetPlayerColor(player1,COLOR_BLUE); colour = "Blue"; }
  1154. case 7: { SetPlayerColor(player1,COLOR_PURPLE); colour = "Purple"; }
  1155. case 8: { SetPlayerColor(player1,COLOR_BROWN); colour = "Brown"; }
  1156. case 9: { SetPlayerColor(player1,COLOR_PINK); colour = "Pink"; }
  1157. }
  1158. if(player1 != playerid) { format(string,sizeof(string),"El administrador \"%s\" ha puesto tu color en '%s' ", pName(playerid), colour); SendClientMessage(player1,blue,string); }
  1159. format(string, sizeof(string), "Has puesto el color de \"%s\" en '%s' ", pName(player1), colour);
  1160. return SendClientMessage(playerid,blue,string);
  1161. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1162. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1163. }
  1164.  
  1165. dcmd_setweather(playerid,params[]) {
  1166. if(PlayerInfo[playerid][Level] >= 3) {
  1167. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1168. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /setweather [jugador] [ID del clima]");
  1169. new player1 = strval(tmp), weather = strval(tmp2), string[128];
  1170. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1171. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1172. format(string, sizeof(string), "Has puesto el clima de \"%s\" en '%d", pName(player1), weather); SendClientMessage(playerid,blue,string);
  1173. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha puesto tu clima en '%d'", pName(playerid), weather); SendClientMessage(player1,blue,string); }
  1174. SetPlayerWeather(player1,weather); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1175. return PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  1176. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1177. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1178. }
  1179.  
  1180. dcmd_settime(playerid,params[]) {
  1181. if(PlayerInfo[playerid][Level] >= 3) {
  1182. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1183. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /settime [jugador] [hora]");
  1184. new player1 = strval(tmp), time = strval(tmp2), string[128];
  1185. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1186. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1187. format(string, sizeof(string), "Has puesto la hora de \"%s\" en %d:00", pName(player1), time); SendClientMessage(playerid,blue,string);
  1188. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha puesto tu hora en %d:00", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1189. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1190. return SetPlayerTime(player1, time, 0);
  1191. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1192. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1193. }
  1194.  
  1195. dcmd_setworld(playerid,params[]) {
  1196. if(PlayerInfo[playerid][Level] >= 3) {
  1197. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1198. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /setworld [jugador] [mundo virtual]");
  1199. new player1 = strval(tmp), time = strval(tmp2), string[128];
  1200. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1201. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1202. CMDMessageToAdmins(playerid,"SETWORLD");
  1203. format(string, sizeof(string), "Has puesto el mundo virtual de \"%s\" en '%d'", pName(player1), time); SendClientMessage(playerid,blue,string);
  1204. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha puesto tu mundo virtual en '%d' ", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1205. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1206. return SetPlayerVirtualWorld(player1, time);
  1207. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1208. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1209. }
  1210.  
  1211. dcmd_setinterior(playerid,params[]) {
  1212. if(PlayerInfo[playerid][Level] >= 3) {
  1213. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1214. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /setinterior [jugador] [interior]");
  1215. new player1 = strval(tmp), time = strval(tmp2), string[128];
  1216. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1217. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1218. CMDMessageToAdmins(playerid,"SETINTERIOR");
  1219. format(string, sizeof(string), "Has puesto el interior de \"%s\" en '%d' ", pName(player1), time); SendClientMessage(playerid,blue,string);
  1220. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha puesto tu interior en '%d' ", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1221. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1222. return SetPlayerInterior(player1, time);
  1223. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1224. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1225. }
  1226.  
  1227. dcmd_setmytime(playerid,params[]) {
  1228. if(PlayerInfo[playerid][Level] >= 1) {
  1229. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /setmytime [hora]");
  1230. new time = strval(params), string[128];
  1231. CMDMessageToAdmins(playerid,"SETMYTIME");
  1232. format(string,sizeof(string),"Has puesto tu hora en %d:00", time); SendClientMessage(playerid,blue,string);
  1233. return SetPlayerTime(playerid, time, 0);
  1234. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 1 para usar este comando");
  1235. }
  1236.  
  1237. dcmd_force(playerid,params[]) {
  1238. if(PlayerInfo[playerid][Level] >= 3) {
  1239. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /force [jugador]");
  1240. new player1 = strval(params), string[128];
  1241. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1242. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1243. CMDMessageToAdmins(playerid,"FORCE");
  1244. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" te ha forzado a elegir otro skin", pName(playerid) ); SendClientMessage(player1,blue,string); }
  1245. format(string,sizeof(string),"Has forzado a \"%s\" a elegir otro skin", pName(player1)); SendClientMessage(playerid,blue,string);
  1246. ForceClassSelection(player1);
  1247. return SetPlayerHealth(player1,0.0);
  1248. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1249. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1250. }
  1251.  
  1252. dcmd_eject(playerid,params[]) {
  1253. if(PlayerInfo[playerid][Level] >= 3) {
  1254. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /eject [jugador]");
  1255. new player1 = strval(params), string[128], Float:x, Float:y, Float:z;
  1256. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1257. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1258. if(IsPlayerInAnyVehicle(player1)) {
  1259. CMDMessageToAdmins(playerid,"EJECT");
  1260. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" te ha sacado de tu vehiculo", pName(playerid) ); SendClientMessage(player1,blue,string); }
  1261. format(string,sizeof(string),"Has sacado a \"%s\" de su vehiculo", pName(player1)); SendClientMessage(playerid,blue,string);
  1262. GetPlayerPos(player1,x,y,z);
  1263. return SetPlayerPos(player1,x,y,z+3);
  1264. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta en un vehiculo");
  1265. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1266. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1267. }
  1268.  
  1269. dcmd_lockcar(playerid,params[]) {
  1270. #pragma unused params
  1271. if(PlayerInfo[playerid][Level] >= 2) {
  1272. if(IsPlayerInAnyVehicle(playerid)) {
  1273. for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,true);
  1274. CMDMessageToAdmins(playerid,"LOCKCAR");
  1275. PlayerInfo[playerid][DoorsLocked] = 1;
  1276. new string[128]; format(string,sizeof(string),"El Administrador \"%s\" ha bloqueado su vehiculo", pName(playerid));
  1277. return SendClientMessageToAll(blue,string);
  1278. } else return SendClientMessage(playerid,red,"ERROR: Necesitas estar en un vehiculo para bloquear/desbloquear las puertas");
  1279. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1280. }
  1281.  
  1282. dcmd_unlockcar(playerid,params[]) {
  1283. #pragma unused params
  1284. if(PlayerInfo[playerid][Level] >= 2) {
  1285. if(IsPlayerInAnyVehicle(playerid)) {
  1286. for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,false);
  1287. CMDMessageToAdmins(playerid,"UNLOCKCAR");
  1288. PlayerInfo[playerid][DoorsLocked] = 0;
  1289. new string[128]; format(string,sizeof(string),"El Administrador \"%s\" ha desbloqueado su vehiculo", pName(playerid));
  1290. return SendClientMessageToAll(blue,string);
  1291. } else return SendClientMessage(playerid,red,"ERROR: Necesitas estar en un vehiculo para bloquear/desbloquear las puertas");
  1292. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1293. }
  1294.  
  1295. dcmd_burn(playerid,params[]) {
  1296. if(PlayerInfo[playerid][Level] >= 2) {
  1297. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /burn [jugador]");
  1298. new player1 = strval(params), string[128], Float:x, Float:y, Float:z;
  1299. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1300. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1301. CMDMessageToAdmins(playerid,"BURN");
  1302. format(string, sizeof(string), "Has quemado a \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1303. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" te ha quemado", pName(playerid)); SendClientMessage(player1,blue,string); }
  1304. GetPlayerPos(player1, x, y, z);
  1305. return CreateExplosion(x, y , z + 3, 1, 10);
  1306. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1307. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1308. }
  1309.  
  1310. dcmd_spawnplayer(playerid,params[])
  1311. {
  1312. return dcmd_spawn(playerid,params);
  1313. }
  1314.  
  1315. dcmd_spawn(playerid,params[]) {
  1316. if(PlayerInfo[playerid][Level] >= 2) {
  1317. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /spawn [jugador]");
  1318. new player1 = strval(params), string[128];
  1319. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1320. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1321. CMDMessageToAdmins(playerid,"SPAWN");
  1322. format(string, sizeof(string), "Has reiniciado a \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1323. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" te ha reiniciado", pName(playerid)); SendClientMessage(player1,blue,string); }
  1324. SetPlayerPos(player1, 0.0, 0.0, 0.0);
  1325. return SpawnPlayer(player1);
  1326. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1327. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1328. }
  1329.  
  1330. dcmd_disarm(playerid,params[]) {
  1331. if(PlayerInfo[playerid][Level] >= 2) {
  1332. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /disarm [jugador]");
  1333. new player1 = strval(params), string[128];
  1334. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1335. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1336. CMDMessageToAdmins(playerid,"DISARM"); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1337. format(string, sizeof(string), "Has desarmado a \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1338. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" te ha desarmado", pName(playerid)); SendClientMessage(player1,blue,string); }
  1339. ResetPlayerWeapons(player1);
  1340. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1341. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1342. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1343. }
  1344.  
  1345. dcmd_crash(playerid,params[]) {
  1346. if(PlayerInfo[playerid][Level] >= 4) {
  1347. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /crash [jugador]");
  1348. new player1 = strval(params), string[128], Float:X,Float:Y,Float:Z;
  1349. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1350. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1351. CMDMessageToAdmins(playerid,"CRASH");
  1352. GetPlayerPos(player1,X,Y,Z);
  1353. new objectcrash = CreatePlayerObject(player1,11111111,X,Y,Z,0,0,0);
  1354. DestroyObject(objectcrash);
  1355. format(string, sizeof(string), "Has crasheado a \"%s\" ", pName(player1) );
  1356. return SendClientMessage(playerid,blue, string);
  1357. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1358. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 4 para usar este comando");
  1359. }
  1360.  
  1361. dcmd_ip(playerid,params[]) {
  1362. if(PlayerInfo[playerid][Level] >= 1) {
  1363. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ip [jugador]");
  1364. new player1 = strval(params), string[128];
  1365. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1366. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1367. CMDMessageToAdmins(playerid,"IP");
  1368. new tmp3[50]; GetPlayerIp(player1,tmp3,50);
  1369. format(string,sizeof(string),"La IP de \"%s\" es '%s'", pName(player1), tmp3);
  1370. return SendClientMessage(playerid,blue,string);
  1371. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1372. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 1 para usar este comando");
  1373. }
  1374.  
  1375. dcmd_bankrupt(playerid,params[]) {
  1376. if(PlayerInfo[playerid][Level] >= 3) {
  1377. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /bankrupt [jugador]");
  1378. new player1 = strval(params), string[128];
  1379. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1380. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1381. CMDMessageToAdmins(playerid,"BANKRUPT");
  1382. format(string, sizeof(string), "Has reseteado el dinero de \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1383. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha reseteado tu dinero'", pName(playerid)); SendClientMessage(player1,blue,string); }
  1384. return ResetPlayerMoney(player1);
  1385. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1386. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1387. }
  1388.  
  1389. dcmd_sbankrupt(playerid,params[]) {
  1390. if(PlayerInfo[playerid][Level] >= 3) {
  1391. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /sbankrupt [jugador]");
  1392. new player1 = strval(params), string[128];
  1393. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1394. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1395. CMDMessageToAdmins(playerid,"BANKRUPT");
  1396. format(string, sizeof(string), "Has reseteado el dinero de \"%s\" secretamente", pName(player1)); SendClientMessage(playerid,blue,string);
  1397. return ResetPlayerMoney(player1);
  1398. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1399. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1400. }
  1401.  
  1402. dcmd_kill(playerid,params[]) {
  1403. #pragma unused params
  1404. return SetPlayerHealth(playerid,0.0);
  1405. }
  1406.  
  1407. dcmd_time(playerid,params[]) {
  1408. #pragma unused params
  1409. new string[64], hour,minuite,second; gettime(hour,minuite,second);
  1410. format(string, sizeof(string), "~g~|~w~%d:%d~g~|", hour, minuite);
  1411. return GameTextForPlayer(playerid, string, 5000, 1);
  1412. }
  1413.  
  1414. dcmd_ubound(playerid,params[]) {
  1415. if(PlayerInfo[playerid][Level] >= 3) {
  1416. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /ubound [jugador]");
  1417. new string[128], player1 = strval(params);
  1418.  
  1419. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1420. CMDMessageToAdmins(playerid,"UBOUND");
  1421. SetPlayerWorldBounds(player1, 9999.9, -9999.9, 9999.9, -9999.9 );
  1422. format(string, sizeof(string), "Administrator %s has removed your world boundaries", PlayerName2(playerid)); if(player1 != playerid) SendClientMessage(player1,blue,string);
  1423. format(string,sizeof(string),"You have removed %s's world boundaries", PlayerName2(player1));
  1424. return SendClientMessage(playerid,blue,string);
  1425. } else return SendClientMessage(playerid, red, "ERROR: El jugador no esta conectado");
  1426. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1427. }
  1428.  
  1429. dcmd_lhelp(playerid,params[]) {
  1430. #pragma unused params
  1431. if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] >= 1) {
  1432. SendClientMessage(playerid,blue,"--== [ LAdmin Help ] ==--");
  1433. SendClientMessage(playerid,blue, "For admin commands type: /lcommands | Credits: /lcredits");
  1434. SendClientMessage(playerid,blue, "Account commands are: /register, /login, /changepass, /stats, /resetstats. Also /time, /report");
  1435. SendClientMessage(playerid,blue, "There are 5 levels. Level 5 admins are immune from commands");
  1436. SendClientMessage(playerid,blue, "IMPORTANT: The filterscript must be reloaded if you change gamemodes");
  1437. }
  1438. else if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] < 1) {
  1439. SendClientMessage(playerid,green, "Your commands are: /register, /login, /report, /stats, /time, /changepass, /resetstats, /getid");
  1440. }
  1441. else if(PlayerInfo[playerid][LoggedIn] == 0) {
  1442. SendClientMessage(playerid,green, "Your commands are: /time, /getid (You are not logged in, log in for more commands)");
  1443. } return 1;
  1444. }
  1445.  
  1446. dcmd_lcmds(playerid,params[]) {
  1447. #pragma unused params
  1448. if(PlayerInfo[playerid][Level] > 1)
  1449. {
  1450. SendClientMessage(playerid,blue," ---= [ Most Useful Admin Commands ] ==---");
  1451. SendClientMessage(playerid,lightblue,"GENERAL: /getinfo /lmenu /announce /write /miniguns /richlist /lspec(off) /move /lweaps /adminarea /countdown /duel /giveweapon");
  1452. SendClientMessage(playerid,lightblue,"GENERAL: /slap /burn /warn /kick /ban /explode /jail /freeze /mute /crash /ubound /god /godcar /ping");
  1453. SendClientMessage(playerid,lightblue,"GENERAL: /setping /lockserver /enable /disable /setlevel /setinterior /givecar /jetpack /force /spawn");
  1454. SendClientMessage(playerid,lightblue,"VEHICLE: /flip /fix /repair /lockcar /eject /ltc /car /lcar lbike /lplane /lheli /lboat /lnos /cm");
  1455. SendClientMessage(playerid,lightblue,"TELE: /goto /gethere /get /teleplayer /ltele /vgoto /lgoto /moveplayer");
  1456. SendClientMessage(playerid,lightblue,"SET: /set[cash/health/armour/gravity/name/time/weather/skin/colour/wanted/templevel]");
  1457. SendClientMessage(playerid,lightblue,"SETALL: /setall[world/weather/wanted/time/score/cash]");
  1458. SendClientMessage(playerid,lightblue,"ALL: /giveallweapon /healall /armourall /freezeall /kickall /ejectall /killall /disarmall /slapall /spawnall");
  1459. }
  1460. return 1;
  1461. }
  1462.  
  1463.  
  1464. dcmd_lcommands(playerid,params[]) {
  1465. #pragma unused params
  1466. if(PlayerInfo[playerid][Level] > 1)
  1467. {
  1468. SendClientMessage(playerid,blue," ---= All Admin Commands =---");
  1469. SendClientMessage(playerid,lightblue," /level1, /level2, /level3, /level4, /level5, /rcon ladmin");
  1470. SendClientMessage(playerid,lightblue,"Player Commands: /register, /login, /report, /stats, /time, /changepass, /resetstats, /getid");
  1471. }
  1472. return 1;
  1473. }
  1474.  
  1475. dcmd_level1(playerid,params[]) {
  1476. #pragma unused params
  1477. if(PlayerInfo[playerid][Level] > 0)
  1478. {
  1479. SendClientMessage(playerid,blue," ---=Level 1 Admin Commands =---");
  1480. SendClientMessage(playerid,lightblue,"getinfo, weaps, vr, repair, ltune, lhy, lnos, lp, ping, lslowmo, ltc,");
  1481. SendClientMessage(playerid,lightblue,"morning, adminarea, reports, richlist, miniguns, saveplacae, gotoplace,");
  1482. SendClientMessage(playerid,lightblue,"saveskin, useskin, dontuseskin, setmytime, ip, lconfig.");
  1483. }
  1484. return 1;
  1485. }
  1486.  
  1487. dcmd_level2(playerid,params[]) {
  1488. #pragma unused params
  1489. if(PlayerInfo[playerid][Level] > 0)
  1490. {
  1491. SendClientMessage(playerid,blue," ---=Level 2 Admin Commands =---");
  1492. SendClientMessage(playerid,lightblue,"giveweapon, setcolour, lockcar, unlockcar, burn, spawn, disarm, lcar, lbike,");
  1493. SendClientMessage(playerid,lightblue,"lheli, lboat, lplane, hightlight, announce, announce2, screen, jetpack, flip,");
  1494. SendClientMessage(playerid,lightblue,"goto, vgoto, lgoto, fu, warn, slap, jailed, frozen, mute, unmute, muted,");
  1495. SendClientMessage(playerid,lightblue,"laston, lspec, lspecoff, lspecvehicle, clearchat, lmenu, ltele, cm, ltmenu,");
  1496. SendClientMessage(playerid,lightblue,"write.");
  1497. SendClientMessage(playerid,blue," ---=Level 2 Admin Commands =---");
  1498. }
  1499. return 1;
  1500. }
  1501.  
  1502. dcmd_level3(playerid,params[]) {
  1503. #pragma unused params
  1504. if(PlayerInfo[playerid][Level] > 0)
  1505. {
  1506. SendClientMessage(playerid,blue," ---=Level 3 Admin Commands =---");
  1507. SendClientMessage(playerid,lightblue,"sethealth, setarmour, setcash, setscore, setskin, setwanted, setname, setweather,");
  1508. SendClientMessage(playerid,lightblue,"settime, setworld, setinterior, force, eject, bankrupt, sbankrupt, ubound, lweaps,");
  1509. SendClientMessage(playerid,lightblue,"lammo, countdown, duel, car, carhealth, carcolour, setping, setgravity, destroycar,");
  1510. SendClientMessage(playerid,lightblue,"teleplayer, vget, givecar, gethere, get, kick, explode, jail, unjail, freeze, ");
  1511. SendClientMessage(playerid,lightblue,"unfreeze, akill,aka, disablechat, clearallchat, caps, move, moveplayer, healall,");
  1512. SendClientMessage(playerid,lightblue,"armourall, setallskin, setallwanted, setallweather, setalltime, setallworld,");
  1513. SendClientMessage(playerid,lightblue,"setallscore, setallcash, giveallcash, giveallweapon, lweather, ltime, lweapons, setpass");
  1514. SendClientMessage(playerid,blue," ---=Level 3 Admin Commands =---");
  1515. }
  1516. return 1;
  1517. }
  1518.  
  1519. dcmd_level4(playerid,params[]) {
  1520. #pragma unused params
  1521. if(PlayerInfo[playerid][Level] > 0)
  1522. {
  1523. SendClientMessage(playerid,blue," ---=Level 4 Admin Commands =---");
  1524. SendClientMessage(playerid,lightblue,"enable, disable, ban, rban, settemplevel, crash, spam, god, godcar, die, uconfig,");
  1525. SendClientMessage(playerid,lightblue,"botcheck, lockserver, unlockserver, forbidname, forbidword, ");
  1526. SendClientMessage(playerid,lightblue,"fakedeath, spawnall, muteall, unmuteall, getall, killall, freezeall,");
  1527. SendClientMessage(playerid,lightblue,"unfreezeall, kickall, slapalll, explodeall, disarmall, ejectall, msay.");
  1528. SendClientMessage(playerid,blue," ---=Level 4 Admin Commands =---");
  1529. }
  1530. return 1;
  1531. }
  1532.  
  1533. dcmd_level5(playerid,params[]) {
  1534. #pragma unused params
  1535. if(PlayerInfo[playerid][Level] > 0)
  1536. {
  1537. SendClientMessage(playerid,blue," ---=Level 5 Admin Commands =---");
  1538. SendClientMessage(playerid,lightblue,"god, sgod, setlevel, pickup, object, fakechat, asay.");
  1539. SendClientMessage(playerid,blue," ---=Level 5 Admin Commands =---");
  1540. }
  1541. return 1;
  1542. }
  1543.  
  1544. dcmd_lconfig(playerid,params[]) {
  1545. #pragma unused params
  1546. if(PlayerInfo[playerid][Level] > 0)
  1547. {
  1548. new string[128];
  1549. SendClientMessage(playerid,blue," ---=== LAdmin Configuration ===---");
  1550. 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] );
  1551. SendClientMessage(playerid,blue,string);
  1552. 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] );
  1553. SendClientMessage(playerid,blue,string);
  1554. 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] );
  1555. SendClientMessage(playerid,blue,string);
  1556. format(string, sizeof(string), "AutoLogin %d | MaxMuteWarnings %d | ChatDisabled %d | MustLogin %d | MustRegister %d", ServerInfo[AutoLogin], ServerInfo[MaxMuteWarnings], ServerInfo[DisableChat], ServerInfo[MustLogin], ServerInfo[MustRegister] );
  1557. SendClientMessage(playerid,blue,string);
  1558. }
  1559. return 1;
  1560. }
  1561.  
  1562. dcmd_getinfo(playerid,params[]) {
  1563. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  1564. if(!strlen(params)) return SendClientMessage(playerid,red,"USE: /getinfo [jugador]");
  1565. new player1, string[128];
  1566. player1 = strval(params);
  1567.  
  1568. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1569. new Float:player1health, Float:player1armour, playerip[128], Float:x, Float:y, Float:z, tmp2[256], file[256],
  1570. year, month, day, P1Jailed[4], P1Frozen[4], P1Logged[4], P1Register[4], RegDate[256], TimesOn;
  1571.  
  1572. GetPlayerHealth(player1,player1health);
  1573. GetPlayerArmour(player1,player1armour);
  1574. GetPlayerIp(player1, playerip, sizeof(playerip));
  1575. GetPlayerPos(player1,x,y,z);
  1576. getdate(year, month, day);
  1577. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(player1)));
  1578.  
  1579. if(PlayerInfo[player1][Jailed] == 1) P1Jailed = "Yes"; else P1Jailed = "No";
  1580. if(PlayerInfo[player1][Frozen] == 1) P1Frozen = "Yes"; else P1Frozen = "No";
  1581. if(PlayerInfo[player1][LoggedIn] == 1) P1Logged = "Yes"; else P1Logged = "No";
  1582. if(fexist(file)) P1Register = "Yes"; else P1Register = "No";
  1583. if(dUserINT(PlayerName2(player1)).("LastOn")==0) tmp2 = "Never"; else tmp2 = dini_Get(file,"LastOn");
  1584. if(strlen(dini_Get(file,"RegisteredDate")) < 3) RegDate = "n/a"; else RegDate = dini_Get(file,"RegisteredDate");
  1585. TimesOn = dUserINT(PlayerName2(player1)).("TimesOnServer");
  1586.  
  1587. new Sum, Average, w;
  1588. while (w < PING_MAX_EXCEEDS) {
  1589. Sum += PlayerInfo[player1][pPing][w];
  1590. w++;
  1591. }
  1592. Average = (Sum / PING_MAX_EXCEEDS);
  1593.  
  1594. format(string, sizeof(string),"(Player Info) ---====> Name: %s ID: %d <====---", PlayerName2(player1), player1);
  1595. SendClientMessage(playerid,lightblue,string);
  1596. 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),
  1597. GetPlayerScore(player1),GetPlayerMoney(player1),GetPlayerSkin(player1),playerip,GetPlayerPing(player1), Average );
  1598. SendClientMessage(playerid,red,string);
  1599. 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);
  1600. SendClientMessage(playerid,orange,string);
  1601. 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] );
  1602. SendClientMessage(playerid,yellow,string);
  1603. format(string, sizeof(string),"Registered: %s Logged In: %s In Jail: %s Frozen: %s", P1Register, P1Logged, P1Jailed, P1Frozen );
  1604. SendClientMessage(playerid,green,string);
  1605. format(string, sizeof(string),"Last On Server: %s Register Date: %s Todays Date: %d/%d/%d", tmp2, RegDate, day,month,year );
  1606. SendClientMessage(playerid,COLOR_GREEN,string);
  1607.  
  1608. if(IsPlayerInAnyVehicle(player1)) {
  1609. new Float:VHealth, carid = GetPlayerVehicleID(playerid); GetVehicleHealth(carid,VHealth);
  1610. format(string, sizeof(string),"VehicleID: %d Model: %d Vehicle Name: %s Vehicle Health: %d",carid, GetVehicleModel(carid), VehicleNames[GetVehicleModel(carid)-400], floatround(VHealth) );
  1611. SendClientMessage(playerid,COLOR_BLUE,string);
  1612. }
  1613.  
  1614. new slot, ammo, weap, Count, WeapName[24], WeapSTR[128], p; WeapSTR = "Weaps: ";
  1615. for (slot = 0; slot < 14; slot++) { GetPlayerWeaponData(player1, slot, weap, ammo); if( ammo != 0 && weap != 0) Count++; }
  1616. if(Count < 1) return SendClientMessage(playerid,lightblue,"Player has no weapons");
  1617. else {
  1618. for (slot = 0; slot < 14; slot++)
  1619. {
  1620. GetPlayerWeaponData(player1, slot, weap, ammo);
  1621. if (ammo > 0 && weap > 0)
  1622. {
  1623. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  1624. if (ammo == 65535 || ammo == 1) format(WeapSTR,sizeof(WeapSTR),"%s%s (1)",WeapSTR, WeapName);
  1625. else format(WeapSTR,sizeof(WeapSTR),"%s%s (%d)",WeapSTR, WeapName, ammo);
  1626. p++;
  1627. if(p >= 5) { SendClientMessage(playerid, lightblue, WeapSTR); format(WeapSTR, sizeof(WeapSTR), "Weaps: "); p = 0;
  1628. } else format(WeapSTR, sizeof(WeapSTR), "%s, ", WeapSTR);
  1629. }
  1630. }
  1631. if(p <= 4 && p > 0) {
  1632. string[strlen(string)-3] = '.';
  1633. SendClientMessage(playerid, lightblue, WeapSTR);
  1634. }
  1635. }
  1636. return 1;
  1637. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  1638. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1639. }
  1640.  
  1641. dcmd_disable(playerid,params[]) {
  1642. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  1643. if(!strlen(params)) {
  1644. SendClientMessage(playerid,red,"USE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps / admincmdmsgs");
  1645. return SendClientMessage(playerid,red," /connectmsgs / autologin ]");
  1646. }
  1647. new string[128], file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  1648. if(strcmp(params,"antiswear",true) == 0) {
  1649. ServerInfo[AntiSwear] = 0;
  1650. dini_IntSet(file,"AntiSwear",0);
  1651. format(string,sizeof(string),"El Administrador %s ha deshabilitado el antiswear", PlayerName2(playerid));
  1652. SendClientMessageToAll(blue,string);
  1653. } else if(strcmp(params,"namekick",true) == 0) {
  1654. ServerInfo[NameKick] = 0;
  1655. dini_IntSet(file,"NameKick",0);
  1656. format(string,sizeof(string),"El Administrador %s ha deshabilitado el namekick", PlayerName2(playerid));
  1657. SendClientMessageToAll(blue,string);
  1658. } else if(strcmp(params,"antispam",true) == 0) {
  1659. ServerInfo[AntiSpam] = 0;
  1660. dini_IntSet(file,"AntiSpam",0);
  1661. format(string,sizeof(string),"El Administrador %s ha deshabilitado el antispam", PlayerName2(playerid));
  1662. SendClientMessageToAll(blue,string);
  1663. } else if(strcmp(params,"ping",true) == 0) {
  1664. ServerInfo[MaxPing] = 0;
  1665. dini_IntSet(file,"MaxPing",0);
  1666. format(string,sizeof(string),"El Administrador %s ha deshabilitado el ping kick", PlayerName2(playerid));
  1667. SendClientMessageToAll(blue,string);
  1668. } else if(strcmp(params,"readcmds",true) == 0) {
  1669. ServerInfo[ReadCmds] = 0;
  1670. dini_IntSet(file,"ReadCMDs",0);
  1671. format(string,sizeof(string),"El Administrador %s ha deshabilitado el reading commands", PlayerName2(playerid));
  1672. MessageToAdmins(blue,string);
  1673. } else if(strcmp(params,"readpms",true) == 0) {
  1674. ServerInfo[ReadPMs] = 0;
  1675. dini_IntSet(file,"ReadPMs",0);
  1676. format(string,sizeof(string),"El Administrador %s ha deshabilitado el reading pms", PlayerName2(playerid));
  1677. MessageToAdmins(blue,string);
  1678. } else if(strcmp(params,"caps",true) == 0) {
  1679. ServerInfo[NoCaps] = 1;
  1680. dini_IntSet(file,"NoCaps",1);
  1681. format(string,sizeof(string),"El Administrador %s ha deshabilitado el captial letters in chat", PlayerName2(playerid));
  1682. SendClientMessageToAll(blue,string);
  1683. } else if(strcmp(params,"admincmdmsgs",true) == 0) {
  1684. ServerInfo[AdminCmdMsg] = 0;
  1685. dini_IntSet(file,"AdminCMDMessages",0);
  1686. format(string,sizeof(string),"El Administrador %s ha deshabilitado el admin command messages", PlayerName2(playerid));
  1687. MessageToAdmins(green,string);
  1688. } else if(strcmp(params,"connectmsgs",true) == 0) {
  1689. ServerInfo[ConnectMessages] = 0;
  1690. dini_IntSet(file,"ConnectMessages",0);
  1691. format(string,sizeof(string),"El Administrador %s ha deshabilitado el connect & disconnect messages", PlayerName2(playerid));
  1692. MessageToAdmins(green,string);
  1693. } else if(strcmp(params,"autologin",true) == 0) {
  1694. ServerInfo[AutoLogin] = 0;
  1695. dini_IntSet(file,"AutoLogin",0);
  1696. format(string,sizeof(string),"El Administrador %s ha deshabilitado el auto login", PlayerName2(playerid));
  1697. MessageToAdmins(green,string);
  1698. } else {
  1699. SendClientMessage(playerid,red,"USE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps /cmdmsg ]");
  1700. } return 1;
  1701. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 4 para usar este comando");
  1702. }
  1703.  
  1704. dcmd_enable(playerid,params[]) {
  1705. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  1706. if(!strlen(params)) {
  1707. SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps / admincmdmsgs");
  1708. return SendClientMessage(playerid,red," /connectmsgs / autologin ]");
  1709. }
  1710. new string[128], file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  1711. if(strcmp(params,"antiswear",true) == 0) {
  1712. ServerInfo[AntiSwear] = 1;
  1713. dini_IntSet(file,"AntiSwear",1);
  1714. format(string,sizeof(string),"El Administrador %s ha habilitado el antiswear", PlayerName2(playerid));
  1715. SendClientMessageToAll(blue,string);
  1716. } else if(strcmp(params,"namekick",true) == 0) {
  1717. ServerInfo[NameKick] = 1;
  1718. format(string,sizeof(string),"El Administrador %s ha habilitado el namekick", PlayerName2(playerid));
  1719. SendClientMessageToAll(blue,string);
  1720. } else if(strcmp(params,"antispam",true) == 0) {
  1721. ServerInfo[AntiSpam] = 1;
  1722. dini_IntSet(file,"AntiSpam",1);
  1723. format(string,sizeof(string),"El Administrador %s ha habilitado el antispam", PlayerName2(playerid));
  1724. SendClientMessageToAll(blue,string);
  1725. } else if(strcmp(params,"ping",true) == 0) {
  1726. ServerInfo[MaxPing] = 800;
  1727. dini_IntSet(file,"MaxPing",800);
  1728. format(string,sizeof(string),"El Administrador %s ha habilitado el ping kick", PlayerName2(playerid));
  1729. SendClientMessageToAll(blue,string);
  1730. } else if(strcmp(params,"readcmds",true) == 0) {
  1731. ServerInfo[ReadCmds] = 1;
  1732. dini_IntSet(file,"ReadCMDs",1);
  1733. format(string,sizeof(string),"El Administrador %s ha habilitado el reading commands", PlayerName2(playerid));
  1734. MessageToAdmins(blue,string);
  1735. } else if(strcmp(params,"readpms",true) == 0) {
  1736. ServerInfo[ReadPMs] = 1;
  1737. dini_IntSet(file,"ReadPMs",1);
  1738. format(string,sizeof(string),"El Administrador %s ha habilitado el reading pms", PlayerName2(playerid));
  1739. MessageToAdmins(blue,string);
  1740. } else if(strcmp(params,"caps",true) == 0) {
  1741. ServerInfo[NoCaps] = 0;
  1742. dini_IntSet(file,"NoCaps",0);
  1743. format(string,sizeof(string),"El Administrador %s ha habilitado el captial letters in chat", PlayerName2(playerid));
  1744. SendClientMessageToAll(blue,string);
  1745. } else if(strcmp(params,"admincmdmsgs",true) == 0) {
  1746. ServerInfo[AdminCmdMsg] = 1;
  1747. dini_IntSet(file,"AdminCmdMessages",1);
  1748. format(string,sizeof(string),"El Administrador %s ha habilitado el admin command messages", PlayerName2(playerid));
  1749. MessageToAdmins(green,string);
  1750. } else if(strcmp(params,"connectmsgs",true) == 0) {
  1751. ServerInfo[ConnectMessages] = 1;
  1752. dini_IntSet(file,"ConnectMessages",1);
  1753. format(string,sizeof(string),"El Administrador %s ha habilitado el connect & disconnect messages", PlayerName2(playerid));
  1754. MessageToAdmins(green,string);
  1755. } else if(strcmp(params,"autologin",true) == 0) {
  1756. ServerInfo[AutoLogin] = 1;
  1757. dini_IntSet(file,"AutoLogin",1);
  1758. format(string,sizeof(string),"El Administrador %s ha habilitado el auto login", PlayerName2(playerid));
  1759. MessageToAdmins(green,string);
  1760. } else {
  1761. SendClientMessage(playerid,red,"USE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps /cmdmsg ]");
  1762. } return 1;
  1763. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 4 para usar este comando");
  1764. }
  1765.  
  1766. dcmd_lweaps(playerid,params[]) {
  1767. #pragma unused params
  1768. if(PlayerInfo[playerid][Level] >= 3) {
  1769. GivePlayerWeapon(playerid,28,1000); GivePlayerWeapon(playerid,31,1000); GivePlayerWeapon(playerid,34,1000);
  1770. GivePlayerWeapon(playerid,38,1000); GivePlayerWeapon(playerid,16,1000); GivePlayerWeapon(playerid,42,1000);
  1771. GivePlayerWeapon(playerid,14,1000); GivePlayerWeapon(playerid,46,1000); GivePlayerWeapon(playerid,9,1);
  1772. GivePlayerWeapon(playerid,24,1000); GivePlayerWeapon(playerid,26,1000); return 1;
  1773. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1774. }
  1775.  
  1776. dcmd_countdown(playerid,params[]) {
  1777. #pragma unused params
  1778. if(PlayerInfo[playerid][Level] >= 3) {
  1779. if(CountDown == -1) {
  1780. CountDown = 6;
  1781. SetTimer("countdown",1000,0);
  1782. return CMDMessageToAdmins(playerid,"COUNTDOWN");
  1783. } else return SendClientMessage(playerid,red,"ERROR: Countdown en progreso");
  1784. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1785. }
  1786.  
  1787. dcmd_duel(playerid,params[]) {
  1788. if(PlayerInfo[playerid][Level] >= 3) {
  1789. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  1790. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp) || !IsNumeric(tmp2)) {
  1791. SendClientMessage(playerid, red, "USE: /duel [ID de jugador1] [ID de jugador2] [localizacion] (Localizaciones: 1, 2, 3]");
  1792. return SendClientMessage(playerid, red, "Si la ubicacion no se define al mandar el comando, los jugadores jugaran el duelo en su ubicacion actual.");
  1793. }
  1794. new player1 = strval(tmp), player2 = strval(tmp2), location, string[128];
  1795. if(!strlen(tmp3)) location = 0; else location = strval(tmp3);
  1796. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1797. if(PlayerInfo[player2][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1798. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1799. if(IsPlayerConnected(player2) && player2 != INVALID_PLAYER_ID) {
  1800. if(InDuel[player1] == 1) return SendClientMessage(playerid,red,"ERROR: El jugador1 esta momentaneamente en un duelo");
  1801. if(InDuel[player2] == 1) return SendClientMessage(playerid,red,"ERROR: El jugador2 esta momentaneamente en un duelo");
  1802.  
  1803. if(location == 1) {
  1804. SetPlayerInterior(player1,16); SetPlayerPos(player1,-1404.067, 1270.3706, 1042.8672);
  1805. SetPlayerInterior(player2,16); SetPlayerPos(player2,-1395.067, 1261.3706, 1042.8672);
  1806. } else if(location == 2) {
  1807. SetPlayerInterior(player1,0); SetPlayerPos(player1,1353.407,2188.155,11.02344);
  1808. SetPlayerInterior(player2,0); SetPlayerPos(player2,1346.255,2142.843,11.01563);
  1809. } else if(location == 3) {
  1810. SetPlayerInterior(player1,10); SetPlayerPos(player1,-1041.037,1078.729,1347.678); SetPlayerFacingAngle(player1,135);
  1811. SetPlayerInterior(player2,10); SetPlayerPos(player2,-1018.061,1052.502,1346.327); SetPlayerFacingAngle(player2,45);
  1812. }
  1813. InDuel[player1] = 1;
  1814. InDuel[player2] = 1;
  1815. CMDMessageToAdmins(playerid,"DUEL");
  1816. cdt[player1] = 6;
  1817. SetTimerEx("Duel",1000,0,"dd", player1, player2);
  1818. format(string, sizeof(string), "El Administrador \"%s\" ha comenzado un duelo entre \"%s\" y \"%s\" ", pName(playerid), pName(player1), pName(player2) );
  1819. SendClientMessage(player1, blue, string); SendClientMessage(player2, blue, string);
  1820. return SendClientMessage(playerid, blue, string);
  1821. } else return SendClientMessage(playerid, red, "ERROR: El jugador2 no esta conectado");
  1822. } else return SendClientMessage(playerid, red, "ERROR: El jugador1 no esta conectado");
  1823. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1824. }
  1825.  
  1826. dcmd_lammo(playerid,params[]) {
  1827. #pragma unused params
  1828. if(PlayerInfo[playerid][Level] >= 3) {
  1829. MaxAmmo(playerid);
  1830. return CMDMessageToAdmins(playerid,"LAMMO");
  1831. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1832. }
  1833.  
  1834. dcmd_vr(playerid,params[]) {
  1835. #pragma unused params
  1836. if(PlayerInfo[playerid][Level] >= 1) {
  1837. if (IsPlayerInAnyVehicle(playerid)) {
  1838. SetVehicleHealth(GetPlayerVehicleID(playerid),1250.0);
  1839. return SendClientMessage(playerid,blue,"Vehiculo Reparado");
  1840. } else return SendClientMessage(playerid,red,"ERROR: No estas en un vehiculo");
  1841. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 1 para usar este comando");
  1842. }
  1843.  
  1844. dcmd_fix(playerid,params[])
  1845. {
  1846. return dcmd_vr(playerid, params);
  1847. }
  1848.  
  1849. dcmd_repair(playerid,params[]) {
  1850. #pragma unused params
  1851. if(PlayerInfo[playerid][Level] >= 1) {
  1852. if (IsPlayerInAnyVehicle(playerid)) {
  1853. GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  1854. GetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[playerid][3]);
  1855. SetPlayerCameraPos(playerid, 1929.0, 2137.0, 11.0);
  1856. SetPlayerCameraLookAt(playerid,1935.0, 2138.0, 11.5);
  1857. SetVehiclePos(GetPlayerVehicleID(playerid), 1974.0,2162.0,11.0);
  1858. SetVehicleZAngle(GetPlayerVehicleID(playerid), -90);
  1859. SetTimerEx("RepairCar",5000,0,"i",playerid);
  1860. return SendClientMessage(playerid,blue,"Tu vehiculo estara listo en 5 segundos...");
  1861. } else return SendClientMessage(playerid,red,"ERROR: No estas en un vehiculo!");
  1862. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 1 para usar este comando");
  1863. }
  1864.  
  1865. dcmd_ltune(playerid,params[]) {
  1866. #pragma unused params
  1867. if(PlayerInfo[playerid][Level] >= 1) {
  1868. if(IsPlayerInAnyVehicle(playerid)) {
  1869. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  1870. switch(LModel)
  1871. {
  1872. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  1873. return SendClientMessage(playerid,red,"ERROR: No puedes tunear este vehiculo!");
  1874. }
  1875. CMDMessageToAdmins(playerid,"LTUNE");
  1876. SetVehicleHealth(LVehicleID,2000.0);
  1877. TuneLCar(LVehicleID);
  1878. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  1879. } else return SendClientMessage(playerid,red,"ERROR: No estas en un vehiculo!");
  1880. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 1 para usar este comando");
  1881. }
  1882.  
  1883. dcmd_lhy(playerid,params[]) {
  1884. #pragma unused params
  1885. if(PlayerInfo[playerid][Level] >= 1) {
  1886. if(IsPlayerInAnyVehicle(playerid)) {
  1887. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  1888. switch(LModel)
  1889. {
  1890. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  1891. return SendClientMessage(playerid,red,"ERROR: No puedes tunear este vehiculo!");
  1892. }
  1893. AddVehicleComponent(LVehicleID, 1087);
  1894. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  1895. } else return SendClientMessage(playerid,red,"ERROR: No estas en un vehiculo!");
  1896. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 1 para usar este comando");
  1897. }
  1898.  
  1899. dcmd_lcar(playerid,params[]) {
  1900. #pragma unused params
  1901. if(PlayerInfo[playerid][Level] >= 2) {
  1902. if (!IsPlayerInAnyVehicle(playerid)) {
  1903. CarSpawner(playerid,415);
  1904. CMDMessageToAdmins(playerid,"LCAR");
  1905. return SendClientMessage(playerid,blue,"Disfruta tu nuevo auto!");
  1906. } else return SendClientMessage(playerid,red,"ERROR: Ya estas en un vehiculo!");
  1907. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1908. }
  1909.  
  1910. dcmd_lbike(playerid,params[]) {
  1911. #pragma unused params
  1912. if(PlayerInfo[playerid][Level] >= 2) {
  1913. if (!IsPlayerInAnyVehicle(playerid)) {
  1914. CarSpawner(playerid,522);
  1915. CMDMessageToAdmins(playerid,"LBIKE");
  1916. return SendClientMessage(playerid,blue,"Disfruta tu nueva moto!");
  1917. } else return SendClientMessage(playerid,red,"ERROR: Ya estas en un vehiculo!");
  1918. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1919. }
  1920.  
  1921. dcmd_lheli(playerid,params[]) {
  1922. #pragma unused params
  1923. if(PlayerInfo[playerid][Level] >= 2) {
  1924. if (!IsPlayerInAnyVehicle(playerid)) {
  1925. CarSpawner(playerid,487);
  1926. CMDMessageToAdmins(playerid,"LHELI");
  1927. return SendClientMessage(playerid,blue,"Disfruta tu nuevo helicoptero!");
  1928. } else return SendClientMessage(playerid,red,"ERROR: Ya estas en un vehiculo!");
  1929. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1930. }
  1931.  
  1932. dcmd_lboat(playerid,params[]) {
  1933. #pragma unused params
  1934. if(PlayerInfo[playerid][Level] >= 2) {
  1935. if (!IsPlayerInAnyVehicle(playerid)) {
  1936. CarSpawner(playerid,493);
  1937. CMDMessageToAdmins(playerid,"LBOAT");
  1938. return SendClientMessage(playerid,blue,"Disfruta tu nuevo barco!");
  1939. } else return SendClientMessage(playerid,red,"ERROR: Ya estas en un vehiculo!");
  1940. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1941. }
  1942.  
  1943. dcmd_lplane(playerid,params[]) {
  1944. #pragma unused params
  1945. if(PlayerInfo[playerid][Level] >= 2) {
  1946. if (!IsPlayerInAnyVehicle(playerid)) {
  1947. CarSpawner(playerid,513);
  1948. CMDMessageToAdmins(playerid,"LPLANE");
  1949. return SendClientMessage(playerid,blue,"Disfruta tu nuevo avion!");
  1950. } else return SendClientMessage(playerid,red,"ERROR: Ya estas en un vehiculo!");
  1951. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  1952. }
  1953.  
  1954. dcmd_lnos(playerid,params[]) {
  1955. #pragma unused params
  1956. if(PlayerInfo[playerid][Level] >= 1) {
  1957. if(IsPlayerInAnyVehicle(playerid)) {
  1958. switch(GetVehicleModel( GetPlayerVehicleID(playerid) )) {
  1959. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  1960. return SendClientMessage(playerid,red,"ERROR: No puedes tunear este vehiculo!");
  1961. }
  1962. AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  1963. return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  1964. } else return SendClientMessage(playerid,red,"ERROR: Necesitas estar en un vehiculo.");
  1965. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 1 para usar este comando");
  1966. }
  1967.  
  1968. dcmd_linkcar(playerid,params[]) {
  1969. #pragma unused params
  1970. if(IsPlayerInAnyVehicle(playerid)) {
  1971. LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(playerid));
  1972. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playerid));
  1973. return SendClientMessage(playerid,lightblue, "Tu vehiculo ahora esta en tu mundo virtual e interior");
  1974. } else return SendClientMessage(playerid,red,"ERROR: Necesitas estar en un vehiculo.");
  1975. }
  1976.  
  1977. dcmd_car(playerid,params[]) {
  1978. if(PlayerInfo[playerid][Level] >= 3) {
  1979. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  1980. if(!strlen(tmp)) return SendClientMessage(playerid, red, "USE: /car [modelo/nombre] [color1] [color2]");
  1981. new car, colour1, colour2, string[128];
  1982. if(!IsNumeric(tmp)) car = GetVehicleModelIDFromName(tmp); else car = strval(tmp);
  1983. if(car < 400 || car > 611) return SendClientMessage(playerid, red, "ERROR: Modelo de vehiculo invalido");
  1984. if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
  1985. if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
  1986. if(PlayerInfo[playerid][pCar] != -1 && !IsPlayerAdmin(playerid) ) CarDeleter(PlayerInfo[playerid][pCar]);
  1987. new LVehicleID,Float:X,Float:Y,Float:Z, Float:Angle,int1; GetPlayerPos(playerid, X,Y,Z); GetPlayerFacingAngle(playerid,Angle); int1 = GetPlayerInterior(playerid);
  1988. LVehicleID = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, -1); LinkVehicleToInterior(LVehicleID,int1);
  1989. PlayerInfo[playerid][pCar] = LVehicleID;
  1990. CMDMessageToAdmins(playerid,"CAR");
  1991. format(string, sizeof(string), "%s ha aparecido un \"%s\" (Modelo:%d) color (%d, %d), el %0.2f, %0.2f, %0.2f", pName(playerid), VehicleNames[car-400], car, colour1, colour2, X, Y, Z);
  1992. SaveToFile("CarSpawns",string);
  1993. format(string, sizeof(string), "Has aparecido un \"%s\" (Modelo:%d) color (%d, %d)", VehicleNames[car-400], car, colour1, colour2);
  1994. return SendClientMessage(playerid,lightblue, string);
  1995. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  1996. }
  1997.  
  1998. dcmd_carhealth(playerid,params[]) {
  1999. if(PlayerInfo[playerid][Level] >= 3) {
  2000. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2001. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /carhealth [jugador] [cantidad]");
  2002. new player1 = strval(tmp), health = strval(tmp2), string[128];
  2003. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2004. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2005. if(IsPlayerInAnyVehicle(player1)) {
  2006. CMDMessageToAdmins(playerid,"CARHEALTH");
  2007. format(string, sizeof(string), "Has puesto la vida del vehiculo de \"%s\" en '%d", pName(player1), health); SendClientMessage(playerid,blue,string);
  2008. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha puesto la vida de tu vehiculo en '%d'", pName(playerid), health); SendClientMessage(player1,blue,string); }
  2009. return SetVehicleHealth(GetPlayerVehicleID(player1), health);
  2010. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta en un vehiculo");
  2011. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  2012. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  2013. }
  2014.  
  2015. dcmd_carcolour(playerid,params[]) {
  2016. if(PlayerInfo[playerid][Level] >= 3) {
  2017. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2018. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /carcolour [jugador] [color1] [color2]");
  2019. new player1 = strval(tmp), colour1, colour2, string[128];
  2020. if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
  2021. if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
  2022. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2023. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2024. if(IsPlayerInAnyVehicle(player1)) {
  2025. CMDMessageToAdmins(playerid,"CARCOLOUR");
  2026. format(string, sizeof(string), "Has cambiado el color del %s de \"%s's\" a '%d,%d'", pName(player1), VehicleNames[GetVehicleModel(GetPlayerVehicleID(player1))-400], colour1, colour2 ); SendClientMessage(playerid,blue,string);
  2027. if(player1 != playerid) { format(string,sizeof(string),"El Administrador \"%s\" ha cambiado el color de tu %s a '%d,%d''", pName(playerid), VehicleNames[GetVehicleModel(GetPlayerVehicleID(player1))-400], colour1, colour2 ); SendClientMessage(player1,blue,string); }
  2028. return ChangeVehicleColor(GetPlayerVehicleID(player1), colour1, colour2);
  2029. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta en un vehiculo");
  2030. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta conectado");
  2031. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  2032. }
  2033.  
  2034. dcmd_god(playerid,params[]) {
  2035. #pragma unused params
  2036. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  2037. if(PlayerInfo[playerid][God] == 0) {
  2038. PlayerInfo[playerid][God] = 1;
  2039. SetPlayerHealth(playerid,100000);
  2040. GivePlayerWeapon(playerid,16,50000); GivePlayerWeapon(playerid,26,50000);
  2041. SendClientMessage(playerid,green,"GODMODE ACTIVADO");
  2042. return CMDMessageToAdmins(playerid,"GOD");
  2043. } else {
  2044. PlayerInfo[playerid][God] = 0;
  2045. SendClientMessage(playerid,red,"GODMODE DESACTIVADO");
  2046. SetPlayerHealth(playerid, 100);
  2047. } return GivePlayerWeapon(playerid,35,0);
  2048. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  2049. }
  2050.  
  2051. dcmd_sgod(playerid,params[]) {
  2052. #pragma unused params
  2053. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  2054. if(PlayerInfo[playerid][God] == 0) {
  2055. PlayerInfo[playerid][God] = 1;
  2056. SetPlayerHealth(playerid,100000);
  2057. GivePlayerWeapon(playerid,16,50000); GivePlayerWeapon(playerid,26,50000);
  2058. return SendClientMessage(playerid,green,"GODMODE ACTIVADO");
  2059. } else {
  2060. PlayerInfo[playerid][God] = 0;
  2061. SendClientMessage(playerid,red,"GODMODE DESACTIVADO");
  2062. SetPlayerHealth(playerid, 100); return GivePlayerWeapon(playerid,35,0); }
  2063. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 5 para usar este comando");
  2064. }
  2065.  
  2066. dcmd_godcar(playerid,params[]) {
  2067. #pragma unused params
  2068. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  2069. if(IsPlayerInAnyVehicle(playerid)) {
  2070. if(PlayerInfo[playerid][GodCar] == 0) {
  2071. PlayerInfo[playerid][GodCar] = 1;
  2072. CMDMessageToAdmins(playerid,"GODCAR");
  2073. return SendClientMessage(playerid,green,"GODCARMODE ACTIVADO");
  2074. } else {
  2075. PlayerInfo[playerid][GodCar] = 0;
  2076. return SendClientMessage(playerid,red,"GODCARMODE DESACTIVADO"); }
  2077. } else return SendClientMessage(playerid,red,"ERROR: Necesitas estar en un vehiculo para usar este comando");
  2078. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 4 para usar este comando");
  2079. }
  2080.  
  2081. dcmd_die(playerid,params[]) {
  2082. #pragma unused params
  2083. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  2084. new Float:x, Float:y, Float:z ;
  2085. GetPlayerPos( playerid, Float:x, Float:y, Float:z );
  2086. CreateExplosion(Float:x+10, Float:y, Float:z, 8,10.0);
  2087. CreateExplosion(Float:x-10, Float:y, Float:z, 8,10.0);
  2088. CreateExplosion(Float:x, Float:y+10, Float:z, 8,10.0);
  2089. CreateExplosion(Float:x, Float:y-10, Float:z, 8,10.0);
  2090. CreateExplosion(Float:x+10, Float:y+10, Float:z, 8,10.0);
  2091. CreateExplosion(Float:x-10, Float:y+10, Float:z, 8,10.0);
  2092. return CreateExplosion(Float:x-10, Float:y-10, Float:z, 8,10.0);
  2093. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 4 para usar este comando");
  2094. }
  2095.  
  2096. dcmd_getid(playerid,params[]) {
  2097. if(!strlen(params)) return SendClientMessage(playerid,blue,"Uso Correcto: /getid [parte del nick]");
  2098. new found, string[128], playername[MAX_PLAYER_NAME];
  2099. format(string,sizeof(string),"Buscado por: \"%s\" ",params);
  2100. SendClientMessage(playerid,blue,string);
  2101. for(new i=0; i <= MAX_PLAYERS; i++)
  2102. {
  2103. if(IsPlayerConnected(i))
  2104. {
  2105. GetPlayerName(i, playername, MAX_PLAYER_NAME);
  2106. new namelen = strlen(playername);
  2107. new bool:searched=false;
  2108. for(new pos=0; pos <= namelen; pos++)
  2109. {
  2110. if(searched != true)
  2111. {
  2112. if(strfind(playername,params,true) == pos)
  2113. {
  2114. found++;
  2115. format(string,sizeof(string),"%d. %s (ID %d)",found,playername,i);
  2116. SendClientMessage(playerid, green ,string);
  2117. searched = true;
  2118. }
  2119. }
  2120. }
  2121. }
  2122. }
  2123. if(found == 0) SendClientMessage(playerid, lightblue, "Ningun jugador contiene esa parte en su nick");
  2124. return 1;
  2125. }
  2126.  
  2127. dcmd_asay(playerid,params[]) {
  2128. #pragma unused params
  2129. if(PlayerInfo[playerid][Level] >= 2) {
  2130. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /asay [texto]");
  2131. new string[128]; format(string, sizeof(string), "Administrador %s: %s", PlayerName2(playerid), params[0] );
  2132. return SendClientMessageToAll(red,string);
  2133. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador para usar este comando");
  2134. }
  2135.  
  2136. dcmd_mmm(playerid,params[]) {
  2137. #pragma unused params
  2138. if(PlayerInfo[playerid][Level] >= 0) {
  2139. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /mmm [texto]");
  2140. new string[128]; format(string, sizeof(string), "%s duda de la sexualidad de %s", PlayerName2(playerid), params[0] );
  2141. return SendClientMessageToAll(red,string);
  2142. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador para usar este comando");
  2143. }
  2144.  
  2145. dcmd_msay(playerid,params[]) {
  2146. #pragma unused params
  2147. if(PlayerInfo[playerid][Level] >= 1) {
  2148. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /msay [texto]");
  2149. new string[128]; format(string, sizeof(string), "Moderador %s: %s", PlayerName2(playerid), params[0] );
  2150. return SendClientMessageToAll(COLOR_GREEN,string);
  2151. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Moderador para usar este comando");
  2152. }
  2153.  
  2154. dcmd_setping(playerid,params[]) {
  2155. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  2156. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setping [ping] 0=Desactivado");
  2157. new string[128], ping = strval(params);
  2158. ServerInfo[MaxPing] = ping;
  2159. CMDMessageToAdmins(playerid,"SETPING");
  2160. new file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  2161. dini_IntSet(file,"MaxPing",ping);
  2162. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayerPlaySound(i,1057,0.0,0.0,0.0);
  2163. if(ping == 0) format(string,sizeof(string),"El Administrador %s ha desactivado el ping maximo", PlayerName2(playerid), ping);
  2164. else format(string,sizeof(string),"El Administrador %s ha puesto el maximo ping en %d", PlayerName2(playerid), ping);
  2165. return SendClientMessageToAll(blue,string);
  2166. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 5 para usar este comando");
  2167. }
  2168.  
  2169. dcmd_ping(playerid,params[]) {
  2170. if(PlayerInfo[playerid][Level] >= 1) {
  2171. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /ping [jugador]");
  2172. new player1 = strval(params), string[128];
  2173. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2174. new Sum, Average, x;
  2175. while (x < PING_MAX_EXCEEDS) {
  2176. Sum += PlayerInfo[player1][pPing][x];
  2177. x++;
  2178. }
  2179. Average = (Sum / PING_MAX_EXCEEDS);
  2180. 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] );
  2181. return SendClientMessage(playerid,blue,string);
  2182. } else return SendClientMessage(playerid, red, "ERROR: El jugador no esta conectado");
  2183. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 1 para usar este comando");
  2184. }
  2185.  
  2186. dcmd_highlight(playerid,params[]) {
  2187. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2188. if(!strlen(params)) return SendClientMessage(playerid,red,"USE: /highlight [jugador]");
  2189. new player1, playername[MAX_PLAYER_NAME], string[128];
  2190. player1 = strval(params);
  2191.  
  2192. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2193. GetPlayerName(player1, playername, sizeof(playername));
  2194. if(PlayerInfo[player1][blip] == 0) {
  2195. CMDMessageToAdmins(playerid,"HIGHLIGHT");
  2196. PlayerInfo[player1][pColour] = GetPlayerColor(player1);
  2197. PlayerInfo[player1][blip] = 1;
  2198. BlipTimer[player1] = SetTimerEx("HighLight", 1000, 1, "i", player1);
  2199. format(string,sizeof(string),"Has resaltado el marcador de %s", playername);
  2200. } else {
  2201. KillTimer( BlipTimer[player1] );
  2202. PlayerInfo[player1][blip] = 0;
  2203. SetPlayerColor(player1, PlayerInfo[player1][pColour] );
  2204. format(string,sizeof(string),"Has parado de resaltar el marcador de %s", playername);
  2205. }
  2206. return SendClientMessage(playerid,blue,string);
  2207. } else return SendClientMessage(playerid, red, "ERROR: El jugador no esta conectado");
  2208. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  2209. }
  2210.  
  2211. dcmd_setgravity(playerid,params[]) {
  2212. if(PlayerInfo[playerid][Level] >= 2000) {
  2213. if(!strlen(params)||!(strval(params)<=50&&strval(params)>=-50)) return SendClientMessage(playerid,red,"USE: /setgravity <-50.0 - 50.0>");
  2214. CMDMessageToAdmins(playerid,"SETGRAVITY");
  2215. new string[128],adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname)); new Float:Gravity = floatstr(params);format(string,sizeof(string),"El Admnistrador %s ha cambiado la gravedad a %f",adminname,Gravity);
  2216. SetGravity(Gravity); return SendClientMessageToAll(blue,string);
  2217. } else return SendClientMessage(playerid,red,"");
  2218. }
  2219.  
  2220. dcmd_lcredits(playerid,params[]) {
  2221. #pragma unused params
  2222. return SendClientMessage(playerid,green,"LAdmin. Adminscript for sa-mp 0.2.x. Created by LethaL. Traducido por bruunosoniico. Version: 4. Released: 07/2008");
  2223. }
  2224.  
  2225. dcmd_serverinfo(playerid,params[]) {
  2226. #pragma unused params
  2227. new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000); DestroyVehicle(TotalVehicles);
  2228. new numo = CreateObject(1245,0,0,1000,0,0,0); DestroyObject(numo);
  2229. new nump = CreatePickup(371,2,0,0,1000); DestroyPickup(nump);
  2230. new gz = GangZoneCreate(3,3,5,5); GangZoneDestroy(gz);
  2231.  
  2232. new model[250], nummodel;
  2233. for(new i=1;i<TotalVehicles;i++) model[GetVehicleModel(i)-400]++;
  2234. for(new i=0;i<250;i++) if(model[i]!=0) nummodel++;
  2235.  
  2236. new string[256];
  2237. format(string,sizeof(string),"Server Info: [ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
  2238. SendClientMessage(playerid,green,string);
  2239. format(string,sizeof(string),"Server Info: [ Vehicles: %d || Models %d || Players In Vehicle: %d || InCar %d / OnBike %d ]",TotalVehicles-1,nummodel, InVehCount(),InCarCount(),OnBikeCount() );
  2240. SendClientMessage(playerid,green,string);
  2241. format(string,sizeof(string),"Server Info: [ Objects: %d || Pickups %d || Gangzones %d ]",numo-1, nump, gz);
  2242. SendClientMessage(playerid,green,string);
  2243. format(string,sizeof(string),"Server Info: [ Players In Jail %d || Players Frozen %d || Muted %d ]",JailedPlayers(),FrozenPlayers(), MutedPlayers() );
  2244. return SendClientMessage(playerid,green,string);
  2245. }
  2246.  
  2247. dcmd_announce(playerid,params[]) {
  2248. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2249. if(!strlen(params)) return SendClientMessage(playerid,red,"USE: /announce <texto>");
  2250. CMDMessageToAdmins(playerid,"ANNOUNCE");
  2251. return GameTextForAll(params,4000,3);
  2252. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  2253. }
  2254.  
  2255. dcmd_announce2(playerid,params[]) {
  2256. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2257. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index) ,tmp3 = strtok(params,Index);
  2258. if(!strlen(tmp)||!strlen(tmp2)||!strlen(tmp3)) return SendClientMessage(playerid,red,"USE: /announce <estilo> <tiempo> <texto>");
  2259. if(!(strval(tmp) >= 0 && strval(tmp) <= 6) || strval(tmp) == 2) return SendClientMessage(playerid,red,"ERROR: Estilo de texto invalido. Range: 0 - 6");
  2260. CMDMessageToAdmins(playerid,"ANNOUNCE2");
  2261. return GameTextForAll(params[(strlen(tmp)+strlen(tmp2)+2)], strval(tmp2), strval(tmp));
  2262. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  2263. }
  2264.  
  2265. dcmd_lslowmo(playerid,params[]) {
  2266. #pragma unused params
  2267. if(PlayerInfo[playerid][Level] >= 1) {
  2268. new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); CreatePickup(1241, 4, x, y, z);
  2269. return CMDMessageToAdmins(playerid,"LSLOWMO");
  2270. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 1 para usar este comando");
  2271. }
  2272.  
  2273. dcmd_jetpack(playerid,params[]) {
  2274. if(!strlen(params)) {
  2275. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2276. SendClientMessage(playerid,blue,"Jetpack Aparecido.");
  2277. CMDMessageToAdmins(playerid,"JETPACK");
  2278. return SetPlayerSpecialAction(playerid, 2);
  2279. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  2280. } else {
  2281. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2282. player1 = strval(params);
  2283. if(PlayerInfo[playerid][Level] >= 4) {
  2284. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2285. CMDMessageToAdmins(playerid,"JETPACK"); SetPlayerSpecialAction(player1, 2);
  2286. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2287. format(string,sizeof(string),"El Administrador \"%s\" te ha dado un jetpack",adminname); SendClientMessage(player1,blue,string);
  2288. format(string,sizeof(string),"Le has dado a %s un jetpack", playername);
  2289. return SendClientMessage(playerid,blue,string);
  2290. } else return SendClientMessage(playerid, red, "ERROR: El jugador no esta conectado o eres tu mismo!");
  2291. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 4 para usar este comando");
  2292. }
  2293. }
  2294.  
  2295. dcmd_flip(playerid,params[]) {
  2296. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2297. if(!strlen(params)) {
  2298. if(IsPlayerInAnyVehicle(playerid)) {
  2299. new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(playerid, X, Y, Z); VehicleID = GetPlayerVehicleID(playerid);
  2300. GetVehicleZAngle(VehicleID, Angle); SetVehiclePos(VehicleID, X, Y, Z); SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1000.0);
  2301. CMDMessageToAdmins(playerid,"FLIP"); return SendClientMessage(playerid, blue,"Vehiculo Enderezado. Tambien puedes hacer /flip [jugador]");
  2302. } else return SendClientMessage(playerid,red,"ERROR: No estas en un vehiculo. Tambien puedes hacer /flip [jugador]");
  2303. }
  2304. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2305. player1 = strval(params);
  2306.  
  2307. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2308. CMDMessageToAdmins(playerid,"FLIP");
  2309. if (IsPlayerInAnyVehicle(player1)) {
  2310. new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(player1, X, Y, Z); VehicleID = GetPlayerVehicleID(player1);
  2311. GetVehicleZAngle(VehicleID, Angle); SetVehiclePos(VehicleID, X, Y, Z); SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1000.0);
  2312. CMDMessageToAdmins(playerid,"FLIP");
  2313. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2314. format(string,sizeof(string),"El AdministraDor %s ha enderezado tu vehiculo",adminname); SendClientMessage(player1,blue,string);
  2315. format(string,sizeof(string),"Has enderezado el vehiculo de %s", playername);
  2316. return SendClientMessage(playerid, blue,string);
  2317. } else return SendClientMessage(playerid,red,"ERROR: El jugador no esta en un vehiculo!");
  2318. } else return SendClientMessage(playerid, red, "ERROR: El jugador no esta conectado o eres tu mismo!");
  2319. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  2320. }
  2321.  
  2322. dcmd_destroycar(playerid,params[]) {
  2323. #pragma unused params
  2324. if(PlayerInfo[playerid][Level] >= 3) return EraseVehicle(GetPlayerVehicleID(playerid));
  2325. else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  2326. }
  2327. dcmd_ltc(playerid,params[]) {
  2328. #pragma unused params
  2329. if(PlayerInfo[playerid][Level] >= 1) {
  2330. if(!IsPlayerInAnyVehicle(playerid)) {
  2331. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  2332. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  2333. 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);
  2334. AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  2335. AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  2336. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,0);
  2337. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  2338. return PlayerInfo[playerid][pCar] = LVehicleIDt;
  2339. } else return SendClientMessage(playerid,red,"ERROR: Estas en un vehiculo!");
  2340. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 1 para usar este comando");
  2341. }
  2342.  
  2343. dcmd_warp(playerid,params[])
  2344. {
  2345. return dcmd_teleplayer(playerid,params);
  2346. }
  2347.  
  2348. dcmd_teleplayer(playerid,params[]) {
  2349. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2350. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2351. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USE: /teleplayer [jugador1] hacia [jugador2]");
  2352. new player1 = strval(tmp), player2 = strval(tmp2), string[128], Float:plocx,Float:plocy,Float:plocz;
  2353. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2354. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2355. if(IsPlayerConnected(player2) && player2 != INVALID_PLAYER_ID) {
  2356. CMDMessageToAdmins(playerid,"TELEPLAYER");
  2357. GetPlayerPos(player2, plocx, plocy, plocz);
  2358. new intid = GetPlayerInterior(player2); SetPlayerInterior(player1,intid);
  2359. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(player2));
  2360. if (GetPlayerState(player1) == PLAYER_STATE_DRIVER)
  2361. {
  2362. new VehicleID = GetPlayerVehicleID(player1);
  2363. SetVehiclePos(VehicleID, plocx, plocy+4, plocz); LinkVehicleToInterior(VehicleID,intid);
  2364. SetVehicleVirtualWorld(VehicleID, GetPlayerVirtualWorld(player2) );
  2365. }
  2366. else SetPlayerPos(player1,plocx,plocy+2, plocz);
  2367. format(string,sizeof(string),"El Administrador \"%s\" ha teletransportado a \"%s\" a la ubicacion de \"%s's\"", pName(playerid), pName(player1), pName(player2) );
  2368. SendClientMessage(player1,blue,string); SendClientMessage(player2,blue,string);
  2369. format(string,sizeof(string),"Has teletransportado a \"%s\" hacia \"%s's\" location", pName(player1), pName(player2) );
  2370. return SendClientMessage(playerid,blue,string);
  2371. } else return SendClientMessage(playerid, red, "ERROR: El jugador2 no esta conectado");
  2372. } else return SendClientMessage(playerid, red, "ERROR: El jugador1 no esta conectado");
  2373. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  2374. }
  2375.  
  2376. dcmd_goto(playerid,params[]) {
  2377. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2378. if(!strlen(params)) return SendClientMessage(playerid,red,"USE: /goto [jugador]");
  2379. new player1, string[128];
  2380. if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
  2381. else player1 = strval(params);
  2382. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2383. CMDMessageToAdmins(playerid,"GOTO");
  2384. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z); SetPlayerInterior(playerid,GetPlayerInterior(player1));
  2385. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
  2386. if(GetPlayerState(playerid) == 2) {
  2387. SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z); LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(player1));
  2388. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(player1));
  2389. } else SetPlayerPos(playerid,x+2,y,z);
  2390. format(string,sizeof(string),"Has sido transportado hacia \"%s\"", pName(player1));
  2391. return SendClientMessage(playerid,blue,string);
  2392. } else return SendClientMessage(playerid, red, "ERROR: El jugador no esta conectado o eres tu mismo!");
  2393. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  2394. }
  2395.  
  2396. dcmd_vgoto(playerid,params[]) {
  2397. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2398. if(!strlen(params)) return SendClientMessage(playerid,red,"USE: /vgoto [vehiculo]");
  2399. new player1, string[128];
  2400. player1 = strval(params);
  2401. CMDMessageToAdmins(playerid,"VGOTO");
  2402. new Float:x, Float:y, Float:z; GetVehiclePos(player1,x,y,z);
  2403. SetPlayerVirtualWorld(playerid,GetVehicleVirtualWorld(player1));
  2404. if(GetPlayerState(playerid) == 2) {
  2405. SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z);
  2406. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetVehicleVirtualWorld(player1) );
  2407. } else SetPlayerPos(playerid,x+2,y,z);
  2408. format(string,sizeof(string),"Has sido teletransportado hacia un vehiculo de ID %d", player1);
  2409. return SendClientMessage(playerid,blue,string);
  2410. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  2411. }
  2412.  
  2413. dcmd_vget(playerid,params[]) {
  2414. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2415. if(!strlen(params)) return SendClientMessage(playerid,red,"USE: /vget [vehiculo]");
  2416. new player1, string[128];
  2417. player1 = strval(params);
  2418. CMDMessageToAdmins(playerid,"VGET");
  2419. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z);
  2420. SetVehiclePos(player1,x+3,y,z);
  2421. SetVehicleVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2422. format(string,sizeof(string),"Has traido a un vehiculo de IF %d a tu ubicacion", player1);
  2423. return SendClientMessage(playerid,blue,string);
  2424. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  2425. }
  2426.  
  2427. dcmd_lgoto(playerid,params[]) {
  2428. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2429. new Float:x, Float:y, Float:z;
  2430. new tmp[256], tmp2[256], tmp3[256];
  2431. new string[128], Index; tmp = strtok(params,Index); tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2432. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid,red,"USE: /lgoto [x] [y] [z]");
  2433. x = strval(tmp); y = strval(tmp2); z = strval(tmp3);
  2434. CMDMessageToAdmins(playerid,"LGOTO");
  2435. if(GetPlayerState(playerid) == 2) SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
  2436. else SetPlayerPos(playerid,x,y,z);
  2437. format(string,sizeof(string),"Has sido teletransportado a %f, %f, %f", x,y,z); return SendClientMessage(playerid,blue,string);
  2438. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  2439. }
  2440.  
  2441. dcmd_givecar(playerid,params[]) {
  2442. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2443. if(!strlen(params)) return SendClientMessage(playerid,red,"USE: /givecar [jugador]");
  2444. new player1 = strval(params), playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2445. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2446. if(IsPlayerInAnyVehicle(player1)) return SendClientMessage(playerid,red,"ERROR: El jugador esta en un vehiculo");
  2447. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2448. CMDMessageToAdmins(playerid,"GIVECAR");
  2449. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  2450. CarSpawner(player1,415);
  2451. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2452. format(string,sizeof(string),"El Administrador %s te ha dado un coche",adminname); SendClientMessage(player1,blue,string);
  2453. format(string,sizeof(string),"Le has dado a %s un coche", playername); return SendClientMessage(playerid,blue,string);
  2454. } else return SendClientMessage(playerid, red, "ERROR: El jugador no esta conectado o eres tu mismo");
  2455. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  2456. }
  2457.  
  2458. dcmd_gethere(playerid,params[]) {
  2459. if(PlayerInfo[playerid][Level] >= 3) {
  2460. if(!strlen(params)) return SendClientMessage(playerid, red, "USE: /gethere [jugador]");
  2461. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2462. player1 = strval(params);
  2463. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2464. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2465. CMDMessageToAdmins(playerid,"GETHERE");
  2466. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
  2467. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2468. if(GetPlayerState(player1) == 2) {
  2469. new VehicleID = GetPlayerVehicleID(player1);
  2470. SetVehiclePos(VehicleID,x+3,y,z); LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  2471. SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
  2472. } else SetPlayerPos(player1,x+2,y,z);
  2473. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2474. format(string,sizeof(string),"Has sido teletransportado a la ubicacion de %s",adminname); SendClientMessage(player1,blue,string);
  2475. format(string,sizeof(string),"Has traido a %s a tu ubicacion", playername); return SendClientMessage(playerid,blue,string);
  2476. } else return SendClientMessage(playerid, red, "ERROR: El jugador no esta conectado o eres tu mismo");
  2477. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  2478. }
  2479.  
  2480. dcmd_get(playerid,params[]) {
  2481. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2482. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /get [jugador]");
  2483. new player1, string[128];
  2484. if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
  2485. else player1 = strval(params);
  2486. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2487. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2488. CMDMessageToAdmins(playerid,"GET");
  2489. new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
  2490. SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2491. if(GetPlayerState(player1) == 2) {
  2492. new VehicleID = GetPlayerVehicleID(player1);
  2493. SetVehiclePos(VehicleID,x+3,y,z); LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  2494. SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
  2495. } else SetPlayerPos(player1,x+2,y,z);
  2496. format(string,sizeof(string),"Has sido teletransportado a la ubicacion de \"%s\"", pName(playerid) ); SendClientMessage(player1,blue,string);
  2497. format(string,sizeof(string),"Has traido a \"%s\" a tu ubicacion", pName(player1) );
  2498. return SendClientMessage(playerid,blue,string);
  2499. } else return SendClientMessage(playerid, red, "ERROR: El jugador no esta conectado o eres tu mismo");
  2500. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 3 para usar este comando");
  2501. }
  2502.  
  2503. dcmd_fu(playerid,params[]) {
  2504. if(PlayerInfo[playerid][Level] >= 2) {
  2505. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /fu [jugador]");
  2506. new player1 = strval(params), string[128], NewName[MAX_PLAYER_NAME];
  2507. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2508. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2509. CMDMessageToAdmins(playerid,"FU");
  2510. SetPlayerHealth(player1,1.0); SetPlayerArmour(player1,0.0); ResetPlayerWeapons(player1);ResetPlayerMoney(player1);GivePlayerWeapon(player1,12,1);
  2511. SetPlayerSkin(player1, 137); SetPlayerScore(player1, 0); SetPlayerColor(player1,COLOR_PINK); SetPlayerWeather(player1,19); SetPlayerWantedLevel(player1,6);
  2512. format(NewName,sizeof(NewName),"[PUTO]%s", pName(player1) ); SetPlayerName(player1,NewName);
  2513. if(IsPlayerInAnyVehicle(player1)) EraseVehicle(GetPlayerVehicleID(player1));
  2514. if(player1 != playerid) { format(string,sizeof(string),"~w~%s: ~r~Fuck You", pName(playerid) ); GameTextForPlayer(player1, string, 2500, 3); }
  2515. format(string,sizeof(string),"Fuck you \"%s\"", pName(player1) ); return SendClientMessage(playerid,blue,string);
  2516. } else return SendClientMessage(playerid, red, "ERROR: El jugador no esta conectado");
  2517. } else return SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 2 para usar este comando");
  2518. }
  2519.  
  2520. dcmd_warn(playerid,params[]) {
  2521. if(PlayerInfo[playerid][Level] >= 2) {
  2522. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2523. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /warn [playerid] [reason]");
  2524. new warned = strval(tmp), str[128];
  2525. if(PlayerInfo[warned][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2526. if(IsPlayerConnected(warned) && warned != INVALID_PLAYER_ID) {
  2527. if(warned != playerid) {
  2528. CMDMessageToAdmins(playerid,"WARN");
  2529. PlayerInfo[warned][Warnings]++;
  2530. if( PlayerInfo[warned][Warnings] == MAX_WARNINGS) {
  2531. 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);
  2532. SendClientMessageToAll(grey, str);
  2533. SaveToFile("KickLog",str); Kick(warned);
  2534. return PlayerInfo[warned][Warnings] = 0;
  2535. } else {
  2536. 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);
  2537. return SendClientMessageToAll(yellow, str);
  2538. }
  2539. } else return SendClientMessage(playerid, red, "ERROR: You cannot warn yourself");
  2540. } else return SendClientMessage(playerid, red, "ERROR: Player is not connected");
  2541. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2542. }
  2543.  
  2544. dcmd_kick(playerid,params[]) {
  2545. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2546. if(PlayerInfo[playerid][Level] >= 3) {
  2547. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2548. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /kick [playerid] [reason]");
  2549. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2550. player1 = strval(tmp);
  2551.  
  2552. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2553. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2554. CMDMessageToAdmins(playerid,"KICK");
  2555. if(!strlen(tmp2)) {
  2556. format(string,sizeof(string),"%s has been kicked by Administrator %s [no reason given] ",playername,adminname); SendClientMessageToAll(grey,string);
  2557. SaveToFile("KickLog",string); print(string); return Kick(player1);
  2558. } else {
  2559. format(string,sizeof(string),"%s has been kicked by Administrator %s [reason: %s] ",playername,adminname,params[2]); SendClientMessageToAll(grey,string);
  2560. SaveToFile("KickLog",string); print(string); return Kick(player1); }
  2561. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2562. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2563. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2564. }
  2565.  
  2566. dcmd_ban(playerid,params[]) {
  2567. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2568. if(PlayerInfo[playerid][Level] >= 4) {
  2569. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2570. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ban [playerid] [reason]");
  2571. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "ERROR: You must give a reason");
  2572. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2573. player1 = strval(tmp);
  2574.  
  2575. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2576. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2577. new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
  2578. CMDMessageToAdmins(playerid,"BAN");
  2579. 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);
  2580. SendClientMessageToAll(grey,string);
  2581. SaveToFile("BanLog",string);
  2582. print(string);
  2583. if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
  2584. format(string,sizeof(string),"banned by Administrator %s. Reason: %s", adminname, params[2] );
  2585. return BanEx(player1, string);
  2586. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2587. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2588. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2589. }
  2590.  
  2591. dcmd_rban(playerid,params[]) {
  2592. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2593. if(PlayerInfo[playerid][Level] >= 4) {
  2594. new ip[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2595. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /rban [playerid] [reason]");
  2596. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "ERROR: You must give a reason");
  2597. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2598. player1 = strval(tmp);
  2599.  
  2600. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2601. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2602. new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
  2603. CMDMessageToAdmins(playerid,"RBAN");
  2604. 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);
  2605. SendClientMessageToAll(grey,string);
  2606. SaveToFile("BanLog",string);
  2607. print(string);
  2608. if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
  2609. GetPlayerIp(player1,ip,sizeof(ip));
  2610. strdel(ip,strlen(ip)-2,strlen(ip));
  2611. format(ip,128,"%s**",ip);
  2612. format(ip,128,"banip %s",ip);
  2613. SendRconCommand(ip);
  2614. return 1;
  2615. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2616. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2617. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2618. }
  2619.  
  2620. dcmd_slap(playerid,params[]) {
  2621. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2622. if(PlayerInfo[playerid][Level] >= 2) {
  2623. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2624. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /slap [playerid] [reason/with]");
  2625. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2626. player1 = strval(tmp);
  2627.  
  2628. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2629. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2630. CMDMessageToAdmins(playerid,"SLAP");
  2631. new Float:Health, Float:x, Float:y, Float:z; GetPlayerHealth(player1,Health); SetPlayerHealth(player1,Health-25);
  2632. 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);
  2633.  
  2634. if(strlen(tmp2)) {
  2635. format(string,sizeof(string),"You have been slapped by Administrator %s %s ",adminname,params[2]); SendClientMessage(player1,red,string);
  2636. format(string,sizeof(string),"You have slapped %s %s ",playername,params[2]); return SendClientMessage(playerid,blue,string);
  2637. } else {
  2638. format(string,sizeof(string),"You have been slapped by Administrator %s ",adminname); SendClientMessage(player1,red,string);
  2639. format(string,sizeof(string),"You have slapped %s",playername); return SendClientMessage(playerid,blue,string); }
  2640. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2641. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2642. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2643. }
  2644.  
  2645. dcmd_explode(playerid,params[]) {
  2646. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2647. if(PlayerInfo[playerid][Level] >= 3) {
  2648. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2649. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /explode [playerid] [reason]");
  2650. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2651. player1 = strval(tmp);
  2652.  
  2653. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2654. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2655. CMDMessageToAdmins(playerid,"EXPLODE");
  2656. new Float:burnx, Float:burny, Float:burnz; GetPlayerPos(player1,burnx, burny, burnz); CreateExplosion(burnx, burny , burnz, 7,10.0);
  2657.  
  2658. if(strlen(tmp2)) {
  2659. format(string,sizeof(string),"You have been exploded by Administrator %s [reason: %s]",adminname,params[2]); SendClientMessage(player1,blue,string);
  2660. format(string,sizeof(string),"You have exploded %s [reason: %s]", playername,params[2]); return SendClientMessage(playerid,blue,string);
  2661. } else {
  2662. format(string,sizeof(string),"You have been exploded by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2663. format(string,sizeof(string),"You have exploded %s", playername); return SendClientMessage(playerid,blue,string); }
  2664. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2665. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2666. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2667. }
  2668.  
  2669. dcmd_jail(playerid,params[]) {
  2670. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2671. if(PlayerInfo[playerid][Level] >= 3) {
  2672. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  2673. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid] [minutes] [reason]");
  2674. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2675. player1 = strval(tmp);
  2676.  
  2677. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2678. if(PlayerInfo[player1][Jailed] == 0) {
  2679. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2680. new jtime = strval(tmp2);
  2681. if(jtime == 0) jtime = 9999;
  2682.  
  2683. CMDMessageToAdmins(playerid,"JAIL");
  2684. PlayerInfo[player1][JailTime] = jtime*1000*60;
  2685. SetTimerEx("JailPlayer",5000,0,"d",player1);
  2686. SetTimerEx("Jail1",1000,0,"d",player1);
  2687. PlayerInfo[player1][Jailed] = 1;
  2688.  
  2689. if(jtime == 9999) {
  2690. if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has jailed %s ",adminname, playername);
  2691. else format(string,sizeof(string),"Administrator %s has jailed %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
  2692. } else {
  2693. if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes",adminname, playername, jtime);
  2694. else format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes [reason: %s]",adminname, playername, jtime, params[strlen(tmp2)+strlen(tmp)+1] );
  2695. }
  2696. return SendClientMessageToAll(blue,string);
  2697. } else return SendClientMessage(playerid, red, "Player is already in jail");
  2698. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2699. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2700. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2701. }
  2702.  
  2703. dcmd_unjail(playerid,params[]) {
  2704. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2705. if(PlayerInfo[playerid][Level] >= 3) {
  2706. new tmp[256], Index; tmp = strtok(params,Index);
  2707. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid]");
  2708. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2709. player1 = strval(tmp);
  2710.  
  2711. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2712. if(PlayerInfo[player1][Jailed] == 1) {
  2713. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2714. format(string,sizeof(string),"Administrator %s has unjailed you",adminname); SendClientMessage(player1,blue,string);
  2715. format(string,sizeof(string),"Administrator %s has unjailed %s",adminname, playername);
  2716. JailRelease(player1);
  2717. return SendClientMessageToAll(blue,string);
  2718. } else return SendClientMessage(playerid, red, "Player is not in jail");
  2719. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2720. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2721. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2722. }
  2723.  
  2724. dcmd_jailed(playerid,params[]) {
  2725. #pragma unused params
  2726. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2727. if(PlayerInfo[playerid][Level] >= 2) {
  2728. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2729. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed]) Count++;
  2730. if(Count == 0) return SendClientMessage(playerid,red, "No players are jailed");
  2731.  
  2732. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed]) {
  2733. GetPlayerName(i, adminname, sizeof(adminname));
  2734. if(!First2) { format(string, sizeof(string), "Jailed Players: (%d)%s", i,adminname); First2 = true; }
  2735. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2736. }
  2737. return SendClientMessage(playerid,COLOR_WHITE,string);
  2738. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2739. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2740. }
  2741.  
  2742. dcmd_freeze(playerid,params[]) {
  2743. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2744. if(PlayerInfo[playerid][Level] >= 3) {
  2745. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  2746. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /freeze [playerid] [minutes] [reason]");
  2747. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2748. player1 = strval(tmp);
  2749.  
  2750. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2751. if(PlayerInfo[player1][Frozen] == 0) {
  2752. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2753. new ftime = strval(tmp2);
  2754. if(ftime == 0) ftime = 9999;
  2755.  
  2756. CMDMessageToAdmins(playerid,"FREEZE");
  2757. TogglePlayerControllable(player1,false); PlayerInfo[player1][Frozen] = 1; PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  2758. PlayerInfo[player1][FreezeTime] = ftime*1000*60;
  2759. FreezeTimer[player1] = SetTimerEx("UnFreezeMe",PlayerInfo[player1][FreezeTime],0,"d",player1);
  2760.  
  2761. if(ftime == 9999) {
  2762. if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has frozen %s ",adminname, playername);
  2763. else format(string,sizeof(string),"Administrator %s has frozen %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
  2764. } else {
  2765. if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has frozen %s for %d minutes",adminname, playername, ftime);
  2766. else format(string,sizeof(string),"Administrator %s has frozen %s for %d minutes [reason: %s]",adminname, playername, ftime, params[strlen(tmp2)+strlen(tmp)+1] );
  2767. }
  2768. return SendClientMessageToAll(blue,string);
  2769. } else return SendClientMessage(playerid, red, "Player is already frozen");
  2770. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2771. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2772. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2773. }
  2774.  
  2775. dcmd_unfreeze(playerid,params[]) {
  2776. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2777. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2778. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /unfreeze [playerid]");
  2779. new player1, string[128];
  2780. player1 = strval(params);
  2781.  
  2782. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2783. if(PlayerInfo[player1][Frozen] == 1) {
  2784. CMDMessageToAdmins(playerid,"UNFREEZE");
  2785. UnFreezeMe(player1);
  2786. format(string,sizeof(string),"Administrator %s has unfrozen you", PlayerName2(playerid) ); SendClientMessage(player1,blue,string);
  2787. format(string,sizeof(string),"Administrator %s has unfrozen %s", PlayerName2(playerid), PlayerName2(player1));
  2788. return SendClientMessageToAll(blue,string);
  2789. } else return SendClientMessage(playerid, red, "Player is not frozen");
  2790. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2791. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2792. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2793. }
  2794.  
  2795. dcmd_frozen(playerid,params[]) {
  2796. #pragma unused params
  2797. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2798. if(PlayerInfo[playerid][Level] >= 2) {
  2799. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2800. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen]) Count++;
  2801. if(Count == 0) return SendClientMessage(playerid,red, "No players are frozen");
  2802.  
  2803. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen]) {
  2804. GetPlayerName(i, adminname, sizeof(adminname));
  2805. if(!First2) { format(string, sizeof(string), "Frozen Players: (%d)%s", i,adminname); First2 = true; }
  2806. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2807. }
  2808. return SendClientMessage(playerid,COLOR_WHITE,string);
  2809. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2810. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2811. }
  2812.  
  2813. dcmd_mute(playerid,params[]) {
  2814. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2815. if(PlayerInfo[playerid][Level] >= 2) {
  2816. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2817. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /mute [playerid] [reason]");
  2818. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2819. player1 = strval(tmp);
  2820.  
  2821. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2822. if(PlayerInfo[player1][Muted] == 0) {
  2823. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2824. CMDMessageToAdmins(playerid,"MUTE");
  2825. PlayerPlaySound(player1,1057,0.0,0.0,0.0); PlayerInfo[player1][Muted] = 1; PlayerInfo[player1][MuteWarnings] = 0;
  2826.  
  2827. if(strlen(tmp2)) {
  2828. format(string,sizeof(string),"You have been muted by Administrator %s [reason: %s]",adminname,params[2]); SendClientMessage(player1,blue,string);
  2829. format(string,sizeof(string),"You have muted %s [reason: %s]", playername,params[2]); return SendClientMessage(playerid,blue,string);
  2830. } else {
  2831. format(string,sizeof(string),"You have been muted by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2832. format(string,sizeof(string),"You have muted %s", playername); return SendClientMessage(playerid,blue,string); }
  2833. } else return SendClientMessage(playerid, red, "Player is already muted");
  2834. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2835. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2836. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2837. }
  2838.  
  2839. dcmd_unmute(playerid,params[]) {
  2840. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2841. if(PlayerInfo[playerid][Level] >= 2) {
  2842. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /unmute [playerid]");
  2843. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2844. player1 = strval(params);
  2845.  
  2846. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2847. if(PlayerInfo[player1][Muted] == 1) {
  2848. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2849. CMDMessageToAdmins(playerid,"UNMUTE");
  2850. PlayerPlaySound(player1,1057,0.0,0.0,0.0); PlayerInfo[player1][Muted] = 0; PlayerInfo[player1][MuteWarnings] = 0;
  2851. format(string,sizeof(string),"You have been unmuted by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2852. format(string,sizeof(string),"You have unmuted %s", playername); return SendClientMessage(playerid,blue,string);
  2853. } else return SendClientMessage(playerid, red, "Player is not muted");
  2854. } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2855. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2856. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2857. }
  2858.  
  2859. dcmd_muted(playerid,params[]) {
  2860. #pragma unused params
  2861. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2862. if(PlayerInfo[playerid][Level] >= 2) {
  2863. new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2864. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted]) Count++;
  2865. if(Count == 0) return SendClientMessage(playerid,red, "No players are muted");
  2866.  
  2867. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted]) {
  2868. GetPlayerName(i, adminname, sizeof(adminname));
  2869. if(!First2) { format(string, sizeof(string), "Muted Players: (%d)%s", i,adminname); First2 = true; }
  2870. else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2871. }
  2872. return SendClientMessage(playerid,COLOR_WHITE,string);
  2873. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2874. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2875. }
  2876.  
  2877. dcmd_akill(playerid,params[]) {
  2878. if(PlayerInfo[playerid][LoggedIn] == 1) {
  2879. if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2880. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /akill [playerid]");
  2881. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2882. player1 = strval(params);
  2883.  
  2884. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2885. if( (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel] ) )
  2886. return SendClientMessage(playerid, red, "You cannot akill the highest level admin");
  2887. CMDMessageToAdmins(playerid,"AKILL");
  2888. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2889. format(string,sizeof(string),"Administrator %s has killed you",adminname); SendClientMessage(player1,blue,string);
  2890. format(string,sizeof(string),"You have killed %s",playername); SendClientMessage(playerid,blue,string);
  2891. return SetPlayerHealth(player1,0.0);
  2892. } else return SendClientMessage(playerid, red, "Player is not connected");
  2893. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2894. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2895. }
  2896.  
  2897. dcmd_weaps(playerid,params[]) {
  2898. if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  2899. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /weaps [playerid]");
  2900. new player1, string[128], string2[64], WeapName[24], slot, weap, ammo, Count, x;
  2901. player1 = strval(params);
  2902.  
  2903. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2904. format(string2,sizeof(string2),"[>> %s Weapons (id:%d) <<]", PlayerName2(player1), player1); SendClientMessage(playerid,blue,string2);
  2905. for (slot = 0; slot < 14; slot++) { GetPlayerWeaponData(player1, slot, weap, ammo); if( ammo != 0 && weap != 0) Count++; }
  2906. if(Count < 1) return SendClientMessage(playerid,blue,"Player has no weapons");
  2907.  
  2908. if(Count >= 1)
  2909. {
  2910. for (slot = 0; slot < 14; slot++)
  2911. {
  2912. GetPlayerWeaponData(player1, slot, weap, ammo);
  2913. if( ammo != 0 && weap != 0)
  2914. {
  2915. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  2916. if(ammo == 65535 || ammo == 1) format(string,sizeof(string),"%s%s (1)",string, WeapName );
  2917. else format(string,sizeof(string),"%s%s (%d)",string, WeapName, ammo );
  2918. x++;
  2919. if(x >= 5)
  2920. {
  2921. SendClientMessage(playerid, blue, string);
  2922. x = 0;
  2923. format(string, sizeof(string), "");
  2924. }
  2925. else format(string, sizeof(string), "%s, ", string);
  2926. }
  2927. }
  2928. if(x <= 4 && x > 0) {
  2929. string[strlen(string)-3] = '.';
  2930. SendClientMessage(playerid, blue, string);
  2931. }
  2932. }
  2933. return 1;
  2934. } else return SendClientMessage(playerid, red, "Player is not connected");
  2935. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2936. }
  2937.  
  2938. dcmd_aka(playerid,params[]) {
  2939. if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2940. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /aka [playerid]");
  2941. new player1, playername[MAX_PLAYER_NAME], str[128], tmp3[50];
  2942. player1 = strval(params);
  2943. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2944. GetPlayerIp(player1,tmp3,50);
  2945. GetPlayerName(player1, playername, sizeof(playername));
  2946. format(str,sizeof(str),"AKA: [%s id:%d] [%s] %s", playername, player1, tmp3, dini_Get("ladmin/config/aka.txt",tmp3) );
  2947. return SendClientMessage(playerid,blue,str);
  2948. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2949. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2950. }
  2951.  
  2952. dcmd_screen(playerid,params[]) {
  2953. if(PlayerInfo[playerid][Level] >= 2) {
  2954. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2955. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /screen [playerid] [text]");
  2956. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2957. player1 = strval(params);
  2958.  
  2959. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2960. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2961. CMDMessageToAdmins(playerid,"SCREEN");
  2962. format(string,sizeof(string),"Administrator %s has sent you a screen message",adminname); SendClientMessage(player1,blue,string);
  2963. format(string,sizeof(string),"You have sent %s a screen message (%s)", playername, params[2]); SendClientMessage(playerid,blue,string);
  2964. return GameTextForPlayer(player1, params[2],4000,3);
  2965. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2966. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2967. }
  2968.  
  2969. dcmd_laston(playerid,params[]) {
  2970. if(PlayerInfo[playerid][Level] >= 2) {
  2971. new tmp2[256], file[256],player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], str[128];
  2972. GetPlayerName(playerid, adminname, sizeof(adminname));
  2973.  
  2974. if(!strlen(params)) {
  2975. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(adminname));
  2976. if(!fexist(file)) return SendClientMessage(playerid, red, "Error: File doesnt exist, player isnt registered");
  2977. if(dUserINT(PlayerName2(playerid)).("LastOn")==0) { format(str, sizeof(str),"Never"); tmp2 = str;
  2978. } else { tmp2 = dini_Get(file,"LastOn"); }
  2979. format(str, sizeof(str),"You were last on the server on %s",tmp2);
  2980. return SendClientMessage(playerid, red, str);
  2981. }
  2982. player1 = strval(params);
  2983. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2984. CMDMessageToAdmins(playerid,"LASTON");
  2985. GetPlayerName(player1,playername,sizeof(playername)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(playername));
  2986. if(!fexist(file)) return SendClientMessage(playerid, red, "Error: File doesnt exist, player isnt registered");
  2987. if(dUserINT(PlayerName2(player1)).("LastOn")==0) { format(str, sizeof(str),"Never"); tmp2 = str;
  2988. } else { tmp2 = dini_Get(file,"LastOn"); }
  2989. format(str, sizeof(str),"%s was last on the server on %s",playername,tmp2);
  2990. return SendClientMessage(playerid, red, str);
  2991. } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2992. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2993. }
  2994.  
  2995. dcmd_admins(playerid,params[]) {
  2996. #pragma unused params
  2997. new Count[2], i, string[128];
  2998. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
  2999. {
  3000. if(PlayerInfo[i][Level] > 0) Count[0]++;
  3001. if(IsPlayerAdmin(i)) Count[1]++;
  3002. }
  3003.  
  3004. #if defined HIDE_ADMINS
  3005. if(PlayerInfo[playerid][Level] == 0) {
  3006. if(Count[0] >= 1) {
  3007. format(string, sizeof(string), "Hay %d Administradores en linea. Use /report <id> <razon> isi encuentra a un jugador usando cheats", Count[0]);
  3008. return SendClientMessage(playerid, blue, string);
  3009. } else return SendClientMessage(playerid, blue, "No hay ningun Administrador en linea");
  3010. }
  3011. #endif
  3012.  
  3013. if( (Count[0] == 0 && Count[1] == 0) || (Count[0] == 0 && Count[1] >= 1 && PlayerInfo[playerid][Level] == 0) ) return SendClientMessage(playerid, blue, "No Administrators online");
  3014.  
  3015. if(Count[0] == 1) {
  3016. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] > 0) {
  3017. format(string, sizeof(string), "Administradores: (%d)%s [%d]", i, PlayerName2(i), PlayerInfo[i][Level] ); SendClientMessage(playerid, blue, string);
  3018. }
  3019. }
  3020.  
  3021. if(Count[0] > 1) {
  3022. new x; format(string, sizeof(string), "Administradores: ");
  3023. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] > 0)
  3024. {
  3025. format(string,sizeof(string),"%s(%d)%s [%d]",string,i,PlayerName2(i),PlayerInfo[i][Level]);
  3026. x++;
  3027. if(x >= 5) {
  3028. SendClientMessage(playerid, blue, string); format(string, sizeof(string), "Administradores: "); x = 0;
  3029. }
  3030. else format(string, sizeof(string), "%s, ", string);
  3031. }
  3032. if(x <= 4 && x > 0) {
  3033. string[strlen(string)-3] = '.';
  3034. SendClientMessage(playerid, blue, string);
  3035. }
  3036. }
  3037.  
  3038. if( (Count[1] == 1) && (PlayerInfo[playerid][Level] > 0) ) {
  3039. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) {
  3040. format(string, sizeof(string), "Administradores RCON: (%d)%s", i, PlayerName2(i)); SendClientMessage(playerid, COLOR_WHITE, string);
  3041. }
  3042. }
  3043. if(Count[1] > 1) {
  3044. new x; format(string, sizeof(string), "Administradores RCON: ");
  3045. for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i))
  3046. {
  3047. format(string,sizeof(string),"%s(%d)%s",string,i,PlayerName2(i));
  3048. x++;
  3049. if(x >= 5) {
  3050. SendClientMessage(playerid, COLOR_WHITE, string); format(string, sizeof(string), "Administradores RCON: "); x = 0;
  3051. }
  3052. else format(string, sizeof(string), "%s, ", string);
  3053. }
  3054. if(x <= 4 && x > 0) {
  3055. string[strlen(string)-3] = '.';
  3056. SendClientMessage(playerid, COLOR_WHITE, string);
  3057. }
  3058. }
  3059. return 1;
  3060. }
  3061.  
  3062. dcmd_morning(playerid,params[]) {
  3063. #pragma unused params
  3064. if(PlayerInfo[playerid][Level] >= 1) {
  3065. CMDMessageToAdmins(playerid,"MORNING");
  3066. return SetPlayerTime(playerid,7,0);
  3067. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  3068. }
  3069.  
  3070. dcmd_adminarea(playerid,params[]) {
  3071. #pragma unused params
  3072. if(PlayerInfo[playerid][Level] >= 1) {
  3073. CMDMessageToAdmins(playerid,"ADMINAREA");
  3074. SetPlayerPos(playerid, AdminArea[0], AdminArea[1], AdminArea[2]);
  3075. SetPlayerFacingAngle(playerid, AdminArea[3]);
  3076. SetPlayerInterior(playerid, AdminArea[4]);
  3077. SetPlayerVirtualWorld(playerid, AdminArea[5]);
  3078. return GameTextForPlayer(playerid,"Welcome Admin",1000,3);
  3079. } else {
  3080. SetPlayerHealth(playerid,1.0);
  3081. new string[100]; format(string, sizeof(string),"%s has used adminarea (non admin)", PlayerName2(playerid) );
  3082. MessageToAdmins(red,string);
  3083. } return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command.");
  3084. }
  3085.  
  3086. dcmd_setlevel(playerid,params[]) {
  3087. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3088. if(PlayerInfo[playerid][Level] >= 20 || IsPlayerAdmin(playerid)) {
  3089. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3090. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");
  3091. new player1, level, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3092. player1 = strval(tmp);
  3093. if(!strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");
  3094. level = strval(tmp2);
  3095.  
  3096. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3097. if(PlayerInfo[player1][LoggedIn] == 1) {
  3098. if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
  3099. if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  3100. CMDMessageToAdmins(playerid,"SETLEVEL");
  3101. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3102. new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  3103.  
  3104. if(level > 0) format(string,sizeof(string),"Administrator %s has set you to Administrator Status [level %d]",adminname, level);
  3105. else format(string,sizeof(string),"Administrator %s has set you to Player Status [level %d]",adminname, level);
  3106. SendClientMessage(player1,blue,string);
  3107.  
  3108. if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"Promoted", 2000, 3);
  3109. else GameTextForPlayer(player1,"Demoted", 2000, 3);
  3110.  
  3111. 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);
  3112. 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);
  3113. SaveToFile("AdminLog",string);
  3114. dUserSetINT(PlayerName2(player1)).("level",(level));
  3115. PlayerInfo[player1][Level] = level;
  3116. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  3117. } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
  3118. } else return SendClientMessage(playerid, red, "Player is not connected");
  3119. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3120. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3121. }
  3122.  
  3123. dcmd_settemplevel(playerid,params[]) {
  3124. if(PlayerInfo[playerid][LoggedIn] == 1) {
  3125. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  3126. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3127. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /settemplevel [playerid] [level]");
  3128. new player1, level, string[128];
  3129. player1 = strval(tmp);
  3130. level = strval(tmp2);
  3131.  
  3132. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3133. if(PlayerInfo[player1][LoggedIn] == 1) {
  3134. if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
  3135. if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  3136. CMDMessageToAdmins(playerid,"SETTEMPLEVEL");
  3137. new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  3138.  
  3139. if(level > 0) format(string,sizeof(string),"Administrator %s has temporarily set you to Administrator Status [level %d]", pName(playerid), level);
  3140. else format(string,sizeof(string),"Administrator %s has temporarily set you to Player Status [level %d]", pName(playerid), level);
  3141. SendClientMessage(player1,blue,string);
  3142.  
  3143. if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"Promoted", 2000, 3);
  3144. else GameTextForPlayer(player1,"Demoted", 2000, 3);
  3145.  
  3146. 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);
  3147. 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);
  3148. SaveToFile("TempAdminLog",string);
  3149. PlayerInfo[player1][Level] = level;
  3150. return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  3151. } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
  3152. } else return SendClientMessage(playerid, red, "Player is not connected");
  3153. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3154. } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3155. }
  3156.  
  3157. dcmd_report(playerid,params[]) {
  3158. new reported, tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3159. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /report [playerid] [reason]");
  3160. reported = strval(tmp);
  3161.  
  3162. if(IsPlayerConnected(reported) && reported != INVALID_PLAYER_ID) {
  3163. if(PlayerInfo[reported][Level] == ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: Usted no puede Reportar a este Admin");
  3164. if(playerid == reported) return SendClientMessage(playerid,red,"ERROR: No te puedes reportar a ti mismo");
  3165. if(strlen(params) > 7) {
  3166. new reportedname[MAX_PLAYER_NAME], reporter[MAX_PLAYER_NAME], str[128], hour,minute,second; gettime(hour,minute,second);
  3167. GetPlayerName(reported, reportedname, sizeof(reportedname)); GetPlayerName(playerid, reporter, sizeof(reporter));
  3168. 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);
  3169. MessageToAdmins(COLOR_WHITE,str);
  3170. SaveToFile("ReportLog",str);
  3171. 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]);
  3172. for(new i = 1; i < MAX_REPORTS-1; i++) Reports[i] = Reports[i+1];
  3173. Reports[MAX_REPORTS-1] = str;
  3174. return SendClientMessage(playerid,yellow, "Your report has been sent to online administrators.");
  3175. } else return SendClientMessage(playerid,red,"ERROR: Must be a valid reason");
  3176. } else return SendClientMessage(playerid, red, "Player is not connected");
  3177. }
  3178.  
  3179. dcmd_reports(playerid,params[]) {
  3180. #pragma unused params
  3181. if(PlayerInfo[playerid][Level] >= 1) {
  3182. new ReportCount;
  3183. for(new i = 1; i < MAX_REPORTS; i++)
  3184. {
  3185. if(strcmp( Reports[i], "<none>", true) != 0) { ReportCount++; SendClientMessage(playerid,COLOR_WHITE,Reports[i]); }
  3186. }
  3187. if(ReportCount == 0) SendClientMessage(playerid,COLOR_WHITE,"No hay reportes");
  3188. } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  3189. return 1;
  3190. }
  3191.  
  3192. dcmd_richlist(playerid,params[]) {
  3193. #pragma unused params
  3194. if(PlayerInfo[playerid][Level] >= 1) {
  3195. new string[128], Slot1 = -1, Slot2 = -1, Slot3 = -1, Slot4 = -1, HighestCash = -9999;
  3196. SendClientMessage(playerid,COLOR_WHITE,"Rich List:");
  3197.  
  3198. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x)) if (GetPlayerMoney(x) >= HighestCash) {
  3199. HighestCash = GetPlayerMoney(x);
  3200. Slot1 = x;
  3201. }
  3202. HighestCash = -9999;
  3203. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1) if (GetPlayerMoney(x) >= HighestCash) {
  3204. HighestCash = GetPlayerMoney(x);
  3205. Slot2 = x;
  3206. }
  3207. HighestCash = -9999;
  3208. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1 && x != Slot2) if (GetPlayerMoney(x) >= HighestCash) {
  3209. HighestCash = GetPlayerMoney(x);
  3210. Slot3 = x;
  3211. }
  3212. HighestCash = -9999;
  3213. for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1 && x != Slot2 && x != Slot3) if (GetPlayerMoney(x) >= HighestCash) {
  3214. HighestCash = GetPlayerMoney(x);
  3215. Slot4 = x;
  3216. }
  3217. format(string, sizeof(string), "(%d) %s - $%d", Slot1,PlayerName2(Slot1),GetPlayerMoney(Slot1) );
  3218. SendClientMessage(playerid,COLOR_WHITE,string);
  3219. if(Slot2 != -1) {
  3220. format(string, sizeof(string), "(%d) %s - $%d", Slot2,PlayerName2(Slot2),GetPlayerMoney(Slot2) );
  3221. SendClientMessage(playerid,COLOR_WHITE,string);
  3222. }
  3223. if(Slot3 != -1) {
  3224. format(string, sizeof(string), "(%d) %s - $%d", Slot3,PlayerName2(Slot3),GetPlayerMoney(Slot3) );
  3225. SendClientMessage(playerid,COLOR_WHITE,string);
  3226. }
  3227. if(Slot4 != -1) {
  3228. format(string, sizeof(string), "(%d) %s - $%d", Slot4,PlayerName2(Slot4),GetPlayerMoney(Slot4) );
  3229. SendClientMessage(playerid,COLOR_WHITE,string);
  3230. }
  3231. return 1;
  3232. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3233. }
  3234.  
  3235. dcmd_miniguns(playerid,params[]) {
  3236. #pragma unused params
  3237. if(PlayerInfo[playerid][Level] >= 1) {
  3238. new bool:First2 = false, Count, string[128], i, slot, weap, ammo;
  3239. for(i = 0; i < MAX_PLAYERS; i++) {
  3240. if(IsPlayerConnected(i)) {
  3241. for(slot = 0; slot < 14; slot++) {
  3242. GetPlayerWeaponData(i, slot, weap, ammo);
  3243. if(ammo != 0 && weap == 38) {
  3244. Count++;
  3245. if(!First2) { format(string, sizeof(string), "Minigun: (%d)%s(ammo%d)", i, PlayerName2(i), ammo); First2 = true; }
  3246. else format(string,sizeof(string),"%s, (%d)%s(ammo%d) ",string, i, PlayerName2(i), ammo);
  3247. }
  3248. }
  3249. }
  3250. }
  3251. if(Count == 0) return SendClientMessage(playerid,COLOR_WHITE,"No players have a minigun"); else return SendClientMessage(playerid,COLOR_WHITE,string);
  3252. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3253. }
  3254.  
  3255. dcmd_uconfig(playerid,params[]) {
  3256. #pragma unused params
  3257. if(PlayerInfo[playerid][Level] >= 4)
  3258. {
  3259. UpdateConfig();
  3260. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  3261. return CMDMessageToAdmins(playerid,"UCONFIG");
  3262. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3263. }
  3264.  
  3265. dcmd_botcheck(playerid,params[]) {
  3266. #pragma unused params
  3267. if(PlayerInfo[playerid][Level] >= 4) {
  3268. for(new i=0; i<MAX_PLAYERS; i++) BotCheck(i);
  3269. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  3270. return CMDMessageToAdmins(playerid,"BOTCHECK");
  3271. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3272. }
  3273.  
  3274. dcmd_lockserver(playerid,params[]) {
  3275. if(PlayerInfo[playerid][Level] >= 4) {
  3276. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /lockserver [password]");
  3277. new adminname[MAX_PLAYER_NAME], string[128];
  3278. ServerInfo[Locked] = 1;
  3279. strmid(ServerInfo[Password], params[0], 0, strlen(params[0]), 128);
  3280. GetPlayerName(playerid, adminname, sizeof(adminname));
  3281. format(string, sizeof(string), "Administrator \"%s\" has locked the server",adminname);
  3282. SendClientMessageToAll(red,"________________________________________");
  3283. SendClientMessageToAll(red," ");
  3284. SendClientMessageToAll(red,string);
  3285. SendClientMessageToAll(red,"________________________________________");
  3286. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][AllowedIn] = true; }
  3287. CMDMessageToAdmins(playerid,"LOCKSERVER");
  3288. format(string, sizeof(string), "Administrator \"%s\" has set the server password to '%s'",adminname, ServerInfo[Password] );
  3289. return MessageToAdmins(COLOR_WHITE, string);
  3290. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3291. }
  3292.  
  3293. dcmd_unlockserver(playerid,params[]) {
  3294. #pragma unused params
  3295. if(PlayerInfo[playerid][Level] >= 4) {
  3296. if(ServerInfo[Locked] == 1) {
  3297. new adminname[MAX_PLAYER_NAME], string[128];
  3298. ServerInfo[Locked] = 0;
  3299. strmid(ServerInfo[Password], "", 0, strlen(""), 128);
  3300. GetPlayerName(playerid, adminname, sizeof(adminname));
  3301. format(string, sizeof(string), "Administrator \"%s\" has unlocked the server",adminname);
  3302. SendClientMessageToAll(green,"________________________________________");
  3303. SendClientMessageToAll(green," ");
  3304. SendClientMessageToAll(green,string);
  3305. SendClientMessageToAll(green,"________________________________________");
  3306. for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][AllowedIn] = true; }
  3307. return CMDMessageToAdmins(playerid,"UNLOCKSERVER");
  3308. } else return SendClientMessage(playerid,red,"ERROR: Server is not locked");
  3309. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3310. }
  3311.  
  3312. dcmd_password(playerid,params[]) {
  3313. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /password [password]");
  3314. if(ServerInfo[Locked] == 1) {
  3315. if(PlayerInfo[playerid][AllowedIn] == false) {
  3316. if(!strcmp(ServerInfo[Password],params[0],true)) {
  3317. KillTimer( LockKickTimer[playerid] );
  3318. PlayerInfo[playerid][AllowedIn] = true;
  3319. new string[128];
  3320. SendClientMessage(playerid,COLOR_WHITE,"You have successsfully entered the server password and may now spawn");
  3321. format(string, sizeof(string), "%s has successfully entered server password",PlayerName2(playerid));
  3322. return MessageToAdmins(COLOR_WHITE, string);
  3323. } else return SendClientMessage(playerid,red,"ERROR: Incorrect server password");
  3324. } else return SendClientMessage(playerid,red,"ERROR: You are already logged in");
  3325. } else return SendClientMessage(playerid,red,"ERROR: Server isnt Locked");
  3326. }
  3327.  
  3328. //------------------------------------------------------------------------------
  3329. dcmd_forbidname(playerid,params[]) {
  3330. if(PlayerInfo[playerid][Level] >= 4) {
  3331. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /forbidname [nickname]");
  3332. new File:BLfile, string[128];
  3333. BLfile = fopen("ladmin/config/ForbiddenNames.cfg",io_append);
  3334. format(string,sizeof(string),"%s\r\n",params[1]);
  3335. fwrite(BLfile,string);
  3336. fclose(BLfile);
  3337. UpdateConfig();
  3338. CMDMessageToAdmins(playerid,"FORBIDNAME");
  3339. format(string, sizeof(string), "Administrator \"%s\" has added the name \"%s\" to the forbidden name list", pName(playerid), params );
  3340. return MessageToAdmins(green,string);
  3341. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3342. }
  3343.  
  3344. dcmd_forbidword(playerid,params[]) {
  3345. if(PlayerInfo[playerid][Level] >= 4) {
  3346. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /forbidword [word]");
  3347. new File:BLfile, string[128];
  3348. BLfile = fopen("ladmin/config/ForbiddenWords.cfg",io_append);
  3349. format(string,sizeof(string),"%s\r\n",params[1]);
  3350. fwrite(BLfile,string);
  3351. fclose(BLfile);
  3352. UpdateConfig();
  3353. CMDMessageToAdmins(playerid,"FORBIDWORD");
  3354. format(string, sizeof(string), "Administrator \"%s\" has added the word \"%s\" to the forbidden word list", pName(playerid), params );
  3355. return MessageToAdmins(green,string);
  3356. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3357. }
  3358.  
  3359. //==========================[ Spectate Commands ]===============================
  3360. #if defined ENABLE_SPEC
  3361.  
  3362. dcmd_lspec(playerid,params[]) {
  3363. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3364. if(!strlen(params) || !IsNumeric(params)) return SendClientMessage(playerid, red, "USAGE: /lspec [playerid]");
  3365. new specplayerid = strval(params);
  3366. if(PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3367. if(IsPlayerConnected(specplayerid) && specplayerid != INVALID_PLAYER_ID) {
  3368. if(specplayerid == playerid) return SendClientMessage(playerid, red, "ERROR: You cannot spectate yourself");
  3369. if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && PlayerInfo[specplayerid][SpecID] != INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "Spectate: Player spectating someone else");
  3370. if(GetPlayerState(specplayerid) != 1 && GetPlayerState(specplayerid) != 2 && GetPlayerState(specplayerid) != 3) return SendClientMessage(playerid, red, "Spectate: Player not spawned");
  3371. if( (PlayerInfo[specplayerid][Level] != ServerInfo[MaxAdminLevel]) || (PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] == ServerInfo[MaxAdminLevel]) ) {
  3372. StartSpectate(playerid, specplayerid);
  3373. CMDMessageToAdmins(playerid,"LSPEC");
  3374. GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  3375. GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  3376. return SendClientMessage(playerid,blue,"Now Spectating");
  3377. } else return SendClientMessage(playerid,red,"ERROR: You cannot spectate the highest level admin");
  3378. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3379. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3380. }
  3381.  
  3382. dcmd_lspecvehicle(playerid,params[]) {
  3383. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3384. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /lspecvehicle [vehicleid]");
  3385. new specvehicleid = strval(params);
  3386. if(specvehicleid < MAX_VEHICLES) {
  3387. TogglePlayerSpectating(playerid, 1);
  3388. PlayerSpectateVehicle(playerid, specvehicleid);
  3389. PlayerInfo[playerid][SpecID] = specvehicleid;
  3390. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  3391. CMDMessageToAdmins(playerid,"SPEC VEHICLE");
  3392. GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  3393. GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  3394. return SendClientMessage(playerid,blue,"Now Spectating");
  3395. } else return SendClientMessage(playerid,red, "ERROR: Invalid Vehicle ID");
  3396. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3397. }
  3398. dcmd_lspecoff(playerid,params[]) {
  3399. #pragma unused params
  3400. if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3401. if(PlayerInfo[playerid][SpecType] != ADMIN_SPEC_TYPE_NONE) {
  3402. StopSpectate(playerid);
  3403. SetTimerEx("PosAfterSpec",3000,0,"d",playerid);
  3404. return SendClientMessage(playerid,blue,"No Longer Spectating");
  3405. } else return SendClientMessage(playerid,red,"ERROR: You are not spectating");
  3406. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3407. }
  3408.  
  3409. #endif
  3410.  
  3411. //==========================[ CHAT COMMANDS ]===================================
  3412.  
  3413. dcmd_disablechat(playerid,params[]) {
  3414. #pragma unused params
  3415. if(PlayerInfo[playerid][Level] >= 3) {
  3416. CMDMessageToAdmins(playerid,"DISABLECHAT");
  3417. new string[128];
  3418. if(ServerInfo[DisableChat] == 0) {
  3419. ServerInfo[DisableChat] = 1;
  3420. format(string,sizeof(string),"Administrator \"%s\" has disabled chat", pName(playerid) );
  3421. } else {
  3422. ServerInfo[DisableChat] = 0;
  3423. format(string,sizeof(string),"Administrator \"%s\" has enabled chat", pName(playerid) );
  3424. } return SendClientMessageToAll(blue,string);
  3425. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3426. }
  3427.  
  3428. dcmd_clearchat(playerid,params[]) {
  3429. #pragma unused params
  3430. if(PlayerInfo[playerid][Level] >= 2) {
  3431. CMDMessageToAdmins(playerid,"CLEARCHAT");
  3432. for(new i = 0; i < 11; i++) SendClientMessageToAll(green," "); return 1;
  3433. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3434. }
  3435.  
  3436. dcmd_clearallchat(playerid,params[]) {
  3437. #pragma unused params
  3438. if(PlayerInfo[playerid][Level] >= 3) {
  3439. CMDMessageToAdmins(playerid,"CLEARALLCHAT");
  3440. for(new i = 0; i < 50; i++) SendClientMessageToAll(green," "); return 1;
  3441. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3442. }
  3443.  
  3444. dcmd_caps(playerid,params[]) {
  3445. if(PlayerInfo[playerid][Level] >= 3) {
  3446. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3447. if(!strlen(tmp) || !strlen(tmp2) || IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [\"on\" / \"off\"]");
  3448. new player1 = strval(tmp), string[128];
  3449. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3450. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3451. if(strcmp(tmp2,"on",true) == 0) {
  3452. CMDMessageToAdmins(playerid,"CAPS");
  3453. PlayerInfo[player1][Caps] = 0;
  3454. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has allowed you to use capitals in chat", pName(playerid) ); SendClientMessage(playerid,blue,string); }
  3455. format(string,sizeof(string),"You have allowed \"%s\" to use capitals in chat", pName(player1) ); return SendClientMessage(playerid,blue,string);
  3456. } else if(strcmp(tmp2,"off",true) == 0) {
  3457. CMDMessageToAdmins(playerid,"CAPS");
  3458. PlayerInfo[player1][Caps] = 1;
  3459. if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has prevented you from using capitals in chat", pName(playerid) ); SendClientMessage(playerid,blue,string); }
  3460. format(string,sizeof(string),"You have prevented \"%s\" from using capitals in chat", pName(player1) ); return SendClientMessage(playerid,blue,string);
  3461. } else return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [\"on\" / \"off\"]");
  3462. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3463. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3464. }
  3465.  
  3466. //==================[ Object & Pickup ]=========================================
  3467. dcmd_pickup(playerid,params[]) {
  3468. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3469. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /pickup [pickup id]");
  3470. new pickup = strval(params), string[128], Float:x, Float:y, Float:z, Float:a;
  3471. CMDMessageToAdmins(playerid,"PICKUP");
  3472. GetPlayerPos(playerid, x, y, z);
  3473. GetPlayerFacingAngle(playerid, a);
  3474. x += (3 * floatsin(-a, degrees));
  3475. y += (3 * floatcos(-a, degrees));
  3476. CreatePickup(pickup, 2, x+2, y, z);
  3477. format(string, sizeof(string), "CreatePickup(%d, 2, %0.2f, %0.2f, %0.2f);", pickup, x+2, y, z);
  3478. SaveToFile("Pickups",string);
  3479. return SendClientMessage(playerid,yellow, string);
  3480. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3481. }
  3482.  
  3483. dcmd_object(playerid,params[]) {
  3484. if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3485. if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /object [object id]");
  3486. new object = strval(params), string[128], Float:x, Float:y, Float:z, Float:a;
  3487. CMDMessageToAdmins(playerid,"OBJECT");
  3488. GetPlayerPos(playerid, x, y, z);
  3489. GetPlayerFacingAngle(playerid, a);
  3490. x += (3 * floatsin(-a, degrees));
  3491. y += (3 * floatcos(-a, degrees));
  3492. CreateObject(object, x, y, z, 0.0, 0.0, a);
  3493. format(string, sizeof(string), "CreateObject(%d, %0.2f, %0.2f, %0.2f, 0.00, 0.00, %0.2f);", object, x, y, z, a);
  3494. SaveToFile("Objects",string);
  3495. format(string, sizeof(string), "You Have Created Object %d, at %0.2f, %0.2f, %0.2f Angle %0.2f", object, x, y, z, a);
  3496. return SendClientMessage(playerid,yellow, string);
  3497. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3498. }
  3499.  
  3500. //===================[ Move ]===================================================
  3501.  
  3502. dcmd_move(playerid,params[]) {
  3503. if(PlayerInfo[playerid][Level] >= 3) {
  3504. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /move [up / down / +x / -x / +y / -y / off]");
  3505. new Float:X, Float:Y, Float:Z;
  3506. if(strcmp(params,"up",true) == 0) {
  3507. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z+5); SetCameraBehindPlayer(playerid); }
  3508. else if(strcmp(params,"down",true) == 0) {
  3509. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z-5); SetCameraBehindPlayer(playerid); }
  3510. else if(strcmp(params,"+x",true) == 0) {
  3511. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X+5,Y,Z); }
  3512. else if(strcmp(params,"-x",true) == 0) {
  3513. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X-5,Y,Z); }
  3514. else if(strcmp(params,"+y",true) == 0) {
  3515. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y+5,Z); }
  3516. else if(strcmp(params,"-y",true) == 0) {
  3517. TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y-5,Z); }
  3518. else if(strcmp(params,"off",true) == 0) {
  3519. TogglePlayerControllable(playerid,true); }
  3520. else return SendClientMessage(playerid,red,"USAGE: /move [up / down / +x / -x / +y / -y / off]");
  3521. return 1;
  3522. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3523. }
  3524.  
  3525. dcmd_moveplayer(playerid,params[]) {
  3526. if(PlayerInfo[playerid][Level] >= 3) {
  3527. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3528. if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp)) return SendClientMessage(playerid, red, "USAGE: /moveplayer [playerid] [up / down / +x / -x / +y / -y / off]");
  3529. new Float:X, Float:Y, Float:Z, player1 = strval(tmp);
  3530. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3531. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3532. if(strcmp(tmp2,"up",true) == 0) {
  3533. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y,Z+5); SetCameraBehindPlayer(player1); }
  3534. else if(strcmp(tmp2,"down",true) == 0) {
  3535. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y,Z-5); SetCameraBehindPlayer(player1); }
  3536. else if(strcmp(tmp2,"+x",true) == 0) {
  3537. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X+5,Y,Z); }
  3538. else if(strcmp(tmp2,"-x",true) == 0) {
  3539. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X-5,Y,Z); }
  3540. else if(strcmp(tmp2,"+y",true) == 0) {
  3541. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y+5,Z); }
  3542. else if(strcmp(tmp2,"-y",true) == 0) {
  3543. GetPlayerPos(player1,X,Y,Z); SetPlayerPos(player1,X,Y-5,Z); }
  3544. else SendClientMessage(playerid,red,"USAGE: /moveplayer [up / down / +x / -x / +y / -y / off]");
  3545. return 1;
  3546. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3547. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3548. }
  3549.  
  3550. //===================[ Fake ]===================================================
  3551.  
  3552. #if defined ENABLE_FAKE_CMDS
  3553. dcmd_fakedeath(playerid,params[]) {
  3554. if(PlayerInfo[playerid][Level] >= 4) {
  3555. new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  3556. if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid, red, "USAGE: /fakedeath [killer] [killee] [weapon]");
  3557. new killer = strval(tmp), killee = strval(tmp2), weap = strval(tmp3);
  3558. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid Weapon ID");
  3559. if(PlayerInfo[killer][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3560. if(PlayerInfo[killee][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3561.  
  3562. if(IsPlayerConnected(killer) && killer != INVALID_PLAYER_ID) {
  3563. if(IsPlayerConnected(killee) && killee != INVALID_PLAYER_ID) {
  3564. CMDMessageToAdmins(playerid,"FAKEDEATH");
  3565. SendDeathMessage(killer,killee,weap);
  3566. return SendClientMessage(playerid,blue,"Fake death message sent");
  3567. } else return SendClientMessage(playerid,red,"ERROR: Killee is not connected");
  3568. } else return SendClientMessage(playerid,red,"ERROR: Killer is not connected");
  3569. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3570. }
  3571.  
  3572. dcmd_fakechat(playerid,params[]) {
  3573. if(PlayerInfo[playerid][Level] >= 5) {
  3574. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3575. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /fakechat [playerid] [text]");
  3576. new player1 = strval(tmp);
  3577. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3578. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3579. CMDMessageToAdmins(playerid,"FAKECHAT");
  3580. SendPlayerMessageToAll(player1, params[strlen(tmp)+1]);
  3581. return SendClientMessage(playerid,blue,"Fake message sent");
  3582. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3583. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3584. }
  3585.  
  3586. dcmd_fakecmd(playerid,params[]) {
  3587. if(PlayerInfo[playerid][Level] >= 5) {
  3588. new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3589. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /fakecmd [playerid] [command]");
  3590. new player1 = strval(tmp);
  3591. if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3592. if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3593. CMDMessageToAdmins(playerid,"FAKECMD");
  3594. CallRemoteFunction("OnPlayerCommandText", "is", player1, tmp2);
  3595. return SendClientMessage(playerid,blue,"Fake command sent");
  3596. } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3597. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3598. }
  3599. #endif
  3600.  
  3601. //----------------------------------------------------------------------------//
  3602. // /all Commands //
  3603. //----------------------------------------------------------------------------//
  3604.  
  3605. dcmd_spawnall(playerid,params[]) {
  3606. #pragma unused params
  3607. if(PlayerInfo[playerid][Level] >= 4) {
  3608. CMDMessageToAdmins(playerid,"SPAWNAll");
  3609. for(new i = 0; i < MAX_PLAYERS; i++) {
  3610. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3611. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerPos(i, 0.0, 0.0, 0.0); SpawnPlayer(i);
  3612. }
  3613. }
  3614. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has spawned all players", pName(playerid) );
  3615. return SendClientMessageToAll(blue, string);
  3616. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3617. }
  3618.  
  3619. dcmd_muteall(playerid,params[]) {
  3620. #pragma unused params
  3621. if(PlayerInfo[playerid][Level] >= 4) {
  3622. CMDMessageToAdmins(playerid,"MUTEALL");
  3623. for(new i = 0; i < MAX_PLAYERS; i++) {
  3624. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3625. PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][Muted] = 1; PlayerInfo[i][MuteWarnings] = 0;
  3626. }
  3627. }
  3628. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has muted all players", pName(playerid) );
  3629. return SendClientMessageToAll(blue, string);
  3630. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3631. }
  3632.  
  3633. dcmd_unmuteall(playerid,params[]) {
  3634. #pragma unused params
  3635. if(PlayerInfo[playerid][Level] >= 4) {
  3636. CMDMessageToAdmins(playerid,"UNMUTEAll");
  3637. for(new i = 0; i < MAX_PLAYERS; i++) {
  3638. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3639. PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][Muted] = 0; PlayerInfo[i][MuteWarnings] = 0;
  3640. }
  3641. }
  3642. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unmuted all players", pName(playerid) );
  3643. return SendClientMessageToAll(blue, string);
  3644. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3645. }
  3646.  
  3647. dcmd_getall(playerid,params[]) {
  3648. #pragma unused params
  3649. if(PlayerInfo[playerid][Level] >= 4) {
  3650. CMDMessageToAdmins(playerid,"GETAll");
  3651. new Float:x,Float:y,Float:z, interior = GetPlayerInterior(playerid);
  3652. GetPlayerPos(playerid,x,y,z);
  3653. for(new i = 0; i < MAX_PLAYERS; i++) {
  3654. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3655. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerPos(i,x+(playerid/4)+1,y+(playerid/4),z); SetPlayerInterior(i,interior);
  3656. }
  3657. }
  3658. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has teleported all players", pName(playerid) );
  3659. return SendClientMessageToAll(blue, string);
  3660. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3661. }
  3662.  
  3663. dcmd_healall(playerid,params[]) {
  3664. #pragma unused params
  3665. if(PlayerInfo[playerid][Level] >= 3) {
  3666. CMDMessageToAdmins(playerid,"HEALALL");
  3667. for(new i = 0; i < MAX_PLAYERS; i++) {
  3668. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3669. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerHealth(i,100.0);
  3670. }
  3671. }
  3672. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has healed all players", pName(playerid) );
  3673. return SendClientMessageToAll(blue, string);
  3674. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3675. }
  3676.  
  3677. dcmd_armourall(playerid,params[]) {
  3678. #pragma unused params
  3679. if(PlayerInfo[playerid][Level] >= 3) {
  3680. CMDMessageToAdmins(playerid,"ARMOURALL");
  3681. for(new i = 0; i < MAX_PLAYERS; i++) {
  3682. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3683. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerArmour(i,100.0);
  3684. }
  3685. }
  3686. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has restored all players armour", pName(playerid) );
  3687. return SendClientMessageToAll(blue, string);
  3688. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3689. }
  3690.  
  3691. dcmd_killall(playerid,params[]) {
  3692. #pragma unused params
  3693. if(PlayerInfo[playerid][Level] >= 4) {
  3694. CMDMessageToAdmins(playerid,"KILLALL");
  3695. for(new i = 0; i < MAX_PLAYERS; i++) {
  3696. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3697. PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerHealth(i,0.0);
  3698. }
  3699. }
  3700. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has killed all players", pName(playerid) );
  3701. return SendClientMessageToAll(blue, string);
  3702. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3703. }
  3704.  
  3705. dcmd_freezeall(playerid,params[]) {
  3706. #pragma unused params
  3707. if(PlayerInfo[playerid][Level] >= 4) {
  3708. CMDMessageToAdmins(playerid,"FREEZEALL");
  3709. for(new i = 0; i < MAX_PLAYERS; i++) {
  3710. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3711. PlayerPlaySound(i,1057,0.0,0.0,0.0); TogglePlayerControllable(playerid,false); PlayerInfo[i][Frozen] = 1;
  3712. }
  3713. }
  3714. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has frozen all players", pName(playerid) );
  3715. return SendClientMessageToAll(blue, string);
  3716. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3717. }
  3718.  
  3719. dcmd_unfreezeall(playerid,params[]) {
  3720. #pragma unused params
  3721. if(PlayerInfo[playerid][Level] >= 4) {
  3722. CMDMessageToAdmins(playerid,"UNFREEZEALL");
  3723. for(new i = 0; i < MAX_PLAYERS; i++) {
  3724. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3725. PlayerPlaySound(i,1057,0.0,0.0,0.0); TogglePlayerControllable(playerid,true); PlayerInfo[i][Frozen] = 0;
  3726. }
  3727. }
  3728. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unfrozen all players", pName(playerid) );
  3729. return SendClientMessageToAll(blue, string);
  3730. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3731. }
  3732.  
  3733. dcmd_kickall(playerid,params[]) {
  3734. #pragma unused params
  3735. if(PlayerInfo[playerid][Level] >= 4) {
  3736. CMDMessageToAdmins(playerid,"KICKALL");
  3737. for(new i = 0; i < MAX_PLAYERS; i++) {
  3738. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3739. PlayerPlaySound(i,1057,0.0,0.0,0.0); Kick(i);
  3740. }
  3741. }
  3742. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has kicked all players", pName(playerid) );
  3743. SaveToFile("KickLog",string);
  3744. return SendClientMessageToAll(blue, string);
  3745. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3746. }
  3747.  
  3748. dcmd_slapall(playerid,params[]) {
  3749. #pragma unused params
  3750. if(PlayerInfo[playerid][Level] >= 4) {
  3751. CMDMessageToAdmins(playerid,"SLAPALL");
  3752. new Float:x, Float:y, Float:z;
  3753. for(new i = 0; i < MAX_PLAYERS; i++) {
  3754. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3755. PlayerPlaySound(i,1190,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); SetPlayerPos(i,x,y,z+4);
  3756. }
  3757. }
  3758. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has slapped all players", pName(playerid) );
  3759. return SendClientMessageToAll(blue, string);
  3760. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3761. }
  3762.  
  3763. dcmd_explodeall(playerid,params[]) {
  3764. #pragma unused params
  3765. if(PlayerInfo[playerid][Level] >= 4) {
  3766. CMDMessageToAdmins(playerid,"EXPLODEALL");
  3767. new Float:x, Float:y, Float:z;
  3768. for(new i = 0; i < MAX_PLAYERS; i++) {
  3769. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3770. PlayerPlaySound(i,1190,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); CreateExplosion(x, y , z, 7, 10.0);
  3771. }
  3772. }
  3773. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has exploded all players", pName(playerid) );
  3774. return SendClientMessageToAll(blue, string);
  3775. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3776. }
  3777.  
  3778. dcmd_disarmall(playerid,params[]) {
  3779. #pragma unused params
  3780. if(PlayerInfo[playerid][Level] >= 4) {
  3781. CMDMessageToAdmins(playerid,"DISARMALL");
  3782. for(new i = 0; i < MAX_PLAYERS; i++) {
  3783. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3784. PlayerPlaySound(i,1057,0.0,0.0,0.0); ResetPlayerWeapons(i);
  3785. }
  3786. }
  3787. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has disarmed all players", pName(playerid) );
  3788. return SendClientMessageToAll(blue, string);
  3789. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3790. }
  3791.  
  3792. dcmd_ejectall(playerid,params[]) {
  3793. #pragma unused params
  3794. if(PlayerInfo[playerid][Level] >= 4) {
  3795. CMDMessageToAdmins(playerid,"EJECTALL");
  3796. new Float:x, Float:y, Float:z;
  3797. for(new i = 0; i < MAX_PLAYERS; i++) {
  3798. if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3799. if(IsPlayerInAnyVehicle(i)) {
  3800. PlayerPlaySound(i,1057,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); SetPlayerPos(i,x,y,z+3);
  3801. }
  3802. }
  3803. }
  3804. new string[128]; format(string,sizeof(string),"Administrator \"%s\" has ejected all players", pName(playerid) );
  3805. return SendClientMessageToAll(blue, string);
  3806. } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3807. }
  3808.  
  3809. //-------------==== Set All Commands ====-------------//
  3810.  
  3811. dcmd_setallskin(playerid,params[]) {
  3812. if(PlayerInfo[playerid][Level] >= 3) {
  3813. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallskin [skinid]");
  3814. new var = strval(params), string[128];
  3815. if(!IsValidSkin(var)) return SendClientMessage(playerid, red, "ERROR: Invaild Skin ID");
  3816. CMDMessageToAdmins(playerid,"SETALLSKIN");
  3817. for(new i = 0; i < MAX_PLAYERS; i++) {
  3818. if(IsPlayerConnected(i)) {
  3819. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3820. SetPlayerSkin(i,var);
  3821. }
  3822. }
  3823. format(string,sizeof(string),"Administrator \"%s\" has set all players skin to '%d'", pName(playerid), var );
  3824. return SendClientMessageToAll(blue, string);
  3825. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3826. }
  3827.  
  3828. dcmd_setallwanted(playerid,params[]) {
  3829. if(PlayerInfo[playerid][Level] >= 3) {
  3830. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallwanted [wanted level]");
  3831. new var = strval(params), string[128];
  3832. CMDMessageToAdmins(playerid,"SETALLWANTED");
  3833. for(new i = 0; i < MAX_PLAYERS; i++) {
  3834. if(IsPlayerConnected(i)) {
  3835. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3836. SetPlayerWantedLevel(i,var);
  3837. }
  3838. }
  3839. format(string,sizeof(string),"Administrator \"%s\" has set all players wanted level to '%d'", pName(playerid), var );
  3840. return SendClientMessageToAll(blue, string);
  3841. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3842. }
  3843.  
  3844. dcmd_setallweather(playerid,params[]) {
  3845. if(PlayerInfo[playerid][Level] >= 3) {
  3846. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallweather [weather ID]");
  3847. new var = strval(params), string[128];
  3848. CMDMessageToAdmins(playerid,"SETALLWEATHER");
  3849. for(new i = 0; i < MAX_PLAYERS; i++) {
  3850. if(IsPlayerConnected(i)) {
  3851. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3852. SetPlayerWeather(i, var);
  3853. }
  3854. }
  3855. format(string,sizeof(string),"Administrator \"%s\" has set all players weather to '%d'", pName(playerid), var );
  3856. return SendClientMessageToAll(blue, string);
  3857. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3858. }
  3859.  
  3860. dcmd_setalltime(playerid,params[]) {
  3861. if(PlayerInfo[playerid][Level] >= 3) {
  3862. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setalltime [hour]");
  3863. new var = strval(params), string[128];
  3864. if(var > 24) return SendClientMessage(playerid, red, "ERROR: Invalid hour");
  3865. CMDMessageToAdmins(playerid,"SETALLTIME");
  3866. for(new i = 0; i < MAX_PLAYERS; i++) {
  3867. if(IsPlayerConnected(i)) {
  3868. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3869. SetPlayerTime(i, var, 0);
  3870. }
  3871. }
  3872. format(string,sizeof(string),"Administrator \"%s\" has set all players time to '%d:00'", pName(playerid), var );
  3873. return SendClientMessageToAll(blue, string);
  3874. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3875. }
  3876.  
  3877. dcmd_setallworld(playerid,params[]) {
  3878. if(PlayerInfo[playerid][Level] >= 3) {
  3879. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallworld [virtual world]");
  3880. new var = strval(params), string[128];
  3881. CMDMessageToAdmins(playerid,"SETALLWORLD");
  3882. for(new i = 0; i < MAX_PLAYERS; i++) {
  3883. if(IsPlayerConnected(i)) {
  3884. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3885. SetPlayerVirtualWorld(i,var);
  3886. }
  3887. }
  3888. format(string,sizeof(string),"Administrator \"%s\" has set all players virtual worlds to '%d'", pName(playerid), var );
  3889. return SendClientMessageToAll(blue, string);
  3890. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3891. }
  3892.  
  3893. dcmd_setallscore(playerid,params[]) {
  3894. if(PlayerInfo[playerid][Level] >= 3) {
  3895. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallscore [score]");
  3896. new var = strval(params), string[128];
  3897. CMDMessageToAdmins(playerid,"SETALLSCORE");
  3898. for(new i = 0; i < MAX_PLAYERS; i++) {
  3899. if(IsPlayerConnected(i)) {
  3900. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3901. SetPlayerScore(i,var);
  3902. }
  3903. }
  3904. format(string,sizeof(string),"Administrator \"%s\" has set all players scores to '%d'", pName(playerid), var );
  3905. return SendClientMessageToAll(blue, string);
  3906. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3907. }
  3908.  
  3909. dcmd_setallcash(playerid,params[]) {
  3910. if(PlayerInfo[playerid][Level] >= 3) {
  3911. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallcash [Amount]");
  3912. new var = strval(params), string[128];
  3913. CMDMessageToAdmins(playerid,"SETALLCASH");
  3914. for(new i = 0; i < MAX_PLAYERS; i++) {
  3915. if(IsPlayerConnected(i)) {
  3916. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3917. ResetPlayerMoney(i);
  3918. GivePlayerMoney(i,var);
  3919. }
  3920. }
  3921. format(string,sizeof(string),"Administrator \"%s\" has set all players cash to '$%d'", pName(playerid), var );
  3922. return SendClientMessageToAll(blue, string);
  3923. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3924. }
  3925.  
  3926. dcmd_giveallcash(playerid,params[]) {
  3927. if(PlayerInfo[playerid][Level] >= 3) {
  3928. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /giveallcash [Amount]");
  3929. new var = strval(params), string[128];
  3930. CMDMessageToAdmins(playerid,"GIVEALLCASH");
  3931. for(new i = 0; i < MAX_PLAYERS; i++) {
  3932. if(IsPlayerConnected(i)) {
  3933. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3934. GivePlayerMoney(i,var);
  3935. }
  3936. }
  3937. format(string,sizeof(string),"Administrator \"%s\" has given all players '$%d'", pName(playerid), var );
  3938. return SendClientMessageToAll(blue, string);
  3939. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3940. }
  3941.  
  3942. dcmd_giveallweapon(playerid,params[]) {
  3943. if(PlayerInfo[playerid][Level] >= 3) {
  3944. new tmp[256], tmp2[256], Index, ammo, weap, WeapName[32], string[128]; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3945. if(!strlen(tmp) ) return SendClientMessage(playerid, red, "USAGE: /giveallweapon [weapon id/weapon name] [ammo]");
  3946. if(!strlen(tmp2) || !IsNumeric(tmp2) || strval(tmp2) <= 0 || strval(tmp2) > 99999) ammo = 500;
  3947. if(!IsNumeric(tmp)) weap = GetWeaponIDFromName(tmp); else weap = strval(tmp);
  3948. if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid weapon ID");
  3949. CMDMessageToAdmins(playerid,"GIVEALLWEAPON");
  3950. for(new i = 0; i < MAX_PLAYERS; i++) {
  3951. if(IsPlayerConnected(i)) {
  3952. PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3953. GivePlayerWeapon(i,weap,ammo);
  3954. }
  3955. }
  3956. GetWeaponName(weap, WeapName, sizeof(WeapName) );
  3957. format(string,sizeof(string),"Administrator \"%s\" has given all players a %s (%d) with %d rounds of ammo", pName(playerid), WeapName, weap, ammo);
  3958. return SendClientMessageToAll(blue, string);
  3959. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3960. }
  3961.  
  3962.  
  3963. //================================[ Menu Commands ]=============================
  3964.  
  3965. #if defined USE_MENUS
  3966.  
  3967. dcmd_lmenu(playerid,params[]) {
  3968. #pragma unused params
  3969. if(PlayerInfo[playerid][Level] >= 2) {
  3970. if(IsPlayerInAnyVehicle(playerid)) {
  3971. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LMainMenu,playerid);
  3972. } else return ShowMenuForPlayer(LMainMenu,playerid);
  3973. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3974. }
  3975. dcmd_ltele(playerid,params[]) {
  3976. #pragma unused params
  3977. if(PlayerInfo[playerid][Level] >= 2) {
  3978. if(IsPlayerInAnyVehicle(playerid)) {
  3979. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTele,playerid);
  3980. } else return ShowMenuForPlayer(LTele,playerid);
  3981. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3982. }
  3983. dcmd_lweather(playerid,params[]) {
  3984. #pragma unused params
  3985. if(PlayerInfo[playerid][Level] >= 3) {
  3986. if(IsPlayerInAnyVehicle(playerid)) {
  3987. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LWeather,playerid);
  3988. } else return ShowMenuForPlayer(LWeather,playerid);
  3989. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3990. }
  3991. dcmd_ltime(playerid,params[]) {
  3992. #pragma unused params
  3993. if(PlayerInfo[playerid][Level] >= 3) {
  3994. if(IsPlayerInAnyVehicle(playerid)) {
  3995. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTime,playerid);
  3996. } else return ShowMenuForPlayer(LTime,playerid);
  3997. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3998. }
  3999. dcmd_cm(playerid,params[]) {
  4000. #pragma unused params
  4001. if(PlayerInfo[playerid][Level] >= 2) {
  4002. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You already have a car.");
  4003. else { ShowMenuForPlayer(LCars,playerid); return TogglePlayerControllable(playerid,false); }
  4004. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4005. }
  4006. dcmd_ltmenu(playerid,params[]) {
  4007. #pragma unused params
  4008. if(PlayerInfo[playerid][Level] >= 2) {
  4009. if(IsPlayerInAnyVehicle(playerid)) {
  4010. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  4011. 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!"); }
  4012. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTuneMenu,playerid);
  4013. } else return SendClientMessage(playerid,red,"ERROR: You do not have a vehicle to tune");
  4014. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4015. }
  4016. dcmd_lweapons(playerid,params[]) {
  4017. #pragma unused params
  4018. if(PlayerInfo[playerid][Level] >= 3) {
  4019. if(IsPlayerInAnyVehicle(playerid)) {
  4020. TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(XWeapons,playerid);
  4021. } else return ShowMenuForPlayer(XWeapons,playerid);
  4022. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4023. }
  4024. dcmd_lvehicle(playerid,params[]) {
  4025. #pragma unused params
  4026. if(PlayerInfo[playerid][Level] >= 2) {
  4027. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You already have a car.");
  4028. else { ShowMenuForPlayer(LVehicles,playerid); return TogglePlayerControllable(playerid,false); }
  4029. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4030. }
  4031.  
  4032. #endif
  4033.  
  4034. //----------------------===== Place & Skin Saving =====-------------------------
  4035. dcmd_gotoplace(playerid,params[]) {
  4036. #pragma unused params
  4037. if(PlayerInfo[playerid][LoggedIn] == 1 && PlayerInfo[playerid][Level] >= 1) {
  4038. if (dUserINT(PlayerName2(playerid)).("x")!=0) {
  4039. PutAtPos(playerid);
  4040. SetPlayerVirtualWorld(playerid, (dUserINT(PlayerName2(playerid)).("world")) );
  4041. return SendClientMessage(playerid,yellow,"You have successfully teleported to your saved place");
  4042. } else return SendClientMessage(playerid,red,"ERROR: You must save a place before you can teleport to it");
  4043. } else return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");
  4044. }
  4045.  
  4046. dcmd_saveplace(playerid,params[]) {
  4047. #pragma unused params
  4048. if(PlayerInfo[playerid][LoggedIn] == 1 && PlayerInfo[playerid][Level] >= 1) {
  4049. new Float:x,Float:y,Float:z, interior;
  4050. GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
  4051. dUserSetINT(PlayerName2(playerid)).("x",floatround(x));
  4052. dUserSetINT(PlayerName2(playerid)).("y",floatround(y));
  4053. dUserSetINT(PlayerName2(playerid)).("z",floatround(z));
  4054. dUserSetINT(PlayerName2(playerid)).("interior",interior);
  4055. dUserSetINT(PlayerName2(playerid)).("world", (GetPlayerVirtualWorld(playerid)) );
  4056. return SendClientMessage(playerid,yellow,"You have successfully saved these coordinates");
  4057. } else return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");
  4058. }
  4059.  
  4060. dcmd_saveskin(playerid,params[]) {
  4061. if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4062. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /saveskin [skinid]");
  4063. new string[128], SkinID = strval(params);
  4064. 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))
  4065. {
  4066. dUserSetINT(PlayerName2(playerid)).("FavSkin",SkinID);
  4067. format(string, sizeof(string), "You have successfully saved this skin (ID %d)",SkinID);
  4068. SendClientMessage(playerid,yellow,string);
  4069. SendClientMessage(playerid,yellow,"Type: /useskin to use this skin when you spawn or /dontuseskin to stop using skin");
  4070. dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
  4071. return CMDMessageToAdmins(playerid,"SAVESKIN");
  4072. } else return SendClientMessage(playerid, green, "ERROR: Invalid Skin ID");
  4073. } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4074. }
  4075.  
  4076. dcmd_useskin(playerid,params[]) {
  4077. #pragma unused params
  4078. if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4079. dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
  4080. SetPlayerSkin(playerid,dUserINT(PlayerName2(playerid)).("FavSkin"));
  4081. return SendClientMessage(playerid,yellow,"Skin now in use");
  4082. } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4083. }
  4084.  
  4085. dcmd_dontuseskin(playerid,params[]) {
  4086. #pragma unused params
  4087. if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4088. dUserSetINT(PlayerName2(playerid)).("UseSkin",0);
  4089. return SendClientMessage(playerid,yellow,"Skin will no longer be used");
  4090. } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4091. }
  4092.  
  4093. //====================== [REGISTER & LOGIN] ==================================
  4094. #if defined USE_AREGISTER
  4095.  
  4096. dcmd_aregister(playerid,params[])
  4097. {
  4098. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"CUENTA: Usted ya está registrado y conectado");
  4099. if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"CUENTA: Esta cuenta ya existe, por favor, utilice /alogin [contraseña]'.");
  4100. if (strlen(params) == 0) return SendClientMessage(playerid,red,"CUENTA: el uso correcto: '/ aregister [contraseña]'");
  4101. if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,red,"CUENTA: La contraseña debe ser superior a tres caracteres");
  4102. if (udb_Create(PlayerName2(playerid),params))
  4103. {
  4104. new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  4105. new strdate[20], year,month,day; getdate(year, month, day);
  4106. GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  4107. GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  4108. // dini_Set(file,"password",params);
  4109. dUserSetINT(PlayerName2(playerid)).("registered",1);
  4110. format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  4111. dini_Set(file,"RegisteredDate",strdate);
  4112. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4113. dUserSetINT(PlayerName2(playerid)).("banned",0);
  4114. dUserSetINT(PlayerName2(playerid)).("level",0);
  4115. dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  4116. dUserSetINT(PlayerName2(playerid)).("money",0);
  4117. dUserSetINT(PlayerName2(playerid)).("kills",0);
  4118. dUserSetINT(PlayerName2(playerid)).("deaths",0);
  4119. dUserSetINT(PlayerName2(playerid)).("Saldo",0);
  4120. PlayerInfo[playerid][LoggedIn] = 1;
  4121. PlayerInfo[playerid][Registered] = 1;
  4122. SendClientMessage(playerid, green, "CUENTA: Usted está actualmente registrado, y te has registrado automáticamente");
  4123. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4124. return 1;
  4125. }
  4126. return 1;
  4127. }
  4128.  
  4129. dcmd_alogin(playerid,params[])
  4130. {
  4131. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"CUENTA: Usted ya está logueado");
  4132. if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"CUENTA: La cuenta no existe por favor, utilice '/aregister [contraseña]'.");
  4133. if (strlen(params)==0) return SendClientMessage(playerid,red,"CUENTA: Uso correcto: /alogin [contraseña]'");
  4134. if (udb_CheckLogin(PlayerName2(playerid),params))
  4135. {
  4136. new file[256], tmp3[100], string[128];
  4137. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  4138. GetPlayerIp(playerid,tmp3,100);
  4139. dini_Set(file,"ip",tmp3);
  4140. LoginPlayer(playerid);
  4141. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4142. if(PlayerInfo[playerid][Level] > 0) {
  4143. format(string,sizeof(string),"CUENTA: Logueado correctamente! (Nivel %d)", PlayerInfo[playerid][Level] );
  4144. return SendClientMessage(playerid,green,string);
  4145. } else return SendClientMessage(playerid,green,"CUENTA: Logueado correctamente!");
  4146. }
  4147. else {
  4148. PlayerInfo[playerid][FailLogin]++;
  4149. printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
  4150. if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
  4151. {
  4152. new string[128]; format(string, sizeof(string), "%s ha sido kickeado (Login Incorrecto)", PlayerName2(playerid) );
  4153. SendClientMessageToAll(grey, string); print(string);
  4154. Kick(playerid);
  4155. }
  4156. return SendClientMessage(playerid,red,"CUENTA: Contraseña incorrecta");
  4157. }
  4158. }
  4159.  
  4160. dcmd_achangepass(playerid,params[]) {
  4161. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4162. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /achangepass [new password]");
  4163. if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
  4164. new string[128];
  4165. dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(params) );
  4166. dUserSet(PlayerName2(playerid)).("Password",params);
  4167. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4168. format(string, sizeof(string),"CUENTA: Has cambiado tu contraseña a [ %s ]",params);
  4169. return SendClientMessage(playerid,yellow,string);
  4170. } else return SendClientMessage(playerid,red, "ERROR: Usted debe tener una cuenta para utilizar este comando");
  4171. }
  4172.  
  4173. dcmd_asetpass(playerid,params[]) {
  4174. if(PlayerInfo[playerid][Level] >= 3) {
  4175. new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4176. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /asetpass [playername] [new password]");
  4177. if(strlen(tmp2) < 4 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect password length");
  4178. if(udb_Exists(tmp)) {
  4179. dUserSetINT(tmp).("password_hash", udb_hash(tmp2));
  4180. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4181. format(string, sizeof(string),"ACCOUNT: You have successfully set \"%s's\" account password to \"%s\"", tmp, tmp2);
  4182. return SendClientMessage(playerid,yellow,string);
  4183. } else return SendClientMessage(playerid,red, "ERROR: El jugador no posee una cuenta");
  4184. } else return SendClientMessage(playerid,red,"ERROR: Usted no tiene un nivel alto para usar este comando");
  4185. }
  4186.  
  4187. #if defined USE_STATS
  4188. dcmd_aresetstats(playerid,params[]) {
  4189. #pragma unused params
  4190. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4191. // save as backup
  4192. dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
  4193. dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
  4194. // stats reset
  4195. PlayerInfo[playerid][Kills] = 0;
  4196. PlayerInfo[playerid][Deaths] = 0;
  4197. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  4198. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  4199. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4200. return SendClientMessage(playerid,yellow,"ACCOUNT: You have successfully reset your stats. Your kills and deaths are: 0");
  4201. } else return SendClientMessage(playerid,red, "ERROR: Usted debe tener una cuenta para utilizar este comando");
  4202. }
  4203.  
  4204. dcmd_astats(playerid,params[]) {
  4205. new string[128], pDeaths, player1, h, m, s;
  4206. if(!strlen(params)) player1 = playerid;
  4207. else player1 = strval(params);
  4208.  
  4209. if(IsPlayerConnected(player1)) {
  4210. TotalGameTime(player1, h, m, s);
  4211. if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
  4212. format(string, sizeof(string), "| %s's Estadisticas: Matas: %d | Muertes: %d | Radio: %0.2f | Plata: $%d | Tiempo: %d hrs %d mins %d segs |",PlayerName2(player1), PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths], Float:PlayerInfo[player1][Kills]/Float:pDeaths,GetPlayerMoney(player1), h, m, s);
  4213. return SendClientMessage(playerid, green, string);
  4214. } else return SendClientMessage(playerid, red, "Player no conectado!");
  4215. }
  4216. #endif
  4217.  
  4218.  
  4219. #else
  4220.  
  4221.  
  4222. dcmd_register(playerid,params[])
  4223. {
  4224. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"CUENTA: Usted ya está registrado y conectado.");
  4225. if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"CUENTA: Esta cuenta ya existe, por favor, utilice '/ login [contraseña]'.");
  4226. if (strlen(params) == 0) return SendClientMessage(playerid,red,"CUENTA: Uso correcto: '/ register [contraseña]'");
  4227. if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,red,"CUENTA: La contraseña debe ser superior a tres caracteres");
  4228. if (udb_Create(PlayerName2(playerid),params))
  4229. {
  4230. new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  4231. new strdate[20], year,month,day; getdate(year, month, day);
  4232. GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  4233. GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  4234. // dini_Set(file,"password",params);
  4235. dUserSetINT(PlayerName2(playerid)).("registered",1);
  4236. format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  4237. dini_Set(file,"RegisteredDate",strdate);
  4238. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4239. dUserSetINT(PlayerName2(playerid)).("banned",0);
  4240. dUserSetINT(PlayerName2(playerid)).("level",0);
  4241. dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  4242. dUserSetINT(PlayerName2(playerid)).("money",0);
  4243. dUserSetINT(PlayerName2(playerid)).("kills",0);
  4244. dUserSetINT(PlayerName2(playerid)).("deaths",0);
  4245. dUserSetINT(PlayerName2(playerid)).("hours",0);
  4246. dUserSetINT(PlayerName2(playerid)).("minutes",0);
  4247. dUserSetINT(PlayerName2(playerid)).("seconds",0);
  4248. dUserSetINT(PlayerName2(playerid)).("Saldo",0);
  4249. PlayerInfo[playerid][LoggedIn] = 1;
  4250. PlayerInfo[playerid][Registered] = 1;
  4251. SendClientMessage(playerid, green, "CUENTA: Usted está actualmente registrado, y te has registrado automáticamente");
  4252. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4253. return 1;
  4254. }
  4255. return 1;
  4256. }
  4257.  
  4258. dcmd_login(playerid,params[])
  4259. {
  4260. if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"CUENTA: Usted ya está conectado");
  4261. if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"CUENTA: La cuenta no existe, por favor, utilice '/register [contraseña]'.");
  4262. if (strlen(params)==0) return SendClientMessage(playerid,red,"CUENTA: Uso correcto: '/login [contraseña]'");
  4263. if (udb_CheckLogin(PlayerName2(playerid),params))
  4264. {
  4265. new file[256], tmp3[100], string[128];
  4266. format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  4267. GetPlayerIp(playerid,tmp3,100);
  4268. dini_Set(file,"ip",tmp3);
  4269. LoginPlayer(playerid);
  4270. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4271. if(PlayerInfo[playerid][Level] > 0) {
  4272. format(string,sizeof(string),"CUENTA: Logueado correctamente. (Nivel %d)", PlayerInfo[playerid][Level] );
  4273. return SendClientMessage(playerid,green,string);
  4274. } else return SendClientMessage(playerid,green,"CUENTA: Logueado correctamente.");
  4275. }
  4276. else {
  4277. PlayerInfo[playerid][FailLogin]++;
  4278. printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
  4279. if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
  4280. {
  4281. new string[128]; format(string, sizeof(string), "%s Has sido kickeado (Logins incorrectos)", PlayerName2(playerid) );
  4282. SendClientMessageToAll(grey, string);
  4283. print(string);
  4284. Kick(playerid);
  4285. }
  4286. return SendClientMessage(playerid,red,"CUENTA: Error de inicio de sesión! Contraseña incorrecta");
  4287. }
  4288. }
  4289.  
  4290. dcmd_changepass(playerid,params[]) {
  4291. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4292. if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /changepass [new password]");
  4293. if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
  4294. new string[128];
  4295. dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(params) );
  4296. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4297. format(string, sizeof(string),"ACCOUNT: You have successfully changed your password to \"%s\"",params);
  4298. return SendClientMessage(playerid,yellow,string);
  4299. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4300. }
  4301.  
  4302. dcmd_setpass(playerid,params[]) {
  4303. if(PlayerInfo[playerid][Level] >= 3) {
  4304. new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4305. if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setpass [playername] [new password]");
  4306. if(strlen(tmp2) < 4 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect password length");
  4307. if(udb_Exists(tmp)) {
  4308. dUserSetINT(tmp).("password_hash", udb_hash(tmp2));
  4309. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4310. format(string, sizeof(string),"ACCOUNT: You have successfully set \"%s's\" account password to \"%s\"", tmp, tmp2);
  4311. return SendClientMessage(playerid,yellow,string);
  4312. } else return SendClientMessage(playerid,red, "ERROR: This player doesnt have an account");
  4313. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4314. }
  4315.  
  4316. #if defined USE_STATS
  4317. dcmd_resetstats(playerid,params[]) {
  4318. #pragma unused params
  4319. if(PlayerInfo[playerid][LoggedIn] == 1) {
  4320. // save as backup
  4321. dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
  4322. dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
  4323. // stats reset
  4324. PlayerInfo[playerid][Kills] = 0;
  4325. PlayerInfo[playerid][Deaths] = 0;
  4326. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  4327. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  4328. PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4329. return SendClientMessage(playerid,yellow,"ACCOUNT: You have successfully reset your stats. Your kills and deaths are: 0");
  4330. } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4331. }
  4332. #endif
  4333.  
  4334. #if defined USE_STATS
  4335. dcmd_stats(playerid,params[]) {
  4336. new string[128], pDeaths, player1, h, m, s;
  4337. if(!strlen(params)) player1 = playerid;
  4338. else player1 = strval(params);
  4339.  
  4340. if(IsPlayerConnected(player1)) {
  4341. TotalGameTime(player1, h, m, s);
  4342. if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
  4343. format(string, sizeof(string), "| %s's Estadisticas: Matas: %d | Muertes: %d | Radio: %0.2f | Plata: $%d | Tiempo: %d hrs %d mins %d segs |",PlayerName2(player1), PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths], Float:PlayerInfo[player1][Kills]/Float:pDeaths,GetPlayerMoney(player1), h, m, s);
  4344. return SendClientMessage(playerid, green, string);
  4345. } else return SendClientMessage(playerid, red, "Jugador no conectado!");
  4346. }
  4347. #endif
  4348.  
  4349.  
  4350. #endif
  4351.  
  4352.  
  4353. LoginPlayer(playerid)
  4354. {
  4355. if(ServerInfo[GiveMoney] == 1) {ResetPlayerMoney(playerid); GivePlayerMoney(playerid, dUserINT(PlayerName2(playerid)).("money") ); }
  4356. dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4357. PlayerInfo[playerid][Deaths] = (dUserINT(PlayerName2(playerid)).("deaths"));
  4358. PlayerInfo[playerid][Kills] = (dUserINT(PlayerName2(playerid)).("kills"));
  4359. PlayerInfo[playerid][Level] = (dUserINT(PlayerName2(playerid)).("level"));
  4360. PlayerInfo[playerid][hours] = dUserINT(PlayerName2(playerid)).("hours");
  4361. PlayerInfo[playerid][mins] = dUserINT(PlayerName2(playerid)).("minutes");
  4362. PlayerInfo[playerid][secs] = dUserINT(PlayerName2(playerid)).("seconds");
  4363. PlayerInfo[playerid][Registered] = 1;
  4364. PlayerInfo[playerid][LoggedIn] = 1;
  4365. }
  4366.  
  4367. //==============================================================================
  4368. public OnPlayerCommandText(playerid, cmdtext[])
  4369. {
  4370.  
  4371. if(PlayerInfo[playerid][Jailed] == 1 && PlayerInfo[playerid][Level] < 1) return
  4372. SendClientMessage(playerid,red,"Usted no puede utilizar los comandos en la cárcel");
  4373.  
  4374. new cmd[256], string[128], tmp[256], idx;
  4375. cmd = strtok(cmdtext, idx);
  4376.  
  4377. #if defined USE_AREGISTER
  4378. dcmd(aregister,9,cmdtext);
  4379. dcmd(alogin,6,cmdtext);
  4380. dcmd(achangepass,11,cmdtext);
  4381. dcmd(asetpass,8,cmdtext);
  4382. #if defined USE_STATS
  4383. dcmd(astats,6,cmdtext);
  4384. dcmd(aresetstats,11,cmdtext);
  4385. #endif
  4386.  
  4387. #else
  4388.  
  4389. dcmd(register,8,cmdtext);
  4390. dcmd(login,5,cmdtext);
  4391. dcmd(changepass,10,cmdtext);
  4392. dcmd(setpass,7,cmdtext);
  4393. #if defined USE_STATS
  4394. dcmd(stats,5,cmdtext);
  4395. dcmd(resetstats,10,cmdtext);
  4396. #endif
  4397.  
  4398. #endif
  4399.  
  4400. dcmd(report,6,cmdtext);
  4401. dcmd(reports,7,cmdtext);
  4402.  
  4403. if(strcmp(cmd, "/lchat", true) == 0)
  4404. {
  4405. if(IsPlayerConnected(playerid))
  4406. {
  4407. if(PlayerInfo[playerid][Level] >= 2)
  4408. {
  4409. SendClientMessageToAll(COLOR_WHITE, "\n");
  4410. SendClientMessageToAll(COLOR_WHITE, "\n");
  4411. SendClientMessageToAll(COLOR_WHITE, "\n");
  4412. SendClientMessageToAll(COLOR_WHITE, "\n");
  4413. SendClientMessageToAll(COLOR_WHITE, "\n");
  4414. SendClientMessageToAll(COLOR_WHITE, "\n");
  4415. SendClientMessageToAll(COLOR_WHITE, "\n");
  4416. SendClientMessageToAll(COLOR_WHITE, "\n");
  4417. SendClientMessageToAll(COLOR_WHITE, "\n");
  4418. SendClientMessageToAll(COLOR_WHITE, "\n");
  4419. SendClientMessageToAll(COLOR_WHITE, "\n");
  4420. SendClientMessageToAll(COLOR_WHITE, "\n");
  4421. SendClientMessageToAll(COLOR_WHITE, "\n");
  4422. SendClientMessageToAll(COLOR_WHITE, "\n");
  4423. SendClientMessageToAll(COLOR_WHITE, "\n");
  4424. SendClientMessageToAll(COLOR_WHITE, "\n");
  4425. SendClientMessageToAll(COLOR_WHITE, "\n");
  4426. SendClientMessageToAll(COLOR_WHITE, "\n");
  4427. SendClientMessageToAll(COLOR_WHITE, "\n");
  4428. SendClientMessageToAll(COLOR_WHITE, "\n");
  4429. SendClientMessageToAll(COLOR_WHITE, "\n");
  4430. SendClientMessageToAll(COLOR_WHITE, "\n");
  4431. SendClientMessageToAll(COLOR_WHITE, "\n");
  4432. SendClientMessageToAll(COLOR_WHITE, "\n");
  4433. SendClientMessageToAll(COLOR_WHITE, "\n");
  4434. SendClientMessageToAll(COLOR_WHITE, "\n");
  4435. SendClientMessageToAll(COLOR_WHITE, "\n");
  4436. SendClientMessageToAll(COLOR_WHITE, "\n");
  4437. SendClientMessageToAll(COLOR_WHITE, "\n");
  4438. SendClientMessageToAll(COLOR_WHITE, "\n");
  4439. SendClientMessageToAll(COLOR_WHITE, "\n");
  4440. SendClientMessageToAll(COLOR_WHITE, "\n");
  4441. SendClientMessageToAll(COLOR_WHITE, "\n");
  4442. SendClientMessageToAll(COLOR_WHITE, "\n");
  4443. SendClientMessageToAll(COLOR_WHITE, "\n");
  4444. SendClientMessageToAll(COLOR_WHITE, "\n");
  4445. SendClientMessageToAll(COLOR_WHITE, "\n");
  4446. SendClientMessageToAll(COLOR_WHITE, "\n");
  4447. SendClientMessageToAll(COLOR_WHITE, "\n");
  4448. SendClientMessageToAll(COLOR_WHITE, "\n");
  4449. SendClientMessageToAll(COLOR_WHITE, "\n");
  4450. SendClientMessageToAll(COLOR_WHITE, "\n");
  4451. SendClientMessageToAll(COLOR_WHITE, "\n");
  4452. SendClientMessageToAll(COLOR_WHITE, "\n");
  4453. SendClientMessageToAll(COLOR_WHITE, "\n");
  4454. SendClientMessageToAll(COLOR_WHITE, "\n");
  4455. SendClientMessageToAll(COLOR_WHITE, "\n");
  4456. SendClientMessageToAll(COLOR_WHITE, "\n");
  4457. SendClientMessageToAll(COLOR_WHITE, "\n");
  4458. SendClientMessageToAll(COLOR_WHITE, "\n");
  4459. GameTextForAll("~r~Server Locked", 5000, 3);
  4460. SendClientMessageToAll(COLOR_WHITE, string);
  4461. }
  4462. else
  4463. {
  4464. SendClientMessage(playerid, COLOR_WHITE, "Usted debe ser Admin Nivel 2 para usar este comando !");
  4465. return 1;
  4466. }
  4467. }
  4468. return 1;
  4469. }
  4470.  
  4471. //================ [ Read Comamands ] ===========================//
  4472. if(ServerInfo[ReadCmds] == 1)
  4473. {
  4474. format(string, sizeof(string), "*** %s (%d) typed: %s", pName(playerid),playerid,cmdtext);
  4475. for(new i = 0; i < MAX_PLAYERS; i++) {
  4476. if(IsPlayerConnected(i)) {
  4477. if( (PlayerInfo[i][Level] > PlayerInfo[playerid][Level]) && (PlayerInfo[i][Level] > 1) && (i != playerid) ) {
  4478. SendClientMessage(i, grey, string);
  4479. }
  4480. }
  4481. }
  4482. }
  4483.  
  4484. //-= Spectate Commands =-//
  4485. #if defined ENABLE_SPEC
  4486. dcmd(lspec,5,cmdtext);
  4487. dcmd(lspecoff,8,cmdtext);
  4488. dcmd(lspecvehicle,12,cmdtext);
  4489. #endif
  4490.  
  4491. //-= Chat Commands =-//
  4492. dcmd(disablechat,11,cmdtext);
  4493. dcmd(clearchat,9,cmdtext);
  4494. dcmd(clearallchat,12,cmdtext);
  4495. dcmd(caps,4,cmdtext);
  4496.  
  4497. //-= Vehicle Commands =-//
  4498. dcmd(destroycar,10,cmdtext);
  4499. dcmd(lockcar,7,cmdtext);
  4500. dcmd(unlockcar,9,cmdtext);
  4501. dcmd(carhealth,9,cmdtext);
  4502. dcmd(carcolour,9,cmdtext);
  4503. dcmd(car,3,cmdtext);
  4504. dcmd(vr,2,cmdtext);
  4505. dcmd(fix,3,cmdtext);
  4506. dcmd(repair,6,cmdtext);
  4507. dcmd(ltune,5,cmdtext);
  4508. dcmd(lhy,3,cmdtext);
  4509. dcmd(lcar,4,cmdtext);
  4510. dcmd(lbike,5,cmdtext);
  4511. dcmd(lheli,5,cmdtext);
  4512. dcmd(lboat,5,cmdtext);
  4513. dcmd(lnos,4,cmdtext);
  4514. dcmd(lplane,6,cmdtext);
  4515. dcmd(vgoto,5,cmdtext);
  4516. dcmd(vget,4,cmdtext);
  4517. dcmd(givecar,7,cmdtext);
  4518. dcmd(flip,4,cmdtext);
  4519. dcmd(ltc,3,cmdtext);
  4520. dcmd(linkcar,7,cmdtext);
  4521.  
  4522. //-= Playerid Commands =-//
  4523. dcmd(crash,5,cmdtext);
  4524. dcmd(ip,2,cmdtext);
  4525. dcmd(force,5,cmdtext);
  4526. dcmd(burn,4,cmdtext);
  4527. dcmd(spawn,5,cmdtext);
  4528. dcmd(spawnplayer,11,cmdtext);
  4529. dcmd(disarm,6,cmdtext);
  4530. dcmd(eject,5,cmdtext);
  4531. dcmd(bankrupt,8,cmdtext);
  4532. dcmd(sbankrupt,9,cmdtext);
  4533. dcmd(setworld,8,cmdtext);
  4534. dcmd(setinterior,11,cmdtext);
  4535. dcmd(ubound,6,cmdtext);
  4536. dcmd(setwanted,9,cmdtext);
  4537. dcmd(setcolour,9,cmdtext);
  4538. dcmd(settime,7,cmdtext);
  4539. dcmd(setweather,10,cmdtext);
  4540. dcmd(setname,7,cmdtext);
  4541. dcmd(setskin,7,cmdtext);
  4542. dcmd(setscore,8,cmdtext);
  4543. dcmd(setcash,7,cmdtext);
  4544. dcmd(sethealth,9,cmdtext);
  4545. dcmd(setarmour,9,cmdtext);
  4546. dcmd(giveweapon,10,cmdtext);
  4547. dcmd(warp,4,cmdtext);
  4548. dcmd(teleplayer,10,cmdtext);
  4549. dcmd(goto,4,cmdtext);
  4550. dcmd(gethere,7,cmdtext);
  4551. dcmd(get,3,cmdtext);
  4552. dcmd(setlevel,8,cmdtext);
  4553. dcmd(settemplevel,12,cmdtext);
  4554. dcmd(fu,2,cmdtext);
  4555. dcmd(warn,4,cmdtext);
  4556. dcmd(kick,4,cmdtext);
  4557. dcmd(ban,3,cmdtext);
  4558. dcmd(rban,4,cmdtext);
  4559. dcmd(slap,4,cmdtext);
  4560. dcmd(explode,7,cmdtext);
  4561. dcmd(jail,4,cmdtext);
  4562. dcmd(unjail,6,cmdtext);
  4563. dcmd(jailed,6,cmdtext);
  4564. dcmd(freeze,6,cmdtext);
  4565. dcmd(unfreeze,8,cmdtext);
  4566. dcmd(frozen,6,cmdtext);
  4567. dcmd(mute,4,cmdtext);
  4568. dcmd(unmute,6,cmdtext);
  4569. dcmd(muted,5,cmdtext);
  4570. dcmd(akill,5,cmdtext);
  4571. dcmd(weaps,5,cmdtext);
  4572. dcmd(screen,6,cmdtext);
  4573. dcmd(lgoto,5,cmdtext);
  4574. dcmd(aka,3,cmdtext);
  4575. dcmd(highlight,9,cmdtext);
  4576.  
  4577. //-= /All Commands =-//
  4578. dcmd(healall,7,cmdtext);
  4579. dcmd(armourall,9,cmdtext);
  4580. dcmd(muteall,7,cmdtext);
  4581. dcmd(unmuteall,9,cmdtext);
  4582. dcmd(killall,7,cmdtext);
  4583. dcmd(getall,6,cmdtext);
  4584. dcmd(spawnall,8,cmdtext);
  4585. dcmd(freezeall,9,cmdtext);
  4586. dcmd(unfreezeall,11,cmdtext);
  4587. dcmd(explodeall,10,cmdtext);
  4588. dcmd(kickall,7,cmdtext);
  4589. dcmd(slapall,7,cmdtext);
  4590. dcmd(ejectall,8,cmdtext);
  4591. dcmd(disarmall,9,cmdtext);
  4592. dcmd(setallskin,10,cmdtext);
  4593. dcmd(setallwanted,12,cmdtext);
  4594. dcmd(setallweather,13,cmdtext);
  4595. dcmd(setalltime,10,cmdtext);
  4596. dcmd(setallworld,11,cmdtext);
  4597. dcmd(setallscore,11,cmdtext);
  4598. dcmd(setallcash,10,cmdtext);
  4599. dcmd(giveallcash,11,cmdtext);
  4600. dcmd(giveallweapon,13,cmdtext);
  4601.  
  4602. //-= No params =-//
  4603. dcmd(lslowmo,7,cmdtext);
  4604. dcmd(lweaps,6,cmdtext);
  4605. dcmd(lammo,5,cmdtext);
  4606. dcmd(god,3,cmdtext);
  4607. dcmd(sgod,4,cmdtext);
  4608. dcmd(godcar,6,cmdtext);
  4609. dcmd(die,3,cmdtext);
  4610. dcmd(jetpack,7,cmdtext);
  4611. dcmd(admins,6,cmdtext);
  4612. dcmd(morning,7,cmdtext);
  4613.  
  4614. //-= Admin special =-//
  4615. dcmd(saveplace,9,cmdtext);
  4616. dcmd(gotoplace,9,cmdtext);
  4617. dcmd(saveskin,8,cmdtext);
  4618. dcmd(useskin,7,cmdtext);
  4619. dcmd(dontuseskin,11,cmdtext);
  4620.  
  4621. //-= Config =-//
  4622. dcmd(disable,7,cmdtext);
  4623. dcmd(enable,6,cmdtext);
  4624. dcmd(setping,7,cmdtext);
  4625. dcmd(setgravity,10,cmdtext);
  4626. dcmd(uconfig,7,cmdtext);
  4627. dcmd(lconfig,7,cmdtext);
  4628. dcmd(forbidname,10,cmdtext);
  4629. dcmd(forbidword,10,cmdtext);
  4630.  
  4631. //-= Misc =-//
  4632. dcmd(setmytime,9,cmdtext);
  4633. dcmd(kill,4,cmdtext);
  4634. dcmd(time,4,cmdtext);
  4635. dcmd(lhelp,5,cmdtext);
  4636. dcmd(lcmds,5,cmdtext);
  4637. dcmd(lcommands,9,cmdtext);
  4638. dcmd(level1,6,cmdtext);
  4639. dcmd(level2,6,cmdtext);
  4640. dcmd(level3,6,cmdtext);
  4641. dcmd(level4,6,cmdtext);
  4642. dcmd(level5,6,cmdtext);
  4643. dcmd(lcredits,8,cmdtext);
  4644. dcmd(serverinfo,10,cmdtext);
  4645. dcmd(getid,5,cmdtext);
  4646. dcmd(getinfo,7,cmdtext);
  4647. dcmd(laston,6,cmdtext);
  4648. dcmd(ping,4,cmdtext);
  4649. dcmd(countdown,9,cmdtext);
  4650. dcmd(duel,4,cmdtext);
  4651. dcmd(asay,4,cmdtext);
  4652. dcmd(mmm,4,cmdtext);
  4653. dcmd(msay,4,cmdtext);
  4654. dcmd(password,8,cmdtext);
  4655. dcmd(lockserver,10,cmdtext);
  4656. dcmd(unlockserver,12,cmdtext);
  4657. dcmd(adminarea,9,cmdtext);
  4658. dcmd(announce,8,cmdtext);
  4659. dcmd(announce2,9,cmdtext);
  4660. dcmd(richlist,8,cmdtext);
  4661. dcmd(miniguns,8,cmdtext);
  4662. dcmd(botcheck,8,cmdtext);
  4663. dcmd(object,6,cmdtext);
  4664. dcmd(pickup,6,cmdtext);
  4665. dcmd(move,4,cmdtext);
  4666. dcmd(moveplayer,10,cmdtext);
  4667.  
  4668. #if defined ENABLE_FAKE_CMDS
  4669. dcmd(fakedeath,9,cmdtext);
  4670. dcmd(fakechat,8,cmdtext);
  4671. dcmd(fakecmd,7,cmdtext);
  4672. #endif
  4673.  
  4674. //-= Menu Commands =-//
  4675. #if defined USE_MENUS
  4676. dcmd(lmenu,5,cmdtext);
  4677. dcmd(ltele,5,cmdtext);
  4678. dcmd(lvehicle,8,cmdtext);
  4679. dcmd(lweapons,8,cmdtext);
  4680. dcmd(lweather,8,cmdtext);
  4681. dcmd(ltmenu,6,cmdtext);
  4682. dcmd(ltime,5,cmdtext);
  4683. dcmd(cm,2,cmdtext);
  4684. #endif
  4685.  
  4686.  
  4687.  
  4688.  
  4689. //========================= [ Car Commands ]====================================
  4690.  
  4691. if(strcmp(cmdtext, "/ltunedcar2", true)==0 || strcmp(cmdtext, "/ltc2", true)==0) {
  4692. if(PlayerInfo[playerid][Level] >= 1) {
  4693. if(IsPlayerInAnyVehicle(playerid)) {
  4694. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4695. } else {
  4696. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4697. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4698. 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);
  4699. AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140); AddVehicleComponent(LVehicleIDt, 1170);
  4700. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,1);
  4701. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  4702. PlayerInfo[playerid][pCar] = LVehicleIDt;
  4703. }
  4704. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4705. return 1; }
  4706. //------------------------------------------------------------------------------
  4707. if(strcmp(cmdtext, "/ltunedcar3", true)==0 || strcmp(cmdtext, "/ltc3", true)==0) {
  4708. if(PlayerInfo[playerid][Level] >= 1) {
  4709. if(IsPlayerInAnyVehicle(playerid)) {
  4710. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4711. } else {
  4712. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4713. new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4714. 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);
  4715. AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,2);
  4716. SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  4717. PlayerInfo[playerid][pCar] = LVehicleIDt;
  4718. }
  4719. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4720. return 1; }
  4721. //------------------------------------------------------------------------------
  4722. if(strcmp(cmdtext, "/ltunedcar4", true)==0 || strcmp(cmdtext, "/ltc4", true)==0) {
  4723. if(PlayerInfo[playerid][Level] >= 1) {
  4724. if(IsPlayerInAnyVehicle(playerid)) {
  4725. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4726. } else {
  4727. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4728. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4729. carid = CreateVehicle(559,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4730. AddVehicleComponent(carid,1065); AddVehicleComponent(carid,1067); AddVehicleComponent(carid,1162); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4731. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4732. PlayerInfo[playerid][pCar] = carid;
  4733. }
  4734. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4735. return 1; }
  4736. //------------------------------------------------------------------------------
  4737. if(strcmp(cmdtext, "/ltunedcar5", true)==0 || strcmp(cmdtext, "/ltc5", true)==0) {
  4738. if(PlayerInfo[playerid][Level] >= 1) {
  4739. if(IsPlayerInAnyVehicle(playerid)) {
  4740. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4741. } else {
  4742. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4743. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4744. carid = CreateVehicle(565,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4745. AddVehicleComponent(carid,1046); AddVehicleComponent(carid,1049); AddVehicleComponent(carid,1053); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4746. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4747. PlayerInfo[playerid][pCar] = carid;
  4748. }
  4749. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4750. return 1; }
  4751. //------------------------------------------------------------------------------
  4752. if(strcmp(cmdtext, "/ltunedcar6", true)==0 || strcmp(cmdtext, "/ltc6", true)==0) {
  4753. if(PlayerInfo[playerid][Level] >= 1) {
  4754. if(IsPlayerInAnyVehicle(playerid)) {
  4755. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4756. } else {
  4757. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4758. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4759. carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4760. AddVehicleComponent(carid,1088); AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1139); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4761. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4762. PlayerInfo[playerid][pCar] = carid;
  4763. }
  4764. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4765. return 1; }
  4766. //------------------------------------------------------------------------------
  4767. if(strcmp(cmdtext, "/ltunedcar7", true)==0 || strcmp(cmdtext, "/ltc7", true)==0) {
  4768. if(PlayerInfo[playerid][Level] >= 1) {
  4769. if(IsPlayerInAnyVehicle(playerid)) {
  4770. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4771. } else {
  4772. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4773. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4774. carid = CreateVehicle(561,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4775. AddVehicleComponent(carid,1055); AddVehicleComponent(carid,1058); AddVehicleComponent(carid,1064); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4776. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4777. PlayerInfo[playerid][pCar] = carid;
  4778. }
  4779. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4780. return 1; }
  4781. //------------------------------------------------------------------------------
  4782. if(strcmp(cmdtext, "/ltunedcar8", true)==0 || strcmp(cmdtext, "/ltc8", true)==0) {
  4783. if(PlayerInfo[playerid][Level] >= 1) {
  4784. if(IsPlayerInAnyVehicle(playerid)) {
  4785. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4786. } else {
  4787. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4788. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4789. carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4790. AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4791. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4792. PlayerInfo[playerid][pCar] = carid;
  4793. }
  4794. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4795. return 1; }
  4796. //------------------------------------------------------------------------------
  4797. if(strcmp(cmdtext, "/ltunedcar9", true)==0 || strcmp(cmdtext, "/ltc9", true)==0) {
  4798. if(PlayerInfo[playerid][Level] >= 1) {
  4799. if(IsPlayerInAnyVehicle(playerid)) {
  4800. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4801. } else {
  4802. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4803. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4804. carid = CreateVehicle(567,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4805. 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);
  4806. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4807. PlayerInfo[playerid][pCar] = carid;
  4808. }
  4809. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4810. return 1; }
  4811. //------------------------------------------------------------------------------
  4812. if(strcmp(cmdtext, "/ltunedcar10", true)==0 || strcmp(cmdtext, "/ltc10", true)==0) {
  4813. if(PlayerInfo[playerid][Level] >= 1) {
  4814. if(IsPlayerInAnyVehicle(playerid)) {
  4815. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4816. } else {
  4817. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4818. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4819. carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4820. AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1166); AddVehicleComponent(carid,1165); AddVehicleComponent(carid,1090);
  4821. AddVehicleComponent(carid,1094); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1163);//SPOILER
  4822. AddVehicleComponent(carid,1091); ChangeVehiclePaintjob(carid,2);
  4823. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4824. PlayerInfo[playerid][pCar] = carid;
  4825. }
  4826. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4827. return 1; }
  4828. //------------------------------------------------------------------------------
  4829. if(strcmp(cmdtext, "/ltunedcar11", true)==0 || strcmp(cmdtext, "/ltc11", true)==0) {
  4830. if(PlayerInfo[playerid][Level] >= 1) {
  4831. if(IsPlayerInAnyVehicle(playerid)) {
  4832. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4833. } else {
  4834. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4835. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4836. carid = CreateVehicle(557,X,Y,Z,Angle,1,1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4837. AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1081);
  4838. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4839. PlayerInfo[playerid][pCar] = carid;
  4840. }
  4841. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4842. return 1; }
  4843. //------------------------------------------------------------------------------
  4844. if(strcmp(cmdtext, "/ltunedcar12", true)==0 || strcmp(cmdtext, "/ltc12", true)==0) {
  4845. if(PlayerInfo[playerid][Level] >= 1) {
  4846. if(IsPlayerInAnyVehicle(playerid)) {
  4847. SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4848. } else {
  4849. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4850. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4851. carid = CreateVehicle(535,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4852. ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1109); AddVehicleComponent(carid,1115); AddVehicleComponent(carid,1117); AddVehicleComponent(carid,1073); AddVehicleComponent(carid,1010);
  4853. AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1114); AddVehicleComponent(carid,1081); AddVehicleComponent(carid,1119); AddVehicleComponent(carid,1121);
  4854. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4855. PlayerInfo[playerid][pCar] = carid;
  4856. }
  4857. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4858. return 1; }
  4859. //------------------------------------------------------------------------------
  4860. if(strcmp(cmdtext, "/ltunedcar13", true)==0 || strcmp(cmdtext, "/ltc13", true)==0) {
  4861. if(PlayerInfo[playerid][Level] >= 1) {
  4862. if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid,red,"Error: Usted ya tiene un vehículo");
  4863. else {
  4864. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4865. new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4866. carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4867. AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147);
  4868. AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,0);
  4869. SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4870. PlayerInfo[playerid][pCar] = carid;
  4871. }
  4872. } else SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4873. return 1; }
  4874. //------------------------------------------------------------------------------
  4875. if(strcmp(cmd, "/lp", true) == 0) {
  4876. if(PlayerInfo[playerid][Level] >= 1) {
  4877. if (GetPlayerState(playerid) == 2)
  4878. {
  4879. new VehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(VehicleID);
  4880. 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"); }
  4881. new str[128], Float:pos[3]; format(str, sizeof(str), "%s", cmdtext[2]);
  4882. SetVehicleNumberPlate(VehicleID, str);
  4883. GetPlayerPos(playerid, pos[0], pos[1], pos[2]); SetPlayerPos(playerid, pos[0]+1, pos[1], pos[2]);
  4884. SetVehicleToRespawn(VehicleID); SetVehiclePos(VehicleID, pos[0], pos[1], pos[2]);
  4885. SetTimerEx("TuneLCar",4000,0,"d",VehicleID); PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  4886. SendClientMessage(playerid, blue, "You have changed your licence plate"); CMDMessageToAdmins(playerid,"LP");
  4887. } else {
  4888. SendClientMessage(playerid,red,"Error: You have to be the driver of a vehicle to change its licence plate"); }
  4889. } else {
  4890. SendClientMessage(playerid,red,"ERROR: You need to be level 1 use this command"); }
  4891. return 1; }
  4892.  
  4893. //------------------------------------------------------------------------------
  4894. if(strcmp(cmd, "/spam", true) == 0) {
  4895. if(PlayerInfo[playerid][Level] >= 5) {
  4896. tmp = strtok(cmdtext, idx);
  4897. if(!strlen(tmp)) {
  4898. SendClientMessage(playerid, red, "USO: /spam [Color] [Texto]");
  4899. SendClientMessage(playerid, red, "Colores: 0=negro 1=blanco 2=rojo 3=naranja 4=amarillo 5=verde 6=azul 7=purpura 8=marron 9=rosa");
  4900. return 1;
  4901. }
  4902. new Colour = strval(tmp);
  4903. if(Colour > 9 ) return SendClientMessage(playerid, red, "Colores: 0=negro 1=blanco 2=rojo 3=naranja 4=amarillo 5=verde 6=azul 7=purpura 8=marron 9=rosa");
  4904. tmp = strtok(cmdtext, idx);
  4905.  
  4906. format(string,sizeof(string),"%s",cmdtext[8]);
  4907.  
  4908. if(Colour == 0) for(new i; i < 50; i++) SendClientMessageToAll(black,string);
  4909. else if(Colour == 1) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_WHITE,string);
  4910. else if(Colour == 2) for(new i; i < 50; i++) SendClientMessageToAll(red,string);
  4911. else if(Colour == 3) for(new i; i < 50; i++) SendClientMessageToAll(orange,string);
  4912. else if(Colour == 4) for(new i; i < 50; i++) SendClientMessageToAll(yellow,string);
  4913. else if(Colour == 5) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_GREEN1,string);
  4914. else if(Colour == 6) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_BLUE,string);
  4915. else if(Colour == 7) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_PURPLE,string);
  4916. else if(Colour == 8) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_BROWN,string);
  4917. else if(Colour == 9) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_PINK,string);
  4918. return 1;
  4919. } else return SendClientMessage(playerid,red,"ERROR: Necesitas nivel 5 para utilizar este comando.");
  4920. }
  4921.  
  4922. //------------------------------------------------------------------------------
  4923. if(strcmp(cmd, "/write", true) == 0) {
  4924. if(PlayerInfo[playerid][Level] >= 2) {
  4925. tmp = strtok(cmdtext, idx);
  4926. if(!strlen(tmp)) {
  4927. SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
  4928. 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");
  4929. }
  4930. new Colour;
  4931. Colour = strval(tmp);
  4932. if(Colour > 9 ) {
  4933. SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
  4934. 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");
  4935. }
  4936. tmp = strtok(cmdtext, idx);
  4937.  
  4938. CMDMessageToAdmins(playerid,"WRITE");
  4939.  
  4940. if(Colour == 0) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(black,string); return 1; }
  4941. else if(Colour == 1) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_WHITE,string); return 1; }
  4942. else if(Colour == 2) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(red,string); return 1; }
  4943. else if(Colour == 3) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(orange,string); return 1; }
  4944. else if(Colour == 4) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(yellow,string); return 1; }
  4945. else if(Colour == 5) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_GREEN1,string); return 1; }
  4946. else if(Colour == 6) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BLUE,string); return 1; }
  4947. else if(Colour == 7) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_PURPLE,string); return 1; }
  4948. else if(Colour == 8) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_BROWN,string); return 1; }
  4949. else if(Colour == 9) { format(string,sizeof(string),"%s",cmdtext[9]); SendClientMessageToAll(COLOR_PINK,string); return 1; }
  4950. return 1;
  4951. } else return SendClientMessage(playerid,red,"ERROR: Necesitas nivel 1 para utilizar este comando.");
  4952. }
  4953.  
  4954. //------------------------------------------------------------------------------
  4955. // Remote Console
  4956. //------------------------------------------------------------------------------
  4957.  
  4958. if(strcmp(cmd, "/loadfs", true) == 0) {
  4959. if(PlayerInfo[playerid][Level] >= 5) {
  4960. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  4961. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4962. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4963. }
  4964.  
  4965. if(strcmp(cmd, "/unloadfs", true) == 0) {
  4966. if(PlayerInfo[playerid][Level] >= 5) {
  4967. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  4968. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4969. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4970. }
  4971.  
  4972. if(strcmp(cmd, "/changemode", true) == 0) {
  4973. if(PlayerInfo[playerid][Level] >= 4) {
  4974. new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  4975. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4976. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4977. }
  4978.  
  4979. if(strcmp(cmd, "/gmx", true) == 0) {
  4980. if(PlayerInfo[playerid][Level] >= 5) {
  4981. OnFilterScriptExit(); SetTimer("RestartGM",5000,0);
  4982. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4983. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4984. }
  4985.  
  4986. if(strcmp(cmd, "/loadladmin", true) == 0) {
  4987. if(PlayerInfo[playerid][Level] >= 5) {
  4988. SendRconCommand("loadfs ladmin4");
  4989. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4990. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4991. }
  4992.  
  4993. if(strcmp(cmd, "/unloadladmin", true) == 0) {
  4994. if(PlayerInfo[playerid][Level] >= 5) {
  4995. SendRconCommand("unloadfs ladmin4");
  4996. return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4997. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4998. }
  4999.  
  5000. if(strcmp(cmd, "/reloadladmin", true) == 0) {
  5001. if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid) ) {
  5002. SendRconCommand("reloadfs ladmin4");
  5003. SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  5004. return CMDMessageToAdmins(playerid,"RELOADLADMIN");
  5005. } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5006. }
  5007.  
  5008.  
  5009. return 0;
  5010. }
  5011.  
  5012.  
  5013. //==============================================================================
  5014. #if defined ENABLE_SPEC
  5015.  
  5016. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  5017. {
  5018. new x = 0;
  5019. while(x!=MAX_PLAYERS) {
  5020. if( IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_SPECTATING &&
  5021. PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_PLAYER )
  5022. {
  5023. SetPlayerInterior(x,newinteriorid);
  5024. }
  5025. x++;
  5026. }
  5027. }
  5028.  
  5029. //==============================================================================
  5030. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  5031. {
  5032. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5033. {
  5034. if(newkeys == KEY_JUMP) AdvanceSpectate(playerid);
  5035. else if(newkeys == KEY_SPRINT) ReverseSpectate(playerid);
  5036. }
  5037. return 1;
  5038. }
  5039.  
  5040. //==============================================================================
  5041. public OnPlayerEnterVehicle(playerid, vehicleid) {
  5042. for(new x=0; x<MAX_PLAYERS; x++) {
  5043. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
  5044. TogglePlayerSpectating(x, 1);
  5045. PlayerSpectateVehicle(x, vehicleid);
  5046. PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  5047. }
  5048. }
  5049. return 1;
  5050. }
  5051.  
  5052. //==============================================================================
  5053. public OnPlayerStateChange(playerid, newstate, oldstate) {
  5054. switch(newstate) {
  5055. case PLAYER_STATE_ONFOOT: {
  5056. switch(oldstate) {
  5057. case PLAYER_STATE_DRIVER: OnPlayerExitVehicle(playerid,255);
  5058. case PLAYER_STATE_PASSENGER: OnPlayerExitVehicle(playerid,255);
  5059. }
  5060. }
  5061. }
  5062. return 1;
  5063. }
  5064.  
  5065. #endif
  5066.  
  5067. //==============================================================================
  5068. public OnPlayerExitVehicle(playerid, vehicleid)
  5069. {
  5070. if(PlayerInfo[playerid][DoorsLocked] == 1) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,false,false);
  5071.  
  5072. #if defined ENABLE_SPEC
  5073. for(new x=0; x<MAX_PLAYERS; x++) {
  5074. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_VEHICLE) {
  5075. TogglePlayerSpectating(x, 1);
  5076. PlayerSpectatePlayer(x, playerid);
  5077. PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
  5078. }
  5079. }
  5080. #endif
  5081.  
  5082. return 1;
  5083. }
  5084.  
  5085. //==============================================================================
  5086. #if defined ENABLE_SPEC
  5087.  
  5088. stock StartSpectate(playerid, specplayerid)
  5089. {
  5090. for(new x=0; x<MAX_PLAYERS; x++) {
  5091. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
  5092. AdvanceSpectate(x);
  5093. }
  5094. }
  5095. SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
  5096. TogglePlayerSpectating(playerid, 1);
  5097.  
  5098. if(IsPlayerInAnyVehicle(specplayerid)) {
  5099. PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
  5100. PlayerInfo[playerid][SpecID] = specplayerid;
  5101. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  5102. }
  5103. else {
  5104. PlayerSpectatePlayer(playerid, specplayerid);
  5105. PlayerInfo[playerid][SpecID] = specplayerid;
  5106. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
  5107. }
  5108. new string[100], Float:hp, Float:ar;
  5109. GetPlayerName(specplayerid,string,sizeof(string));
  5110. GetPlayerHealth(specplayerid, hp); GetPlayerArmour(specplayerid, ar);
  5111. 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) );
  5112. GameTextForPlayer(playerid,string,25000,3);
  5113. return 1;
  5114. }
  5115.  
  5116. stock StopSpectate(playerid)
  5117. {
  5118. TogglePlayerSpectating(playerid, 0);
  5119. PlayerInfo[playerid][SpecID] = INVALID_PLAYER_ID;
  5120. PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_NONE;
  5121. GameTextForPlayer(playerid,"~n~~n~~n~~w~Spectate mode ended",1000,3);
  5122. return 1;
  5123. }
  5124.  
  5125. stock AdvanceSpectate(playerid)
  5126. {
  5127. if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
  5128. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5129. {
  5130. for(new x=PlayerInfo[playerid][SpecID]+1; x<=MAX_PLAYERS; x++)
  5131. {
  5132. if(x == MAX_PLAYERS) x = 0;
  5133. if(IsPlayerConnected(x) && x != playerid)
  5134. {
  5135. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
  5136. {
  5137. continue;
  5138. }
  5139. else
  5140. {
  5141. StartSpectate(playerid, x);
  5142. break;
  5143. }
  5144. }
  5145. }
  5146. }
  5147. return 1;
  5148. }
  5149.  
  5150. stock ReverseSpectate(playerid)
  5151. {
  5152. if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
  5153. if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5154. {
  5155. for(new x=PlayerInfo[playerid][SpecID]-1; x>=0; x--)
  5156. {
  5157. if(x == 0) x = MAX_PLAYERS;
  5158. if(IsPlayerConnected(x) && x != playerid)
  5159. {
  5160. if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
  5161. {
  5162. continue;
  5163. }
  5164. else
  5165. {
  5166. StartSpectate(playerid, x);
  5167. break;
  5168. }
  5169. }
  5170. }
  5171. }
  5172. return 1;
  5173. }
  5174.  
  5175. //-------------------------------------------
  5176. forward PosAfterSpec(playerid);
  5177. public PosAfterSpec(playerid)
  5178. {
  5179. SetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  5180. SetPlayerFacingAngle(playerid,Pos[playerid][3]);
  5181. }
  5182. #endif
  5183.  
  5184. //==============================================================================
  5185. EraseVehicle(vehicleid)
  5186. {
  5187. for(new players=0;players<=MAX_PLAYERS;players++)
  5188. {
  5189. new Float:X,Float:Y,Float:Z;
  5190. if (IsPlayerInVehicle(players,vehicleid))
  5191. {
  5192. GetPlayerPos(players,X,Y,Z);
  5193. SetPlayerPos(players,X,Y,Z+2);
  5194. SetVehicleToRespawn(vehicleid);
  5195. }
  5196. SetVehicleParamsForPlayer(vehicleid,players,0,1);
  5197. }
  5198. SetTimerEx("VehRes",3000,0,"d",vehicleid);
  5199. return 1;
  5200. }
  5201.  
  5202. forward CarSpawner(playerid,model);
  5203. public CarSpawner(playerid,model)
  5204. {
  5205. if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, red, "Usted ya tiene un coche!");
  5206. else
  5207. {
  5208. new Float:x, Float:y, Float:z, Float:angle;
  5209. GetPlayerPos(playerid, x, y, z);
  5210. GetPlayerFacingAngle(playerid, angle);
  5211. if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5212. new vehicleid=CreateVehicle(model, x, y, z, angle, -1, -1, -1);
  5213. PutPlayerInVehicle(playerid, vehicleid, 0);
  5214. SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
  5215. LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid));
  5216. ChangeVehicleColor(vehicleid,0,7);
  5217. PlayerInfo[playerid][pCar] = vehicleid;
  5218. }
  5219. return 1;
  5220. }
  5221.  
  5222. forward CarDeleter(vehicleid);
  5223. public CarDeleter(vehicleid)
  5224. {
  5225. for(new i=0;i<MAX_PLAYERS;i++) {
  5226. new Float:X,Float:Y,Float:Z;
  5227. if(IsPlayerInVehicle(i, vehicleid)) {
  5228. RemovePlayerFromVehicle(i);
  5229. GetPlayerPos(i,X,Y,Z);
  5230. SetPlayerPos(i,X,Y+3,Z);
  5231. }
  5232. SetVehicleParamsForPlayer(vehicleid,i,0,1);
  5233. }
  5234. SetTimerEx("VehRes",1500,0,"i",vehicleid);
  5235. }
  5236.  
  5237. forward VehRes(vehicleid);
  5238. public VehRes(vehicleid)
  5239. {
  5240. DestroyVehicle(vehicleid);
  5241. }
  5242.  
  5243. public OnVehicleSpawn(vehicleid)
  5244. {
  5245. for(new i=0;i<MAX_PLAYERS;i++)
  5246. {
  5247. if(vehicleid==PlayerInfo[i][pCar])
  5248. {
  5249. CarDeleter(vehicleid);
  5250. PlayerInfo[i][pCar]=-1;
  5251. }
  5252. }
  5253. return 1;
  5254. }
  5255. //==============================================================================
  5256. forward TuneLCar(VehicleID);
  5257. public TuneLCar(VehicleID)
  5258. {
  5259. ChangeVehicleColor(VehicleID,0,7);
  5260. AddVehicleComponent(VehicleID, 1010); AddVehicleComponent(VehicleID, 1087);
  5261. }
  5262.  
  5263. //==============================================================================
  5264.  
  5265. public OnRconCommand(cmd[])
  5266. {
  5267. if( strlen(cmd) > 50 || strlen(cmd) == 1 ) return print("Invalid command length (exceeding 50 characters)");
  5268.  
  5269. if(strcmp(cmd, "ladmin", true)==0) {
  5270. print("Rcon Commands");
  5271. print("info, aka, pm, asay, ann, uconfig, chat");
  5272. return true;
  5273. }
  5274.  
  5275. if(strcmp(cmd, "info", true)==0)
  5276. {
  5277. new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000); DestroyVehicle(TotalVehicles);
  5278. new numo = CreateObject(1245,0,0,1000,0,0,0); DestroyObject(numo);
  5279. new nump = CreatePickup(371,2,0,0,1000); DestroyPickup(nump);
  5280. new gz = GangZoneCreate(3,3,5,5); GangZoneDestroy(gz);
  5281.  
  5282. new model[250], nummodel;
  5283. for(new i=1;i<TotalVehicles;i++) model[GetVehicleModel(i)-400]++;
  5284. for(new i=0;i<250;i++) { if(model[i]!=0) { nummodel++; } }
  5285.  
  5286. new string[256];
  5287. print(" ===========================================================================");
  5288. printf(" Server Info:");
  5289. format(string,sizeof(string),"[ Jugadores Conectados: %d || Jugadores Maximos: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
  5290. printf(string);
  5291. format(string,sizeof(string),"[ Vehiculos: %d || Modelos %d || Jugadores en Vehiculos: %d ]",TotalVehicles-1,nummodel, InVehCount() );
  5292. printf(string);
  5293. format(string,sizeof(string),"[ En Auto %d || En Moto/Bice %d ]",InCarCount(),OnBikeCount() );
  5294. printf(string);
  5295. format(string,sizeof(string),"[ Objetos: %d || Pickups %d || Gangzones %d]",numo-1, nump, gz);
  5296. printf(string);
  5297. format(string,sizeof(string),"[ Jugadores Arrestados %d || Jugadores Congelados %d || Muteadosd %d ]",JailedPlayers(),FrozenPlayers(), MutedPlayers() );
  5298. printf(string);
  5299. format(string,sizeof(string),"[ Administradores ON-LINE %d RCON Admins ON-LINE %d ]",AdminCount(), RconAdminCount() );
  5300. printf(string);
  5301. print(" ===========================================================================");
  5302. return true;
  5303. }
  5304.  
  5305. if(!strcmp(cmd, "pm", .length = 2))
  5306. {
  5307. new arg_1 = argpos(cmd), arg_2 = argpos(cmd, arg_1),targetid = strval(cmd[arg_1]), message[128];
  5308.  
  5309. if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > MAX_PLAYERS || targetid < 0 || !cmd[arg_2])
  5310. print("Use: \"pm <jugador> <mensaje>\"");
  5311.  
  5312. else if ( !IsPlayerConnected(targetid) ) print("Este jugador no esta conectado!");
  5313. else
  5314. {
  5315. format(message, sizeof(message), "[RCON] PM: %s", cmd[arg_2]);
  5316. SendClientMessage(targetid, COLOR_WHITE, message);
  5317. printf("Rcon PM '%s' sent", cmd[arg_1] );
  5318. }
  5319. return true;
  5320. }
  5321.  
  5322. if(!strcmp(cmd, "asay", .length = 4))
  5323. {
  5324. new arg_1 = argpos(cmd), message[128];
  5325.  
  5326. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Use: \"asay <mensaje>\" (MessageToAdmins)");
  5327. else
  5328. {
  5329. format(message, sizeof(message), "[RCON] MessageToAdmins: %s", cmd[arg_1]);
  5330. MessageToAdmins(COLOR_WHITE, message);
  5331. printf("Admin Message '%s' sent", cmd[arg_1] );
  5332. }
  5333. return true;
  5334. }
  5335.  
  5336. if(!strcmp(cmd, "ann", .length = 3))
  5337. {
  5338. new arg_1 = argpos(cmd), message[128];
  5339. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Use: \"ann <mensaje>\" (GameTextForAll)");
  5340. else
  5341. {
  5342. format(message, sizeof(message), "[RCON]: %s", cmd[arg_1]);
  5343. GameTextForAll(message,3000,3);
  5344. printf("GameText Message '%s' sent", cmd[arg_1] );
  5345. }
  5346. return true;
  5347. }
  5348.  
  5349. if(!strcmp(cmd, "msg", .length = 3))
  5350. {
  5351. new arg_1 = argpos(cmd), message[128];
  5352. if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Use: \"msg <mensaje>\" (SendClientMessageToAll)");
  5353. else
  5354. {
  5355. format(message, sizeof(message), "[RCON]: %s", cmd[arg_1]);
  5356. SendClientMessageToAll(COLOR_WHITE, message);
  5357. printf("MessageToAll '%s' sent", cmd[arg_1] );
  5358. }
  5359. return true;
  5360. }
  5361.  
  5362. if(strcmp(cmd, "uconfig", true)==0)
  5363. {
  5364. UpdateConfig();
  5365. print("Configuracion actualizada satifactoriamente");
  5366. return true;
  5367. }
  5368.  
  5369. if(!strcmp(cmd, "aka", .length = 3))
  5370. {
  5371. new arg_1 = argpos(cmd), targetid = strval(cmd[arg_1]);
  5372.  
  5373. if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > MAX_PLAYERS || targetid < 0)
  5374. print("Usage: aka <playerid>");
  5375. else if ( !IsPlayerConnected(targetid) ) print("Este jugador no esta conectado!");
  5376. else
  5377. {
  5378. new tmp3[50], playername[MAX_PLAYER_NAME];
  5379. GetPlayerIp(targetid,tmp3,50);
  5380. GetPlayerName(targetid, playername, sizeof(playername));
  5381. printf("AKA: [%s id:%d] [%s] %s", playername, targetid, tmp3, dini_Get("ladmin/config/aka.txt",tmp3) );
  5382. }
  5383. return true;
  5384. }
  5385.  
  5386. if(!strcmp(cmd, "chat", .length = 4)) {
  5387. for(new i = 1; i < MAX_CHAT_LINES; i++) print(Chat[i]);
  5388. return true;
  5389. }
  5390.  
  5391. return 0;
  5392. }
  5393.  
  5394. //==============================================================================
  5395. // Menus
  5396. //==============================================================================
  5397.  
  5398. #if defined USE_MENUS
  5399. public OnPlayerSelectedMenuRow(playerid, row) {
  5400. new Menu:Current = GetPlayerMenu(playerid);
  5401. new string[128];
  5402.  
  5403. if(Current == LMainMenu) {
  5404. switch(row)
  5405. {
  5406. case 0:
  5407. {
  5408. if(PlayerInfo[playerid][Level] >= 4) ShowMenuForPlayer(AdminEnable,playerid);
  5409. else {
  5410. SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 4 para usar este comando.");
  5411. TogglePlayerControllable(playerid,true);
  5412. }
  5413. }
  5414. case 1:
  5415. {
  5416. if(PlayerInfo[playerid][Level] >= 4) ShowMenuForPlayer(AdminDisable,playerid);
  5417. else {
  5418. SendClientMessage(playerid,red,"ERROR: Necesitas ser Administrador nivel 4 para usar este comando.");
  5419. TogglePlayerControllable(playerid,true);
  5420. }
  5421. }
  5422. case 2: ShowMenuForPlayer(LWeather,playerid);
  5423. case 3: ShowMenuForPlayer(LTime,playerid);
  5424. case 4: ShowMenuForPlayer(LVehicles,playerid);
  5425. case 5: ShowMenuForPlayer(LCars,playerid);
  5426. case 6:
  5427. {
  5428. if(PlayerInfo[playerid][Level] >= 2)
  5429. {
  5430. if(IsPlayerInAnyVehicle(playerid))
  5431. {
  5432. new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  5433. switch(LModel)
  5434. {
  5435. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  5436. {
  5437. SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle"); TogglePlayerControllable(playerid,true);
  5438. return 1;
  5439. }
  5440. }
  5441. TogglePlayerControllable(playerid,false); ShowMenuForPlayer(LTuneMenu,playerid);
  5442. }
  5443. else { SendClientMessage(playerid,red,"ERROR: You do not have a vehicle to tune"); TogglePlayerControllable(playerid,true); }
  5444. } else { SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); TogglePlayerControllable(playerid,true); }
  5445. }
  5446. case 7:
  5447. {
  5448. if(PlayerInfo[playerid][Level] >= 3) ShowMenuForPlayer(XWeapons,playerid);
  5449. else SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); TogglePlayerControllable(playerid,true);
  5450. }
  5451. case 8: ShowMenuForPlayer(LTele,playerid);
  5452. case 9:
  5453. {
  5454. new Menu:Currentxmenu = GetPlayerMenu(playerid);
  5455. HideMenuForPlayer(Currentxmenu,playerid); TogglePlayerControllable(playerid,true);
  5456. }
  5457. }
  5458. return 1;
  5459. }//-------------------------------------------------------------------------
  5460. if(Current == AdminEnable) {
  5461. new adminname[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5462. format(file,sizeof(file),"ladmin/config/Config.ini");
  5463. switch(row){
  5464. case 0: { ServerInfo[AntiSwear] = 1; dini_IntSet(file,"AntiSwear",1); format(string,sizeof(string),"Administrator %s habilito antiswear",adminname); SendClientMessageToAll(blue,string); }
  5465. case 1: { ServerInfo[NameKick] = 1; dini_IntSet(file,"NameKick",1); format(string,sizeof(string),"Administrator %s habilito namekick",adminname); SendClientMessageToAll(blue,string); }
  5466. case 2: { ServerInfo[AntiSpam] = 1; dini_IntSet(file,"AntiSpam",1); format(string,sizeof(string),"Administrator %s habilito antispam",adminname); SendClientMessageToAll(blue,string); }
  5467. case 3: { ServerInfo[MaxPing] = 1000; dini_IntSet(file,"MaxPing",1000); format(string,sizeof(string),"Administrator %s habilito ping kick",adminname); SendClientMessageToAll(blue,string); }
  5468. case 4: { ServerInfo[ReadCmds] = 1; dini_IntSet(file,"ReadCmds",1); format(string,sizeof(string),"Administrator %s habilito reading commands",adminname); MessageToAdmins(green,string); }
  5469. case 5: { ServerInfo[ReadPMs] = 1; dini_IntSet(file,"ReadPMs",1); format(string,sizeof(string),"Administrator %s habilito reading pms",adminname); MessageToAdmins(green,string); }
  5470. 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); }
  5471. case 7: { ServerInfo[ConnectMessages] = 1; dini_IntSet(file,"ConnectMessages",1); format(string,sizeof(string),"Administrator %s habilito connect messages",adminname); SendClientMessageToAll(blue,string); }
  5472. case 8: { ServerInfo[AdminCmdMsg] = 1; dini_IntSet(file,"AdminCmdMessages",1); format(string,sizeof(string),"Administrator %s habilito admin command messages",adminname); MessageToAdmins(green,string); }
  5473. case 9: { ServerInfo[AutoLogin] = 1; dini_IntSet(file,"AutoLogin",1); format(string,sizeof(string),"Administrator %s habilito auto login",adminname); SendClientMessageToAll(blue,string); }
  5474. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5475. }
  5476. return TogglePlayerControllable(playerid,true);
  5477. }//------------------------------------------------------------------------
  5478. if(Current == AdminDisable) {
  5479. new adminname[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5480. format(file,sizeof(file),"ladmin/config/Config.ini");
  5481. switch(row){
  5482. case 0: { ServerInfo[AntiSwear] = 0; dini_IntSet(file,"AntiSwear",0); format(string,sizeof(string),"Administrator %s desactivo antiswear",adminname); SendClientMessageToAll(blue,string); }
  5483. case 1: { ServerInfo[NameKick] = 0; dini_IntSet(file,"NameKick",0); format(string,sizeof(string),"Administrator %s desactivo namekick",adminname); SendClientMessageToAll(blue,string); }
  5484. case 2: { ServerInfo[AntiSpam] = 0; dini_IntSet(file,"AntiSpam",0); format(string,sizeof(string),"Administrator %s desactivo antispam",adminname); SendClientMessageToAll(blue,string); }
  5485. case 3: { ServerInfo[MaxPing] = 0; dini_IntSet(file,"MaxPing",0); format(string,sizeof(string),"Administrator %s desactivo ping kick",adminname); SendClientMessageToAll(blue,string); }
  5486. case 4: { ServerInfo[ReadCmds] = 0; dini_IntSet(file,"ReadCmds",0); format(string,sizeof(string),"Administrator %s desactivo reading commands",adminname); MessageToAdmins(green,string); }
  5487. case 5: { ServerInfo[ReadPMs] = 0; dini_IntSet(file,"ReadPMs",0); format(string,sizeof(string),"Administrator %s desactivo reading pms",adminname); MessageToAdmins(green,string); }
  5488. 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); }
  5489. case 7: { ServerInfo[ConnectMessages] = 0; dini_IntSet(file,"ConnectMessages",0); format(string,sizeof(string),"Administrator %s has disabled connect messages",adminname); SendClientMessageToAll(blue,string); }
  5490. case 8: { ServerInfo[AdminCmdMsg] = 0; dini_IntSet(file,"AdminCmdMessages",0); format(string,sizeof(string),"Administrator %s desactivo admin command messages",adminname); MessageToAdmins(green,string); }
  5491. case 9: { ServerInfo[AutoLogin] = 0; dini_IntSet(file,"AutoLogin",0); format(string,sizeof(string),"Administrator %s desactivo auto login",adminname); SendClientMessageToAll(blue,string); }
  5492. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5493. }
  5494. return TogglePlayerControllable(playerid,true);
  5495. }//-------------------------------------------------------------------------
  5496. if(Current==LVehicles){
  5497. switch(row){
  5498. case 0: ChangeMenu(playerid,Current,twodoor);
  5499. case 1: ChangeMenu(playerid,Current,fourdoor);
  5500. case 2: ChangeMenu(playerid,Current,fastcar);
  5501. case 3: ChangeMenu(playerid,Current,Othercars);
  5502. case 4: ChangeMenu(playerid,Current,bikes);
  5503. case 5: ChangeMenu(playerid,Current,boats);
  5504. case 6: ChangeMenu(playerid,Current,planes);
  5505. case 7: ChangeMenu(playerid,Current,helicopters);
  5506. case 8: return ChangeMenu(playerid,Current,LMainMenu);
  5507. }
  5508. return 1;
  5509. }
  5510. if(Current==twodoor){
  5511. new vehid;
  5512. switch(row){
  5513. case 0: vehid = 533;
  5514. case 1: vehid = 439;
  5515. case 2: vehid = 555;
  5516. case 3: vehid = 422;
  5517. case 4: vehid = 554;
  5518. case 5: vehid = 575;
  5519. case 6: vehid = 536;
  5520. case 7: vehid = 535;
  5521. case 8: vehid = 576;
  5522. case 9: vehid = 401;
  5523. case 10: vehid = 526;
  5524. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5525. }
  5526. return SelectCar(playerid,vehid,Current);
  5527. }
  5528. if(Current==fourdoor){
  5529. new vehid;
  5530. switch(row){
  5531. case 0: vehid = 404;
  5532. case 1: vehid = 566;
  5533. case 2: vehid = 412;
  5534. case 3: vehid = 445;
  5535. case 4: vehid = 507;
  5536. case 5: vehid = 466;
  5537. case 6: vehid = 546;
  5538. case 7: vehid = 511;
  5539. case 8: vehid = 467;
  5540. case 9: vehid = 426;
  5541. case 10: vehid = 405;
  5542. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5543. }
  5544. return SelectCar(playerid,vehid,Current);
  5545. }
  5546. if(Current==fastcar){
  5547. new vehid;
  5548. switch(row){
  5549. case 0: vehid = 480;
  5550. case 1: vehid = 402;
  5551. case 2: vehid = 415;
  5552. case 3: vehid = 587;
  5553. case 4: vehid = 494;
  5554. case 5: vehid = 411;
  5555. case 6: vehid = 603;
  5556. case 7: vehid = 506;
  5557. case 8: vehid = 451;
  5558. case 9: vehid = 477;
  5559. case 10: vehid = 541;
  5560. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5561. }
  5562. return SelectCar(playerid,vehid,Current);
  5563. }
  5564. if(Current==Othercars){
  5565. new vehid;
  5566. switch(row){
  5567. case 0: vehid = 556;
  5568. case 1: vehid = 408;
  5569. case 2: vehid = 431;
  5570. case 3: vehid = 437;
  5571. case 4: vehid = 427;
  5572. case 5: vehid = 432;
  5573. case 6: vehid = 601;
  5574. case 7: vehid = 524;
  5575. case 8: vehid = 455;
  5576. case 9: vehid = 424;
  5577. case 10: vehid = 573;
  5578. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5579. }
  5580. return SelectCar(playerid,vehid,Current);
  5581. }
  5582. if(Current==bikes){
  5583. new vehid;
  5584. switch(row){
  5585. case 0: vehid = 581;
  5586. case 1: vehid = 481;
  5587. case 2: vehid = 462;
  5588. case 3: vehid = 521;
  5589. case 4: vehid = 463;
  5590. case 5: vehid = 522;
  5591. case 6: vehid = 461;
  5592. case 7: vehid = 448;
  5593. case 8: vehid = 471;
  5594. case 9: vehid = 468;
  5595. case 10: vehid = 586;
  5596. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5597. }
  5598. return SelectCar(playerid,vehid,Current);
  5599. }
  5600. if(Current==boats){
  5601. new vehid;
  5602. switch(row){
  5603. case 0: vehid = 472;
  5604. case 1: vehid = 473;
  5605. case 2: vehid = 493;
  5606. case 3: vehid = 595;
  5607. case 4: vehid = 484;
  5608. case 5: vehid = 430;
  5609. case 6: vehid = 453;
  5610. case 7: vehid = 452;
  5611. case 8: vehid = 446;
  5612. case 9: vehid = 454;
  5613. case 10: return ChangeMenu(playerid,Current,LVehicles);
  5614. }
  5615. return SelectCar(playerid,vehid,Current);
  5616. }
  5617. if(Current==planes){
  5618. new vehid;
  5619. switch(row){
  5620. case 0: vehid = 592;
  5621. case 1: vehid = 577;
  5622. case 2: vehid = 511;
  5623. case 3: vehid = 512;
  5624. case 4: vehid = 593;
  5625. case 5: vehid = 520;
  5626. case 6: vehid = 553;
  5627. case 7: vehid = 476;
  5628. case 8: vehid = 519;
  5629. case 9: vehid = 460;
  5630. case 10: vehid = 513;
  5631. case 11: return ChangeMenu(playerid,Current,LVehicles);
  5632. }
  5633. return SelectCar(playerid,vehid,Current);
  5634. }
  5635. if(Current==helicopters){
  5636. new vehid;
  5637. switch(row){
  5638. case 0: vehid = 548;
  5639. case 1: vehid = 425;
  5640. case 2: vehid = 417;
  5641. case 3: vehid = 487;
  5642. case 4: vehid = 488;
  5643. case 5: vehid = 497;
  5644. case 6: vehid = 563;
  5645. case 7: vehid = 447;
  5646. case 8: vehid = 469;
  5647. case 9: return ChangeMenu(playerid,Current,LVehicles);
  5648. }
  5649. return SelectCar(playerid,vehid,Current);
  5650. }
  5651.  
  5652. if(Current==XWeapons){
  5653. switch(row){
  5654. case 0: { GivePlayerWeapon(playerid,24,500); }
  5655. case 1: { GivePlayerWeapon(playerid,31,500); }
  5656. case 2: { GivePlayerWeapon(playerid,26,500); }
  5657. case 3: { GivePlayerWeapon(playerid,27,500); }
  5658. case 4: { GivePlayerWeapon(playerid,28,500); }
  5659. case 5: { GivePlayerWeapon(playerid,35,500); }
  5660. case 6: { GivePlayerWeapon(playerid,38,1000); }
  5661. case 7: { GivePlayerWeapon(playerid,34,500); }
  5662. case 8: return ChangeMenu(playerid,Current,XWeaponsBig);
  5663. case 9: return ChangeMenu(playerid,Current,XWeaponsSmall);
  5664. case 10: return ChangeMenu(playerid,Current,XWeaponsMore);
  5665. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5666. }
  5667. return TogglePlayerControllable(playerid,true);
  5668. }
  5669.  
  5670. if(Current==XWeaponsBig){
  5671. switch(row){
  5672. case 0: { GivePlayerWeapon(playerid,25,500); }
  5673. case 1: { GivePlayerWeapon(playerid,30,500); }
  5674. case 2: { GivePlayerWeapon(playerid,33,500); }
  5675. case 3: { GivePlayerWeapon(playerid,36,500); }
  5676. case 4: { GivePlayerWeapon(playerid,37,500); }
  5677. case 5: { GivePlayerWeapon(playerid,29,500); }
  5678. case 6: { GivePlayerWeapon(playerid,32,1000); }
  5679. case 7: return ChangeMenu(playerid,Current,XWeapons);
  5680. }
  5681. return TogglePlayerControllable(playerid,true);
  5682. }
  5683.  
  5684. if(Current==XWeaponsSmall){
  5685. switch(row){
  5686. case 0: { GivePlayerWeapon(playerid,22,500); }//9mm
  5687. case 1: { GivePlayerWeapon(playerid,23,500); }//s9
  5688. case 2: { GivePlayerWeapon(playerid,18,500); }// MC
  5689. case 3: { GivePlayerWeapon(playerid,42,500); }//FE
  5690. case 4: { GivePlayerWeapon(playerid,41,500); }//spraycan
  5691. case 5: { GivePlayerWeapon(playerid,16,500); }//grenade
  5692. case 6: { GivePlayerWeapon(playerid,8,500); }//Katana
  5693. case 7: { GivePlayerWeapon(playerid,9,1000); }//chainsaw
  5694. case 8: return ChangeMenu(playerid,Current,XWeapons);
  5695. }
  5696. return TogglePlayerControllable(playerid,true);
  5697. }
  5698.  
  5699. if(Current==XWeaponsMore){
  5700. switch(row){
  5701. case 0: SetPlayerSpecialAction(playerid, 2);
  5702. case 1: GivePlayerWeapon(playerid,4,500);
  5703. case 2: GivePlayerWeapon(playerid,14,500);
  5704. case 3: GivePlayerWeapon(playerid,43,500);
  5705. case 4: GivePlayerWeapon(playerid,7,500);
  5706. case 5: GivePlayerWeapon(playerid,5,500);
  5707. case 6: GivePlayerWeapon(playerid,2,1000);
  5708. case 7: MaxAmmo(playerid);
  5709. case 8: return ChangeMenu(playerid,Current,XWeapons);
  5710. }
  5711. return TogglePlayerControllable(playerid,true);
  5712. }
  5713.  
  5714. if(Current == LTele)
  5715. {
  5716. switch(row)
  5717. {
  5718. case 0: ChangeMenu(playerid,Current,LasVenturasMenu);
  5719. case 1: ChangeMenu(playerid,Current,LosSantosMenu);
  5720. case 2: ChangeMenu(playerid,Current,SanFierroMenu);
  5721. case 3: ChangeMenu(playerid,Current,DesertMenu);
  5722. case 4: ChangeMenu(playerid,Current,FlintMenu);
  5723. case 5: ChangeMenu(playerid,Current,MountChiliadMenu);
  5724. case 6: ChangeMenu(playerid,Current,InteriorsMenu);
  5725. case 7: return ChangeMenu(playerid,Current,LMainMenu);
  5726. }
  5727. return 1;
  5728. }
  5729.  
  5730. if(Current == LasVenturasMenu)
  5731. {
  5732. switch(row)
  5733. {
  5734. case 0: { SetPlayerPos(playerid,2037.0,1343.0,12.0); SetPlayerInterior(playerid,0); }// strip
  5735. case 1: { SetPlayerPos(playerid,2163.0,1121.0,23); SetPlayerInterior(playerid,0); }// come a lot
  5736. case 2: { SetPlayerPos(playerid,1688.0,1615.0,12.0); SetPlayerInterior(playerid,0); }// lv airport
  5737. case 3: { SetPlayerPos(playerid,2503.0,2764.0,10.0); SetPlayerInterior(playerid,0); }// military fuel
  5738. case 4: { SetPlayerPos(playerid,1418.0,2733.0,10.0); SetPlayerInterior(playerid,0); }// golf lv
  5739. case 5: { SetPlayerPos(playerid,1377.0,2196.0,9.0); SetPlayerInterior(playerid,0); }// pitch match
  5740. case 6: return ChangeMenu(playerid,Current,LTele);
  5741. }
  5742. return TogglePlayerControllable(playerid,true);
  5743. }
  5744.  
  5745. if(Current == LosSantosMenu)
  5746. {
  5747. switch(row)
  5748. {
  5749. case 0: { SetPlayerPos(playerid,2495.0,-1688.0,13.0); SetPlayerInterior(playerid,0); }// ganton
  5750. case 1: { SetPlayerPos(playerid,1979.0,-2241.0,13.0); SetPlayerInterior(playerid,0); }// ls airport
  5751. case 2: { SetPlayerPos(playerid,2744.0,-2435.0,15.0); SetPlayerInterior(playerid,0); }// docks
  5752. case 3: { SetPlayerPos(playerid,1481.0,-1656.0,14.0); SetPlayerInterior(playerid,0); }// square
  5753. case 4: { SetPlayerPos(playerid,1150.0,-2037.0,69.0); SetPlayerInterior(playerid,0); }// veradant bluffs
  5754. case 5: { SetPlayerPos(playerid,425.0,-1815.0,6.0); SetPlayerInterior(playerid,0); }// santa beach
  5755. case 6: { SetPlayerPos(playerid,1240.0,-744.0,95.0); SetPlayerInterior(playerid,0); }// mullholland
  5756. case 7: { SetPlayerPos(playerid,679.0,-1070.0,49.0); SetPlayerInterior(playerid,0); }// richman
  5757. case 8: return ChangeMenu(playerid,Current,LTele);
  5758. }
  5759. return TogglePlayerControllable(playerid,true);
  5760. }
  5761.  
  5762. if(Current == SanFierroMenu)
  5763. {
  5764. switch(row)
  5765. {
  5766. case 0: { SetPlayerPos(playerid,-1990.0,137.0,27.0); SetPlayerInterior(playerid,0); } // sf station
  5767. case 1: { SetPlayerPos(playerid,-1528.0,-206.0,14.0); SetPlayerInterior(playerid,0); }// sf airport
  5768. case 2: { SetPlayerPos(playerid,-2709.0,198.0,4.0); SetPlayerInterior(playerid,0); }// ocean flats
  5769. case 3: { SetPlayerPos(playerid,-2738.0,-295.0,6.0); SetPlayerInterior(playerid,0); }// avispa country club
  5770. case 4: { SetPlayerPos(playerid,-1457.0,465.0,7.0); SetPlayerInterior(playerid,0); }// easter basic docks
  5771. case 5: { SetPlayerPos(playerid,-1853.0,1404.0,7.0); SetPlayerInterior(playerid,0); }// esplanadae north
  5772. case 6: { SetPlayerPos(playerid,-2620.0,1373.0,7.0); SetPlayerInterior(playerid,0); }// battery point
  5773. case 7: return ChangeMenu(playerid,Current,LTele);
  5774. }
  5775. return TogglePlayerControllable(playerid,true);
  5776. }
  5777.  
  5778. if(Current == DesertMenu)
  5779. {
  5780. switch(row)
  5781. {
  5782. case 0: { SetPlayerPos(playerid,416.0,2516.0,16.0); SetPlayerInterior(playerid,0); } // plane graveyard
  5783. case 1: { SetPlayerPos(playerid,81.0,1920.0,17.0); SetPlayerInterior(playerid,0); }// area51
  5784. case 2: { SetPlayerPos(playerid,-324.0,1516.0,75.0); SetPlayerInterior(playerid,0); }// big ear
  5785. case 3: { SetPlayerPos(playerid,-640.0,2051.0,60.0); SetPlayerInterior(playerid,0); }// dam
  5786. case 4: { SetPlayerPos(playerid,-766.0,1545.0,27.0); SetPlayerInterior(playerid,0); }// las barrancas
  5787. case 5: { SetPlayerPos(playerid,-1514.0,2597.0,55.0); SetPlayerInterior(playerid,0); }// el qyebrados
  5788. case 6: { SetPlayerPos(playerid,442.0,1427.0,9.0); SetPlayerInterior(playerid,0); }// actane springs
  5789. case 7: return ChangeMenu(playerid,Current,LTele);
  5790. }
  5791. return TogglePlayerControllable(playerid,true);
  5792. }
  5793.  
  5794. if(Current == FlintMenu)
  5795. {
  5796. switch(row)
  5797. {
  5798. case 0: { SetPlayerPos(playerid,-849.0,-1940.0,13.0); SetPlayerInterior(playerid,0); }// lake
  5799. case 1: { SetPlayerPos(playerid,-1107.0,-1619.0,76.0); SetPlayerInterior(playerid,0); }// leafy hollow
  5800. case 2: { SetPlayerPos(playerid,-1049.0,-1199.0,128.0); SetPlayerInterior(playerid,0); }// the farm
  5801. case 3: { SetPlayerPos(playerid,-1655.0,-2219.0,32.0); SetPlayerInterior(playerid,0); }// shady cabin
  5802. case 4: { SetPlayerPos(playerid,-375.0,-1441.0,25.0); SetPlayerInterior(playerid,0); }// flint range
  5803. case 5: { SetPlayerPos(playerid,-367.0,-1049.0,59.0); SetPlayerInterior(playerid,0); }// beacon hill
  5804. case 6: { SetPlayerPos(playerid,-494.0,-555.0,25.0); SetPlayerInterior(playerid,0); }// fallen tree
  5805. case 7: return ChangeMenu(playerid,Current,LTele);
  5806. }
  5807. return TogglePlayerControllable(playerid,true);
  5808. }
  5809.  
  5810. if(Current == MountChiliadMenu)
  5811. {
  5812. switch(row)
  5813. {
  5814. case 0: { SetPlayerPos(playerid,-2308.0,-1657.0,483.0); SetPlayerInterior(playerid,0); }// chiliad jump
  5815. case 1: { SetPlayerPos(playerid,-2331.0,-2180.0,35.0); SetPlayerInterior(playerid,0); }// bottom chiliad
  5816. case 2: { SetPlayerPos(playerid,-2431.0,-1620.0,526.0); SetPlayerInterior(playerid,0); }// highest point
  5817. case 3: { SetPlayerPos(playerid,-2136.0,-1775.0,208.0); SetPlayerInterior(playerid,0); }// chiliad path
  5818. case 4: return ChangeMenu(playerid,Current,LTele);
  5819. }
  5820. return TogglePlayerControllable(playerid,true);
  5821. }
  5822.  
  5823. if(Current == InteriorsMenu)
  5824. {
  5825. switch(row)
  5826. {
  5827. case 0: { SetPlayerPos(playerid,386.5259, 173.6381, 1008.3828); SetPlayerInterior(playerid,3); }
  5828. case 1: { SetPlayerPos(playerid,288.4723, 170.0647, 1007.1794); SetPlayerInterior(playerid,3); }
  5829. case 2: { SetPlayerPos(playerid,372.5565, -131.3607, 1001.4922); SetPlayerInterior(playerid,5); }
  5830. case 3: { SetPlayerPos(playerid,-1129.8909, 1057.5424, 1346.4141); SetPlayerInterior(playerid,10); }
  5831. case 4: { SetPlayerPos(playerid,2233.9363, 1711.8038, 1011.6312); SetPlayerInterior(playerid,1); }
  5832. case 5: { SetPlayerPos(playerid,2536.5322, -1294.8425, 1044.125); SetPlayerInterior(playerid,2); }
  5833. case 6: { SetPlayerPos(playerid,1267.8407, -776.9587, 1091.9063); SetPlayerInterior(playerid,5); }
  5834. case 7: { SetPlayerPos(playerid,-1421.5618, -663.8262, 1059.5569); SetPlayerInterior(playerid,4); }
  5835. case 8: { SetPlayerPos(playerid,-1401.067, 1265.3706, 1039.8672); SetPlayerInterior(playerid,16); }
  5836. case 9: { SetPlayerPos(playerid,285.8361, -39.0166, 1001.5156); SetPlayerInterior(playerid,1); }
  5837. case 10: { SetPlayerPos(playerid,1727.2853, -1642.9451, 20.2254); SetPlayerInterior(playerid,18); }
  5838. case 11: return ChangeMenu(playerid,Current,LTele);
  5839. }
  5840. return TogglePlayerControllable(playerid,true);
  5841. }
  5842.  
  5843. if(Current == LWeather)
  5844. {
  5845. new adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5846. switch(row)
  5847. {
  5848. 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); }
  5849. 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); }
  5850. 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); }
  5851. 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); }
  5852. 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); }
  5853. 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); }
  5854. 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); }
  5855. 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); }
  5856. 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); }
  5857. 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); }
  5858. case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5859. }
  5860. return TogglePlayerControllable(playerid,true);
  5861. }
  5862.  
  5863. if(Current == LTuneMenu)
  5864. {
  5865. switch(row)
  5866. {
  5867. case 0: { AddVehicleComponent(GetPlayerVehicleID(playerid),1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5868. case 1: { AddVehicleComponent(GetPlayerVehicleID(playerid),1087); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5869. case 2: { AddVehicleComponent(GetPlayerVehicleID(playerid),1081); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5870. case 3: { AddVehicleComponent(GetPlayerVehicleID(playerid),1078); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5871. case 4: { AddVehicleComponent(GetPlayerVehicleID(playerid),1098); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5872. case 5: { AddVehicleComponent(GetPlayerVehicleID(playerid),1074); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5873. case 6: { AddVehicleComponent(GetPlayerVehicleID(playerid),1082); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5874. case 7: { AddVehicleComponent(GetPlayerVehicleID(playerid),1085); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5875. case 8: { AddVehicleComponent(GetPlayerVehicleID(playerid),1025); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5876. case 9: { AddVehicleComponent(GetPlayerVehicleID(playerid),1077); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5877. case 10: return ChangeMenu(playerid,Current,PaintMenu);
  5878. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5879. }
  5880. return TogglePlayerControllable(playerid,true);
  5881. }
  5882.  
  5883. if(Current == PaintMenu)
  5884. {
  5885. switch(row)
  5886. {
  5887. 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"); }
  5888. 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"); }
  5889. 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"); }
  5890. 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"); }
  5891. 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"); }
  5892. 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"); }
  5893. 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"); }
  5894. 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"); }
  5895. 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"); }
  5896. case 9: return ChangeMenu(playerid,Current,LTuneMenu);
  5897. }
  5898. return TogglePlayerControllable(playerid,true);
  5899. }
  5900.  
  5901. if(Current == LTime)
  5902. {
  5903. new adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5904. switch(row)
  5905. {
  5906. 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); }
  5907. 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); }
  5908. 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); }
  5909. 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); }
  5910. 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); }
  5911. case 5: return ChangeMenu(playerid,Current,LMainMenu);
  5912. }
  5913. return TogglePlayerControllable(playerid,true);
  5914. }
  5915.  
  5916. if(Current == LCars)
  5917. {
  5918. new vehid;
  5919. switch(row) {
  5920. case 0: vehid = 451;//Turismo
  5921. case 1: vehid = 568;//Bandito
  5922. case 2: vehid = 539;//Vortex
  5923. case 3: vehid = 522;//nrg
  5924. case 4: vehid = 601;//s.w.a.t
  5925. case 5: vehid = 425; //hunter
  5926. case 6: vehid = 493;//jetmax
  5927. case 7: vehid = 432;//rhino
  5928. case 8: vehid = 444; //mt
  5929. case 9: vehid = 447; //sea sparrow
  5930. case 10: return ChangeMenu(playerid,Current,LCars2);
  5931. case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5932. }
  5933. return SelectCar(playerid,vehid,Current);
  5934. }
  5935.  
  5936. if(Current == LCars2)
  5937. {
  5938. new vehid;
  5939. switch(row) {
  5940. case 0: vehid = 406;// dumper
  5941. case 1: vehid = 564; //rc tank
  5942. case 2: vehid = 441;//RC Bandit
  5943. case 3: vehid = 464;// rc baron
  5944. case 4: vehid = 501; //rc goblin
  5945. case 5: vehid = 465; //rc raider
  5946. case 6: vehid = 594; // rc cam
  5947. case 7: vehid = 449; //tram
  5948. case 8: return ChangeMenu(playerid,Current,LCars);
  5949. }
  5950. return SelectCar(playerid,vehid,Current);
  5951. }
  5952.  
  5953. return 1;
  5954. }
  5955.  
  5956. //==============================================================================
  5957.  
  5958. public OnPlayerExitedMenu(playerid)
  5959. {
  5960. new Menu:Current = GetPlayerMenu(playerid);
  5961. HideMenuForPlayer(Current,playerid);
  5962. return TogglePlayerControllable(playerid,true);
  5963. }
  5964.  
  5965. //==============================================================================
  5966.  
  5967. ChangeMenu(playerid,Menu:oldmenu,Menu:newmenu)
  5968. {
  5969. if(IsValidMenu(oldmenu)) {
  5970. HideMenuForPlayer(oldmenu,playerid);
  5971. ShowMenuForPlayer(newmenu,playerid);
  5972. }
  5973. return 1;
  5974. }
  5975.  
  5976. CloseMenu(playerid,Menu:oldmenu)
  5977. {
  5978. HideMenuForPlayer(oldmenu,playerid);
  5979. TogglePlayerControllable(playerid,1);
  5980. return 1;
  5981. }
  5982. SelectCar(playerid,vehid,Menu:menu)
  5983. {
  5984. CloseMenu(playerid,menu);
  5985. SetCameraBehindPlayer(playerid);
  5986. CarSpawner(playerid,vehid);
  5987. return 1;
  5988. }
  5989. #endif
  5990.  
  5991. //==============================================================================
  5992. forward countdown();
  5993. public countdown()
  5994. {
  5995. if(CountDown==6) GameTextForAll("~p~Comenzando...",1000,6);
  5996.  
  5997. CountDown--;
  5998. if(CountDown==0)
  5999. {
  6000. GameTextForAll("~g~GO~ r~!",1000,6);
  6001. CountDown = -1;
  6002. for(new i = 0; i < MAX_PLAYERS; i++) {
  6003. TogglePlayerControllable(i,true);
  6004. PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  6005. }
  6006. return 0;
  6007. }
  6008. else
  6009. {
  6010. new text[7]; format(text,sizeof(text),"~w~%d",CountDown);
  6011. for(new i = 0; i < MAX_PLAYERS; i++) {
  6012. PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
  6013. TogglePlayerControllable(i,false);
  6014. }
  6015. GameTextForAll(text,1000,6);
  6016. }
  6017.  
  6018. SetTimer("countdown",1000,0);
  6019. return 0;
  6020. }
  6021.  
  6022. forward Duel(player1, player2);
  6023. public Duel(player1, player2)
  6024. {
  6025. if(cdt[player1]==6) {
  6026. GameTextForPlayer(player1,"~p~Comenzando Duelo...",1000,6); GameTextForPlayer(player2,"~p~Comenzando Duelo...",1000,6);
  6027. }
  6028.  
  6029. cdt[player1]--;
  6030. if(cdt[player1]==0)
  6031. {
  6032. TogglePlayerControllable(player1,1); TogglePlayerControllable(player2,1);
  6033. PlayerPlaySound(player1, 1057, 0.0, 0.0, 0.0); PlayerPlaySound(player2, 1057, 0.0, 0.0, 0.0);
  6034. GameTextForPlayer(player1,"~g~GO~ r~!",1000,6); GameTextForPlayer(player2,"~g~GO~ r~!",1000,6);
  6035. return 0;
  6036. }
  6037. else
  6038. {
  6039. new text[7]; format(text,sizeof(text),"~w~%d",cdt[player1]);
  6040. PlayerPlaySound(player1, 1056, 0.0, 0.0, 0.0); PlayerPlaySound(player2, 1056, 0.0, 0.0, 0.0);
  6041. TogglePlayerControllable(player1,0); TogglePlayerControllable(player2,0);
  6042. GameTextForPlayer(player1,text,1000,6); GameTextForPlayer(player2,text,1000,6);
  6043. }
  6044.  
  6045. SetTimerEx("Duel",1000,0,"dd", player1, player2);
  6046. return 0;
  6047. }
  6048.  
  6049. //==================== [ Jail & Freeze ]========================================
  6050.  
  6051. forward Jail1(player1);
  6052. public Jail1(player1)
  6053. {
  6054. TogglePlayerControllable(player1,false);
  6055. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6056. SetPlayerCameraPos(player1,x+10,y,z+10);SetPlayerCameraLookAt(player1,x,y,z);
  6057. SetTimerEx("Jail2",1000,0,"d",player1);
  6058. }
  6059.  
  6060. forward Jail2(player1);
  6061. public Jail2(player1)
  6062. {
  6063. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6064. SetPlayerCameraPos(player1,x+7,y,z+5); SetPlayerCameraLookAt(player1,x,y,z);
  6065. if(GetPlayerState(player1) == PLAYER_STATE_ONFOOT) SetPlayerSpecialAction(player1,SPECIAL_ACTION_HANDSUP);
  6066. GameTextForPlayer(player1,"~r~Busted By Admins",3000,3);
  6067. SetTimerEx("Jail3",1000,0,"d",player1);
  6068. }
  6069.  
  6070. forward Jail3(player1);
  6071. public Jail3(player1)
  6072. {
  6073. new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6074. SetPlayerCameraPos(player1,x+3,y,z); SetPlayerCameraLookAt(player1,x,y,z);
  6075. }
  6076.  
  6077. forward JailPlayer(player1);
  6078. public JailPlayer(player1)
  6079. {
  6080. TogglePlayerControllable(player1,true);
  6081. SetPlayerPos(player1,197.6661,173.8179,1003.0234);
  6082. SetPlayerInterior(player1,3);
  6083. SetCameraBehindPlayer(player1);
  6084. JailTimer[player1] = SetTimerEx("JailRelease",PlayerInfo[player1][JailTime],0,"d",player1);
  6085. PlayerInfo[player1][Jailed] = 1;
  6086. }
  6087.  
  6088. forward JailRelease(player1);
  6089. public JailRelease(player1)
  6090. {
  6091. KillTimer( JailTimer[player1] );
  6092. PlayerInfo[player1][JailTime] = 0; PlayerInfo[player1][Jailed] = 0;
  6093. SetPlayerInterior(player1,0); SetPlayerPos(player1, 0.0, 0.0, 0.0); SpawnPlayer(player1);
  6094. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  6095. GameTextForPlayer(player1,"~g~Released ~n~From Jail",3000,3);
  6096. }
  6097.  
  6098. //------------------------------------------------------------------------------
  6099. forward UnFreezeMe(player1);
  6100. public UnFreezeMe(player1)
  6101. {
  6102. KillTimer( FreezeTimer[player1] );
  6103. TogglePlayerControllable(player1,true); PlayerInfo[player1][Frozen] = 0;
  6104. PlayerPlaySound(player1,1057,0.0,0.0,0.0); GameTextForPlayer(player1,"~g~Unfrozen",3000,3);
  6105. }
  6106.  
  6107. //==============================================================================
  6108. forward RepairCar(playerid);
  6109. public RepairCar(playerid)
  6110. {
  6111. if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid),Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]+0.5);
  6112. SetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[playerid][3]);
  6113. SetCameraBehindPlayer(playerid);
  6114. }
  6115.  
  6116. //============================ [ Timers ]=======================================
  6117.  
  6118. forward PingKick();
  6119. public PingKick()
  6120. {
  6121. if(ServerInfo[MaxPing] != 0)
  6122. {
  6123. PingPos++; if(PingPos > PING_MAX_EXCEEDS) PingPos = 0;
  6124.  
  6125. for(new i=0; i<MAX_PLAYERS; i++)
  6126. {
  6127. PlayerInfo[i][pPing][PingPos] = GetPlayerPing(i);
  6128.  
  6129. if(GetPlayerPing(i) > ServerInfo[MaxPing])
  6130. {
  6131. if(PlayerInfo[i][PingCount] == 0) PlayerInfo[i][PingTime] = TimeStamp();
  6132.  
  6133. PlayerInfo[i][PingCount]++;
  6134. if(TimeStamp() - PlayerInfo[i][PingTime] > PING_TIMELIMIT)
  6135. {
  6136. PlayerInfo[i][PingTime] = TimeStamp();
  6137. PlayerInfo[i][PingCount] = 1;
  6138. }
  6139. else if(PlayerInfo[i][PingCount] >= PING_MAX_EXCEEDS)
  6140. {
  6141. new Sum, Average, x, string[128];
  6142. while (x < PING_MAX_EXCEEDS) {
  6143. Sum += PlayerInfo[i][pPing][x];
  6144. x++;
  6145. }
  6146. Average = (Sum / PING_MAX_EXCEEDS);
  6147. format(string,sizeof(string),"%s ha sido kickeado del server. (Razon: High Ping (%d) | Average (%d) | Max Allowed (%d) )", PlayerName2(i), GetPlayerPing(i), Average, ServerInfo[MaxPing] );
  6148. SendClientMessageToAll(grey,string);
  6149. SaveToFile("KickLog",string);
  6150. Kick(i);
  6151. }
  6152. }
  6153. else if(GetPlayerPing(i) < 1 && ServerInfo[AntiBot] == 1)
  6154. {
  6155. PlayerInfo[i][BotPing]++;
  6156. if(PlayerInfo[i][BotPing] >= 3) BotCheck(i);
  6157. }
  6158. else
  6159. {
  6160. PlayerInfo[i][BotPing] = 0;
  6161. }
  6162. }
  6163. }
  6164.  
  6165. #if defined ANTI_MINIGUN
  6166. new weap, ammo;
  6167. for(new i = 0; i < MAX_PLAYERS; i++)
  6168. {
  6169. if(IsPlayerConnected(i) && PlayerInfo[i][Level] == 0)
  6170. {
  6171. GetPlayerWeaponData(i, 7, weap, ammo);
  6172. if(ammo > 1 && weap == 38) {
  6173. new string[128]; format(string,sizeof(string),"INFO: %s tiene el arma mingun con %d municiones", PlayerName2(i), ammo);
  6174. MessageToAdmins(COLOR_WHITE,string);
  6175. }
  6176. }
  6177. }
  6178. #endif
  6179. }
  6180.  
  6181. //==============================================================================
  6182. forward GodUpdate();
  6183. public GodUpdate()
  6184. {
  6185. for(new i = 0; i < MAX_PLAYERS; i++)
  6186. {
  6187. if(IsPlayerConnected(i) && PlayerInfo[i][God] == 1)
  6188. {
  6189. SetPlayerHealth(i,100000);
  6190. }
  6191. if(IsPlayerConnected(i) && PlayerInfo[i][GodCar] == 1 && IsPlayerInAnyVehicle(i))
  6192. {
  6193. SetVehicleHealth(GetPlayerVehicleID(i),10000);
  6194. }
  6195. }
  6196. }
  6197.  
  6198. //==========================[ Server Info ]====================================
  6199.  
  6200. forward ConnectedPlayers();
  6201. public ConnectedPlayers()
  6202. {
  6203. new Connected;
  6204. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) Connected++;
  6205. return Connected;
  6206. }
  6207.  
  6208. forward JailedPlayers();
  6209. public JailedPlayers()
  6210. {
  6211. new JailedCount;
  6212. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed] == 1) JailedCount++;
  6213. return JailedCount;
  6214. }
  6215.  
  6216. forward FrozenPlayers();
  6217. public FrozenPlayers()
  6218. {
  6219. new FrozenCount; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen] == 1) FrozenCount++;
  6220. return FrozenCount;
  6221. }
  6222.  
  6223. forward MutedPlayers();
  6224. public MutedPlayers()
  6225. {
  6226. new Count; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted] == 1) Count++;
  6227. return Count;
  6228. }
  6229.  
  6230. forward InVehCount();
  6231. public InVehCount()
  6232. {
  6233. new InVeh; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) InVeh++;
  6234. return InVeh;
  6235. }
  6236.  
  6237. forward OnBikeCount();
  6238. public OnBikeCount()
  6239. {
  6240. new BikeCount;
  6241. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  6242. new LModel = GetVehicleModel(GetPlayerVehicleID(i));
  6243. switch(LModel)
  6244. {
  6245. case 448,461,462,463,468,471,509,510,521,522,523,581,586: BikeCount++;
  6246. }
  6247. }
  6248. return BikeCount;
  6249. }
  6250.  
  6251. forward InCarCount();
  6252. public InCarCount()
  6253. {
  6254. new PInCarCount;
  6255. for(new i = 0; i < MAX_PLAYERS; i++) {
  6256. if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  6257. new LModel = GetVehicleModel(GetPlayerVehicleID(i));
  6258. switch(LModel)
  6259. {
  6260. case 448,461,462,463,468,471,509,510,521,522,523,581,586: {}
  6261. default: PInCarCount++;
  6262. }
  6263. }
  6264. }
  6265. return PInCarCount;
  6266. }
  6267.  
  6268. forward AdminCount();
  6269. public AdminCount()
  6270. {
  6271. new LAdminCount;
  6272. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] >= 1) LAdminCount++;
  6273. return LAdminCount;
  6274. }
  6275.  
  6276. forward RconAdminCount();
  6277. public RconAdminCount()
  6278. {
  6279. new rAdminCount;
  6280. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) rAdminCount++;
  6281. return rAdminCount;
  6282. }
  6283.  
  6284. //==========================[ Remote Console ]==================================
  6285.  
  6286. forward RestartGM();
  6287. public RestartGM()
  6288. {
  6289. SendRconCommand("gmx");
  6290. }
  6291.  
  6292. forward UnloadFS();
  6293. public UnloadFS()
  6294. {
  6295. SendRconCommand("unloadfs ladmin4");
  6296. }
  6297.  
  6298. forward PrintWarning(const string[]);
  6299. public PrintWarning(const string[])
  6300. {
  6301. new str[128];
  6302. print("\n\n> WARNING:\n");
  6303. format(str, sizeof(str), " The %s folder is missing from scriptfiles", string);
  6304. print(str);
  6305. print("\n Please Create This Folder And Reload the Filterscript\n\n");
  6306. }
  6307.  
  6308. //============================[ Bot Check ]=====================================
  6309. forward BotCheck(playerid);
  6310. public BotCheck(playerid)
  6311. {
  6312. if(IsPlayerConnected(playerid))
  6313. {
  6314. if(GetPlayerPing(playerid) < 1)
  6315. {
  6316. new string[128], ip[20]; GetPlayerIp(playerid,ip,sizeof(ip));
  6317. format(string,sizeof(string),"BOT: %s id:%d ip: %s ping: %d",PlayerName2(playerid),playerid,ip,GetPlayerPing(playerid));
  6318. SaveToFile("BotKickLog",string);
  6319. SaveToFile("KickLog",string);
  6320. printf("[ADMIN] Possible bot has been detected (Kicked %s ID:%d)", PlayerName2(playerid), playerid);
  6321. Kick(playerid);
  6322. }
  6323. }
  6324. }
  6325.  
  6326. //==============================================================================
  6327. forward PutAtPos(playerid);
  6328. public PutAtPos(playerid)
  6329. {
  6330. if (dUserINT(PlayerName2(playerid)).("x")!=0) {
  6331. SetPlayerPos(playerid, float(dUserINT(PlayerName2(playerid)).("x")), float(dUserINT(PlayerName2(playerid)).("y")), float(dUserINT(PlayerName2(playerid)).("z")) );
  6332. SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior")) );
  6333. }
  6334. }
  6335.  
  6336. forward PutAtDisconectPos(playerid);
  6337. public PutAtDisconectPos(playerid)
  6338. {
  6339. if (dUserINT(PlayerName2(playerid)).("x1")!=0) {
  6340. SetPlayerPos(playerid, float(dUserINT(PlayerName2(playerid)).("x1")), float(dUserINT(PlayerName2(playerid)).("y1")), float(dUserINT(PlayerName2(playerid)).("z1")) );
  6341. SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior1")) );
  6342. }
  6343. }
  6344.  
  6345. TotalGameTime(playerid, &h=0, &m=0, &s=0)
  6346. {
  6347. PlayerInfo[playerid][TotalTime] = ( (gettime() - PlayerInfo[playerid][ConnectTime]) + (PlayerInfo[playerid][hours]*60*60) + (PlayerInfo[playerid][mins]*60) + (PlayerInfo[playerid][secs]) );
  6348.  
  6349. h = floatround(PlayerInfo[playerid][TotalTime] / 3600, floatround_floor);
  6350. m = floatround(PlayerInfo[playerid][TotalTime] / 60, floatround_floor) % 60;
  6351. s = floatround(PlayerInfo[playerid][TotalTime] % 60, floatround_floor);
  6352.  
  6353. return PlayerInfo[playerid][TotalTime];
  6354. }
  6355.  
  6356. //==============================================================================
  6357. MaxAmmo(playerid)
  6358. {
  6359. new slot, weap, ammo;
  6360. for (slot = 0; slot < 14; slot++)
  6361. {
  6362. GetPlayerWeaponData(playerid, slot, weap, ammo);
  6363. if(IsValidWeapon(weap))
  6364. {
  6365. GivePlayerWeapon(playerid, weap, 99999);
  6366. }
  6367. }
  6368. return 1;
  6369. }
  6370.  
  6371. stock PlayerName2(playerid) {
  6372. new name[MAX_PLAYER_NAME];
  6373. GetPlayerName(playerid, name, sizeof(name));
  6374. return name;
  6375. }
  6376.  
  6377. stock pName(playerid)
  6378. {
  6379. new name[MAX_PLAYER_NAME];
  6380. GetPlayerName(playerid, name, sizeof(name));
  6381. return name;
  6382. }
  6383.  
  6384. stock TimeStamp()
  6385. {
  6386. new time = GetTickCount() / 1000;
  6387. return time;
  6388. }
  6389.  
  6390. stock PlayerSoundForAll(SoundID)
  6391. {
  6392. for(new i = 0; i < MAX_PLAYERS; i++) PlayerPlaySound(i, SoundID, 0.0, 0.0, 0.0);
  6393. }
  6394.  
  6395. stock IsValidWeapon(weaponid)
  6396. {
  6397. if (weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47) return 1;
  6398. return 0;
  6399. }
  6400.  
  6401. stock IsValidSkin(SkinID)
  6402. {
  6403. 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;
  6404. else return false;
  6405. }
  6406.  
  6407. stock IsNumeric(string[])
  6408. {
  6409. for (new i = 0, j = strlen(string); i < j; i++)
  6410. {
  6411. if (string[i] > '9' || string[i] < '0') return 0;
  6412. }
  6413. return 1;
  6414. }
  6415.  
  6416. stock ReturnPlayerID(PlayerName[])
  6417. {
  6418. for(new i = 0; i < MAX_PLAYERS; i++)
  6419. {
  6420. if(IsPlayerConnected(i))
  6421. {
  6422. if(strfind(pName(i),PlayerName,true)!=-1) return i;
  6423. }
  6424. }
  6425. return INVALID_PLAYER_ID;
  6426. }
  6427.  
  6428. GetVehicleModelIDFromName(vname[])
  6429. {
  6430. for(new i = 0; i < 211; i++)
  6431. {
  6432. if ( strfind(VehicleNames[i], vname, true) != -1 )
  6433. return i + 400;
  6434. }
  6435. return -1;
  6436. }
  6437.  
  6438. stock GetWeaponIDFromName(WeaponName[])
  6439. {
  6440. if(strfind("molotov",WeaponName,true)!=-1) return 18;
  6441. for(new i = 0; i <= 46; i++)
  6442. {
  6443. switch(i)
  6444. {
  6445. case 0,19,20,21,44,45: continue;
  6446. default:
  6447. {
  6448. new name[32]; GetWeaponName(i,name,32);
  6449. if(strfind(name,WeaponName,true) != -1) return i;
  6450. }
  6451. }
  6452. }
  6453. return -1;
  6454. }
  6455.  
  6456. stock DisableWord(const badword[], text[])
  6457. {
  6458. for(new i=0; i<256; i++)
  6459. {
  6460. if (strfind(text[i], badword, true) == 0)
  6461. {
  6462. for(new a=0; a<256; a++)
  6463. {
  6464. if (a >= i && a < i+strlen(badword)) text[a]='*';
  6465. }
  6466. }
  6467. }
  6468. }
  6469.  
  6470. argpos(const string[], idx = 0, sep = ' ')// (by yom)
  6471. {
  6472. for(new i = idx, j = strlen(string); i < j; i++)
  6473. if (string[i] == sep && string[i+1] != sep)
  6474. return i+1;
  6475.  
  6476. return -1;
  6477. }
  6478.  
  6479. //==============================================================================
  6480. forward MessageToAdmins(color,const string[]);
  6481. public MessageToAdmins(color,const string[])
  6482. {
  6483. for(new i = 0; i < MAX_PLAYERS; i++)
  6484. {
  6485. if(IsPlayerConnected(i) == 1) if (PlayerInfo[i][Level] >= 1) SendClientMessage(i, color, string);
  6486. }
  6487. return 1;
  6488. }
  6489.  
  6490. stock CMDMessageToAdmins(playerid,command[])
  6491. {
  6492. if(ServerInfo[AdminCmdMsg] == 0) return 1;
  6493. new string[128]; GetPlayerName(playerid,string,sizeof(string));
  6494. format(string,sizeof(string),"El Administrador %s ha usado el comando %s",string,command);
  6495. return MessageToAdmins(blue,string);
  6496. }
  6497.  
  6498. //==============================================================================
  6499. SavePlayer(playerid)
  6500. {
  6501. dUserSetINT(PlayerName2(playerid)).("money",GetPlayerMoney(playerid));
  6502. dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  6503. dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  6504.  
  6505. new h, m, s;
  6506. TotalGameTime(playerid, h, m, s);
  6507.  
  6508. dUserSetINT(PlayerName2(playerid)).("hours", h);
  6509. dUserSetINT(PlayerName2(playerid)).("minutes", m);
  6510. dUserSetINT(PlayerName2(playerid)).("seconds", s);
  6511.  
  6512. new Float:x,Float:y,Float:z, interior;
  6513. GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
  6514. dUserSetINT(PlayerName2(playerid)).("x1",floatround(x));
  6515. dUserSetINT(PlayerName2(playerid)).("y1",floatround(y));
  6516. dUserSetINT(PlayerName2(playerid)).("z1",floatround(z));
  6517. dUserSetINT(PlayerName2(playerid)).("interior1",interior);
  6518.  
  6519. new weap1, ammo1, weap2, ammo2, weap3, ammo3, weap4, ammo4, weap5, ammo5, weap6, ammo6;
  6520. GetPlayerWeaponData(playerid,2,weap1,ammo1);// hand gun
  6521. GetPlayerWeaponData(playerid,3,weap2,ammo2);//shotgun
  6522. GetPlayerWeaponData(playerid,4,weap3,ammo3);// SMG
  6523. GetPlayerWeaponData(playerid,5,weap4,ammo4);// AK47 / M4
  6524. GetPlayerWeaponData(playerid,6,weap5,ammo5);// rifle
  6525. GetPlayerWeaponData(playerid,7,weap6,ammo6);// rocket launcher
  6526. dUserSetINT(PlayerName2(playerid)).("weap1",weap1); dUserSetINT(PlayerName2(playerid)).("weap1ammo",ammo1);
  6527. dUserSetINT(PlayerName2(playerid)).("weap2",weap2); dUserSetINT(PlayerName2(playerid)).("weap2ammo",ammo2);
  6528. dUserSetINT(PlayerName2(playerid)).("weap3",weap3); dUserSetINT(PlayerName2(playerid)).("weap3ammo",ammo3);
  6529. dUserSetINT(PlayerName2(playerid)).("weap4",weap4); dUserSetINT(PlayerName2(playerid)).("weap4ammo",ammo4);
  6530. dUserSetINT(PlayerName2(playerid)).("weap5",weap5); dUserSetINT(PlayerName2(playerid)).("weap5ammo",ammo5);
  6531. dUserSetINT(PlayerName2(playerid)).("weap6",weap6); dUserSetINT(PlayerName2(playerid)).("weap6ammo",ammo6);
  6532.  
  6533. new Float:health; GetPlayerHealth(playerid, Float:health);
  6534. new Float:armour; GetPlayerArmour(playerid, Float:armour);
  6535. new year,month,day; getdate(year, month, day);
  6536. new strdate[20]; format(strdate, sizeof(strdate), "%d.%d.%d",day,month,year);
  6537. new file[256]; format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  6538.  
  6539. dUserSetINT(PlayerName2(playerid)).("health",floatround(health));
  6540. dUserSetINT(PlayerName2(playerid)).("armour",floatround(armour));
  6541. dini_Set(file,"LastOn",strdate);
  6542. dUserSetINT(PlayerName2(playerid)).("loggedin",0);
  6543. dUserSetINT(PlayerName2(playerid)).("TimesOnServer",(dUserINT(PlayerName2(playerid)).("TimesOnServer"))+1);
  6544. }
  6545.  
  6546. //==============================================================================
  6547. #if defined USE_MENUS
  6548. DestroyAllMenus()
  6549. {
  6550. DestroyMenu(LVehicles); DestroyMenu(twodoor); DestroyMenu(fourdoor); DestroyMenu(fastcar); DestroyMenu(Othercars);
  6551. DestroyMenu(bikes); DestroyMenu(boats); DestroyMenu(planes); DestroyMenu(helicopters ); DestroyMenu(LTime);
  6552. DestroyMenu(XWeapons); DestroyMenu(XWeaponsBig); DestroyMenu(XWeaponsSmall); DestroyMenu(XWeaponsMore);
  6553. DestroyMenu(LWeather); DestroyMenu(LTuneMenu); DestroyMenu(PaintMenu); DestroyMenu(LCars); DestroyMenu(LCars2);
  6554. DestroyMenu(LTele); DestroyMenu(LasVenturasMenu); DestroyMenu(LosSantosMenu); DestroyMenu(SanFierroMenu);
  6555. DestroyMenu(LMainMenu); DestroyMenu(DesertMenu); DestroyMenu(FlintMenu); DestroyMenu(MountChiliadMenu); DestroyMenu(InteriorsMenu);
  6556. DestroyMenu(AdminEnable); DestroyMenu(AdminDisable);
  6557. }
  6558. #endif
  6559.  
  6560. //==============================================================================
  6561. #if defined DISPLAY_CONFIG
  6562. stock ConfigInConsole()
  6563. {
  6564. print(" ________ Configuration ___________\n");
  6565. print(" __________ Chat & Messages ______");
  6566. if(ServerInfo[AntiSwear] == 0) print(" Anti Swear: Disabled "); else print(" Anti Swear: Enabled ");
  6567. if(ServerInfo[AntiSpam] == 0) print(" Anti Spam: Disabled "); else print(" Anti Spam: Enabled ");
  6568. if(ServerInfo[ReadCmds] == 0) print(" Read Cmds: Disabled "); else print(" Read Cmds: Enabled ");
  6569. if(ServerInfo[ReadPMs] == 0) print(" Read PMs: Disabled "); else print(" Read PMs: Enabled ");
  6570. if(ServerInfo[ConnectMessages] == 0) print(" Connect Messages: Disabled "); else print(" Connect Messages: Enabled ");
  6571. if(ServerInfo[AdminCmdMsg] == 0) print(" Admin Cmd Messages: Disabled "); else print(" Admin Cmd Messages: Enabled ");
  6572. if(ServerInfo[ReadPMs] == 0) print(" Anti capital letters: Disabled \n"); else print(" Anti capital letters: Enabled \n");
  6573. print(" __________ Skins ________________");
  6574. if(ServerInfo[AdminOnlySkins] == 0) print(" AdminOnlySkins: Disabled "); else print(" AdminOnlySkins: Enabled ");
  6575. printf(" Admin Skin 1 is: %d", ServerInfo[AdminSkin] );
  6576. printf(" Admin Skin 2 is: %d\n", ServerInfo[AdminSkin2] );
  6577. print(" ________ Server Protection ______");
  6578. if(ServerInfo[AntiBot] == 0) print(" Anti Bot: Disabled "); else print(" Anti Bot: Enabled ");
  6579. if(ServerInfo[NameKick] == 0) print(" Bad Name Kick: Disabled\n"); else print(" Bad Name Kick: Enabled\n");
  6580. print(" __________ Ping Control _________");
  6581. if(ServerInfo[MaxPing] == 0) print(" Ping Control: Disabled"); else print(" Ping Control: Enabled");
  6582. printf(" Max Ping: %d\n", ServerInfo[MaxPing] );
  6583. print(" __________ Players ______________");
  6584. if(ServerInfo[GiveWeap] == 0) print(" Save/Give Weaps: Disabled"); else print(" Save/Give Weaps: Enabled");
  6585. if(ServerInfo[GiveMoney] == 0) print(" Save/Give Money: Disabled\n"); else print(" Save/Give Money: Enabled\n");
  6586. print(" __________ Other ________________");
  6587. printf(" Max Admin Level: %d", ServerInfo[MaxAdminLevel] );
  6588. if(ServerInfo[Locked] == 0) print(" Server Locked: No"); else print(" Server Locked: Yes");
  6589. if(ServerInfo[AutoLogin] == 0) print(" Auto Login: Disabled\n"); else print(" Auto Login: Enabled\n");
  6590. }
  6591. #endif
  6592.  
  6593. //=====================[ Configuration ] =======================================
  6594. stock UpdateConfig()
  6595. {
  6596. new file[256], File:file2, string[100]; format(file,sizeof(file),"ladmin/config/Config.ini");
  6597. ForbiddenWordCount = 0;
  6598. BadNameCount = 0;
  6599. BadPartNameCount = 0;
  6600.  
  6601. if(!dini_Exists("ladmin/config/aka.txt")) dini_Create("ladmin/config/aka.txt");
  6602.  
  6603. if(!dini_Exists(file))
  6604. {
  6605. dini_Create(file);
  6606. print("\n >Configuration File Successfully Created");
  6607. }
  6608.  
  6609. if(!dini_Isset(file,"MaxPing")) dini_IntSet(file,"MaxPing",1200);
  6610. if(!dini_Isset(file,"ReadPms")) dini_IntSet(file,"ReadPMs",1);
  6611. if(!dini_Isset(file,"ReadCmds")) dini_IntSet(file,"ReadCmds",1);
  6612. if(!dini_Isset(file,"MaxAdminLevel")) dini_IntSet(file,"MaxAdminLevel",5);
  6613. if(!dini_Isset(file,"AdminOnlySkins")) dini_IntSet(file,"AdminOnlySkins",0);
  6614. if(!dini_Isset(file,"AdminSkin")) dini_IntSet(file,"AdminSkin",217);
  6615. if(!dini_Isset(file,"AdminSkin2")) dini_IntSet(file,"AdminSkin2",214);
  6616. if(!dini_Isset(file,"AntiBot")) dini_IntSet(file,"AntiBot",1);
  6617. if(!dini_Isset(file,"AntiSpam")) dini_IntSet(file,"AntiSpam",1);
  6618. if(!dini_Isset(file,"AntiSwear")) dini_IntSet(file,"AntiSwear",1);
  6619. if(!dini_Isset(file,"NameKick")) dini_IntSet(file,"NameKick",1);
  6620. if(!dini_Isset(file,"PartNameKick")) dini_IntSet(file,"PartNameKick",1);
  6621. if(!dini_Isset(file,"NoCaps")) dini_IntSet(file,"NoCaps",0);
  6622. if(!dini_Isset(file,"Locked")) dini_IntSet(file,"Locked",0);
  6623. if(!dini_Isset(file,"SaveWeap")) dini_IntSet(file,"SaveWeap",1);
  6624. if(!dini_Isset(file,"SaveMoney")) dini_IntSet(file,"SaveMoney",1);
  6625. if(!dini_Isset(file,"ConnectMessages")) dini_IntSet(file,"ConnectMessages",1);
  6626. if(!dini_Isset(file,"AdminCmdMessages")) dini_IntSet(file,"AdminCmdMessages",1);
  6627. if(!dini_Isset(file,"AutoLogin")) dini_IntSet(file,"AutoLogin",1);
  6628. if(!dini_Isset(file,"MaxMuteWarnings")) dini_IntSet(file,"MaxMuteWarnings",4);
  6629. if(!dini_Isset(file,"MustLogin")) dini_IntSet(file,"MustLogin",0);
  6630. if(!dini_Isset(file,"MustRegister")) dini_IntSet(file,"MustRegister",0);
  6631.  
  6632. if(dini_Exists(file))
  6633. {
  6634. ServerInfo[MaxPing] = dini_Int(file,"MaxPing");
  6635. ServerInfo[ReadPMs] = dini_Int(file,"ReadPMs");
  6636. ServerInfo[ReadCmds] = dini_Int(file,"ReadCmds");
  6637. ServerInfo[MaxAdminLevel] = dini_Int(file,"MaxAdminLevel");
  6638. ServerInfo[AdminOnlySkins] = dini_Int(file,"AdminOnlySkins");
  6639. ServerInfo[AdminSkin] = dini_Int(file,"AdminSkin");
  6640. ServerInfo[AdminSkin2] = dini_Int(file,"AdminSkin2");
  6641. ServerInfo[AntiBot] = dini_Int(file,"AntiBot");
  6642. ServerInfo[AntiSpam] = dini_Int(file,"AntiSpam");
  6643. ServerInfo[AntiSwear] = dini_Int(file,"AntiSwear");
  6644. ServerInfo[NameKick] = dini_Int(file,"NameKick");
  6645. ServerInfo[PartNameKick] = dini_Int(file,"PartNameKick");
  6646. ServerInfo[NoCaps] = dini_Int(file,"NoCaps");
  6647. ServerInfo[Locked] = dini_Int(file,"Locked");
  6648. ServerInfo[GiveWeap] = dini_Int(file,"SaveWeap");
  6649. ServerInfo[GiveMoney] = dini_Int(file,"SaveMoney");
  6650. ServerInfo[ConnectMessages] = dini_Int(file,"ConnectMessages");
  6651. ServerInfo[AdminCmdMsg] = dini_Int(file,"AdminCmdMessages");
  6652. ServerInfo[AutoLogin] = dini_Int(file,"AutoLogin");
  6653. ServerInfo[MaxMuteWarnings] = dini_Int(file,"MaxMuteWarnings");
  6654. ServerInfo[MustLogin] = dini_Int(file,"MustLogin");
  6655. ServerInfo[MustRegister] = dini_Int(file,"MustRegister");
  6656. print("\n -Configuration Settings Loaded");
  6657. }
  6658.  
  6659. //forbidden names
  6660. if((file2 = fopen("ladmin/config/ForbiddenNames.cfg",io_read)))
  6661. {
  6662. while(fread(file2,string))
  6663. {
  6664. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6665. BadNames[BadNameCount] = string;
  6666. BadNameCount++;
  6667. }
  6668. fclose(file2); printf(" -%d Forbidden Names Loaded", BadNameCount);
  6669. }
  6670.  
  6671. //forbidden part of names
  6672. if((file2 = fopen("ladmin/config/ForbiddenPartNames.cfg",io_read)))
  6673. {
  6674. while(fread(file2,string))
  6675. {
  6676. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6677. BadPartNames[BadPartNameCount] = string;
  6678. BadPartNameCount++;
  6679. }
  6680. fclose(file2); printf(" -%d Forbidden Tags Loaded", BadPartNameCount);
  6681. }
  6682.  
  6683. //forbidden words
  6684. if((file2 = fopen("ladmin/config/ForbiddenWords.cfg",io_read)))
  6685. {
  6686. while(fread(file2,string))
  6687. {
  6688. for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6689. ForbiddenWords[ForbiddenWordCount] = string;
  6690. ForbiddenWordCount++;
  6691. }
  6692. fclose(file2); printf(" -%d Forbidden Words Loaded", ForbiddenWordCount);
  6693. }
  6694. }
  6695. //=====================[ SAVING DATA ] =========================================
  6696.  
  6697. forward SaveToFile(filename[],text[]);
  6698. public SaveToFile(filename[],text[])
  6699. {
  6700. #if defined SAVE_LOGS
  6701. new File:LAdminfile, filepath[256], string[256], year,month,day, hour,minute,second;
  6702. getdate(year,month,day); gettime(hour,minute,second);
  6703.  
  6704. format(filepath,sizeof(filepath),"ladmin/logs/%s.txt",filename);
  6705. LAdminfile = fopen(filepath,io_append);
  6706. format(string,sizeof(string),"[%d.%d.%d %d:%d:%d] %s\r\n",day,month,year,hour,minute,second,text);
  6707. fwrite(LAdminfile,string);
  6708. fclose(LAdminfile);
  6709. #endif
  6710.  
  6711. return 1;
  6712. }
  6713.  
  6714. //============================[ EOF ]===========================================
  6715. //============================[BANCO]===========================================
  6716.  
  6717. CMD:depositar(playerid, params[])
  6718. {
  6719. new dinero, string[128];
  6720. if(PlayerInfo[playerid][LoggedIn] == 1)
  6721. if(sscanf(params, "d", dinero)) return SendClientMessage(playerid, COLOR_WHITE, "USO: /depositar [cantidad]");
  6722. if(!sscanf(params, "d", dinero))
  6723. {
  6724. if(GetPlayerMoney(playerid) < dinero) return SendClientMessage(playerid, COLOR_LIGHTGREEN, "No tienes ese dinero!");
  6725. if(GetPlayerMoney(playerid) >= dinero)
  6726. {
  6727. new pname[MAX_PLAYER_NAME];
  6728. GetPlayerName(playerid, pname, sizeof(pname));
  6729. format(archivo, sizeof(archivo), "/ladmin/users/%s.sav", pname);
  6730.  
  6731. if(dini_Exists(archivo))
  6732. {
  6733. dini_IntSet(archivo, "Saldo", dini_Int(archivo, "Saldo") +dinero);
  6734. }
  6735. else if(!dini_Exists(archivo))
  6736. {
  6737. dini_Create(archivo);
  6738. dini_IntSet(archivo, "Saldo", dinero);
  6739. }
  6740. format(string, sizeof(string), "|- Banco de Exterminio Mundial-| Depositaste $%d, tu saldo actual es de $%d", dinero, dini_Int(archivo, "Saldo"));
  6741. SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
  6742. GivePlayerMoney(playerid, -dinero);
  6743. }
  6744. }
  6745. return 1;
  6746. }
  6747.  
  6748. CMD:retirar(playerid, params[])
  6749. {
  6750. new dinero, string[128];
  6751. if(PlayerInfo[playerid][LoggedIn] == 1)
  6752. if(sscanf(params, "d", dinero)) return SendClientMessage(playerid, COLOR_WHITE, "USO: /retirar [cantidad]");
  6753. if(!sscanf(params, "d", dinero))
  6754. {
  6755. new pname[MAX_PLAYER_NAME];
  6756. GetPlayerName(playerid, pname, sizeof(pname));
  6757. format(archivo, sizeof(archivo), "/ladmin/users/%s.sav", pname);
  6758. if(dini_Exists(archivo))
  6759. {
  6760. if(dini_Int(archivo, "Saldo") < dinero) return SendClientMessage(playerid, COLOR_LIGHTGREEN, "No tienes esa cantidad de dinero en el banco!");
  6761. else if(dini_Int(archivo, "Saldo") >= dinero)
  6762. {
  6763. GivePlayerMoney(playerid, dinero);
  6764. dini_IntSet(archivo, "Saldo", dini_Int(archivo, "Saldo") -dinero);
  6765. format(string, sizeof(string), "|- Banco de Exterminio Mundial-| Retiraste $%d, tu saldo actual es de $%d", dinero, dini_Int(archivo, "Saldo"));
  6766. SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
  6767. }
  6768. }
  6769. else if(!dini_Exists(archivo))
  6770. {
  6771. SendClientMessage(playerid, red, "|- Banco de Exterminio Mundial-| No tienes cuenta en el banco!");
  6772. }
  6773. }
  6774. return 1;
  6775. }
  6776.  
  6777. CMD:saldo(playerid, params[])
  6778. {
  6779.  
  6780. new pname[MAX_PLAYER_NAME];
  6781. if(PlayerInfo[playerid][LoggedIn] == 1)
  6782. GetPlayerName(playerid, pname, sizeof(pname));
  6783. format(archivo, sizeof(archivo), "/ladmin/users/%s.sav", pname);
  6784. if(dini_Exists(archivo))
  6785. {
  6786. new string[128];
  6787. format(string, sizeof(string), "|- Banco de Exterminio Mundial-| Tu saldo actual es de $%d", dini_Int(archivo, "Saldo"));
  6788. SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
  6789. }
  6790. else if(!dini_Exists(archivo))
  6791. {
  6792. SendClientMessage(playerid, red, "|- Banco de Exterminio Mundial-| No tienes cuenta en el banco!");
  6793. }
  6794. return 1;
  6795. }
  6796.  
  6797. CMD:banco(playerid, params[])
  6798. {
  6799. SendClientMessage(playerid, COLOR_LIGHTGREEN, "Comandos del banco:");
  6800. SendClientMessage(playerid, COLOR_LIGHTGREEN, "/depositar [cantidad]");
  6801. SendClientMessage(playerid, COLOR_LIGHTGREEN, "/retirar [cantidad]");
  6802. SendClientMessage(playerid, COLOR_LIGHTGREEN, "/saldo");
  6803. return 1;
  6804. }
  6805.  
  6806. //------------------------------Sscanf-----------------------------------------
  6807. stock sscanf(string[], format[], {Float,_}:...)
  6808. {
  6809. new
  6810. formatPos = 0,
  6811. stringPos = 0,
  6812. paramPos = 2,
  6813. paramCount = numargs();
  6814. while (paramPos < paramCount && string[stringPos])
  6815. {
  6816. switch (format[formatPos++])
  6817. {
  6818. case '\0':
  6819. {
  6820. return 0;
  6821. }
  6822. case 'i', 'd':
  6823. {
  6824. new
  6825. neg = 1,
  6826. num = 0,
  6827. ch = string[stringPos];
  6828. if (ch == '-')
  6829. {
  6830. neg = -1;
  6831. ch = string[++stringPos];
  6832. }
  6833. do
  6834. {
  6835. stringPos++;
  6836. if (ch >= '0' && ch <= '9')
  6837. {
  6838. num = (num * 10) + (ch - '0');
  6839. }
  6840. else
  6841. {
  6842. return 1;
  6843. }
  6844. }
  6845. while ((ch = string[stringPos]) && ch != ' ');
  6846. setarg(paramPos, 0, num * neg);
  6847. }
  6848. case 'h', 'x':
  6849. {
  6850. new
  6851. ch,
  6852. num = 0;
  6853. while ((ch = string[stringPos++]))
  6854. {
  6855. switch (ch)
  6856. {
  6857. case 'x', 'X':
  6858. {
  6859. num = 0;
  6860. continue;
  6861. }
  6862. case '0' .. '9':
  6863. {
  6864. num = (num << 4) | (ch - '0');
  6865. }
  6866. case 'a' .. 'f':
  6867. {
  6868. num = (num << 4) | (ch - ('a' - 10));
  6869. }
  6870. case 'A' .. 'F':
  6871. {
  6872. num = (num << 4) | (ch - ('A' - 10));
  6873. }
  6874. case ' ':
  6875. {
  6876. break;
  6877. }
  6878. default:
  6879. {
  6880. return 1;
  6881. }
  6882. }
  6883. }
  6884. setarg(paramPos, 0, num);
  6885. }
  6886. case 'c':
  6887. {
  6888. setarg(paramPos, 0, string[stringPos++]);
  6889. }
  6890. case 'f':
  6891. {
  6892. new tmp[25];
  6893. strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2);
  6894. setarg(paramPos, 0, _:floatstr(tmp));
  6895. }
  6896. case 's', 'z':
  6897. {
  6898. new
  6899. i = 0,
  6900. ch;
  6901. if (format[formatPos])
  6902. {
  6903. while ((ch = string[stringPos++]) && ch != ' ')
  6904. {
  6905. setarg(paramPos, i++, ch);
  6906. }
  6907. if (!i) return 1;
  6908. }
  6909. else
  6910. {
  6911. while ((ch = string[stringPos++]))
  6912. {
  6913. setarg(paramPos, i++, ch);
  6914. }
  6915. }
  6916. stringPos--;
  6917. setarg(paramPos, i, '\0');
  6918. }
  6919. default:
  6920. {
  6921. continue;
  6922. }
  6923. }
  6924. while (string[stringPos] && string[stringPos] != ' ')
  6925. {
  6926. stringPos++;
  6927. }
  6928. while (string[stringPos] == ' ')
  6929. {
  6930. stringPos++;
  6931. }
  6932. paramPos++;
  6933. }
  6934. while (format[formatPos] == 'z') formatPos++;
  6935. return format[formatPos];
  6936. }
  6937. //---------------------Fin Sscanff--------------------
  6938.  
  6939.  
Advertisement
Add Comment
Please, Sign In to add comment