Guest User

ladmin + register/login en dialog

a guest
Dec 4th, 2011
1,400
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 339.29 KB | None | 0 0
  1. #include <a_samp>
  2. #include <lethaldudb2>
  3.  
  4. #pragma dynamic 145000
  5.  
  6. /*
  7. |===============================================|
  8. |       --== LethaL Adminscript ==--            |
  9. |         -==  Version 4.2  ==--                |
  10. |              ladmin4v2.pwn                    |
  11. |===============================================|
  12. */
  13.  
  14. //-----------------------------------------------------------------------------------//
  15.  
  16. #define USE_MENUS           // Comment to remove all menus.  Uncomment to enable menus
  17. //#define DISPLAY_CONFIG    // displays configuration in console window on filterscript load
  18. #define SAVE_LOGS           // Comment if your server runs linux (logs wont be saved)
  19. #define ENABLE_SPEC         // Comment if you are using a spectate system already
  20. #define USE_STATS           // Comment to disable /stats
  21. #define ANTI_MINIGUN        // Displays who has a minigun
  22. //#define USE_AREGISTER       // Changes /register, /login etc to  /areister, /alogin etc
  23. //#define HIDE_ADMINS       // Displays number of admins online instead of level and names
  24. #define ENABLE_FAKE_CMDS    // Comment to disable /fakechat, /fakedeath, /fakecmd commanads
  25.  
  26. //-----------------------------------------------------------------------------------//
  27.  
  28. #define MAX_WARNINGS 3      // /warn command
  29.  
  30. #define MAX_REPORTS 7
  31. #define MAX_CHAT_LINES 7
  32.  
  33. #define SPAM_MAX_MSGS 5
  34. #define SPAM_TIMELIMIT 8 // SECONDS
  35.  
  36. #define PING_MAX_EXCEEDS 4
  37. #define PING_TIMELIMIT 60 // SECONDS
  38.  
  39. #define MAX_FAIL_LOGINS 4
  40.  
  41. // Admin Area
  42. new AdminArea[6] = {
  43. 377,    // X
  44. 170,    // Y
  45. 1008,   // Z
  46. 90,     // Angle
  47. 3,      // Interior
  48. 0       // Virtual World
  49. };
  50.  
  51. //-=Main colours=-
  52. #define blue 0x375FFFFF
  53. #define red 0xFF0000AA
  54. #define green 0x33FF33AA
  55. #define yellow 0xFFFF00AA
  56. #define grey 0xC0C0C0AA
  57. #define blue1 0x2641FEAA
  58. #define lightblue 0x33CCFFAA
  59. #define orange 0xFF9900AA
  60. #define black 0x2C2727AA
  61. #define COLOR_GREEN 0x33AA33AA
  62. #define COLOR_PINK 0xFF66FFAA
  63. #define COLOR_BLUE 0x0000BBAA
  64. #define COLOR_PURPLE 0x800080AA
  65. #define COLOR_BLACK 0x000000AA
  66. #define COLOR_WHITE 0xFFFFFFAA
  67. #define COLOR_GREEN1 0x33AA33AA
  68. #define COLOR_BROWN 0xA52A2AAA
  69.  
  70. // DCMD
  71. #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
  72.  
  73. // Caps
  74. #define UpperToLower(%1) for ( new ToLowerChar; ToLowerChar < strlen( %1 ); ToLowerChar ++ ) if ( %1[ ToLowerChar ]> 64 && %1[ ToLowerChar ] < 91 ) %1[ ToLowerChar ] += 32
  75.  
  76. // Spec
  77. #define ADMIN_SPEC_TYPE_NONE 0
  78. #define ADMIN_SPEC_TYPE_PLAYER 1
  79. #define ADMIN_SPEC_TYPE_VEHICLE 2
  80.  
  81. // Enums
  82. enum PlayerData
  83. {
  84.     Registered,
  85.     LoggedIn,
  86.     Level,
  87.     Muted,
  88.     Caps,
  89.     Jailed,
  90.     JailTime,
  91.     Frozen,
  92.     FreezeTime,
  93.     Kills,
  94.     Deaths,
  95.     hours,
  96.     mins,
  97.     secs,
  98.     TotalTime,
  99.     ConnectTime,
  100.     MuteWarnings,
  101.     Warnings,
  102.     Spawned,
  103.     TimesSpawned,
  104.     God,
  105.     GodCar,
  106.     DoorsLocked,
  107.     SpamCount,
  108.     SpamTime,
  109.     PingCount,
  110.     PingTime,
  111.     BotPing,
  112.     pPing[PING_MAX_EXCEEDS],
  113.     blip,
  114.     blipS,
  115.     pColour,
  116.     pCar,
  117.     SpecID,
  118.     SpecType,
  119.     bool:AllowedIn,
  120.     FailLogin,
  121. };
  122. new PlayerInfo[MAX_PLAYERS][PlayerData];
  123.  
  124. enum ServerData
  125. {
  126.     MaxPing,
  127.     ReadPMs,
  128.     ReadCmds,
  129.     MaxAdminLevel,
  130.     AdminOnlySkins,
  131.     AdminSkin,
  132.     AdminSkin2,
  133.     NameKick,
  134.     PartNameKick,
  135.     AntiBot,
  136.     AntiSpam,
  137.     AntiSwear,
  138.     NoCaps,
  139.     Locked,
  140.     Password[128],
  141.     GiveWeap,
  142.     GiveMoney,
  143.     ConnectMessages,
  144.     AdminCmdMsg,
  145.     AutoLogin,
  146.     MaxMuteWarnings,
  147.     DisableChat,
  148.     MustLogin,
  149.     MustRegister,
  150. };
  151. new ServerInfo[ServerData];
  152.  
  153. new Float:Pos[MAX_PLAYERS][4];
  154.  
  155. // rcon
  156. new Chat[MAX_CHAT_LINES][128];
  157.  
  158. //Timers
  159. new PingTimer;
  160. new GodTimer;
  161. new BlipTimer[MAX_PLAYERS];
  162. new JailTimer[MAX_PLAYERS];
  163. new FreezeTimer[MAX_PLAYERS];
  164. new LockKickTimer[MAX_PLAYERS];
  165.  
  166. //Duel
  167. new CountDown = -1, cdt[MAX_PLAYERS] = -1;
  168. new InDuel[MAX_PLAYERS];
  169.  
  170. // Menus
  171. #if defined USE_MENUS
  172. new Menu:LMainMenu, Menu:AdminEnable, Menu:AdminDisable,
  173.     Menu:LVehicles, Menu:twodoor, Menu:fourdoor, Menu:fastcar, Menu:Othercars,
  174.     Menu:bikes, Menu:boats, Menu:planes, Menu:helicopters,
  175.     Menu:XWeapons, Menu:XWeaponsBig, Menu:XWeaponsSmall, Menu:XWeaponsMore,
  176.     Menu:LWeather,Menu:LTime,
  177.     Menu:LTuneMenu, Menu:PaintMenu, Menu:LCars, Menu:LCars2,
  178.     Menu:LTele, Menu:LasVenturasMenu, Menu:LosSantosMenu, Menu:SanFierroMenu,
  179.     Menu:DesertMenu, Menu:FlintMenu, Menu:MountChiliadMenu, Menu:InteriorsMenu;
  180. #endif
  181.  
  182. // Forbidden Names & Words
  183. new BadNames[100][100], // Whole Names
  184.     BadNameCount = 0,
  185.     BadPartNames[100][100], // Part of name
  186.     BadPartNameCount = 0,
  187.     ForbiddenWords[100][100],
  188.     ForbiddenWordCount = 0;
  189.  
  190. // Report
  191. new Reports[MAX_REPORTS][128];
  192.  
  193. // Ping Kick
  194. new PingPos;
  195.  
  196. new VehicleNames[212][] = {
  197.     "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  198.     "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
  199.     "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  200.     "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  201.     "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  202.     "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
  203.     "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
  204.     "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
  205.     "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
  206.     "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  207.     "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
  208.     "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
  209.     "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
  210.     "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
  211.     "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  212.     "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  213.     "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  214. };
  215.  
  216. //==============================================================================
  217.  
  218. public OnFilterScriptInit()
  219. {
  220.     print("\n________________________________________");
  221.     print("________________________________________");
  222.     print("           LAdmin Loading...            ");
  223.     print("________________________________________");
  224.    
  225.     if(!fexist("ladmin/"))
  226.     {
  227.         print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  228.         SetTimerEx("PrintWarning",2500,0,"s","ladmin");
  229.         return 1;
  230.     }
  231.     if(!fexist("ladmin/logs/"))
  232.     {
  233.         print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  234.         SetTimerEx("PrintWarning",2500,0,"s","ladmin/logs");
  235.         return 1;
  236.     }
  237.     if(!fexist("ladmin/config/"))
  238.     {
  239.         print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  240.         SetTimerEx("PrintWarning",2500,0,"s","ladmin/config");
  241.         return 1;
  242.     }
  243.     if(!fexist("ladmin/users/"))
  244.     {
  245.         print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
  246.         SetTimerEx("PrintWarning",2500,0,"s","ladmin/users");
  247.         return 1;
  248.     }
  249.    
  250.     UpdateConfig();
  251.  
  252.     #if defined DISPLAY_CONFIG
  253.     ConfigInConsole();
  254.     #endif
  255.    
  256.     //===================== [ The Menus ]===========================//
  257.     #if defined USE_MENUS
  258.  
  259.     LMainMenu = CreateMenu("Main Menu", 2,  55.0, 200.0, 100.0, 80.0);
  260.     SetMenuColumnHeader(LMainMenu, 0, "Choose an option below");
  261.     AddMenuItem(LMainMenu, 0, "Enable");
  262.     AddMenuItem(LMainMenu, 0, "Disable");
  263.     AddMenuItem(LMainMenu, 0, "Server Weather");
  264.     AddMenuItem(LMainMenu, 0, "Server Time");
  265.     AddMenuItem(LMainMenu, 0, "All Vehicles");
  266.     AddMenuItem(LMainMenu, 0, "Admin Cars");
  267.     AddMenuItem(LMainMenu, 0, "Tuning Menu");
  268.     AddMenuItem(LMainMenu, 0, "Choose Weapon");
  269.     AddMenuItem(LMainMenu, 0, "Teleports");
  270.     AddMenuItem(LMainMenu, 0, "Exit Menu");//
  271.  
  272.     AdminEnable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
  273.     SetMenuColumnHeader(AdminEnable, 0, "Enable");
  274.     AddMenuItem(AdminEnable, 0, "Anti Swear");
  275.     AddMenuItem(AdminEnable, 0, "Bad Name Kick");
  276.     AddMenuItem(AdminEnable, 0, "Anti Spam");
  277.     AddMenuItem(AdminEnable, 0, "Ping Kick");
  278.     AddMenuItem(AdminEnable, 0, "Read Cmds");
  279.     AddMenuItem(AdminEnable, 0, "Read PMs");
  280.     AddMenuItem(AdminEnable, 0, "Capital Letters");
  281.     AddMenuItem(AdminEnable, 0, "ConnectMessages");
  282.     AddMenuItem(AdminEnable, 0, "AdminCmdMessages");
  283.     AddMenuItem(AdminEnable, 0, "Auto Login");
  284.     AddMenuItem(AdminEnable, 0, "Return");
  285.  
  286.     AdminDisable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
  287.     SetMenuColumnHeader(AdminDisable, 0, "Disable");
  288.     AddMenuItem(AdminDisable, 0, "Anti Swear");
  289.     AddMenuItem(AdminDisable, 0, "Bad Name Kick");
  290.     AddMenuItem(AdminDisable, 0, "Anti Spam");
  291.     AddMenuItem(AdminDisable, 0, "Ping Kick");
  292.     AddMenuItem(AdminDisable, 0, "Read Cmds");
  293.     AddMenuItem(AdminDisable, 0, "Read PMs");
  294.     AddMenuItem(AdminDisable, 0, "Capital Letters");
  295.     AddMenuItem(AdminDisable, 0, "ConnectMessages");
  296.     AddMenuItem(AdminDisable, 0, "AdminCmdMessages");
  297.     AddMenuItem(AdminDisable, 0, "Auto Login");
  298.     AddMenuItem(AdminDisable, 0, "Return");
  299.    
  300.     LWeather = CreateMenu("~b~Weather ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  301.     SetMenuColumnHeader(LWeather, 0, "Set Weather");
  302.     AddMenuItem(LWeather, 0, "Clear Blue Sky");
  303.     AddMenuItem(LWeather, 0, "Sand Storm");
  304.     AddMenuItem(LWeather, 0, "Thunderstorm");
  305.     AddMenuItem(LWeather, 0, "Foggy");
  306.     AddMenuItem(LWeather, 0, "Cloudy");
  307.     AddMenuItem(LWeather, 0, "High Tide");
  308.     AddMenuItem(LWeather, 0, "Purple Sky");
  309.     AddMenuItem(LWeather, 0, "Black/White Sky");
  310.     AddMenuItem(LWeather, 0, "Dark, Green Sky");
  311.     AddMenuItem(LWeather, 0, "Heatwave");
  312.     AddMenuItem(LWeather,0,"Return");
  313.  
  314.     LTime = CreateMenu("~b~Time ~g~ Menu", 2,  55.0, 200.0, 100.0, 80.0);
  315.     SetMenuColumnHeader(LTime, 0, "Set Time");
  316.     AddMenuItem(LTime, 0, "Morning");
  317.     AddMenuItem(LTime, 0, "Mid day");
  318.     AddMenuItem(LTime, 0, "Afternoon");
  319.     AddMenuItem(LTime, 0, "Evening");
  320.     AddMenuItem(LTime, 0, "Midnight");
  321.     AddMenuItem(LTime, 0, "Return");
  322.  
  323.     LCars = CreateMenu("~b~LethaL ~g~Cars", 2,  55.0, 150.0, 100.0, 80.0);
  324.     SetMenuColumnHeader(LCars, 0, "Choose a car");
  325.     AddMenuItem(LCars, 0, "Turismo");
  326.     AddMenuItem(LCars, 0, "Bandito");
  327.     AddMenuItem(LCars, 0, "Vortex");
  328.     AddMenuItem(LCars, 0, "NRG");
  329.     AddMenuItem(LCars, 0, "S.W.A.T");
  330.     AddMenuItem(LCars, 0, "Hunter");
  331.     AddMenuItem(LCars, 0, "Jetmax (boat)");
  332.     AddMenuItem(LCars, 0, "Rhino");
  333.     AddMenuItem(LCars, 0, "Monster Truck");
  334.     AddMenuItem(LCars, 0, "Sea Sparrow");
  335.     AddMenuItem(LCars, 0, "More");
  336.     AddMenuItem(LCars, 0, "Return");
  337.  
  338.     LCars2 = CreateMenu("~b~LethaL ~g~Cars", 2,  55.0, 150.0, 100.0, 80.0);
  339.     SetMenuColumnHeader(LCars2, 0, "Choose a car");
  340.     AddMenuItem(LCars2, 0, "Dumper");
  341.     AddMenuItem(LCars2, 0, "RC Tank");
  342.     AddMenuItem(LCars2, 0, "RC Bandit");
  343.     AddMenuItem(LCars2, 0, "RC Baron");
  344.     AddMenuItem(LCars2, 0, "RC Goblin");
  345.     AddMenuItem(LCars2, 0, "RC Raider");
  346.     AddMenuItem(LCars2, 0, "RC Cam");
  347.     AddMenuItem(LCars2, 0, "Tram");
  348.     AddMenuItem(LCars2, 0, "Return");
  349.    
  350.     LTuneMenu = CreateMenu("~b~Tuning ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  351.     SetMenuColumnHeader(LTuneMenu, 0, "Add to car");
  352.     AddMenuItem(LTuneMenu,0,"NOS");
  353.     AddMenuItem(LTuneMenu,0,"Hydraulics");
  354.     AddMenuItem(LTuneMenu,0,"Wire Wheels");
  355.     AddMenuItem(LTuneMenu,0,"Twist Wheels");
  356.     AddMenuItem(LTuneMenu,0,"Access Wheels");
  357.     AddMenuItem(LTuneMenu,0,"Mega Wheels");
  358.     AddMenuItem(LTuneMenu,0,"Import Wheels");
  359.     AddMenuItem(LTuneMenu,0,"Atomic Wheels");
  360.     AddMenuItem(LTuneMenu,0,"Offroad Wheels");
  361.     AddMenuItem(LTuneMenu,0,"Classic Wheels");
  362.     AddMenuItem(LTuneMenu,0,"Paint Jobs");
  363.     AddMenuItem(LTuneMenu,0,"Return");
  364.    
  365.     PaintMenu = CreateMenu("~b~Paint Job ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  366.     SetMenuColumnHeader(PaintMenu, 0, "Choose paint");
  367.     AddMenuItem(PaintMenu,0,"Paint Job 1");
  368.     AddMenuItem(PaintMenu,0,"Paint Job 2");
  369.     AddMenuItem(PaintMenu,0,"Paint Job 3");
  370.     AddMenuItem(PaintMenu,0,"Paint Job 4");
  371.     AddMenuItem(PaintMenu,0,"Paint Job 5");
  372.     AddMenuItem(PaintMenu,0,"Black");
  373.     AddMenuItem(PaintMenu,0,"White");
  374.     AddMenuItem(PaintMenu,0,"Blue");
  375.     AddMenuItem(PaintMenu,0,"Pink");
  376.     AddMenuItem(PaintMenu,0,"Return");
  377.    
  378.     LVehicles = CreateMenu("~b~Vehicles ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
  379.     SetMenuColumnHeader(LVehicles, 0, "Choose a car");
  380.     AddMenuItem(LVehicles,0,"2-door Cars");
  381.     AddMenuItem(LVehicles,0,"4-door Cars");
  382.     AddMenuItem(LVehicles,0,"Fast Cars");
  383.     AddMenuItem(LVehicles,0,"Other Vehicles");
  384.     AddMenuItem(LVehicles,0,"Bikes");
  385.     AddMenuItem(LVehicles,0,"Boats");
  386.     AddMenuItem(LVehicles,0,"Planes");
  387.     AddMenuItem(LVehicles,0,"Helicopters");
  388.     AddMenuItem(LVehicles,0,"Return");
  389.  
  390.     twodoor = CreateMenu("~b~2-door Cars",2, 55.0, 200.0, 100.0, 80.0);
  391.     SetMenuColumnHeader(twodoor, 0, "Choose a car");
  392.     AddMenuItem(twodoor,0,"Feltzer");//533
  393.     AddMenuItem(twodoor,0,"Stallion");//139
  394.     AddMenuItem(twodoor,0,"Windsor");//555
  395.     AddMenuItem(twodoor,0,"Bobcat");//422
  396.     AddMenuItem(twodoor,0,"Yosemite");//554
  397.     AddMenuItem(twodoor,0,"Broadway");//575
  398.     AddMenuItem(twodoor,0,"Blade");//536
  399.     AddMenuItem(twodoor,0,"Slamvan");//535
  400.     AddMenuItem(twodoor,0,"Tornado");//576
  401.     AddMenuItem(twodoor,0,"Bravura");//401
  402.     AddMenuItem(twodoor,0,"Fortune");//526
  403.     AddMenuItem(twodoor,0,"Return");
  404.  
  405.     fourdoor = CreateMenu("~b~4-door Cars",2, 55.0, 200.0, 100.0, 80.0);
  406.     SetMenuColumnHeader(fourdoor, 0, "Choose a car");
  407.     AddMenuItem(fourdoor,0,"Perenniel");//404
  408.     AddMenuItem(fourdoor,0,"Tahoma");//566
  409.     AddMenuItem(fourdoor,0,"Voodoo");//412
  410.     AddMenuItem(fourdoor,0,"Admiral");//445
  411.     AddMenuItem(fourdoor,0,"Elegant");//507
  412.     AddMenuItem(fourdoor,0,"Glendale");//466
  413.     AddMenuItem(fourdoor,0,"Intruder");//546
  414.     AddMenuItem(fourdoor,0,"Merit");//551
  415.     AddMenuItem(fourdoor,0,"Oceanic");//467
  416.     AddMenuItem(fourdoor,0,"Premier");//426
  417.     AddMenuItem(fourdoor,0,"Sentinel");//405
  418.     AddMenuItem(fourdoor,0,"Return");
  419.  
  420.     fastcar = CreateMenu("~b~Fast Cars",2, 55.0, 200.0, 100.0, 80.0);
  421.     SetMenuColumnHeader(fastcar, 0, "Choose a car");
  422.     AddMenuItem(fastcar,0,"Comet");//480
  423.     AddMenuItem(fastcar,0,"Buffalo");//402
  424.     AddMenuItem(fastcar,0,"Cheetah");//415
  425.     AddMenuItem(fastcar,0,"Euros");//587
  426.     AddMenuItem(fastcar,0,"Hotring Racer");//494
  427.     AddMenuItem(fastcar,0,"Infernus");//411
  428.     AddMenuItem(fastcar,0,"Phoenix");//603
  429.     AddMenuItem(fastcar,0,"Super GT");//506
  430.     AddMenuItem(fastcar,0,"Turismo");//451
  431.     AddMenuItem(fastcar,0,"ZR-350");//477
  432.     AddMenuItem(fastcar,0,"Bullet");//541
  433.     AddMenuItem(fastcar,0,"Return");
  434.  
  435.     Othercars = CreateMenu("~b~Other Vehicles",2, 55.0, 200.0, 100.0, 80.0);
  436.     SetMenuColumnHeader(Othercars, 0, "Choose a car?");
  437.     AddMenuItem(Othercars,0,"Monster Truck");//556
  438.     AddMenuItem(Othercars,0,"Trashmaster");//408
  439.     AddMenuItem(Othercars,0,"Bus");//431
  440.     AddMenuItem(Othercars,0,"Coach");//437
  441.     AddMenuItem(Othercars,0,"Enforcer");//427
  442.     AddMenuItem(Othercars,0,"Rhino (Tank)");//432
  443.     AddMenuItem(Othercars,0,"S.W.A.T.Truck");//601
  444.     AddMenuItem(Othercars,0,"Cement Truck");//524
  445.     AddMenuItem(Othercars,0,"Flatbed");//455
  446.     AddMenuItem(Othercars,0,"BF Injection");//424
  447.     AddMenuItem(Othercars,0,"Dune");//573
  448.     AddMenuItem(Othercars,0,"Return");
  449.  
  450.     bikes = CreateMenu("~b~Bikes",2, 55.0, 200.0, 100.0, 80.0);
  451.     SetMenuColumnHeader(bikes, 0, "Choose a bike");
  452.     AddMenuItem(bikes,0,"BF-400");
  453.     AddMenuItem(bikes,0,"BMX");
  454.     AddMenuItem(bikes,0,"Faggio");
  455.     AddMenuItem(bikes,0,"FCR-900");
  456.     AddMenuItem(bikes,0,"Freeway");
  457.     AddMenuItem(bikes,0,"NRG-500");
  458.     AddMenuItem(bikes,0,"PCJ-600");
  459.     AddMenuItem(bikes,0,"Pizzaboy");
  460.     AddMenuItem(bikes,0,"Quad");
  461.     AddMenuItem(bikes,0,"Sanchez");
  462.     AddMenuItem(bikes,0,"Wayfarer");
  463.     AddMenuItem(bikes,0,"Return");
  464.  
  465.     boats = CreateMenu("~b~Boats",2, 55.0, 200.0, 100.0, 80.0);
  466.     SetMenuColumnHeader(boats, 0, "Choose a boat");
  467.     AddMenuItem(boats,0,"Coastguard");//472
  468.     AddMenuItem(boats,0,"Dingy");//473
  469.     AddMenuItem(boats,0,"Jetmax");//493
  470.     AddMenuItem(boats,0,"Launch");//595
  471.     AddMenuItem(boats,0,"Marquis");//484
  472.     AddMenuItem(boats,0,"Predator");//430
  473.     AddMenuItem(boats,0,"Reefer");//453
  474.     AddMenuItem(boats,0,"Speeder");//452
  475.     AddMenuItem(boats,0,"Squallo");//446
  476.     AddMenuItem(boats,0,"Tropic");//454
  477.     AddMenuItem(boats,0,"Return");
  478.  
  479.     planes = CreateMenu("~b~Planes",2, 55.0, 200.0, 100.0, 80.0);
  480.     SetMenuColumnHeader(planes, 0, "Choose a plane");
  481.     AddMenuItem(planes,0,"Andromada");//592
  482.     AddMenuItem(planes,0,"AT400");//577
  483.     AddMenuItem(planes,0,"Beagle");//511
  484.     AddMenuItem(planes,0,"Cropduster");//512
  485.     AddMenuItem(planes,0,"Dodo");//593
  486.     AddMenuItem(planes,0,"Hydra");//520
  487.     AddMenuItem(planes,0,"Nevada");//553
  488.     AddMenuItem(planes,0,"Rustler");//476
  489.     AddMenuItem(planes,0,"Shamal");//519
  490.     AddMenuItem(planes,0,"Skimmer");//460
  491.     AddMenuItem(planes,0,"Stuntplane");//513
  492.     AddMenuItem(planes,0,"Return");
  493.  
  494.     helicopters = CreateMenu("~b~Helicopters",2, 55.0, 200.0, 100.0, 80.0);
  495.     SetMenuColumnHeader(helicopters, 0, "Choose a helicopter");
  496.     AddMenuItem(helicopters,0,"Cargobob");//
  497.     AddMenuItem(helicopters,0,"Hunter");//
  498.     AddMenuItem(helicopters,0,"Leviathan");//
  499.     AddMenuItem(helicopters,0,"Maverick");//
  500.     AddMenuItem(helicopters,0,"News Chopper");//
  501.     AddMenuItem(helicopters,0,"Police Maverick");//
  502.     AddMenuItem(helicopters,0,"Raindance");//
  503.     AddMenuItem(helicopters,0,"Seasparrow");//
  504.     AddMenuItem(helicopters,0,"Sparrow");//
  505.     AddMenuItem(helicopters,0,"Return");
  506.  
  507.     XWeapons = CreateMenu("~b~Weapons ~g~Main Menu",2, 55.0, 200.0, 100.0, 80.0);
  508.     SetMenuColumnHeader(XWeapons, 0, "Choose a weapon");
  509.     AddMenuItem(XWeapons,0,"Desert Eagle");//0
  510.     AddMenuItem(XWeapons,0,"M4");
  511.     AddMenuItem(XWeapons,0,"Sawnoff Shotgun");
  512.     AddMenuItem(XWeapons,0,"Combat Shotgun");
  513.     AddMenuItem(XWeapons,0,"UZI");
  514.     AddMenuItem(XWeapons,0,"Rocket Launcher");
  515.     AddMenuItem(XWeapons,0,"Minigun");//6
  516.     AddMenuItem(XWeapons,0,"Sniper Rifle");
  517.     AddMenuItem(XWeapons,0,"Big Weapons");
  518.     AddMenuItem(XWeapons,0,"Small Weapons");//9
  519.     AddMenuItem(XWeapons,0,"More");
  520.     AddMenuItem(XWeapons,0,"Return");//11
  521.  
  522.     XWeaponsBig = CreateMenu("~b~Weapons ~g~Big Weapons",2, 55.0, 200.0, 100.0, 80.0);
  523.     SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  524.     AddMenuItem(XWeaponsBig,0,"Shotgun");
  525.     AddMenuItem(XWeaponsBig,0,"AK-47");
  526.     AddMenuItem(XWeaponsBig,0,"Country Rifle");
  527.     AddMenuItem(XWeaponsBig,0,"HS Rocket Launcher");
  528.     AddMenuItem(XWeaponsBig,0,"Flamethrower");
  529.     AddMenuItem(XWeaponsBig,0,"SMG");
  530.     AddMenuItem(XWeaponsBig,0,"TEC9");
  531.     AddMenuItem(XWeaponsBig,0,"Return");
  532.  
  533.     XWeaponsSmall = CreateMenu("~b~Weapons ~g~Small Weapons",2, 55.0, 200.0, 100.0, 80.0);
  534.     SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  535.     AddMenuItem(XWeaponsSmall,0,"9mm");
  536.     AddMenuItem(XWeaponsSmall,0,"Silenced 9mm");
  537.     AddMenuItem(XWeaponsSmall,0,"Molotov Cocktail");
  538.     AddMenuItem(XWeaponsSmall,0,"Fire Extinguisher");
  539.     AddMenuItem(XWeaponsSmall,0,"Spraycan");
  540.     AddMenuItem(XWeaponsSmall,0,"Frag Grenades");
  541.     AddMenuItem(XWeaponsSmall,0,"Katana");
  542.     AddMenuItem(XWeaponsSmall,0,"Chainsaw");
  543.     AddMenuItem(XWeaponsSmall,0,"Return");
  544.  
  545.     XWeaponsMore = CreateMenu("~b~Weapons ~g~More Weapons",2, 55.0, 200.0, 100.0, 80.0);
  546.     SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
  547.     AddMenuItem(XWeaponsMore,0,"Jetpack");
  548.     AddMenuItem(XWeaponsMore,0,"Knife");
  549.     AddMenuItem(XWeaponsMore,0,"Flowers");
  550.     AddMenuItem(XWeaponsMore,0,"Camera");
  551.     AddMenuItem(XWeaponsMore,0,"Pool Cue");
  552.     AddMenuItem(XWeaponsMore,0,"Baseball Bat");
  553.     AddMenuItem(XWeaponsMore,0,"Golf Club");
  554.     AddMenuItem(XWeaponsMore,0,"MAX AMMO");
  555.     AddMenuItem(XWeaponsMore,0,"Return");
  556.  
  557.     LTele = CreateMenu("Teleports", 2,  55.0, 200.0, 100.0, 80.0);
  558.     SetMenuColumnHeader(LTele, 0, "Teleport to where?");
  559.     AddMenuItem(LTele, 0, "Las Venturas");//0
  560.     AddMenuItem(LTele, 0, "Los Santos");//1
  561.     AddMenuItem(LTele, 0, "San Fierro");//2
  562.     AddMenuItem(LTele, 0, "The Desert");//3
  563.     AddMenuItem(LTele, 0, "Flint Country");//4
  564.     AddMenuItem(LTele, 0, "Mount Chiliad");//5
  565.     AddMenuItem(LTele, 0, "Interiors");//6
  566.     AddMenuItem(LTele, 0, "Return");//8
  567.  
  568.     LasVenturasMenu = CreateMenu("Las Venturas", 2,  55.0, 200.0, 100.0, 80.0);
  569.     SetMenuColumnHeader(LasVenturasMenu, 0, "Teleport to where?");
  570.     AddMenuItem(LasVenturasMenu, 0, "The Strip");//0
  571.     AddMenuItem(LasVenturasMenu, 0, "Come-A-Lot");//1
  572.     AddMenuItem(LasVenturasMenu, 0, "LV Airport");//2
  573.     AddMenuItem(LasVenturasMenu, 0, "KACC Military Fuels");//3
  574.     AddMenuItem(LasVenturasMenu, 0, "Yellow Bell Golf Club");//4
  575.     AddMenuItem(LasVenturasMenu, 0, "Baseball Pitch");//5
  576.     AddMenuItem(LasVenturasMenu, 0, "Return");//6
  577.  
  578.     LosSantosMenu = CreateMenu("Los Santos", 2,  55.0, 200.0, 100.0, 80.0);
  579.     SetMenuColumnHeader(LosSantosMenu, 0, "Teleport to where?");
  580.     AddMenuItem(LosSantosMenu, 0, "Ganton");//0
  581.     AddMenuItem(LosSantosMenu, 0, "LS Airport");//1
  582.     AddMenuItem(LosSantosMenu, 0, "Ocean Docks");//2
  583.     AddMenuItem(LosSantosMenu, 0, "Pershing Square");//3
  584.     AddMenuItem(LosSantosMenu, 0, "Verdant Bluffs");//4
  585.     AddMenuItem(LosSantosMenu, 0, "Santa Maria Beach");//5
  586.     AddMenuItem(LosSantosMenu, 0, "Mulholland");//6
  587.     AddMenuItem(LosSantosMenu, 0, "Richman");//7
  588.     AddMenuItem(LosSantosMenu, 0, "Return");//8
  589.  
  590.     SanFierroMenu = CreateMenu("San Fierro", 2,  55.0, 200.0, 100.0, 80.0);
  591.     SetMenuColumnHeader(SanFierroMenu, 0, "Teleport to where?");
  592.     AddMenuItem(SanFierroMenu, 0, "SF Station");//0
  593.     AddMenuItem(SanFierroMenu, 0, "SF Airport");//1
  594.     AddMenuItem(SanFierroMenu, 0, "Ocean Flats");//2
  595.     AddMenuItem(SanFierroMenu, 0, "Avispa Country Club");//3
  596.     AddMenuItem(SanFierroMenu, 0, "Easter Basin (docks)");//4
  597.     AddMenuItem(SanFierroMenu, 0, "Esplanade North");//5
  598.     AddMenuItem(SanFierroMenu, 0, "Battery Point");//6
  599.     AddMenuItem(SanFierroMenu, 0, "Return");//7
  600.  
  601.     DesertMenu = CreateMenu("The Desert", 2,  55.0, 200.0, 100.0, 80.0);
  602.     SetMenuColumnHeader(DesertMenu, 0, "Teleport to where?");
  603.     AddMenuItem(DesertMenu, 0, "Aircraft Graveyard");//0
  604.     AddMenuItem(DesertMenu, 0, "Area 51");//1
  605.     AddMenuItem(DesertMenu, 0, "The Big Ear");//2
  606.     AddMenuItem(DesertMenu, 0, "The Sherman Dam");//3
  607.     AddMenuItem(DesertMenu, 0, "Las Barrancas");//4
  608.     AddMenuItem(DesertMenu, 0, "El Quebrados");//5
  609.     AddMenuItem(DesertMenu, 0, "Octane Springs");//6
  610.     AddMenuItem(DesertMenu, 0, "Return");//7
  611.  
  612.     FlintMenu = CreateMenu("Flint Country", 2,  55.0, 200.0, 100.0, 80.0);
  613.     SetMenuColumnHeader(FlintMenu, 0, "Teleport to where?");
  614.     AddMenuItem(FlintMenu, 0, "The Lake");//0
  615.     AddMenuItem(FlintMenu, 0, "Leafy Hollow");//1
  616.     AddMenuItem(FlintMenu, 0, "The Farm");//2
  617.     AddMenuItem(FlintMenu, 0, "Shady Cabin");//3
  618.     AddMenuItem(FlintMenu, 0, "Flint Range");//4
  619.     AddMenuItem(FlintMenu, 0, "Becon Hill");//5
  620.     AddMenuItem(FlintMenu, 0, "Fallen Tree");//6
  621.     AddMenuItem(FlintMenu, 0, "Return");//7
  622.  
  623.     MountChiliadMenu = CreateMenu("Mount Chiliad", 2,  55.0, 200.0, 100.0, 80.0);
  624.     SetMenuColumnHeader(MountChiliadMenu, 0, "Teleport to where?");
  625.     AddMenuItem(MountChiliadMenu, 0, "Chiliad Jump");//0
  626.     AddMenuItem(MountChiliadMenu, 0, "Bottom Of Chiliad");//1
  627.     AddMenuItem(MountChiliadMenu, 0, "Highest Point");//2
  628.     AddMenuItem(MountChiliadMenu, 0, "Chiliad Path");//3
  629.     AddMenuItem(MountChiliadMenu, 0, "Return");//7
  630.  
  631.     InteriorsMenu = CreateMenu("Interiors", 2,  55.0, 200.0, 130.0, 80.0);
  632.     SetMenuColumnHeader(InteriorsMenu, 0, "Teleport to where?");
  633.     AddMenuItem(InteriorsMenu, 0, "Planning Department");//0
  634.     AddMenuItem(InteriorsMenu, 0, "LV PD");//1
  635.     AddMenuItem(InteriorsMenu, 0, "Pizza Stack");//2
  636.     AddMenuItem(InteriorsMenu, 0, "RC Battlefield");//3
  637.     AddMenuItem(InteriorsMenu, 0, "Caligula's Casino");//4
  638.     AddMenuItem(InteriorsMenu, 0, "Big Smoke's Crack Palace");//5
  639.     AddMenuItem(InteriorsMenu, 0, "Madd Dogg's Mansion");//6
  640.     AddMenuItem(InteriorsMenu, 0, "Dirtbike Stadium");//7
  641.     AddMenuItem(InteriorsMenu, 0, "Vice Stadium (duel)");//8
  642.     AddMenuItem(InteriorsMenu, 0, "Ammu-nation");//9
  643.     AddMenuItem(InteriorsMenu, 0, "Atrium");//7
  644.     AddMenuItem(InteriorsMenu, 0, "Return");//8
  645.     #endif
  646.    
  647.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);
  648.     for(new i = 1; i < MAX_CHAT_LINES; i++) Chat[i] = "<none>";
  649.     for(new i = 1; i < MAX_REPORTS; i++) Reports[i] = "<none>";
  650.    
  651.     PingTimer = SetTimer("PingKick",5000,1);
  652.     GodTimer = SetTimer("GodUpdate",2000,1);
  653.  
  654.     new year,month,day; getdate(year, month, day);
  655.     new hour,minute,second; gettime(hour,minute,second);
  656.  
  657.     print("________________________________________");
  658.     print("           LAdmin Version 4.0           ");
  659.     print("                Loaded                  ");
  660.     print("________________________________________");
  661.     printf("     Date: %d/%d/%d  Time: %d:%d :%d   ",day,month,year, hour, minute, second);
  662.     print("________________________________________");
  663.     print("________________________________________\n");
  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.     new year,month,day; getdate(year, month, day);
  676.     new hour,minute,second; gettime(hour,minute,second);
  677.     print("\n________________________________________");
  678.     print("________________________________________");
  679.     print("           LAdmin Unloaded              ");
  680.     print("________________________________________");
  681.     printf("     Date: %d/%d/%d  Time: %d:%d :%d   ",day,month,year, hour, minute, second);
  682.     print("________________________________________");
  683.     print("________________________________________\n");
  684.     return 1;
  685. }
  686.  
  687. //==============================================================================
  688. public OnPlayerConnect(playerid)
  689. {
  690.     PlayerInfo[playerid][Deaths] = 0;
  691.     PlayerInfo[playerid][Kills] = 0;
  692.     PlayerInfo[playerid][Jailed] = 0;
  693.     PlayerInfo[playerid][Frozen] = 0;
  694.     PlayerInfo[playerid][Level] = 0;
  695.     PlayerInfo[playerid][LoggedIn] = 0;
  696.     PlayerInfo[playerid][Registered] = 0;
  697.     PlayerInfo[playerid][God] = 0;
  698.     PlayerInfo[playerid][GodCar] = 0;
  699.     PlayerInfo[playerid][TimesSpawned] = 0;
  700.     PlayerInfo[playerid][Muted] = 0;
  701.     PlayerInfo[playerid][MuteWarnings] = 0;
  702.     PlayerInfo[playerid][Warnings] = 0;
  703.     PlayerInfo[playerid][Caps] = 0;
  704.     PlayerInfo[playerid][DoorsLocked] = 0;
  705.     PlayerInfo[playerid][pCar] = -1;
  706.     for(new i; i<PING_MAX_EXCEEDS; i++) PlayerInfo[playerid][pPing][i] = 0;
  707.     PlayerInfo[playerid][SpamCount] = 0;
  708.     PlayerInfo[playerid][SpamTime] = 0;
  709.     PlayerInfo[playerid][PingCount] = 0;
  710.     PlayerInfo[playerid][PingTime] = 0;
  711.     PlayerInfo[playerid][FailLogin] = 0;
  712.     PlayerInfo[playerid][ConnectTime] = gettime();
  713.     //------------------------------------------------------
  714.     new PlayerName[MAX_PLAYER_NAME], string[128], str[128], file[256];
  715.     GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
  716.     new tmp3[50]; GetPlayerIp(playerid,tmp3,50);
  717.     //-----------------------------------------------------
  718.     if(ServerInfo[ConnectMessages] == 1)
  719.     {
  720.         new pAKA[256]; pAKA = dini_Get("ladmin/config/aka.txt",tmp3);
  721.         if (strlen(pAKA) < 3) format(str,sizeof(str),"*** %s (%d) has joined the server", PlayerName, playerid);
  722.         else if (!strcmp(pAKA,PlayerName,true)) format(str,sizeof(str),"*** %s (%d) has joined the server", PlayerName, playerid);
  723.         else format(str,sizeof(str),"*** %s (%d) has joined the server (aka %s)", PlayerName, playerid, pAKA );
  724.  
  725.         for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && playerid != i)
  726.         {
  727.             if(PlayerInfo[i][Level] > 2) SendClientMessage(i,grey,str);
  728.             else {
  729.                 format(string,sizeof(string),"*** %s (%d) has joined the server", PlayerName, playerid);
  730.                 SendClientMessage(i,grey,string);
  731.             }
  732.         }
  733.     }
  734.     //-----------------------------------------------------
  735.     if (dUserINT(PlayerName2(playerid)).("banned") == 1)
  736.     {
  737.         SendClientMessage(playerid, red, "This name is banned from this server!");
  738.         format(string,sizeof(string),"%s ID:%d was auto kicked. Reason: Name banned from server",PlayerName,playerid);
  739.         SendClientMessageToAll(grey, string);  print(string);
  740.         SaveToFile("KickLog",string);  Kick(playerid);
  741.     }
  742.     //-----------------------------------------------------
  743.     if(ServerInfo[NameKick] == 1) {
  744.         for(new s = 0; s < BadNameCount; s++) {
  745.             if(!strcmp(BadNames[s],PlayerName,true)) {
  746.                 SendClientMessage(playerid,red, "Your name is on our black list, you have been kicked.");
  747.                 format(string,sizeof(string),"%s ID:%d was auto kicked. (Reason: Forbidden name)",PlayerName,playerid);
  748.                 SendClientMessageToAll(grey, string);  print(string);
  749.                 SaveToFile("KickLog",string);  Kick(playerid);
  750.                 return 1;
  751.             }
  752.         }
  753.     }
  754.     //-----------------------------------------------------
  755.     if(ServerInfo[PartNameKick] == 1) {
  756.         for(new s = 0; s < BadPartNameCount; s++) {
  757.             new pos;
  758.             while((pos = strfind(PlayerName,BadPartNames[s],true)) != -1) for(new i = pos, j = pos + strlen(BadPartNames[s]); i < j; i++)
  759.             {
  760.                 SendClientMessage(playerid,red, "Your name is not allowed on this server, you have been kicked.");
  761.                 format(string,sizeof(string),"%s ID:%d was auto kicked. (Reason: Forbidden name)",PlayerName,playerid);
  762.                 SendClientMessageToAll(grey, string);  print(string);
  763.                 SaveToFile("KickLog",string);  Kick(playerid);
  764.                 return 1;
  765.             }
  766.         }
  767.     }
  768.     //-----------------------------------------------------
  769.     if(ServerInfo[Locked] == 1) {
  770.         PlayerInfo[playerid][AllowedIn] = false;
  771.         SendClientMessage(playerid,red,"Server is Locked!  You have 20 seconds to enter the server password before you are kicked!");
  772.         SendClientMessage(playerid,red," Type /password [password]");
  773.         LockKickTimer[playerid] = SetTimerEx("AutoKick", 20000, 0, "i", playerid);
  774.     }
  775.     //-----------------------------------------------------
  776.     if(strlen(dini_Get("ladmin/config/aka.txt", tmp3)) == 0) dini_Set("ladmin/config/aka.txt", tmp3, PlayerName);
  777.     else
  778.     {
  779.         if( strfind( dini_Get("ladmin/config/aka.txt", tmp3), PlayerName, true) == -1 )
  780.         {
  781.             format(string,sizeof(string),"%s,%s", dini_Get("ladmin/config/aka.txt",tmp3), PlayerName);
  782.             dini_Set("ladmin/config/aka.txt", tmp3, string);
  783.         }
  784.     }
  785.     //-----------------------------------------------------
  786.     new dialogstr[256];
  787.     new pame[MAX_PLAYER_NAME];
  788.     GetPlayerName(playerid, pame, sizeof(pame));
  789.     if(!udb_Exists(PlayerName2(playerid))) format(dialogstr,sizeof(dialogstr),"{FFFFFF}%s your nickname isn't registed please choose a password:", pame), ShowPlayerDialog(playerid, 9049, DIALOG_STYLE_INPUT, "{FF0000}Register", dialogstr, "Aceptar", "Cancelar");
  790.     else
  791.     {
  792.         PlayerInfo[playerid][Registered] = 1;
  793.         format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName));
  794.         new tmp2[256]; tmp2 = dini_Get(file,"ip");
  795.         if( (!strcmp(tmp3,tmp2,true)) && (ServerInfo[AutoLogin] == 1) )
  796.         {
  797.             LoginPlayer(playerid);
  798.             if(PlayerInfo[playerid][Level] > 0)
  799.             {
  800.                 format(string,sizeof(string),"ACCOUNT: You have been automatically logged in. (Level %d)", PlayerInfo[playerid][Level] );
  801.                 SendClientMessage(playerid,green,string);
  802.             }
  803.             else SendClientMessage(playerid,green,"ACCOUNT: You have been automatically logged in.");
  804.         }
  805.         else format(dialogstr,sizeof(dialogstr),"{FFFFFF}%s This nickname is registed please login:", pame), ShowPlayerDialog(playerid, 9048, DIALOG_STYLE_INPUT, "{FF0000}Login", dialogstr, "Aceptar", "Cancelar");
  806.     }
  807.     return 1;
  808. }
  809.  
  810. //==============================================================================
  811.  
  812. forward AutoKick(playerid);
  813. public AutoKick(playerid)
  814. {
  815.     if( IsPlayerConnected(playerid) && ServerInfo[Locked] == 1 && PlayerInfo[playerid][AllowedIn] == false) {
  816.         new string[128];
  817.         SendClientMessage(playerid,grey,"You have been automatically kicked. Reason: Server Locked");
  818.         format(string,sizeof(string),"%s ID:%d has been automatically kicked. Reason: Server Locked",PlayerName2(playerid),playerid);
  819.         SaveToFile("KickLog",string);  Kick(playerid);
  820.         SendClientMessageToAll(grey, string); print(string);
  821.     }
  822.     return 1;
  823. }
  824.  
  825. //==============================================================================
  826.  
  827. public OnPlayerDisconnect(playerid, reason)
  828. {
  829.     new PlayerName[MAX_PLAYER_NAME], str[128];
  830.     GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  831.  
  832.     if(ServerInfo[ConnectMessages] == 1)
  833.     {
  834.         switch (reason) {
  835.             case 0: format(str, sizeof(str), "*** %s (%d) has left the server (Timeout)", PlayerName, playerid);
  836.             case 1: format(str, sizeof(str), "*** %s (%d) has left the server (Leaving)", PlayerName, playerid);
  837.             case 2: format(str, sizeof(str), "*** %s (%d) has left the server (Kicked/Banned)", PlayerName, playerid);
  838.         }
  839.         SendClientMessageToAll(grey, str);
  840.     }
  841.  
  842.     if(PlayerInfo[playerid][LoggedIn] == 1) SavePlayer(playerid);
  843.     if(udb_Exists(PlayerName2(playerid))) dUserSetINT(PlayerName2(playerid)).("loggedin",0);
  844.     PlayerInfo[playerid][LoggedIn] = 0;
  845.     PlayerInfo[playerid][Level] = 0;
  846.     PlayerInfo[playerid][Jailed] = 0;
  847.     PlayerInfo[playerid][Frozen] = 0;
  848.    
  849.     if(PlayerInfo[playerid][Jailed] == 1) KillTimer( JailTimer[playerid] );
  850.     if(PlayerInfo[playerid][Frozen] == 1) KillTimer( FreezeTimer[playerid] );
  851.     if(ServerInfo[Locked] == 1) KillTimer( LockKickTimer[playerid] );
  852.  
  853.     if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  854.    
  855.     #if defined ENABLE_SPEC
  856.     for(new x=0; x<MAX_PLAYERS; x++)
  857.         if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
  858.             AdvanceSpectate(x);
  859.     #endif
  860.    
  861.     return 1;
  862. }
  863.  
  864. forward DelayKillPlayer(playerid);
  865. public DelayKillPlayer(playerid)
  866. {
  867.     SetPlayerHealth(playerid,0.0);
  868.     ForceClassSelection(playerid);
  869. }
  870.  
  871. //==============================================================================
  872. public OnPlayerSpawn(playerid)
  873. {
  874.     if(ServerInfo[Locked] == 1 && PlayerInfo[playerid][AllowedIn] == false)
  875.     {
  876.         GameTextForPlayer(playerid,"~r~Server Locked~n~You must enter password before spawning~n~/password <password>",4000,3);
  877.         SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  878.         return 1;
  879.     }
  880.  
  881.     if(ServerInfo[MustLogin] == 1 && PlayerInfo[playerid][Registered] == 1 && PlayerInfo[playerid][LoggedIn] == 0)
  882.     {
  883.         GameTextForPlayer(playerid,"~r~You must login before playing!",4000,3);
  884.         SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  885.         return 1;
  886.     }
  887.  
  888.     if(ServerInfo[MustRegister] == 1 && PlayerInfo[playerid][Registered] == 0)
  889.     {
  890.         GameTextForPlayer(playerid,"~r~You must register before playing!",4000,3);
  891.         SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  892.         return 1;
  893.     }
  894.  
  895.     PlayerInfo[playerid][Spawned] = 1;
  896.  
  897.     if(PlayerInfo[playerid][Frozen] == 1) {
  898.         TogglePlayerControllable(playerid,false); return SendClientMessage(playerid,red,"You cant escape your punishment. You Are Still Frozen");
  899.     }
  900.    
  901.     if(PlayerInfo[playerid][Jailed] == 1) {
  902.         SetTimerEx("JailPlayer",3000,0,"d",playerid); return SendClientMessage(playerid,red,"You cant escape your punishment. You Are Still In Jail");
  903.     }
  904.    
  905.     if(ServerInfo[AdminOnlySkins] == 1) {
  906.         if( (GetPlayerSkin(playerid) == ServerInfo[AdminSkin]) || (GetPlayerSkin(playerid) == ServerInfo[AdminSkin2]) ) {
  907.             if(PlayerInfo[playerid][Level] >= 1)
  908.                 GameTextForPlayer(playerid,"~b~Welcome~n~~w~Admin",3000,1);
  909.             else {
  910.                 GameTextForPlayer(playerid,"~r~This Skin Is For~n~Administrators~n~Only",4000,1);
  911.                 SetTimerEx("DelayKillPlayer", 2500,0,"d",playerid);
  912.                 return 1;
  913.             }
  914.         }
  915.     }
  916.    
  917.     if((dUserINT(PlayerName2(playerid)).("UseSkin")) == 1)
  918.         if((PlayerInfo[playerid][Level] >= 1) && (PlayerInfo[playerid][LoggedIn] == 1))
  919.             SetPlayerSkin(playerid,(dUserINT(PlayerName2(playerid)).("FavSkin")) );
  920.  
  921.     if(ServerInfo[GiveWeap] == 1) {
  922.         if(PlayerInfo[playerid][LoggedIn] == 1) {
  923.             PlayerInfo[playerid][TimesSpawned]++;
  924.             if(PlayerInfo[playerid][TimesSpawned] == 1)
  925.             {
  926.                 GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap1"), dUserINT(PlayerName2(playerid)).("weap1ammo") );
  927.                 GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap2"), dUserINT(PlayerName2(playerid)).("weap2ammo") );
  928.                 GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap3"), dUserINT(PlayerName2(playerid)).("weap3ammo") );
  929.                 GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap4"), dUserINT(PlayerName2(playerid)).("weap4ammo") );
  930.                 GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap5"), dUserINT(PlayerName2(playerid)).("weap5ammo") );
  931.                 GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap6"), dUserINT(PlayerName2(playerid)).("weap6ammo") );
  932.             }
  933.         }
  934.     }
  935.     return 1;
  936. }
  937.  
  938. //==============================================================================
  939.  
  940. public OnPlayerDeath(playerid, killerid, reason)
  941. {
  942.     #if defined USE_STATS
  943.     PlayerInfo[playerid][Deaths]++;
  944.     #endif
  945.     InDuel[playerid] = 0;
  946.    
  947.     if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
  948.     {
  949.         #if defined USE_STATS
  950.         PlayerInfo[killerid][Kills]++;
  951.         #endif
  952.        
  953.         if(InDuel[playerid] == 1 && InDuel[killerid] == 1)
  954.         {
  955.             GameTextForPlayer(playerid,"Loser !",3000,3);
  956.             GameTextForPlayer(killerid,"Winner !",3000,3);
  957.             InDuel[killerid] = 0;
  958.             SetPlayerPos(killerid, 0.0, 0.0, 0.0);
  959.             SpawnPlayer(killerid);
  960.         }
  961.         else if(InDuel[playerid] == 1 && InDuel[killerid] == 0)
  962.         {
  963.             GameTextForPlayer(playerid,"Loser !",3000,3);
  964.         }
  965.     }
  966.  
  967.     #if defined ENABLE_SPEC
  968.     for(new x=0; x<MAX_PLAYERS; x++)
  969.         if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
  970.            AdvanceSpectate(x);
  971.     #endif
  972.    
  973.  
  974.     return 1;
  975. }
  976.  
  977. //==============================================================================
  978.  
  979. public OnPlayerText(playerid, text[])
  980. {
  981.     if(text[0] == '#' && PlayerInfo[playerid][Level] >= 1) {
  982.         new string[128]; GetPlayerName(playerid,string,sizeof(string));
  983.         format(string,sizeof(string),"Admin Chat: %s: %s",string,text[1]); MessageToAdmins(green,string);
  984.         return 0;
  985.     }
  986.  
  987.     if(ServerInfo[DisableChat] == 1) {
  988.         SendClientMessage(playerid,red,"Chat has been disabled");
  989.         return 0;
  990.     }
  991.    
  992.     if(PlayerInfo[playerid][Muted] == 1)
  993.     {
  994.         PlayerInfo[playerid][MuteWarnings]++;
  995.         new string[128];
  996.         if(PlayerInfo[playerid][MuteWarnings] < ServerInfo[MaxMuteWarnings]) {
  997.             format(string, sizeof(string),"WARNING: You are muted, if you continue to speak you will be kicked. (%d / %d)", PlayerInfo[playerid][MuteWarnings], ServerInfo[MaxMuteWarnings] );
  998.             SendClientMessage(playerid,red,string);
  999.         } else {
  1000.             SendClientMessage(playerid,red,"You have been warned ! Now you have been kicked");
  1001.             format(string, sizeof(string),"***%s (ID %d) was kicked for exceeding mute warnings", PlayerName2(playerid), playerid);
  1002.             SendClientMessageToAll(grey,string);
  1003.             SaveToFile("KickLog",string); Kick(playerid);
  1004.         } return 0;
  1005.     }
  1006.    
  1007.     if(ServerInfo[AntiSpam] == 1 && (PlayerInfo[playerid][Level] == 0 && !IsPlayerAdmin(playerid)) )
  1008.     {
  1009.         if(PlayerInfo[playerid][SpamCount] == 0) PlayerInfo[playerid][SpamTime] = TimeStamp();
  1010.  
  1011.         PlayerInfo[playerid][SpamCount]++;
  1012.         if(TimeStamp() - PlayerInfo[playerid][SpamTime] > SPAM_TIMELIMIT) { // Its OK your messages were far enough apart
  1013.             PlayerInfo[playerid][SpamCount] = 0;
  1014.             PlayerInfo[playerid][SpamTime] = TimeStamp();
  1015.         }
  1016.         else if(PlayerInfo[playerid][SpamCount] == SPAM_MAX_MSGS) {
  1017.             new string[64]; format(string,sizeof(string),"%s has been kicked (Flood/Spam Protection)", PlayerName2(playerid));
  1018.             SendClientMessageToAll(grey,string); print(string);
  1019.             SaveToFile("KickLog",string);
  1020.             Kick(playerid);
  1021.         }
  1022.         else if(PlayerInfo[playerid][SpamCount] == SPAM_MAX_MSGS-1) {
  1023.             SendClientMessage(playerid,red,"Anti Spam Warning! Next is a kick.");
  1024.             return 0;
  1025.         }
  1026.     }
  1027.  
  1028.     if(ServerInfo[AntiSwear] == 1 && PlayerInfo[playerid][Level] < ServerInfo[MaxAdminLevel])
  1029.     for(new s = 0; s < ForbiddenWordCount; s++)
  1030.     {
  1031.         new pos;
  1032.         while((pos = strfind(text,ForbiddenWords[s],true)) != -1) for(new i = pos, j = pos + strlen(ForbiddenWords[s]); i < j; i++) text[i] = '*';
  1033.     }
  1034.  
  1035.     if(PlayerInfo[playerid][Caps] == 1) UpperToLower(text);
  1036.     if(ServerInfo[NoCaps] == 1) UpperToLower(text);
  1037.  
  1038.     for(new i = 1; i < MAX_CHAT_LINES-1; i++) Chat[i] = Chat[i+1];
  1039.     new ChatSTR[128]; GetPlayerName(playerid,ChatSTR,sizeof(ChatSTR)); format(ChatSTR,128,"[lchat]%s: %s",ChatSTR, text[0] );
  1040.     Chat[MAX_CHAT_LINES-1] = ChatSTR;
  1041.     return 1;
  1042. }
  1043.  
  1044. //==============================================================================
  1045. forward OnPlayerPrivmsg(playerid, recieverid, text[]); public OnPlayerPrivmsg(playerid, recieverid, text[])
  1046. {
  1047.     if(ServerInfo[ReadPMs] == 1 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel])
  1048.     {
  1049.         new string[128],recievername[MAX_PLAYER_NAME];
  1050.         GetPlayerName(playerid, string, sizeof(string)); GetPlayerName(recieverid, recievername, sizeof(recievername));
  1051.         format(string, sizeof(string), "***PM: %s To %s: %s", string, recievername, text);
  1052.         for (new a = 0; a < MAX_PLAYERS; a++) if (IsPlayerConnected(a) && (PlayerInfo[a][Level] >= ServerInfo[MaxAdminLevel]) && a != playerid)
  1053.         SendClientMessage(a, grey, string);
  1054.     }
  1055.    
  1056.     if(PlayerInfo[playerid][Muted] == 1)
  1057.     {
  1058.         new string[128];
  1059.         PlayerInfo[playerid][MuteWarnings]++;
  1060.         if(PlayerInfo[playerid][MuteWarnings] < ServerInfo[MaxMuteWarnings]) {
  1061.             format(string, sizeof(string),"WARNING: You are muted, if you continue to speak you will be kicked (Warning: %d/%d)", PlayerInfo[playerid][MuteWarnings], ServerInfo[MaxMuteWarnings] );
  1062.             SendClientMessage(playerid,red,string);
  1063.         } else {
  1064.             SendClientMessage(playerid,red,"You have been warned! Now you have been kicked");
  1065.             GetPlayerName(playerid, string, sizeof(string));
  1066.             format(string, sizeof(string),"%s [ID %d] Kicked for exceeding mute warnings", string, playerid);
  1067.             SendClientMessageToAll(grey,string);
  1068.             SaveToFile("KickLog",string); Kick(playerid);
  1069.         } return 0;
  1070.     }
  1071.     return 1;
  1072. }
  1073.  
  1074. forward HighLight(playerid);
  1075. public HighLight(playerid)
  1076. {
  1077.     if(!IsPlayerConnected(playerid)) return 1;
  1078.     if(PlayerInfo[playerid][blipS] == 0) { SetPlayerColor(playerid, 0xFF0000AA); PlayerInfo[playerid][blipS] = 1; }
  1079.     else { SetPlayerColor(playerid, 0x33FF33AA); PlayerInfo[playerid][blipS] = 0; }
  1080.     return 0;
  1081. }
  1082.  
  1083. //===================== [ DCMD Commands ]=======================================
  1084.  
  1085. dcmd_giveweapon(playerid,params[]) {
  1086.     if(PlayerInfo[playerid][Level] >= 2) {
  1087.         new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  1088.         if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /giveweapon [playerid] [weapon id/weapon name] [ammo]");
  1089.         new player1 = strval(tmp), weap, ammo, WeapName[32], string[128];
  1090.         if(!strlen(tmp3) || !IsNumeric(tmp3) || strval(tmp3) <= 0 || strval(tmp3) > 99999) ammo = 500; else ammo = strval(tmp3);
  1091.         if(!IsNumeric(tmp2)) weap = GetWeaponIDFromName(tmp2); else weap = strval(tmp2);
  1092.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1093.             if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid weapon ID");
  1094.             CMDMessageToAdmins(playerid,"GIVEWEAPON");
  1095.             GetWeaponName(weap,WeapName,32);
  1096.             format(string, sizeof(string), "You have given \"%s\" a %s (%d) with %d rounds of ammo", PlayerName2(player1), WeapName, weap, ammo); SendClientMessage(playerid,blue,string);
  1097.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has given you a %s (%d) with %d rounds of ammo", PlayerName2(playerid), WeapName, weap, ammo); SendClientMessage(player1,blue,string); }
  1098.             return GivePlayerWeapon(player1, weap, ammo);
  1099.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1100.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1101. }
  1102.  
  1103. dcmd_sethealth(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, "USAGE: /sethealth [playerid] [amount]");
  1107.         if(strval(tmp2) < 0 || strval(tmp2) > 100 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid, red, "ERROR: Invaild health amount");
  1108.         new player1 = strval(tmp), health = strval(tmp2), string[128];
  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.             CMDMessageToAdmins(playerid,"SETHEALTH");
  1112.             format(string, sizeof(string), "You have set \"%s's\" health to '%d", pName(player1), health); SendClientMessage(playerid,blue,string);
  1113.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your health to '%d'", pName(playerid), health); SendClientMessage(player1,blue,string); }
  1114.             return SetPlayerHealth(player1, health);
  1115.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1116.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1117. }
  1118.  
  1119. dcmd_setarmour(playerid,params[]) {
  1120.     if(PlayerInfo[playerid][Level] >= 3) {
  1121.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1122.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setarmour [playerid] [amount]");
  1123.         if(strval(tmp2) < 0 || strval(tmp2) > 100 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid, red, "ERROR: Invaild health amount");
  1124.         new player1 = strval(tmp), armour = strval(tmp2), string[128];
  1125.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1126.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1127.             CMDMessageToAdmins(playerid,"SETARMOUR");
  1128.             format(string, sizeof(string), "You have set \"%s's\" armour to '%d", pName(player1), armour); SendClientMessage(playerid,blue,string);
  1129.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your armour to '%d'", pName(playerid), armour); SendClientMessage(player1,blue,string); }
  1130.             return SetPlayerArmour(player1, armour);
  1131.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1132.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1133. }
  1134.  
  1135. dcmd_setcash(playerid,params[]) {
  1136.     if(PlayerInfo[playerid][Level] >= 3) {
  1137.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1138.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setcash [playerid] [amount]");
  1139.         new player1 = strval(tmp), cash = strval(tmp2), string[128];
  1140.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1141.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1142.             CMDMessageToAdmins(playerid,"SETCASH");
  1143.             format(string, sizeof(string), "You have set \"%s's\" cash to '$%d", pName(player1), cash); SendClientMessage(playerid,blue,string);
  1144.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your cash to '$%d'", pName(playerid), cash); SendClientMessage(player1,blue,string); }
  1145.             ResetPlayerMoney(player1);
  1146.             return GivePlayerMoney(player1, cash);
  1147.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1148.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1149. }
  1150.  
  1151. dcmd_setscore(playerid,params[]) {
  1152.     if(PlayerInfo[playerid][Level] >= 3) {
  1153.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1154.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setscore [playerid] [score]");
  1155.         new player1 = strval(tmp), score = strval(tmp2), string[128];
  1156.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1157.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1158.             CMDMessageToAdmins(playerid,"SETSCORE");
  1159.             format(string, sizeof(string), "You have set \"%s's\" score to '%d' ", pName(player1), score); SendClientMessage(playerid,blue,string);
  1160.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your score to '%d'", pName(playerid), score); SendClientMessage(player1,blue,string); }
  1161.             return SetPlayerScore(player1, score);
  1162.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1163.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1164. }
  1165.  
  1166. dcmd_setskin(playerid,params[]) {
  1167.     if(PlayerInfo[playerid][Level] >= 3) {
  1168.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1169.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setskin [playerid] [skin id]");
  1170.         new player1 = strval(tmp), skin = strval(tmp2), string[128];
  1171.         if(!IsValidSkin(skin)) return SendClientMessage(playerid, red, "ERROR: Invaild Skin ID");
  1172.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1173.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1174.             CMDMessageToAdmins(playerid,"SETSKIN");
  1175.             format(string, sizeof(string), "You have set \"%s's\" skin to '%d", pName(player1), skin); SendClientMessage(playerid,blue,string);
  1176.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your skin to '%d'", pName(playerid), skin); SendClientMessage(player1,blue,string); }
  1177.             return SetPlayerSkin(player1, skin);
  1178.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1179.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1180. }
  1181.  
  1182. dcmd_setwanted(playerid,params[]) {
  1183.     if(PlayerInfo[playerid][Level] >= 3) {
  1184.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1185.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setwanted [playerid] [level]");
  1186.         new player1 = strval(tmp), wanted = strval(tmp2), string[128];
  1187. //      if(wanted > 6) return SendClientMessage(playerid, red, "ERROR: Invaild wanted level");
  1188.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1189.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1190.             CMDMessageToAdmins(playerid,"SETWANTED");
  1191.             format(string, sizeof(string), "You have set \"%s's\" wanted level to '%d", pName(player1), wanted); SendClientMessage(playerid,blue,string);
  1192.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your wanted level to '%d'", pName(playerid), wanted); SendClientMessage(player1,blue,string); }
  1193.             return SetPlayerWantedLevel(player1, wanted);
  1194.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1195.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1196. }
  1197.  
  1198. dcmd_setname(playerid,params[]) {
  1199.     if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  1200.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1201.         if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
  1202.         new player1 = strval(tmp), length = strlen(tmp2), string[128];
  1203.         if(length < 3 || length > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
  1204.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1205.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1206.             CMDMessageToAdmins(playerid,"SETNAME");
  1207.             format(string, sizeof(string), "You have set \"%s's\" name to \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
  1208.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
  1209.             SetPlayerName(player1, tmp2);
  1210.             return OnPlayerConnect(player1);
  1211.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1212.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1213. }
  1214.  
  1215. dcmd_setcolour(playerid,params[]) {
  1216.     if(PlayerInfo[playerid][Level] >= 2) {
  1217.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1218.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) {
  1219.             SendClientMessage(playerid, red, "USAGE: /setcolour [playerid] [Colour]");
  1220.             return SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  1221.         }
  1222.         new player1 = strval(tmp), Colour = strval(tmp2), string[128], colour[24];
  1223.         if(Colour > 9) return SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  1224.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1225.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1226.             CMDMessageToAdmins(playerid,"SETCOLOUR");
  1227.             switch (Colour)
  1228.             {
  1229.                 case 0: { SetPlayerColor(player1,black); colour = "Black"; }
  1230.                 case 1: { SetPlayerColor(player1,COLOR_WHITE); colour = "White"; }
  1231.                 case 2: { SetPlayerColor(player1,red); colour = "Red"; }
  1232.                 case 3: { SetPlayerColor(player1,orange); colour = "Orange"; }
  1233.                 case 4: { SetPlayerColor(player1,orange); colour = "Yellow"; }
  1234.                 case 5: { SetPlayerColor(player1,COLOR_GREEN1); colour = "Green"; }
  1235.                 case 6: { SetPlayerColor(player1,COLOR_BLUE); colour = "Blue"; }
  1236.                 case 7: { SetPlayerColor(player1,COLOR_PURPLE); colour = "Purple"; }
  1237.                 case 8: { SetPlayerColor(player1,COLOR_BROWN); colour = "Brown"; }
  1238.                 case 9: { SetPlayerColor(player1,COLOR_PINK); colour = "Pink"; }
  1239.             }
  1240.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set colour to '%s' ", pName(playerid), colour); SendClientMessage(player1,blue,string); }
  1241.             format(string, sizeof(string), "You have set \"%s's\" colour to '%s' ", pName(player1), colour);
  1242.             return SendClientMessage(playerid,blue,string);
  1243.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1244.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1245. }
  1246.  
  1247. dcmd_setweather(playerid,params[]) {
  1248.     if(PlayerInfo[playerid][Level] >= 3) {
  1249.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1250.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setweather [playerid] [weather id]");
  1251.         new player1 = strval(tmp), weather = strval(tmp2), string[128];
  1252.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1253.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1254.             CMDMessageToAdmins(playerid,"SETWEATHER");
  1255.             format(string, sizeof(string), "You have set \"%s's\" weather to '%d", pName(player1), weather); SendClientMessage(playerid,blue,string);
  1256.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your weather to '%d'", pName(playerid), weather); SendClientMessage(player1,blue,string); }
  1257.             SetPlayerWeather(player1,weather); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1258.             return PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  1259.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1260.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1261. }
  1262.  
  1263. dcmd_settime(playerid,params[]) {
  1264.     if(PlayerInfo[playerid][Level] >= 3) {
  1265.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1266.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /settime [playerid] [hour]");
  1267.         new player1 = strval(tmp), time = strval(tmp2), string[128];
  1268.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1269.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1270.             CMDMessageToAdmins(playerid,"SETTIME");
  1271.             format(string, sizeof(string), "You have set \"%s's\" time to %d:00", pName(player1), time); SendClientMessage(playerid,blue,string);
  1272.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your time to %d:00", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1273.             PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1274.             return SetPlayerTime(player1, time, 0);
  1275.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1276.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1277. }
  1278.  
  1279. dcmd_setworld(playerid,params[]) {
  1280.     if(PlayerInfo[playerid][Level] >= 3) {
  1281.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1282.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setworld [playerid] [virtual world]");
  1283.         new player1 = strval(tmp), time = strval(tmp2), string[128];
  1284.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1285.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1286.             CMDMessageToAdmins(playerid,"SETWORLD");
  1287.             format(string, sizeof(string), "You have set \"%s's\" virtual world to '%d'", pName(player1), time); SendClientMessage(playerid,blue,string);
  1288.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your virtual world to '%d' ", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1289.             PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1290.             return SetPlayerVirtualWorld(player1, time);
  1291.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1292.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1293. }
  1294.  
  1295. dcmd_setinterior(playerid,params[]) {
  1296.     if(PlayerInfo[playerid][Level] >= 3) {
  1297.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  1298.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setinterior [playerid] [interior]");
  1299.         new player1 = strval(tmp), time = strval(tmp2), string[128];
  1300.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1301.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1302.             CMDMessageToAdmins(playerid,"SETINTERIOR");
  1303.             format(string, sizeof(string), "You have set \"%s's\" interior to '%d' ", pName(player1), time); SendClientMessage(playerid,blue,string);
  1304.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your interior to '%d' ", pName(playerid), time); SendClientMessage(player1,blue,string); }
  1305.             PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1306.             return SetPlayerInterior(player1, time);
  1307.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1308.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1309. }
  1310.  
  1311. dcmd_setmytime(playerid,params[]) {
  1312.     if(PlayerInfo[playerid][Level] >= 1) {
  1313.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setmytime [hour]");
  1314.         new time = strval(params), string[128];
  1315.         CMDMessageToAdmins(playerid,"SETMYTIME");
  1316.         format(string,sizeof(string),"You have set your time to %d:00", time); SendClientMessage(playerid,blue,string);
  1317.         return SetPlayerTime(playerid, time, 0);
  1318.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1319. }
  1320.  
  1321. dcmd_force(playerid,params[]) {
  1322.     if(PlayerInfo[playerid][Level] >= 3) {
  1323.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /force [playerid]");
  1324.         new player1 = strval(params), string[128];
  1325.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1326.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1327.             CMDMessageToAdmins(playerid,"FORCE");
  1328.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has forced you into class selection", pName(playerid) ); SendClientMessage(player1,blue,string); }
  1329.             format(string,sizeof(string),"You have forced \"%s\" into class selection", pName(player1)); SendClientMessage(playerid,blue,string);
  1330.             ForceClassSelection(player1);
  1331.             return SetPlayerHealth(player1,0.0);
  1332.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1333.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1334. }
  1335.  
  1336. dcmd_eject(playerid,params[]) {
  1337.     if(PlayerInfo[playerid][Level] >= 3) {
  1338.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /eject [playerid]");
  1339.         new player1 = strval(params), string[128], Float:x, Float:y, Float:z;
  1340.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1341.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1342.             if(IsPlayerInAnyVehicle(player1)) {
  1343.                 CMDMessageToAdmins(playerid,"EJECT");
  1344.                 if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has ejected you from your vehicle", pName(playerid) ); SendClientMessage(player1,blue,string); }
  1345.                 format(string,sizeof(string),"You have ejected \"%s\" from their vehicle", pName(player1)); SendClientMessage(playerid,blue,string);
  1346.                 GetPlayerPos(player1,x,y,z);   
  1347.                 return SetPlayerPos(player1,x,y,z+3);
  1348.             } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  1349.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1350.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1351. }
  1352.  
  1353. dcmd_lockcar(playerid,params[]) {
  1354.     #pragma unused params
  1355.     if(PlayerInfo[playerid][Level] >= 2) {
  1356.         if(IsPlayerInAnyVehicle(playerid)) {
  1357.             for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,true);
  1358.             CMDMessageToAdmins(playerid,"LOCKCAR");
  1359.             PlayerInfo[playerid][DoorsLocked] = 1;
  1360.             new string[128]; format(string,sizeof(string),"Administrator \"%s\" has locked his car", pName(playerid));
  1361.             return SendClientMessageToAll(blue,string);
  1362.         } else return SendClientMessage(playerid,red,"ERROR: You need to be in a vehicle to lock the doors");
  1363.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1364. }
  1365.  
  1366. dcmd_unlockcar(playerid,params[]) {
  1367.     #pragma unused params
  1368.     if(PlayerInfo[playerid][Level] >= 2) {
  1369.         if(IsPlayerInAnyVehicle(playerid)) {
  1370.             for(new i = 0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,false);
  1371.             CMDMessageToAdmins(playerid,"UNLOCKCAR");
  1372.             PlayerInfo[playerid][DoorsLocked] = 0;
  1373.             new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unlocked his car", pName(playerid));
  1374.             return SendClientMessageToAll(blue,string);
  1375.         } else return SendClientMessage(playerid,red,"ERROR: You need to be in a vehicle to lock the doors");
  1376.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1377. }
  1378.  
  1379. dcmd_burn(playerid,params[]) {
  1380.     if(PlayerInfo[playerid][Level] >= 2) {
  1381.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /burn [playerid]");
  1382.         new player1 = strval(params), string[128], Float:x, Float:y, Float:z;
  1383.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1384.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1385.             CMDMessageToAdmins(playerid,"BURN");
  1386.             format(string, sizeof(string), "You have burnt \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1387.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has burnt you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1388.             GetPlayerPos(player1, x, y, z);
  1389.             return CreateExplosion(x, y , z + 3, 1, 10);
  1390.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1391.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1392. }
  1393.  
  1394. dcmd_spawnplayer(playerid,params[])
  1395. {
  1396.     return dcmd_spawn(playerid,params);
  1397. }
  1398.  
  1399. dcmd_spawn(playerid,params[]) {
  1400.     if(PlayerInfo[playerid][Level] >= 2) {
  1401.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /spawn [playerid]");
  1402.         new player1 = strval(params), string[128];
  1403.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1404.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1405.             CMDMessageToAdmins(playerid,"SPAWN");
  1406.             format(string, sizeof(string), "You have spawned \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1407.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has spawned you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1408.             SetPlayerPos(player1, 0.0, 0.0, 0.0);
  1409.             return SpawnPlayer(player1);
  1410.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1411.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1412. }
  1413.  
  1414. dcmd_disarm(playerid,params[]) {
  1415.     if(PlayerInfo[playerid][Level] >= 2) {
  1416.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /disarm [playerid]");
  1417.         new player1 = strval(params), string[128];
  1418.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1419.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1420.             CMDMessageToAdmins(playerid,"DISARM");  PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1421.             format(string, sizeof(string), "You have disarmed \"%s\" ", pName(player1)); SendClientMessage(playerid,blue,string);
  1422.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has disarmed you", pName(playerid)); SendClientMessage(player1,blue,string); }
  1423.             ResetPlayerWeapons(player1);
  1424.             return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1425.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1426.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1427. }
  1428.  
  1429. dcmd_crash(playerid,params[]) {
  1430.     if(PlayerInfo[playerid][Level] >= 4) {
  1431.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /crash [playerid]");
  1432.         new player1 = strval(params), string[128], Float:X,Float:Y,Float:Z;
  1433.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1434.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1435.             CMDMessageToAdmins(playerid,"CRASH");
  1436.             GetPlayerPos(player1,X,Y,Z);
  1437.             new objectcrash = CreatePlayerObject(player1,11111111,X,Y,Z,0,0,0);
  1438.             DestroyObject(objectcrash);
  1439.             format(string, sizeof(string), "You have crashed \"%s's\" game", pName(player1) );
  1440.             return SendClientMessage(playerid,blue, string);
  1441.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1442.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1443. }
  1444.  
  1445. dcmd_ip(playerid,params[]) {
  1446.     if(PlayerInfo[playerid][Level] >= 1) {
  1447.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ip [playerid]");
  1448.         new player1 = strval(params), string[128];
  1449.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1450.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1451.             CMDMessageToAdmins(playerid,"IP");
  1452.             new tmp3[50]; GetPlayerIp(player1,tmp3,50);
  1453.             format(string,sizeof(string),"\"%s's\" ip is '%s'", pName(player1), tmp3);
  1454.             return SendClientMessage(playerid,blue,string);
  1455.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1456.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1457. }
  1458.  
  1459. dcmd_bankrupt(playerid,params[]) {
  1460.     if(PlayerInfo[playerid][Level] >= 3) {
  1461.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /bankrupt [playerid]");
  1462.         new player1 = strval(params), string[128];
  1463.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1464.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1465.             CMDMessageToAdmins(playerid,"BANKRUPT");
  1466.             format(string, sizeof(string), "You have reset \"%s's\" cash", pName(player1)); SendClientMessage(playerid,blue,string);
  1467.             if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has reset your cash'", pName(playerid)); SendClientMessage(player1,blue,string); }
  1468.             return ResetPlayerMoney(player1);
  1469.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1470.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1471. }
  1472.  
  1473. dcmd_sbankrupt(playerid,params[]) {
  1474.     if(PlayerInfo[playerid][Level] >= 3) {
  1475.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /sbankrupt [playerid]");
  1476.         new player1 = strval(params), string[128];
  1477.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1478.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1479.             CMDMessageToAdmins(playerid,"BANKRUPT");
  1480.             format(string, sizeof(string), "You have silently reset \"%s's\" cash", pName(player1)); SendClientMessage(playerid,blue,string);
  1481.             return ResetPlayerMoney(player1);
  1482.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1483.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1484. }
  1485.  
  1486. dcmd_kill(playerid,params[]) {
  1487.     #pragma unused params
  1488.     return SetPlayerHealth(playerid,0.0);
  1489. }
  1490.  
  1491. dcmd_time(playerid,params[]) {
  1492.     #pragma unused params
  1493.     new string[64], hour,minuite,second; gettime(hour,minuite,second);
  1494.     format(string, sizeof(string), "~g~|~w~%d:%d~g~|", hour, minuite);
  1495.     return GameTextForPlayer(playerid, string, 5000, 1);
  1496. }
  1497.  
  1498. dcmd_ubound(playerid,params[]) {
  1499.     if(PlayerInfo[playerid][Level] >= 3) {
  1500.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ubound [playerid]");
  1501.         new string[128], player1 = strval(params);
  1502.  
  1503.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1504.             CMDMessageToAdmins(playerid,"UBOUND");
  1505.             SetPlayerWorldBounds(player1, 9999.9, -9999.9, 9999.9, -9999.9 );
  1506.             format(string, sizeof(string), "Administrator %s has removed your world boundaries", PlayerName2(playerid)); if(player1 != playerid) SendClientMessage(player1,blue,string);
  1507.             format(string,sizeof(string),"You have removed %s's world boundaries", PlayerName2(player1));
  1508.             return SendClientMessage(playerid,blue,string);
  1509.         } else return SendClientMessage(playerid, red, "Player is not connected");
  1510.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1511. }
  1512.  
  1513. dcmd_lhelp(playerid,params[]) {
  1514.     #pragma unused params
  1515.     if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] >= 1) {
  1516.         SendClientMessage(playerid,blue,"--== [ LAdmin Help ] ==--");
  1517.         SendClientMessage(playerid,blue, "For admin commands type:  /lcommands   |   Credits: /lcredits");
  1518.         SendClientMessage(playerid,blue, "Account commands are: /register, /login, /changepass, /stats, /resetstats.  Also  /time, /report");
  1519.         SendClientMessage(playerid,blue, "There are 5 levels. Level 5 admins are immune from commands");
  1520.         SendClientMessage(playerid,blue, "IMPORTANT: The filterscript must be reloaded if you change gamemodes");
  1521.         }
  1522.     else if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] < 1) {
  1523.         SendClientMessage(playerid,green, "Your commands are: /register, /login, /report, /stats, /time, /changepass, /resetstats, /getid");
  1524.     }
  1525.     else if(PlayerInfo[playerid][LoggedIn] == 0) {
  1526.     SendClientMessage(playerid,green, "Your commands are: /time, /getid     (You are not logged in, log in for more commands)");
  1527.     } return 1;
  1528. }
  1529.  
  1530. dcmd_lcmds(playerid,params[]) {
  1531.     #pragma unused params
  1532.     if(PlayerInfo[playerid][Level] > 0)
  1533.     {
  1534.         SendClientMessage(playerid,blue,"    ---= [ Most Useful Admin Commands ] ==---");
  1535.         SendClientMessage(playerid,lightblue,"GENERAL: getinfo, lmenu, announce, write, miniguns, richlist, lspec(off), move, lweaps, adminarea, countdown, duel, giveweapon");
  1536.         SendClientMessage(playerid,lightblue,"GENERAL: slap, burn, warn, kick, ban, explode, jail, freeze, mute, crash, ubound, god, godcar, ping");
  1537.         SendClientMessage(playerid,lightblue,"GENERAL: setping, lockserver, enable/disable, setlevel, setinterior, givecar, jetpack, force, spawn");
  1538.         SendClientMessage(playerid,lightblue,"VEHICLE: flip, fix, repair, lockcar, eject, ltc, car, lcar, lbike, lplane, lheli, lboat, lnos, cm");
  1539.         SendClientMessage(playerid,lightblue,"TELE: goto, gethere, get, teleplayer, ltele, vgoto, lgoto, moveplayer");
  1540.         SendClientMessage(playerid,lightblue,"SET: set(cash/health/armour/gravity/name/time/weather/skin/colour/wanted/templevel)");
  1541.         SendClientMessage(playerid,lightblue,"SETALL: setall(world/weather/wanted/time/score/cash)");
  1542.         SendClientMessage(playerid,lightblue,"ALL: giveallweapon, healall, armourall, freezeall, kickall, ejectall, killall, disarmall, slapall, spawnall");
  1543.     }
  1544.     return 1;
  1545. }
  1546.  
  1547. dcmd_lcommands(playerid,params[]) {
  1548.     #pragma unused params
  1549.     if(PlayerInfo[playerid][Level] > 0)
  1550.     {
  1551.         SendClientMessage(playerid,blue,"    ---= All Admin Commands =---");
  1552.         SendClientMessage(playerid,lightblue," /level1, /level2, /level3, /level4, /level5, /rcon ladmin");
  1553.         SendClientMessage(playerid,lightblue,"Player Commands: /register, /login, /report, /stats, /time, /changepass, /resetstats, /getid");
  1554.     }
  1555.     return 1;
  1556. }
  1557.  
  1558. dcmd_level1(playerid,params[]) {
  1559.     #pragma unused params
  1560.     if(PlayerInfo[playerid][Level] > 0)
  1561.     {
  1562.         SendClientMessage(playerid,blue,"    ---=Level 1 Admin Commands =---");
  1563.         SendClientMessage(playerid,lightblue,"getinfo, weaps, vr, repair, ltune, lhy, lnos, lp, asay, ping, lslowmo, ltc,");
  1564.         SendClientMessage(playerid,lightblue,"morning, adminarea, reports, richlist, miniguns, saveplacae, gotoplace,");
  1565.         SendClientMessage(playerid,lightblue,"saveskin, useskin, dontuseskin, setmytime, ip, lconfig.");
  1566.     }
  1567.     return 1;
  1568. }
  1569.  
  1570. dcmd_level2(playerid,params[]) {
  1571.     #pragma unused params
  1572.     if(PlayerInfo[playerid][Level] > 0)
  1573.     {
  1574.         SendClientMessage(playerid,blue,"    ---=Level 2 Admin Commands =---");
  1575.         SendClientMessage(playerid,lightblue,"giveweapon, setcolour, lockcar, unlockcar, burn, spawn, disarm, lcar, lbike,");
  1576.         SendClientMessage(playerid,lightblue,"lheli, lboat, lplane, hightlight, announce, announce2, screen, jetpack, flip,");
  1577.         SendClientMessage(playerid,lightblue,"goto, vgoto, lgoto, fu, warn, slap, jailed, frozen, mute, unmute, muted,");
  1578.         SendClientMessage(playerid,lightblue,"laston, lspec, lspecoff, lspecvehicle, clearchat, lmenu, ltele, cm, ltmenu,");
  1579.         SendClientMessage(playerid,lightblue,"write.");
  1580.     }
  1581.     return 1;
  1582. }
  1583.  
  1584. dcmd_level3(playerid,params[]) {
  1585.     #pragma unused params
  1586.     if(PlayerInfo[playerid][Level] > 0)
  1587.     {
  1588.         SendClientMessage(playerid,blue,"    ---=Level 3 Admin Commands =---");
  1589.         SendClientMessage(playerid,lightblue,"sethealth, setarmour, setcash, setscore, setskin, setwanted, setname, setweather,");
  1590.         SendClientMessage(playerid,lightblue,"settime, setworld, setinterior, force, eject, bankrupt, sbankrupt, ubound, lweaps,");
  1591.         SendClientMessage(playerid,lightblue,"lammo, countdown, duel, car, carhealth, carcolour, setping, setgravity, destroycar,");
  1592.         SendClientMessage(playerid,lightblue,"teleplayer, vget, givecar, gethere, get, kick, explode, jail, unjail, freeze, ");
  1593.         SendClientMessage(playerid,lightblue,"unfreeze, akill,aka, disablechat, clearallchat, caps, move, moveplayer, healall,");
  1594.         SendClientMessage(playerid,lightblue,"armourall, setallskin, setallwanted, setallweather, setalltime, setallworld,");
  1595.         SendClientMessage(playerid,lightblue,"setallscore, setallcash, giveallcash, giveallweapon, lweather, ltime, lweapons, setpass");
  1596.     }
  1597.     return 1;
  1598. }
  1599.  
  1600. dcmd_level4(playerid,params[]) {
  1601.     #pragma unused params
  1602.     if(PlayerInfo[playerid][Level] > 0)
  1603.     {
  1604.         SendClientMessage(playerid,blue,"    ---=Level 4 Admin Commands =---");
  1605.         SendClientMessage(playerid,lightblue,"enable, disable, ban, rban, settemplevel, crash, spam, god, godcar, die, uconfig,");
  1606.         SendClientMessage(playerid,lightblue,"botcheck, lockserver, unlockserver, forbidname, forbidword, ");
  1607.         SendClientMessage(playerid,lightblue,"fakedeath, spawnall, muteall, unmuteall, getall, killall, freezeall,");
  1608.         SendClientMessage(playerid,lightblue,"unfreezeall, kickall, slapalll, explodeall, disarmall, ejectall.");
  1609.     }
  1610.     return 1;
  1611. }
  1612.  
  1613. dcmd_level5(playerid,params[]) {
  1614.     #pragma unused params
  1615.     if(PlayerInfo[playerid][Level] > 0)
  1616.     {
  1617.         SendClientMessage(playerid,blue,"    ---=Level 5 Admin Commands =---");
  1618.         SendClientMessage(playerid,lightblue,"god, sgod, setlevel, pickup, object, fakechat.");
  1619.     }
  1620.     return 1;
  1621. }
  1622.  
  1623. dcmd_lconfig(playerid,params[]) {
  1624.     #pragma unused params
  1625.     if(PlayerInfo[playerid][Level] > 0)
  1626.     {
  1627.         new string[128];
  1628.         SendClientMessage(playerid,blue,"    ---=== LAdmin Configuration ===---");
  1629.         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] );
  1630.         SendClientMessage(playerid,blue,string);
  1631.         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] );
  1632.         SendClientMessage(playerid,blue,string);
  1633.         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] );
  1634.         SendClientMessage(playerid,blue,string);
  1635.         format(string, sizeof(string), "AutoLogin %d | MaxMuteWarnings %d | ChatDisabled %d | MustLogin %d | MustRegister %d", ServerInfo[AutoLogin], ServerInfo[MaxMuteWarnings], ServerInfo[DisableChat], ServerInfo[MustLogin], ServerInfo[MustRegister] );
  1636.         SendClientMessage(playerid,blue,string);
  1637.     }
  1638.     return 1;
  1639. }
  1640.  
  1641. dcmd_getinfo(playerid,params[]) {
  1642.     if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  1643.         if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /getinfo [playerid]");
  1644.         new player1, string[128];
  1645.         player1 = strval(params);
  1646.  
  1647.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1648.             new Float:player1health, Float:player1armour, playerip[128], Float:x, Float:y, Float:z, tmp2[256], file[256],
  1649.                 year, month, day, P1Jailed[4], P1Frozen[4], P1Logged[4], P1Register[4], RegDate[256], TimesOn;
  1650.  
  1651.             GetPlayerHealth(player1,player1health);
  1652.             GetPlayerArmour(player1,player1armour);
  1653.             GetPlayerIp(player1, playerip, sizeof(playerip));
  1654.             GetPlayerPos(player1,x,y,z);
  1655.             getdate(year, month, day);
  1656.             format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(player1)));
  1657.  
  1658.             if(PlayerInfo[player1][Jailed] == 1) P1Jailed = "Yes"; else P1Jailed = "No";
  1659.             if(PlayerInfo[player1][Frozen] == 1) P1Frozen = "Yes"; else P1Frozen = "No";
  1660.             if(PlayerInfo[player1][LoggedIn] == 1) P1Logged = "Yes"; else P1Logged = "No";
  1661.             if(fexist(file)) P1Register = "Yes"; else P1Register = "No";
  1662.             if(dUserINT(PlayerName2(player1)).("LastOn")==0) tmp2 = "Never"; else tmp2 = dini_Get(file,"LastOn");
  1663.             if(strlen(dini_Get(file,"RegisteredDate")) < 3) RegDate = "n/a"; else RegDate = dini_Get(file,"RegisteredDate");
  1664.             TimesOn = dUserINT(PlayerName2(player1)).("TimesOnServer");
  1665.  
  1666.             new Sum, Average, w;
  1667.             while (w < PING_MAX_EXCEEDS) {
  1668.                 Sum += PlayerInfo[player1][pPing][w];
  1669.                 w++;
  1670.             }
  1671.             Average = (Sum / PING_MAX_EXCEEDS);
  1672.  
  1673.             format(string, sizeof(string),"(Player Info)  ---====> Name: %s  ID: %d <====---", PlayerName2(player1), player1);
  1674.             SendClientMessage(playerid,lightblue,string);
  1675.             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),
  1676.             GetPlayerScore(player1),GetPlayerMoney(player1),GetPlayerSkin(player1),playerip,GetPlayerPing(player1), Average );
  1677.             SendClientMessage(playerid,red,string);
  1678.             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);
  1679.             SendClientMessage(playerid,orange,string);
  1680.             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] );
  1681.             SendClientMessage(playerid,yellow,string);
  1682.             format(string, sizeof(string),"Registered: %s  Logged In: %s  In Jail: %s  Frozen: %s", P1Register, P1Logged, P1Jailed, P1Frozen );
  1683.             SendClientMessage(playerid,green,string);
  1684.             format(string, sizeof(string),"Last On Server: %s  Register Date: %s  Todays Date: %d/%d/%d", tmp2, RegDate, day,month,year );
  1685.             SendClientMessage(playerid,COLOR_GREEN,string);
  1686.  
  1687.             if(IsPlayerInAnyVehicle(player1)) {
  1688.                 new Float:VHealth, carid = GetPlayerVehicleID(playerid); GetVehicleHealth(carid,VHealth);
  1689.                 format(string, sizeof(string),"VehicleID: %d  Model: %d  Vehicle Name: %s  Vehicle Health: %d",carid, GetVehicleModel(carid), VehicleNames[GetVehicleModel(carid)-400], floatround(VHealth) );
  1690.                 SendClientMessage(playerid,COLOR_BLUE,string);
  1691.             }
  1692.  
  1693.             new slot, ammo, weap, Count, WeapName[24], WeapSTR[128], p; WeapSTR = "Weaps: ";
  1694.             for (slot = 0; slot < 14; slot++) { GetPlayerWeaponData(player1, slot, weap, ammo); if( ammo != 0 && weap != 0) Count++; }
  1695.             if(Count < 1) return SendClientMessage(playerid,lightblue,"Player has no weapons");
  1696.             else {
  1697.                 for (slot = 0; slot < 14; slot++)
  1698.                 {
  1699.                     GetPlayerWeaponData(player1, slot, weap, ammo);
  1700.                     if (ammo > 0 && weap > 0)
  1701.                     {
  1702.                         GetWeaponName(weap, WeapName, sizeof(WeapName) );
  1703.                         if (ammo == 65535 || ammo == 1) format(WeapSTR,sizeof(WeapSTR),"%s%s (1)",WeapSTR, WeapName);
  1704.                         else format(WeapSTR,sizeof(WeapSTR),"%s%s (%d)",WeapSTR, WeapName, ammo);
  1705.                         p++;
  1706.                         if(p >= 5) { SendClientMessage(playerid, lightblue, WeapSTR); format(WeapSTR, sizeof(WeapSTR), "Weaps: "); p = 0;
  1707.                         } else format(WeapSTR, sizeof(WeapSTR), "%s,  ", WeapSTR);
  1708.                     }
  1709.                 }
  1710.                 if(p <= 4 && p > 0) {
  1711.                     string[strlen(string)-3] = '.';
  1712.                     SendClientMessage(playerid, lightblue, WeapSTR);
  1713.                 }
  1714.             }
  1715.             return 1;
  1716.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  1717.     } else return SendClientMessage(playerid,red,"ERROR: You need to be administrator level 2 to use this command");
  1718. }
  1719.  
  1720. dcmd_disable(playerid,params[]) {
  1721.     if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  1722.         if(!strlen(params)) {
  1723.             SendClientMessage(playerid,red,"USAGE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps / admincmdmsgs");
  1724.             return SendClientMessage(playerid,red,"       /connectmsgs / autologin ]");
  1725.         }
  1726.         new string[128], file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  1727.         if(strcmp(params,"antiswear",true) == 0) {
  1728.             ServerInfo[AntiSwear] = 0;
  1729.             dini_IntSet(file,"AntiSwear",0);
  1730.             format(string,sizeof(string),"Administrator %s has disabled antiswear", PlayerName2(playerid));
  1731.             SendClientMessageToAll(blue,string);
  1732.         } else if(strcmp(params,"namekick",true) == 0) {
  1733.             ServerInfo[NameKick] = 0;
  1734.             dini_IntSet(file,"NameKick",0);
  1735.             format(string,sizeof(string),"Administrator %s has disabled namekick", PlayerName2(playerid));
  1736.             SendClientMessageToAll(blue,string);
  1737.         } else if(strcmp(params,"antispam",true) == 0)  {
  1738.             ServerInfo[AntiSpam] = 0;
  1739.             dini_IntSet(file,"AntiSpam",0);
  1740.             format(string,sizeof(string),"Administrator %s has disabled antispam", PlayerName2(playerid));
  1741.             SendClientMessageToAll(blue,string);
  1742.         } else if(strcmp(params,"ping",true) == 0)  {
  1743.             ServerInfo[MaxPing] = 0;
  1744.             dini_IntSet(file,"MaxPing",0);
  1745.             format(string,sizeof(string),"Administrator %s has disabled ping kick", PlayerName2(playerid));
  1746.             SendClientMessageToAll(blue,string);
  1747.         } else if(strcmp(params,"readcmds",true) == 0) {
  1748.             ServerInfo[ReadCmds] = 0;
  1749.             dini_IntSet(file,"ReadCMDs",0);
  1750.             format(string,sizeof(string),"Administrator %s has disabled reading commands", PlayerName2(playerid));
  1751.             MessageToAdmins(blue,string);
  1752.         } else if(strcmp(params,"readpms",true) == 0) {
  1753.             ServerInfo[ReadPMs] = 0;
  1754.             dini_IntSet(file,"ReadPMs",0);
  1755.             format(string,sizeof(string),"Administrator %s has disabled reading pms", PlayerName2(playerid));
  1756.             MessageToAdmins(blue,string);
  1757.         } else if(strcmp(params,"caps",true) == 0)  {
  1758.             ServerInfo[NoCaps] = 1;
  1759.             dini_IntSet(file,"NoCaps",1);
  1760.             format(string,sizeof(string),"Administrator %s has prevented captial letters in chat", PlayerName2(playerid));
  1761.             SendClientMessageToAll(blue,string);
  1762.         } else if(strcmp(params,"admincmdmsgs",true) == 0) {
  1763.             ServerInfo[AdminCmdMsg] = 0;
  1764.             dini_IntSet(file,"AdminCMDMessages",0);
  1765.             format(string,sizeof(string),"Administrator %s has disabled admin command messages", PlayerName2(playerid));
  1766.             MessageToAdmins(green,string);
  1767.         } else if(strcmp(params,"connectmsgs",true) == 0)   {
  1768.             ServerInfo[ConnectMessages] = 0;
  1769.             dini_IntSet(file,"ConnectMessages",0);
  1770.             format(string,sizeof(string),"Administrator %s has disabled connect & disconnect messages", PlayerName2(playerid));
  1771.             MessageToAdmins(green,string);
  1772.         } else if(strcmp(params,"autologin",true) == 0) {
  1773.             ServerInfo[AutoLogin] = 0;
  1774.             dini_IntSet(file,"AutoLogin",0);
  1775.             format(string,sizeof(string),"Administrator %s has disabled auto login", PlayerName2(playerid));
  1776.             MessageToAdmins(green,string);
  1777.         } else {
  1778.             SendClientMessage(playerid,red,"USAGE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps /cmdmsg ]");
  1779.         } return 1;
  1780.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1781. }
  1782.  
  1783. dcmd_enable(playerid,params[]) {
  1784.     if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  1785.         if(!strlen(params)) {
  1786.             SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps / admincmdmsgs");
  1787.             return SendClientMessage(playerid,red,"       /connectmsgs / autologin ]");
  1788.         }
  1789.         new string[128], file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  1790.         if(strcmp(params,"antiswear",true) == 0) {
  1791.             ServerInfo[AntiSwear] = 1;
  1792.             dini_IntSet(file,"AntiSwear",1);
  1793.             format(string,sizeof(string),"Administrator %s has enabled antiswear", PlayerName2(playerid));
  1794.             SendClientMessageToAll(blue,string);
  1795.         } else if(strcmp(params,"namekick",true) == 0)  {
  1796.             ServerInfo[NameKick] = 1;
  1797.             format(string,sizeof(string),"Administrator %s has enabled namekick", PlayerName2(playerid));
  1798.             SendClientMessageToAll(blue,string);
  1799.         } else if(strcmp(params,"antispam",true) == 0)  {
  1800.             ServerInfo[AntiSpam] = 1;
  1801.             dini_IntSet(file,"AntiSpam",1);
  1802.             format(string,sizeof(string),"Administrator %s has enabled antispam", PlayerName2(playerid));
  1803.             SendClientMessageToAll(blue,string);
  1804.         } else if(strcmp(params,"ping",true) == 0)  {
  1805.             ServerInfo[MaxPing] = 800;
  1806.             dini_IntSet(file,"MaxPing",800);
  1807.             format(string,sizeof(string),"Administrator %s has enabled ping kick", PlayerName2(playerid));
  1808.             SendClientMessageToAll(blue,string);
  1809.         } else if(strcmp(params,"readcmds",true) == 0)  {
  1810.             ServerInfo[ReadCmds] = 1;
  1811.             dini_IntSet(file,"ReadCMDs",1);
  1812.             format(string,sizeof(string),"Administrator %s has enabled reading commands", PlayerName2(playerid));
  1813.             MessageToAdmins(blue,string);
  1814.         } else if(strcmp(params,"readpms",true) == 0) {
  1815.             ServerInfo[ReadPMs] = 1;
  1816.             dini_IntSet(file,"ReadPMs",1);
  1817.             format(string,sizeof(string),"Administrator %s has enabled reading pms", PlayerName2(playerid));
  1818.             MessageToAdmins(blue,string);
  1819.         } else if(strcmp(params,"caps",true) == 0)  {
  1820.             ServerInfo[NoCaps] = 0;
  1821.             dini_IntSet(file,"NoCaps",0);
  1822.             format(string,sizeof(string),"Administrator %s has allowed captial letters in chat", PlayerName2(playerid));
  1823.             SendClientMessageToAll(blue,string);
  1824.         } else if(strcmp(params,"admincmdmsgs",true) == 0)  {
  1825.             ServerInfo[AdminCmdMsg] = 1;
  1826.             dini_IntSet(file,"AdminCmdMessages",1);
  1827.             format(string,sizeof(string),"Administrator %s has enabled admin command messages", PlayerName2(playerid));
  1828.             MessageToAdmins(green,string);
  1829.         } else if(strcmp(params,"connectmsgs",true) == 0) {
  1830.             ServerInfo[ConnectMessages] = 1;
  1831.             dini_IntSet(file,"ConnectMessages",1);
  1832.             format(string,sizeof(string),"Administrator %s has enabled connect & disconnect messages", PlayerName2(playerid));
  1833.             MessageToAdmins(green,string);
  1834.         } else if(strcmp(params,"autologin",true) == 0) {
  1835.             ServerInfo[AutoLogin] = 1;
  1836.             dini_IntSet(file,"AutoLogin",1);
  1837.             format(string,sizeof(string),"Administrator %s has enabled auto login", PlayerName2(playerid));
  1838.             MessageToAdmins(green,string);
  1839.         } else {
  1840.             SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps /cmdmsg ]");
  1841.         } return 1;
  1842.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1843. }
  1844.  
  1845. dcmd_lweaps(playerid,params[]) {
  1846.     #pragma unused params
  1847.     if(PlayerInfo[playerid][Level] >= 3) {
  1848.         GivePlayerWeapon(playerid,28,1000); GivePlayerWeapon(playerid,31,1000); GivePlayerWeapon(playerid,34,1000);
  1849.         GivePlayerWeapon(playerid,38,1000); GivePlayerWeapon(playerid,16,1000); GivePlayerWeapon(playerid,42,1000);
  1850.         GivePlayerWeapon(playerid,14,1000); GivePlayerWeapon(playerid,46,1000); GivePlayerWeapon(playerid,9,1);
  1851.         GivePlayerWeapon(playerid,24,1000); GivePlayerWeapon(playerid,26,1000); return 1;
  1852.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  1853. }
  1854.  
  1855. dcmd_countdown(playerid,params[]) {
  1856.     #pragma unused params
  1857.     if(PlayerInfo[playerid][Level] >= 3) {
  1858.         if(CountDown == -1) {
  1859.             CountDown = 6;
  1860.             SetTimer("countdown",1000,0);
  1861.             return CMDMessageToAdmins(playerid,"COUNTDOWN");
  1862.         } else return SendClientMessage(playerid,red,"ERROR: Countdown in progress");
  1863.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1864. }
  1865.  
  1866. dcmd_duel(playerid,params[]) {
  1867.     if(PlayerInfo[playerid][Level] >= 3) {
  1868.         new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  1869.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp) || !IsNumeric(tmp2)) {
  1870.             SendClientMessage(playerid, red, "USAGE: /duel [player1 id] [player2 id] [location]   (Locations: 1, 2, 3]");
  1871.             return SendClientMessage(playerid, red, "If location isnt stated then players duel at their present location");
  1872.         }
  1873.         new player1 = strval(tmp), player2 = strval(tmp2), location, string[128];
  1874.         if(!strlen(tmp3)) location = 0; else location = strval(tmp3);
  1875.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1876.         if(PlayerInfo[player2][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1877.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1878.             if(IsPlayerConnected(player2) && player2 != INVALID_PLAYER_ID) {
  1879.                 if(InDuel[player1] == 1) return SendClientMessage(playerid,red,"ERROR: Player1 is already in a duel");
  1880.                 if(InDuel[player2] == 1) return SendClientMessage(playerid,red,"ERROR: Player2 is already in a duel");
  1881.        
  1882.                 if(location == 1)   {
  1883.                     SetPlayerInterior(player1,16); SetPlayerPos(player1,-1404.067, 1270.3706, 1042.8672);
  1884.                     SetPlayerInterior(player2,16); SetPlayerPos(player2,-1395.067, 1261.3706, 1042.8672);
  1885.                 } else if(location == 2)   {
  1886.                     SetPlayerInterior(player1,0); SetPlayerPos(player1,1353.407,2188.155,11.02344);
  1887.                     SetPlayerInterior(player2,0); SetPlayerPos(player2,1346.255,2142.843,11.01563);
  1888.                 } else if(location == 3)   {
  1889.                     SetPlayerInterior(player1,10); SetPlayerPos(player1,-1041.037,1078.729,1347.678); SetPlayerFacingAngle(player1,135);
  1890.                     SetPlayerInterior(player2,10); SetPlayerPos(player2,-1018.061,1052.502,1346.327); SetPlayerFacingAngle(player2,45);
  1891.                 }
  1892.                 InDuel[player1] = 1;
  1893.                 InDuel[player2] = 1;
  1894.                 CMDMessageToAdmins(playerid,"DUEL");
  1895.                 cdt[player1] = 6;
  1896.                 SetTimerEx("Duel",1000,0,"dd", player1, player2);
  1897.                 format(string, sizeof(string), "Administrator \"%s\" has started a duel between \"%s\" and \"%s\" ", pName(playerid), pName(player1), pName(player2) );
  1898.                 SendClientMessage(player1, blue, string); SendClientMessage(player2, blue, string);
  1899.                 return SendClientMessage(playerid, blue, string);
  1900.             } else return SendClientMessage(playerid, red, "Player2 is not connected");
  1901.         } else return SendClientMessage(playerid, red, "Player1 is not connected");
  1902.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  1903. }
  1904.  
  1905. dcmd_lammo(playerid,params[]) {
  1906.     #pragma unused params
  1907.     if(PlayerInfo[playerid][Level] >= 3) {
  1908.         MaxAmmo(playerid);
  1909.         return CMDMessageToAdmins(playerid,"LAMMO");
  1910.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  1911. }
  1912.  
  1913. dcmd_vr(playerid,params[]) {
  1914.     #pragma unused params
  1915.     if(PlayerInfo[playerid][Level] >= 1) {
  1916.         if (IsPlayerInAnyVehicle(playerid)) {
  1917.             SetVehicleHealth(GetPlayerVehicleID(playerid),1250.0);
  1918.             return SendClientMessage(playerid,blue,"Vehicle Fixed");
  1919.         } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  1920.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  1921. }
  1922.  
  1923. dcmd_fix(playerid,params[])
  1924. {
  1925.     return dcmd_vr(playerid, params);
  1926. }
  1927.  
  1928. dcmd_repair(playerid,params[]) {
  1929.     #pragma unused params
  1930.     if(PlayerInfo[playerid][Level] >= 1) {
  1931.         if (IsPlayerInAnyVehicle(playerid)) {
  1932.             GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  1933.             GetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[playerid][3]);
  1934.             SetPlayerCameraPos(playerid, 1929.0, 2137.0, 11.0);
  1935.             SetPlayerCameraLookAt(playerid,1935.0, 2138.0, 11.5);
  1936.             SetVehiclePos(GetPlayerVehicleID(playerid), 1974.0,2162.0,11.0);
  1937.             SetVehicleZAngle(GetPlayerVehicleID(playerid), -90);
  1938.             SetTimerEx("RepairCar",5000,0,"i",playerid);
  1939.             return SendClientMessage(playerid,blue,"Your car will be ready in 5 seconds");
  1940.         } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  1941.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  1942. }
  1943.  
  1944. dcmd_ltune(playerid,params[]) {
  1945.     #pragma unused params
  1946.     if(PlayerInfo[playerid][Level] >= 1) {
  1947.         if(IsPlayerInAnyVehicle(playerid)) {
  1948.         new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  1949.         switch(LModel)
  1950.         {
  1951.             case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  1952.             return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle");
  1953.         }
  1954.         CMDMessageToAdmins(playerid,"LTUNE");
  1955.         SetVehicleHealth(LVehicleID,2000.0);
  1956.         TuneLCar(LVehicleID);
  1957.         return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  1958.         } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  1959.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  1960. }
  1961.  
  1962. dcmd_lhy(playerid,params[]) {
  1963.     #pragma unused params
  1964.     if(PlayerInfo[playerid][Level] >= 1) {
  1965.         if(IsPlayerInAnyVehicle(playerid)) {
  1966.         new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  1967.         switch(LModel)
  1968.         {
  1969.             case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  1970.             return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!");
  1971.         }
  1972.         AddVehicleComponent(LVehicleID, 1087);
  1973.         return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  1974.         } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle");
  1975.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  1976. }
  1977.  
  1978. dcmd_lcar(playerid,params[]) {
  1979.     #pragma unused params
  1980.     if(PlayerInfo[playerid][Level] >= 2) {
  1981.         if (!IsPlayerInAnyVehicle(playerid)) {
  1982.             CarSpawner(playerid,415);
  1983.             CMDMessageToAdmins(playerid,"LCAR");
  1984.             return SendClientMessage(playerid,blue,"Enjoy your new car");
  1985.         } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  1986.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  1987. }
  1988.  
  1989. dcmd_lbike(playerid,params[]) {
  1990.     #pragma unused params
  1991.     if(PlayerInfo[playerid][Level] >= 2) {
  1992.         if (!IsPlayerInAnyVehicle(playerid)) {
  1993.             CarSpawner(playerid,522);
  1994.             CMDMessageToAdmins(playerid,"LBIKE");
  1995.             return SendClientMessage(playerid,blue,"Enjoy your new bike");
  1996.         } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  1997.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  1998. }
  1999.  
  2000. dcmd_lheli(playerid,params[]) {
  2001.     #pragma unused params
  2002.     if(PlayerInfo[playerid][Level] >= 2) {
  2003.         if (!IsPlayerInAnyVehicle(playerid)) {
  2004.             CarSpawner(playerid,487);
  2005.             CMDMessageToAdmins(playerid,"LHELI");
  2006.             return SendClientMessage(playerid,blue,"Enjoy your new helicopter");
  2007.         } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2008.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2009. }
  2010.  
  2011. dcmd_lboat(playerid,params[]) {
  2012.     #pragma unused params
  2013.     if(PlayerInfo[playerid][Level] >= 2) {
  2014.         if (!IsPlayerInAnyVehicle(playerid)) {
  2015.             CarSpawner(playerid,493);
  2016.             CMDMessageToAdmins(playerid,"LBOAT");
  2017.             return SendClientMessage(playerid,blue,"Enjoy your new boat");
  2018.         } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2019.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2020. }
  2021.  
  2022. dcmd_lplane(playerid,params[]) {
  2023.     #pragma unused params
  2024.     if(PlayerInfo[playerid][Level] >= 2) {
  2025.         if (!IsPlayerInAnyVehicle(playerid)) {
  2026.             CarSpawner(playerid,513);
  2027.             CMDMessageToAdmins(playerid,"LPLANE");
  2028.             return SendClientMessage(playerid,blue,"Enjoy your new plane");
  2029.         } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2030.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2031. }
  2032.  
  2033. dcmd_lnos(playerid,params[]) {
  2034.     #pragma unused params
  2035.     if(PlayerInfo[playerid][Level] >= 1) {
  2036.         if(IsPlayerInAnyVehicle(playerid)) {
  2037.             switch(GetVehicleModel( GetPlayerVehicleID(playerid) )) {
  2038.                 case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  2039.                 return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!");
  2040.             }
  2041.             AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  2042.             return PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  2043.         } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  2044.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2045. }
  2046.  
  2047. dcmd_linkcar(playerid,params[]) {
  2048.     #pragma unused params
  2049.     if(IsPlayerInAnyVehicle(playerid)) {
  2050.         LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(playerid));
  2051.         SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playerid));
  2052.         return SendClientMessage(playerid,lightblue, "Your vehicle is now in your virtual world and interior");
  2053.     } else return SendClientMessage(playerid,red,"ERROR: You must be in a vehicle.");
  2054.  }
  2055.  
  2056. dcmd_car(playerid,params[]) {
  2057.     if(PlayerInfo[playerid][Level] >= 3) {
  2058.         new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2059.         if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /car [Modelid/Name] [colour1] [colour2]");
  2060.         new car, colour1, colour2, string[128];
  2061.         if(!IsNumeric(tmp)) car = GetVehicleModelIDFromName(tmp); else car = strval(tmp);
  2062.         if(car < 400 || car > 611) return  SendClientMessage(playerid, red, "ERROR: Invalid Vehicle Model");
  2063.         if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
  2064.         if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
  2065.         if(PlayerInfo[playerid][pCar] != -1 && !IsPlayerAdmin(playerid) ) CarDeleter(PlayerInfo[playerid][pCar]);
  2066.         new LVehicleID,Float:X,Float:Y,Float:Z, Float:Angle,int1;   GetPlayerPos(playerid, X,Y,Z)GetPlayerFacingAngle(playerid,Angle);   int1 = GetPlayerInterior(playerid);
  2067.         LVehicleID = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, -1); LinkVehicleToInterior(LVehicleID,int1);
  2068.         PlayerInfo[playerid][pCar] = LVehicleID;
  2069.         CMDMessageToAdmins(playerid,"CAR");
  2070.         format(string, sizeof(string), "%s spawned a \"%s\" (Model:%d) colour (%d, %d), at %0.2f, %0.2f, %0.2f", pName(playerid), VehicleNames[car-400], car, colour1, colour2, X, Y, Z);
  2071.         SaveToFile("CarSpawns",string);
  2072.         format(string, sizeof(string), "You have spawned a \"%s\" (Model:%d) colour (%d, %d)", VehicleNames[car-400], car, colour1, colour2);
  2073.         return SendClientMessage(playerid,lightblue, string);
  2074.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  2075. }
  2076.  
  2077. dcmd_carhealth(playerid,params[]) {
  2078.     if(PlayerInfo[playerid][Level] >= 3) {
  2079.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2080.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /carhealth [playerid] [amount]");
  2081.         new player1 = strval(tmp), health = strval(tmp2), string[128];
  2082.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2083.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2084.             if(IsPlayerInAnyVehicle(player1)) {
  2085.                 CMDMessageToAdmins(playerid,"CARHEALTH");
  2086.                 format(string, sizeof(string), "You have set \"%s's\" vehicle health to '%d", pName(player1), health); SendClientMessage(playerid,blue,string);
  2087.                 if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your vehicle's health to '%d'", pName(playerid), health); SendClientMessage(player1,blue,string); }
  2088.                 return SetVehicleHealth(GetPlayerVehicleID(player1), health);
  2089.             } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  2090.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  2091.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2092. }
  2093.  
  2094. dcmd_carcolour(playerid,params[]) {
  2095.     if(PlayerInfo[playerid][Level] >= 3) {
  2096.         new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2097.         if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /carcolour [playerid] [colour1] [colour2]");
  2098.         new player1 = strval(tmp), colour1, colour2, string[128];
  2099.         if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
  2100.         if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
  2101.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2102.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2103.             if(IsPlayerInAnyVehicle(player1)) {
  2104.                 CMDMessageToAdmins(playerid,"CARCOLOUR");
  2105.                 format(string, sizeof(string), "You have changed the colour of \"%s's\" %s to '%d,%d'", pName(player1), VehicleNames[GetVehicleModel(GetPlayerVehicleID(player1))-400], colour1, colour2 ); SendClientMessage(playerid,blue,string);
  2106.                 if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has changed the colour of your %s to '%d,%d''", pName(playerid), VehicleNames[GetVehicleModel(GetPlayerVehicleID(player1))-400], colour1, colour2 ); SendClientMessage(player1,blue,string); }
  2107.                 return ChangeVehicleColor(GetPlayerVehicleID(player1), colour1, colour2);
  2108.             } else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  2109.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  2110.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2111. }
  2112.  
  2113. dcmd_god(playerid,params[]) {
  2114.     #pragma unused params
  2115.     if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  2116.         if(PlayerInfo[playerid][God] == 0)  {
  2117.             PlayerInfo[playerid][God] = 1;
  2118.             SetPlayerHealth(playerid,100000);
  2119.             GivePlayerWeapon(playerid,16,50000); GivePlayerWeapon(playerid,26,50000);
  2120.             SendClientMessage(playerid,green,"GODMODE ON");
  2121.             return CMDMessageToAdmins(playerid,"GOD");
  2122.         } else {
  2123.             PlayerInfo[playerid][God] = 0;
  2124.             SendClientMessage(playerid,red,"GODMODE OFF");
  2125.             SetPlayerHealth(playerid, 100);
  2126.         } return GivePlayerWeapon(playerid,35,0);
  2127.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  2128. }
  2129.  
  2130. dcmd_sgod(playerid,params[]) {
  2131.     #pragma unused params
  2132.     if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  2133.         if(PlayerInfo[playerid][God] == 0)  {
  2134.             PlayerInfo[playerid][God] = 1;
  2135.             SetPlayerHealth(playerid,100000);
  2136.             GivePlayerWeapon(playerid,16,50000); GivePlayerWeapon(playerid,26,50000);
  2137.             return SendClientMessage(playerid,green,"GODMODE ON");
  2138.         } else  {
  2139.             PlayerInfo[playerid][God] = 0;
  2140.             SendClientMessage(playerid,red,"GODMODE OFF");
  2141.             SetPlayerHealth(playerid, 100); return GivePlayerWeapon(playerid,35,0); }
  2142.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 5 to use this command");
  2143. }
  2144.  
  2145. dcmd_godcar(playerid,params[]) {
  2146.     #pragma unused params
  2147.     if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  2148.         if(IsPlayerInAnyVehicle(playerid)) {
  2149.             if(PlayerInfo[playerid][GodCar] == 0) {
  2150.                 PlayerInfo[playerid][GodCar] = 1;
  2151.                 CMDMessageToAdmins(playerid,"GODCAR");
  2152.                 return SendClientMessage(playerid,green,"GODCARMODE ON");
  2153.             } else {
  2154.                 PlayerInfo[playerid][GodCar] = 0;
  2155.                 return SendClientMessage(playerid,red,"GODCARMODE OFF"); }
  2156.         } else return SendClientMessage(playerid,red,"ERROR: You need to be in a car to use this command");
  2157.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  2158. }
  2159.  
  2160. dcmd_die(playerid,params[]) {
  2161.     #pragma unused params
  2162.     if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  2163.         new Float:x, Float:y, Float:z ;
  2164.         GetPlayerPos( playerid, Float:x, Float:y, Float:z );
  2165.         CreateExplosion(Float:x+10, Float:y, Float:z, 8,10.0);
  2166.         CreateExplosion(Float:x-10, Float:y, Float:z, 8,10.0);
  2167.         CreateExplosion(Float:x, Float:y+10, Float:z, 8,10.0);
  2168.         CreateExplosion(Float:x, Float:y-10, Float:z, 8,10.0);
  2169.         CreateExplosion(Float:x+10, Float:y+10, Float:z, 8,10.0);
  2170.         CreateExplosion(Float:x-10, Float:y+10, Float:z, 8,10.0);
  2171.         return CreateExplosion(Float:x-10, Float:y-10, Float:z, 8,10.0);
  2172.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  2173. }
  2174.  
  2175. dcmd_getid(playerid,params[]) {
  2176.     if(!strlen(params)) return SendClientMessage(playerid,blue,"Correct Usage: /getid [part of nick]");
  2177.     new found, string[128], playername[MAX_PLAYER_NAME];
  2178.     format(string,sizeof(string),"Searched for: \"%s\" ",params);
  2179.     SendClientMessage(playerid,blue,string);
  2180.     for(new i=0; i <= MAX_PLAYERS; i++)
  2181.     {
  2182.         if(IsPlayerConnected(i))
  2183.         {
  2184.             GetPlayerName(i, playername, MAX_PLAYER_NAME);
  2185.             new namelen = strlen(playername);
  2186.             new bool:searched=false;
  2187.             for(new pos=0; pos <= namelen; pos++)
  2188.             {
  2189.                 if(searched != true)
  2190.                 {
  2191.                     if(strfind(playername,params,true) == pos)
  2192.                     {
  2193.                         found++;
  2194.                         format(string,sizeof(string),"%d. %s (ID %d)",found,playername,i);
  2195.                         SendClientMessage(playerid, green ,string);
  2196.                         searched = true;
  2197.                     }
  2198.                 }
  2199.             }
  2200.         }
  2201.     }
  2202.     if(found == 0) SendClientMessage(playerid, lightblue, "No players have this in their nick");
  2203.     return 1;
  2204. }
  2205.  
  2206. dcmd_asay(playerid,params[]) {
  2207.     #pragma unused params
  2208.     if(PlayerInfo[playerid][Level] >= 1) {
  2209.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /asay [text]");
  2210.         new string[128]; format(string, sizeof(string), "**Admin %s: %s", PlayerName2(playerid), params[0] );
  2211.         return SendClientMessageToAll(COLOR_PINK,string);
  2212.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2213. }
  2214.  
  2215. dcmd_setping(playerid,params[]) {
  2216.     if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2217.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setping [ping]   Set to 0 to disable");
  2218.         new string[128], ping = strval(params);
  2219.         ServerInfo[MaxPing] = ping;
  2220.         CMDMessageToAdmins(playerid,"SETPING");
  2221.         new file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
  2222.         dini_IntSet(file,"MaxPing",ping);
  2223.         for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayerPlaySound(i,1057,0.0,0.0,0.0);
  2224.         if(ping == 0) format(string,sizeof(string),"Administrator %s has disabled maximum ping", PlayerName2(playerid), ping);
  2225.         else format(string,sizeof(string),"Administrator %s has set the maximum ping to %d", PlayerName2(playerid), ping);
  2226.         return SendClientMessageToAll(blue,string);
  2227.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  2228. }
  2229.  
  2230. dcmd_ping(playerid,params[]) {
  2231.     if(PlayerInfo[playerid][Level] >= 1) {
  2232.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ping [playerid]");
  2233.         new player1 = strval(params), string[128];
  2234.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2235.             new Sum, Average, x;
  2236.             while (x < PING_MAX_EXCEEDS) {
  2237.                 Sum += PlayerInfo[player1][pPing][x];
  2238.                 x++;
  2239.             }
  2240.             Average = (Sum / PING_MAX_EXCEEDS);
  2241.             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] );
  2242.             return SendClientMessage(playerid,blue,string);
  2243.         } else return SendClientMessage(playerid, red, "Player is not connected");
  2244.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2245. }
  2246.  
  2247. dcmd_highlight(playerid,params[]) {
  2248.     if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2249.         if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /highlight [playerid]");
  2250.         new player1, playername[MAX_PLAYER_NAME], string[128];
  2251.         player1 = strval(params);
  2252.  
  2253.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2254.             GetPlayerName(player1, playername, sizeof(playername));
  2255.             if(PlayerInfo[player1][blip] == 0) {
  2256.                 CMDMessageToAdmins(playerid,"HIGHLIGHT");
  2257.                 PlayerInfo[player1][pColour] = GetPlayerColor(player1);
  2258.                 PlayerInfo[player1][blip] = 1;
  2259.                 BlipTimer[player1] = SetTimerEx("HighLight", 1000, 1, "i", player1);
  2260.                 format(string,sizeof(string),"You have highlighted %s's marker", playername);
  2261.             } else {
  2262.                 KillTimer( BlipTimer[player1] );
  2263.                 PlayerInfo[player1][blip] = 0;
  2264.                 SetPlayerColor(player1, PlayerInfo[player1][pColour] );
  2265.                 format(string,sizeof(string),"You have stopped highlighting %s's marker", playername);
  2266.             }
  2267.             return SendClientMessage(playerid,blue,string);
  2268.         } else return SendClientMessage(playerid, red, "Player is not connected");
  2269.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2270. }
  2271.            
  2272. dcmd_setgravity(playerid,params[]) {
  2273.     if(PlayerInfo[playerid][Level] >= 3) {
  2274.         if(!strlen(params)||!(strval(params)<=50&&strval(params)>=-50)) return SendClientMessage(playerid,red,"USAGE: /setgravity <-50.0 - 50.0>");
  2275.         CMDMessageToAdmins(playerid,"SETGRAVITY");
  2276.         new string[128],adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname)); new Float:Gravity = floatstr(params);format(string,sizeof(string),"Admnistrator %s has set the gravity to %f",adminname,Gravity);
  2277.         SetGravity(Gravity); return SendClientMessageToAll(blue,string);
  2278.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2279. }
  2280.  
  2281. dcmd_lcredits(playerid,params[]) {
  2282.     #pragma unused params
  2283.     return SendClientMessage(playerid,green,"LAdmin. Adminscript for sa-mp 0.2.x. Created by LethaL. Version: 4. Released: 07/2008");
  2284. }
  2285.  
  2286. dcmd_serverinfo(playerid,params[]) {
  2287.     #pragma unused params
  2288.     new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000);    DestroyVehicle(TotalVehicles);
  2289.     new numo = CreateObject(1245,0,0,1000,0,0,0);   DestroyObject(numo);
  2290.     new nump = CreatePickup(371,2,0,0,1000);    DestroyPickup(nump);
  2291.     new gz = GangZoneCreate(3,3,5,5);   GangZoneDestroy(gz);
  2292.  
  2293.     new model[250], nummodel;
  2294.     for(new i=1;i<TotalVehicles;i++) model[GetVehicleModel(i)-400]++;
  2295.     for(new i=0;i<250;i++)  if(model[i]!=0) nummodel++;
  2296.  
  2297.     new string[256];
  2298.     format(string,sizeof(string),"Server Info: [ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
  2299.     SendClientMessage(playerid,green,string);
  2300.     format(string,sizeof(string),"Server Info: [ Vehicles: %d || Models %d || Players In Vehicle: %d || InCar %d / OnBike %d ]",TotalVehicles-1,nummodel, InVehCount(),InCarCount(),OnBikeCount() );
  2301.     SendClientMessage(playerid,green,string);
  2302.     format(string,sizeof(string),"Server Info: [ Objects: %d || Pickups %d || Gangzones %d ]",numo-1, nump, gz);
  2303.     SendClientMessage(playerid,green,string);
  2304.     format(string,sizeof(string),"Server Info: [ Players In Jail %d || Players Frozen %d || Muted %d ]",JailedPlayers(),FrozenPlayers(), MutedPlayers() );
  2305.     return SendClientMessage(playerid,green,string);
  2306. }
  2307.  
  2308. dcmd_announce(playerid,params[]) {
  2309.     if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2310.         if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /announce <text>");
  2311.         CMDMessageToAdmins(playerid,"ANNOUNCE");
  2312.         return GameTextForAll(params,4000,3);
  2313.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2314. }
  2315.  
  2316. dcmd_announce2(playerid,params[]) {
  2317.     if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2318.         new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index) ,tmp3 = strtok(params,Index);
  2319.         if(!strlen(tmp)||!strlen(tmp2)||!strlen(tmp3)) return SendClientMessage(playerid,red,"USAGE: /announce <style> <time> <text>");
  2320.         if(!(strval(tmp) >= 0 && strval(tmp) <= 6) || strval(tmp) == 2) return SendClientMessage(playerid,red,"ERROR: Invalid gametext style. Range: 0 - 6");
  2321.         CMDMessageToAdmins(playerid,"ANNOUNCE2");
  2322.         return GameTextForAll(params[(strlen(tmp)+strlen(tmp2)+2)], strval(tmp2), strval(tmp));
  2323.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  2324. }
  2325.  
  2326. dcmd_lslowmo(playerid,params[]) {
  2327.     #pragma unused params
  2328.     if(PlayerInfo[playerid][Level] >= 1) {
  2329.         new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); CreatePickup(1241, 4, x, y, z);
  2330.         return CMDMessageToAdmins(playerid,"LSLOWMO");
  2331.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2332. }
  2333.  
  2334. dcmd_jetpack(playerid,params[]) {
  2335.     if(!strlen(params)) {
  2336.         if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2337.             SendClientMessage(playerid,blue,"Jetpack Spawned.");
  2338.             CMDMessageToAdmins(playerid,"JETPACK");
  2339.             return SetPlayerSpecialAction(playerid, 2);
  2340.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2341.     } else {
  2342.         new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2343.         player1 = strval(params);
  2344.         if(PlayerInfo[playerid][Level] >= 4)    {
  2345.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid)   {
  2346.                 CMDMessageToAdmins(playerid,"JETPACK");     SetPlayerSpecialAction(player1, 2);
  2347.                 GetPlayerName(player1, playername, sizeof(playername));     GetPlayerName(playerid, adminname, sizeof(adminname));
  2348.                 format(string,sizeof(string),"Administrator \"%s\" has given you a jetpack",adminname); SendClientMessage(player1,blue,string);
  2349.                 format(string,sizeof(string),"You have given %s a jetpack", playername);
  2350.                 return SendClientMessage(playerid,blue,string);
  2351.             } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2352.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2353.     }
  2354. }
  2355.  
  2356. dcmd_flip(playerid,params[]) {
  2357.     if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2358.         if(!strlen(params)) {
  2359.             if(IsPlayerInAnyVehicle(playerid)) {
  2360.             new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(playerid, X, Y, Z); VehicleID = GetPlayerVehicleID(playerid);
  2361.             GetVehicleZAngle(VehicleID, Angle); SetVehiclePos(VehicleID, X, Y, Z); SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1000.0);
  2362.             CMDMessageToAdmins(playerid,"FLIP"); return SendClientMessage(playerid, blue,"Vehicle Flipped. You can also do /flip [playerid]");
  2363.             } else return SendClientMessage(playerid,red,"Error: You are not in a vehicle. You can also do /flip [playerid]");
  2364.         }
  2365.         new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2366.         player1 = strval(params);
  2367.  
  2368.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2369.             CMDMessageToAdmins(playerid,"FLIP");
  2370.             if (IsPlayerInAnyVehicle(player1)) {
  2371.                 new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(player1, X, Y, Z); VehicleID = GetPlayerVehicleID(player1);
  2372.                 GetVehicleZAngle(VehicleID, Angle); SetVehiclePos(VehicleID, X, Y, Z); SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1000.0);
  2373.                 CMDMessageToAdmins(playerid,"FLIP");
  2374.                 GetPlayerName(player1, playername, sizeof(playername));     GetPlayerName(playerid, adminname, sizeof(adminname));
  2375.                 format(string,sizeof(string),"Administrator %s flipped your vehicle",adminname); SendClientMessage(player1,blue,string);
  2376.                 format(string,sizeof(string),"You have flipped %s's vehicle", playername);
  2377.                 return SendClientMessage(playerid, blue,string);
  2378.             } else return SendClientMessage(playerid,red,"Error: This player isn't in a vehicle");
  2379.         } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2380.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2381. }
  2382.  
  2383. dcmd_destroycar(playerid,params[]) {
  2384.     #pragma unused params
  2385.     if(PlayerInfo[playerid][Level] >= 3) return EraseVehicle(GetPlayerVehicleID(playerid));
  2386.     else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2387. }
  2388. dcmd_ltc(playerid,params[]) {
  2389.     #pragma unused params
  2390.     if(PlayerInfo[playerid][Level] >= 1) {
  2391.         if(!IsPlayerInAnyVehicle(playerid)) {
  2392.             if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  2393.             new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt;    GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  2394.             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);
  2395.             AddVehicleComponent(LVehicleIDt, 1140);  AddVehicleComponent(LVehicleIDt, 1170);
  2396.             AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140);  AddVehicleComponent(LVehicleIDt, 1170);
  2397.             AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,0);
  2398.             SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  2399.             return PlayerInfo[playerid][pCar] = LVehicleIDt;
  2400.         } else return SendClientMessage(playerid,red,"Error: You already have a vehicle");
  2401.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  2402. }
  2403.  
  2404. dcmd_warp(playerid,params[])
  2405. {
  2406.     return dcmd_teleplayer(playerid,params);
  2407. }
  2408.  
  2409. dcmd_teleplayer(playerid,params[]) {
  2410.     if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2411.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2412.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /teleplayer [playerid] to [playerid]");
  2413.         new player1 = strval(tmp), player2 = strval(tmp2), string[128], Float:plocx,Float:plocy,Float:plocz;
  2414.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2415.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2416.             if(IsPlayerConnected(player2) && player2 != INVALID_PLAYER_ID) {
  2417.                 CMDMessageToAdmins(playerid,"TELEPLAYER");
  2418.                 GetPlayerPos(player2, plocx, plocy, plocz);
  2419.                 new intid = GetPlayerInterior(player2); SetPlayerInterior(player1,intid);
  2420.                 SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(player2));
  2421.                 if (GetPlayerState(player1) == PLAYER_STATE_DRIVER)
  2422.                 {
  2423.                     new VehicleID = GetPlayerVehicleID(player1);
  2424.                     SetVehiclePos(VehicleID, plocx, plocy+4, plocz); LinkVehicleToInterior(VehicleID,intid);
  2425.                     SetVehicleVirtualWorld(VehicleID, GetPlayerVirtualWorld(player2) );
  2426.                 }
  2427.                 else SetPlayerPos(player1,plocx,plocy+2, plocz);
  2428.                 format(string,sizeof(string),"Administrator \"%s\" has teleported \"%s\" to \"%s's\" location", pName(playerid), pName(player1), pName(player2) );
  2429.                 SendClientMessage(player1,blue,string); SendClientMessage(player2,blue,string);
  2430.                 format(string,sizeof(string),"You have teleported \"%s\" to \"%s's\" location", pName(player1), pName(player2) );
  2431.                 return SendClientMessage(playerid,blue,string);
  2432.             } else return SendClientMessage(playerid, red, "Player2 is not connected");
  2433.         } else return SendClientMessage(playerid, red, "Player1 is not connected");
  2434.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2435. }
  2436.  
  2437. dcmd_goto(playerid,params[]) {
  2438.     if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2439.         if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /goto [playerid]");
  2440.         new player1, string[128];
  2441.         if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
  2442.         else player1 = strval(params);
  2443.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2444.             CMDMessageToAdmins(playerid,"GOTO");
  2445.             new Float:x, Float:y, Float:z;  GetPlayerPos(player1,x,y,z); SetPlayerInterior(playerid,GetPlayerInterior(player1));
  2446.             SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
  2447.             if(GetPlayerState(playerid) == 2) {
  2448.                 SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z);    LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(player1));
  2449.                 SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(player1));
  2450.             } else SetPlayerPos(playerid,x+2,y,z);
  2451.             format(string,sizeof(string),"You have teleported to \"%s\"", pName(player1));
  2452.             return SendClientMessage(playerid,blue,string);
  2453.         } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2454.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2455. }
  2456.  
  2457. dcmd_vgoto(playerid,params[]) {
  2458.     if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2459.         if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /vgoto [vehicleid]");
  2460.         new player1, string[128];
  2461.         player1 = strval(params);
  2462.         CMDMessageToAdmins(playerid,"VGOTO");
  2463.         new Float:x, Float:y, Float:z;  GetVehiclePos(player1,x,y,z);
  2464.         SetPlayerVirtualWorld(playerid,GetVehicleVirtualWorld(player1));
  2465.         if(GetPlayerState(playerid) == 2) {
  2466.             SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z);
  2467.             SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetVehicleVirtualWorld(player1) );
  2468.         } else SetPlayerPos(playerid,x+2,y,z);
  2469.         format(string,sizeof(string),"You have teleported to vehicle id %d", player1);
  2470.         return SendClientMessage(playerid,blue,string);
  2471.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2472. }
  2473.  
  2474. dcmd_vget(playerid,params[]) {
  2475.     if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2476.         if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /vget [vehicleid]");
  2477.         new player1, string[128];
  2478.         player1 = strval(params);
  2479.         CMDMessageToAdmins(playerid,"VGET");
  2480.         new Float:x, Float:y, Float:z;  GetPlayerPos(playerid,x,y,z);
  2481.         SetVehiclePos(player1,x+3,y,z);
  2482.         SetVehicleVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2483.         format(string,sizeof(string),"You have brough vehicle id %d to your location", player1);
  2484.         return SendClientMessage(playerid,blue,string);
  2485.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2486. }
  2487.  
  2488. dcmd_lgoto(playerid,params[]) {
  2489.     if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  2490.         new Float:x, Float:y, Float:z;
  2491.         new tmp[256], tmp2[256], tmp3[256];
  2492.         new string[128], Index; tmp = strtok(params,Index); tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
  2493.         if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid,red,"USAGE: /lgoto [x] [y] [z]");
  2494.         x = strval(tmp);        y = strval(tmp2);       z = strval(tmp3);
  2495.         CMDMessageToAdmins(playerid,"LGOTO");
  2496.         if(GetPlayerState(playerid) == 2) SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
  2497.         else SetPlayerPos(playerid,x,y,z);
  2498.         format(string,sizeof(string),"You have teleported to %f, %f, %f", x,y,z); return SendClientMessage(playerid,blue,string);
  2499.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2500. }
  2501.  
  2502. dcmd_givecar(playerid,params[]) {
  2503.     if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  2504.         if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /givecar [playerid]");
  2505.         new player1 = strval(params), playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2506.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2507.         if(IsPlayerInAnyVehicle(player1)) return SendClientMessage(playerid,red,"ERROR: Player already has a vehicle");
  2508.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2509.             CMDMessageToAdmins(playerid,"GIVECAR");
  2510.             new Float:x, Float:y, Float:z;  GetPlayerPos(player1,x,y,z);
  2511.             CarSpawner(player1,415);
  2512.             GetPlayerName(player1, playername, sizeof(playername));     GetPlayerName(playerid, adminname, sizeof(adminname));
  2513.             format(string,sizeof(string),"Administrator %s has given you a car",adminname); SendClientMessage(player1,blue,string);
  2514.             format(string,sizeof(string),"You have given %s a car", playername); return SendClientMessage(playerid,blue,string);
  2515.         } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2516.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2517. }
  2518.  
  2519. dcmd_gethere(playerid,params[]) {
  2520.     if(PlayerInfo[playerid][Level] >= 3) {
  2521.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /gethere [playerid]");
  2522.         new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2523.         player1 = strval(params);
  2524.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2525.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2526.             CMDMessageToAdmins(playerid,"GETHERE");
  2527.             new Float:x, Float:y, Float:z;  GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
  2528.             SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2529.             if(GetPlayerState(player1) == 2)    {
  2530.                 new VehicleID = GetPlayerVehicleID(player1);
  2531.                 SetVehiclePos(VehicleID,x+3,y,z);   LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  2532.                 SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
  2533.             } else SetPlayerPos(player1,x+2,y,z);
  2534.             GetPlayerName(player1, playername, sizeof(playername));     GetPlayerName(playerid, adminname, sizeof(adminname));
  2535.             format(string,sizeof(string),"You have been teleported to Administrator %s's location",adminname)SendClientMessage(player1,blue,string);
  2536.             format(string,sizeof(string),"You have teleported %s to your location", playername); return SendClientMessage(playerid,blue,string);
  2537.         } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2538.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2539. }
  2540.  
  2541. dcmd_get(playerid,params[]) {
  2542.     if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2543.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /get [playerid]");
  2544.         new player1, string[128];
  2545.         if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
  2546.         else player1 = strval(params);
  2547.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2548.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  2549.             CMDMessageToAdmins(playerid,"GET");
  2550.             new Float:x, Float:y, Float:z;  GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
  2551.             SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  2552.             if(GetPlayerState(player1) == 2)    {
  2553.                 new VehicleID = GetPlayerVehicleID(player1);
  2554.                 SetVehiclePos(VehicleID,x+3,y,z);   LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  2555.                 SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
  2556.             } else SetPlayerPos(player1,x+2,y,z);
  2557.             format(string,sizeof(string),"You have been teleported to Administrator \"%s's\" location", pName(playerid) )SendClientMessage(player1,blue,string);
  2558.             format(string,sizeof(string),"You have teleported \"%s\" to your location", pName(player1) );
  2559.             return SendClientMessage(playerid,blue,string);
  2560.         } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  2561.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2562. }
  2563.  
  2564. dcmd_fu(playerid,params[]) {
  2565.     if(PlayerInfo[playerid][Level] >= 2) {
  2566.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /fu [playerid]");
  2567.         new player1 = strval(params), string[128], NewName[MAX_PLAYER_NAME];
  2568.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2569.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2570.             CMDMessageToAdmins(playerid,"FU");
  2571.             SetPlayerHealth(player1,1.0); SetPlayerArmour(player1,0.0); ResetPlayerWeapons(player1);ResetPlayerMoney(player1);GivePlayerWeapon(player1,12,1);
  2572.             SetPlayerSkin(player1, 137); SetPlayerScore(player1, 0); SetPlayerColor(player1,COLOR_PINK); SetPlayerWeather(player1,19); SetPlayerWantedLevel(player1,6);
  2573.             format(NewName,sizeof(NewName),"[N00B]%s", pName(player1) ); SetPlayerName(player1,NewName);
  2574.             if(IsPlayerInAnyVehicle(player1)) EraseVehicle(GetPlayerVehicleID(player1));
  2575.             if(player1 != playerid) { format(string,sizeof(string),"~w~%s: ~r~Fuck You", pName(playerid) ); GameTextForPlayer(player1, string, 2500, 3); }
  2576.             format(string,sizeof(string),"Fuck you \"%s\"", pName(player1) ); return SendClientMessage(playerid,blue,string);
  2577.         } else return SendClientMessage(playerid, red, "Player is not connected");
  2578.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2579. }
  2580.  
  2581. dcmd_warn(playerid,params[]) {
  2582.     if(PlayerInfo[playerid][Level] >= 2) {
  2583.         new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2584.         if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /warn [playerid] [reason]");
  2585.         new warned = strval(tmp), str[128];
  2586.         if(PlayerInfo[warned][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  2587.         if(IsPlayerConnected(warned) && warned != INVALID_PLAYER_ID) {
  2588.             if(warned != playerid) {
  2589.                 CMDMessageToAdmins(playerid,"WARN");
  2590.                 PlayerInfo[warned][Warnings]++;
  2591.                 if( PlayerInfo[warned][Warnings] == MAX_WARNINGS) {
  2592.                     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);
  2593.                     SendClientMessageToAll(grey, str);
  2594.                     SaveToFile("KickLog",str)Kick(warned);
  2595.                     return PlayerInfo[warned][Warnings] = 0;
  2596.                 } else {
  2597.                     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);
  2598.                     return SendClientMessageToAll(yellow, str);
  2599.                 }
  2600.             } else return SendClientMessage(playerid, red, "ERROR: You cannot warn yourself");
  2601.         } else return SendClientMessage(playerid, red, "ERROR: Player is not connected");
  2602.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2603. }
  2604.  
  2605. dcmd_kick(playerid,params[]) {
  2606.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2607.         if(PlayerInfo[playerid][Level] >= 3) {
  2608.             new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2609.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /kick [playerid] [reason]");
  2610.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2611.             player1 = strval(tmp);
  2612.  
  2613.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2614.                 GetPlayerName(player1, playername, sizeof(playername));     GetPlayerName(playerid, adminname, sizeof(adminname));
  2615.                 CMDMessageToAdmins(playerid,"KICK");
  2616.                 if(!strlen(tmp2)) {
  2617.                     format(string,sizeof(string),"%s has been kicked by Administrator %s [no reason given] ",playername,adminname); SendClientMessageToAll(grey,string);
  2618.                     SaveToFile("KickLog",string); print(string); return Kick(player1);
  2619.                 } else {
  2620.                     format(string,sizeof(string),"%s has been kicked by Administrator %s [reason: %s] ",playername,adminname,params[2]); SendClientMessageToAll(grey,string);
  2621.                     SaveToFile("KickLog",string); print(string); return Kick(player1); }
  2622.             } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2623.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2624.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2625. }
  2626.  
  2627. dcmd_ban(playerid,params[]) {
  2628.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2629.         if(PlayerInfo[playerid][Level] >= 4) {
  2630.             new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2631.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /ban [playerid] [reason]");
  2632.             if(!strlen(tmp2)) return SendClientMessage(playerid, red, "ERROR: You must give a reason");
  2633.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2634.             player1 = strval(tmp);
  2635.  
  2636.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2637.                 GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2638.                 new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
  2639.                 CMDMessageToAdmins(playerid,"BAN");
  2640.                 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);
  2641.                 SendClientMessageToAll(grey,string);
  2642.                 SaveToFile("BanLog",string);
  2643.                 print(string);
  2644.                 if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
  2645.                 format(string,sizeof(string),"banned by Administrator %s. Reason: %s", adminname, params[2] );
  2646.                 return BanEx(player1, string);
  2647.             } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2648.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2649.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2650. }
  2651.  
  2652. dcmd_rban(playerid,params[]) {
  2653.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2654.         if(PlayerInfo[playerid][Level] >= 4) {
  2655.             new ip[128], tmp[256], tmp2[256], Index;        tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2656.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /rban [playerid] [reason]");
  2657.             if(!strlen(tmp2)) return SendClientMessage(playerid, red, "ERROR: You must give a reason");
  2658.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2659.             player1 = strval(tmp);
  2660.  
  2661.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2662.                 GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2663.                 new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
  2664.                 CMDMessageToAdmins(playerid,"RBAN");
  2665.                 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);
  2666.                 SendClientMessageToAll(grey,string);
  2667.                 SaveToFile("BanLog",string);
  2668.                 print(string);
  2669.                 if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
  2670.                 GetPlayerIp(player1,ip,sizeof(ip));
  2671.                 strdel(ip,strlen(ip)-2,strlen(ip));
  2672.                 format(ip,128,"%s**",ip);
  2673.                 format(ip,128,"banip %s",ip);
  2674.                 SendRconCommand(ip);
  2675.                 return 1;
  2676.             } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  2677.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2678.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2679. }
  2680.  
  2681. dcmd_slap(playerid,params[]) {
  2682.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2683.         if(PlayerInfo[playerid][Level] >= 2) {
  2684.             new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2685.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /slap [playerid] [reason/with]");
  2686.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2687.             player1 = strval(tmp);
  2688.            
  2689.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2690.                 GetPlayerName(player1, playername, sizeof(playername));     GetPlayerName(playerid, adminname, sizeof(adminname));
  2691.                 CMDMessageToAdmins(playerid,"SLAP");
  2692.                 new Float:Health, Float:x, Float:y, Float:z; GetPlayerHealth(player1,Health); SetPlayerHealth(player1,Health-25);
  2693.                 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);
  2694.  
  2695.                 if(strlen(tmp2)) {
  2696.                     format(string,sizeof(string),"You have been slapped by Administrator %s %s ",adminname,params[2])SendClientMessage(player1,red,string);
  2697.                     format(string,sizeof(string),"You have slapped %s %s ",playername,params[2]); return SendClientMessage(playerid,blue,string);
  2698.                 } else {
  2699.                     format(string,sizeof(string),"You have been slapped by Administrator %s ",adminname);   SendClientMessage(player1,red,string);
  2700.                     format(string,sizeof(string),"You have slapped %s",playername); return SendClientMessage(playerid,blue,string); }
  2701.             } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2702.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2703.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2704. }
  2705.  
  2706. dcmd_explode(playerid,params[]) {
  2707.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2708.         if(PlayerInfo[playerid][Level] >= 3) {
  2709.             new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2710.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /explode [playerid] [reason]");
  2711.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2712.             player1 = strval(tmp);
  2713.  
  2714.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2715.                 GetPlayerName(player1, playername, sizeof(playername));     GetPlayerName(playerid, adminname, sizeof(adminname));
  2716.                 CMDMessageToAdmins(playerid,"EXPLODE");
  2717.                 new Float:burnx, Float:burny, Float:burnz; GetPlayerPos(player1,burnx, burny, burnz); CreateExplosion(burnx, burny , burnz, 7,10.0);
  2718.  
  2719.                 if(strlen(tmp2)) {
  2720.                     format(string,sizeof(string),"You have been exploded by Administrator %s [reason: %s]",adminname,params[2]); SendClientMessage(player1,blue,string);
  2721.                     format(string,sizeof(string),"You have exploded %s [reason: %s]", playername,params[2]); return SendClientMessage(playerid,blue,string);
  2722.                 } else {
  2723.                     format(string,sizeof(string),"You have been exploded by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2724.                     format(string,sizeof(string),"You have exploded %s", playername); return SendClientMessage(playerid,blue,string); }
  2725.             } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2726.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2727.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2728. }
  2729.  
  2730. dcmd_jail(playerid,params[]) {
  2731.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2732.         if(PlayerInfo[playerid][Level] >= 3) {
  2733.             new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  2734.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid] [minutes] [reason]");
  2735.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2736.             player1 = strval(tmp);
  2737.  
  2738.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2739.                 if(PlayerInfo[player1][Jailed] == 0) {
  2740.                     GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2741.                     new jtime = strval(tmp2);
  2742.                     if(jtime == 0) jtime = 9999;
  2743.  
  2744.                     CMDMessageToAdmins(playerid,"JAIL");
  2745.                     PlayerInfo[player1][JailTime] = jtime*1000*60;
  2746.                     SetTimerEx("JailPlayer",5000,0,"d",player1);
  2747.                     SetTimerEx("Jail1",1000,0,"d",player1);
  2748.                     PlayerInfo[player1][Jailed] = 1;
  2749.  
  2750.                     if(jtime == 9999) {
  2751.                         if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has jailed %s ",adminname, playername);
  2752.                         else format(string,sizeof(string),"Administrator %s has jailed %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
  2753.                     } else {
  2754.                         if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes",adminname, playername, jtime);
  2755.                         else format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes [reason: %s]",adminname, playername, jtime, params[strlen(tmp2)+strlen(tmp)+1] );
  2756.                     }
  2757.                     return SendClientMessageToAll(blue,string);
  2758.                 } else return SendClientMessage(playerid, red, "Player is already in jail");
  2759.             } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2760.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2761.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2762. }
  2763.  
  2764. dcmd_unjail(playerid,params[]) {
  2765.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2766.         if(PlayerInfo[playerid][Level] >= 3) {
  2767.             new tmp[256], Index; tmp = strtok(params,Index);
  2768.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid]");
  2769.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2770.             player1 = strval(tmp);
  2771.  
  2772.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2773.                 if(PlayerInfo[player1][Jailed] == 1) {
  2774.                     GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2775.                     format(string,sizeof(string),"Administrator %s has unjailed you",adminname);    SendClientMessage(player1,blue,string);
  2776.                     format(string,sizeof(string),"Administrator %s has unjailed %s",adminname, playername);
  2777.                     JailRelease(player1);
  2778.                     return SendClientMessageToAll(blue,string);
  2779.                 } else return SendClientMessage(playerid, red, "Player is not in jail");
  2780.             } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2781.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2782.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2783. }
  2784.  
  2785. dcmd_jailed(playerid,params[]) {
  2786.     #pragma unused params
  2787.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2788.         if(PlayerInfo[playerid][Level] >= 2) {
  2789.             new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2790.             for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed]) Count++;
  2791.             if(Count == 0) return SendClientMessage(playerid,red, "No players are jailed");
  2792.  
  2793.             for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed]) {
  2794.                 GetPlayerName(i, adminname, sizeof(adminname));
  2795.                 if(!First2) { format(string, sizeof(string), "Jailed Players: (%d)%s", i,adminname); First2 = true; }
  2796.                 else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2797.             }
  2798.             return SendClientMessage(playerid,COLOR_WHITE,string);
  2799.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2800.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2801. }
  2802.  
  2803. dcmd_freeze(playerid,params[]) {
  2804.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2805.         if(PlayerInfo[playerid][Level] >= 3) {
  2806.             new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  2807.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /freeze [playerid] [minutes] [reason]");
  2808.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2809.             player1 = strval(tmp);
  2810.  
  2811.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2812.                 if(PlayerInfo[player1][Frozen] == 0) {
  2813.                     GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2814.                     new ftime = strval(tmp2);
  2815.                     if(ftime == 0) ftime = 9999;
  2816.  
  2817.                     CMDMessageToAdmins(playerid,"FREEZE");
  2818.                     TogglePlayerControllable(player1,false); PlayerInfo[player1][Frozen] = 1; PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  2819.                     PlayerInfo[player1][FreezeTime] = ftime*1000*60;
  2820.                     FreezeTimer[player1] = SetTimerEx("UnFreezeMe",PlayerInfo[player1][FreezeTime],0,"d",player1);
  2821.  
  2822.                     if(ftime == 9999) {
  2823.                         if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has frozen %s ",adminname, playername);
  2824.                         else format(string,sizeof(string),"Administrator %s has frozen %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
  2825.                     } else {
  2826.                         if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has frozen %s for %d minutes",adminname, playername, ftime);
  2827.                         else format(string,sizeof(string),"Administrator %s has frozen %s for %d minutes [reason: %s]",adminname, playername, ftime, params[strlen(tmp2)+strlen(tmp)+1] );
  2828.                     }
  2829.                     return SendClientMessageToAll(blue,string);
  2830.                 } else return SendClientMessage(playerid, red, "Player is already frozen");
  2831.             } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2832.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2833.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2834. }
  2835.  
  2836. dcmd_unfreeze(playerid,params[]) {
  2837.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2838.         if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2839.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /unfreeze [playerid]");
  2840.             new player1, string[128];
  2841.             player1 = strval(params);
  2842.  
  2843.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2844.                 if(PlayerInfo[player1][Frozen] == 1) {
  2845.                     CMDMessageToAdmins(playerid,"UNFREEZE");
  2846.                     UnFreezeMe(player1);
  2847.                     format(string,sizeof(string),"Administrator %s has unfrozen you", PlayerName2(playerid) ); SendClientMessage(player1,blue,string);
  2848.                     format(string,sizeof(string),"Administrator %s has unfrozen %s", PlayerName2(playerid), PlayerName2(player1));
  2849.                     return SendClientMessageToAll(blue,string);
  2850.                 } else return SendClientMessage(playerid, red, "Player is not frozen");
  2851.             } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2852.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2853.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2854. }
  2855.  
  2856. dcmd_frozen(playerid,params[]) {
  2857.     #pragma unused params
  2858.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2859.         if(PlayerInfo[playerid][Level] >= 2) {
  2860.             new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2861.             for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen]) Count++;
  2862.             if(Count == 0) return SendClientMessage(playerid,red, "No players are frozen");
  2863.            
  2864.             for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen]) {
  2865.                 GetPlayerName(i, adminname, sizeof(adminname));
  2866.                 if(!First2) { format(string, sizeof(string), "Frozen Players: (%d)%s", i,adminname); First2 = true; }
  2867.                 else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2868.             }
  2869.             return SendClientMessage(playerid,COLOR_WHITE,string);
  2870.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2871.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2872. }
  2873.  
  2874. dcmd_mute(playerid,params[]) {
  2875.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2876.         if(PlayerInfo[playerid][Level] >= 2) {
  2877.             new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  2878.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /mute [playerid] [reason]");
  2879.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2880.             player1 = strval(tmp);
  2881.  
  2882.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2883.                 if(PlayerInfo[player1][Muted] == 0) {
  2884.                     GetPlayerName(player1, playername, sizeof(playername));     GetPlayerName(playerid, adminname, sizeof(adminname));
  2885.                     CMDMessageToAdmins(playerid,"MUTE");
  2886.                     PlayerPlaySound(player1,1057,0.0,0.0,0.0);  PlayerInfo[player1][Muted] = 1; PlayerInfo[player1][MuteWarnings] = 0;
  2887.  
  2888.                     if(strlen(tmp2)) {
  2889.                         format(string,sizeof(string),"You have been muted by Administrator %s [reason: %s]",adminname,params[2]); SendClientMessage(player1,blue,string);
  2890.                         format(string,sizeof(string),"You have muted %s [reason: %s]", playername,params[2]); return SendClientMessage(playerid,blue,string);
  2891.                     } else {
  2892.                         format(string,sizeof(string),"You have been muted by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2893.                         format(string,sizeof(string),"You have muted %s", playername); return SendClientMessage(playerid,blue,string); }
  2894.                 } else return SendClientMessage(playerid, red, "Player is already muted");
  2895.             } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2896.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2897.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2898. }
  2899.  
  2900. dcmd_unmute(playerid,params[]) {
  2901.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2902.         if(PlayerInfo[playerid][Level] >= 2) {
  2903.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /unmute [playerid]");
  2904.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2905.             player1 = strval(params);
  2906.  
  2907.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  2908.                 if(PlayerInfo[player1][Muted] == 1) {
  2909.                     GetPlayerName(player1, playername, sizeof(playername));     GetPlayerName(playerid, adminname, sizeof(adminname));
  2910.                     CMDMessageToAdmins(playerid,"UNMUTE");
  2911.                     PlayerPlaySound(player1,1057,0.0,0.0,0.0);  PlayerInfo[player1][Muted] = 0; PlayerInfo[player1][MuteWarnings] = 0;
  2912.                     format(string,sizeof(string),"You have been unmuted by Administrator %s",adminname); SendClientMessage(player1,blue,string);
  2913.                     format(string,sizeof(string),"You have unmuted %s", playername); return SendClientMessage(playerid,blue,string);
  2914.                 } else return SendClientMessage(playerid, red, "Player is not muted");
  2915.             } else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
  2916.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2917.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2918. }
  2919.  
  2920. dcmd_muted(playerid,params[]) {
  2921.     #pragma unused params
  2922.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2923.         if(PlayerInfo[playerid][Level] >= 2) {
  2924.             new bool:First2 = false, Count, adminname[MAX_PLAYER_NAME], string[128], i;
  2925.             for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted]) Count++;
  2926.             if(Count == 0) return SendClientMessage(playerid,red, "No players are muted");
  2927.  
  2928.             for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted]) {
  2929.                 GetPlayerName(i, adminname, sizeof(adminname));
  2930.                 if(!First2) { format(string, sizeof(string), "Muted Players: (%d)%s", i,adminname); First2 = true; }
  2931.                 else format(string,sizeof(string),"%s, (%d)%s ",string,i,adminname);
  2932.             }
  2933.             return SendClientMessage(playerid,COLOR_WHITE,string);
  2934.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2935.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2936. }
  2937.  
  2938. dcmd_akill(playerid,params[]) {
  2939.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  2940.         if(PlayerInfo[playerid][Level] >= 3|| IsPlayerAdmin(playerid)) {
  2941.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /akill [playerid]");
  2942.             new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  2943.             player1 = strval(params);
  2944.  
  2945.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2946.                 if( (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel] ) )
  2947.                     return SendClientMessage(playerid, red, "You cannot akill the highest level admin");
  2948.                 CMDMessageToAdmins(playerid,"AKILL");
  2949.                 GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  2950.                 format(string,sizeof(string),"Administrator %s has killed you",adminname)SendClientMessage(player1,blue,string);
  2951.                 format(string,sizeof(string),"You have killed %s",playername); SendClientMessage(playerid,blue,string);
  2952.                 return SetPlayerHealth(player1,0.0);
  2953.             } else return SendClientMessage(playerid, red, "Player is not connected");
  2954.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2955.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  2956. }
  2957.  
  2958. dcmd_weaps(playerid,params[]) {
  2959.     if(PlayerInfo[playerid][Level] >= 1 || IsPlayerAdmin(playerid)) {
  2960.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /weaps [playerid]");
  2961.         new player1, string[128], string2[64], WeapName[24], slot, weap, ammo, Count, x;
  2962.         player1 = strval(params);
  2963.  
  2964.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  2965.             format(string2,sizeof(string2),"[>> %s Weapons (id:%d) <<]", PlayerName2(player1), player1); SendClientMessage(playerid,blue,string2);
  2966.             for (slot = 0; slot < 14; slot++) { GetPlayerWeaponData(player1, slot, weap, ammo); if( ammo != 0 && weap != 0) Count++; }
  2967.             if(Count < 1) return SendClientMessage(playerid,blue,"Player has no weapons");
  2968.  
  2969.             if(Count >= 1)
  2970.             {
  2971.                 for (slot = 0; slot < 14; slot++)
  2972.                 {
  2973.                     GetPlayerWeaponData(player1, slot, weap, ammo);
  2974.                     if( ammo != 0 && weap != 0)
  2975.                     {
  2976.                         GetWeaponName(weap, WeapName, sizeof(WeapName) );
  2977.                         if(ammo == 65535 || ammo == 1) format(string,sizeof(string),"%s%s (1)",string, WeapName );
  2978.                         else format(string,sizeof(string),"%s%s (%d)",string, WeapName, ammo );
  2979.                         x++;
  2980.                         if(x >= 5)
  2981.                         {
  2982.                             SendClientMessage(playerid, blue, string);
  2983.                             x = 0;
  2984.                             format(string, sizeof(string), "");
  2985.                         }
  2986.                         else format(string, sizeof(string), "%s,  ", string);
  2987.                     }
  2988.                 }
  2989.                 if(x <= 4 && x > 0) {
  2990.                     string[strlen(string)-3] = '.';
  2991.                     SendClientMessage(playerid, blue, string);
  2992.                 }
  2993.             }
  2994.             return 1;
  2995.         } else return SendClientMessage(playerid, red, "Player is not connected");
  2996.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  2997. }
  2998.  
  2999. dcmd_aka(playerid,params[]) {
  3000.     if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
  3001.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /aka [playerid]");
  3002.         new player1, playername[MAX_PLAYER_NAME], str[128], tmp3[50];
  3003.         player1 = strval(params);
  3004.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3005.             GetPlayerIp(player1,tmp3,50);
  3006.             GetPlayerName(player1, playername, sizeof(playername));
  3007.             format(str,sizeof(str),"AKA: [%s id:%d] [%s] %s", playername, player1, tmp3, dini_Get("ladmin/config/aka.txt",tmp3) );
  3008.             return SendClientMessage(playerid,blue,str);
  3009.         } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  3010.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3011. }
  3012.  
  3013. dcmd_screen(playerid,params[]) {
  3014.     if(PlayerInfo[playerid][Level] >= 2) {
  3015.         new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3016.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /screen [playerid] [text]");
  3017.         new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3018.         player1 = strval(params);
  3019.  
  3020.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
  3021.             GetPlayerName(player1, playername, sizeof(playername));     GetPlayerName(playerid, adminname, sizeof(adminname));
  3022.             CMDMessageToAdmins(playerid,"SCREEN");
  3023.             format(string,sizeof(string),"Administrator %s has sent you a screen message",adminname);   SendClientMessage(player1,blue,string);
  3024.             format(string,sizeof(string),"You have sent %s a screen message (%s)", playername, params[2]); SendClientMessage(playerid,blue,string);
  3025.             return GameTextForPlayer(player1, params[2],4000,3);
  3026.         } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin");
  3027.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3028. }
  3029.  
  3030. dcmd_laston(playerid,params[]) {
  3031.     if(PlayerInfo[playerid][Level] >= 2) {
  3032.         new tmp2[256], file[256],player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], str[128];
  3033.         GetPlayerName(playerid, adminname, sizeof(adminname));
  3034.  
  3035.         if(!strlen(params)) {
  3036.             format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(adminname));
  3037.             if(!fexist(file)) return SendClientMessage(playerid, red, "Error: File doesnt exist, player isnt registered");
  3038.             if(dUserINT(PlayerName2(playerid)).("LastOn")==0) { format(str, sizeof(str),"Never"); tmp2 = str;
  3039.             } else { tmp2 = dini_Get(file,"LastOn"); }
  3040.             format(str, sizeof(str),"You were last on the server on %s",tmp2);
  3041.             return SendClientMessage(playerid, red, str);
  3042.         }
  3043.         player1 = strval(params);
  3044.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
  3045.             CMDMessageToAdmins(playerid,"LASTON");
  3046.             GetPlayerName(player1,playername,sizeof(playername)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(playername));
  3047.             if(!fexist(file)) return SendClientMessage(playerid, red, "Error: File doesnt exist, player isnt registered");
  3048.             if(dUserINT(PlayerName2(player1)).("LastOn")==0) { format(str, sizeof(str),"Never"); tmp2 = str;
  3049.             } else { tmp2 = dini_Get(file,"LastOn"); }
  3050.             format(str, sizeof(str),"%s was last on the server on %s",playername,tmp2);
  3051.             return SendClientMessage(playerid, red, str);
  3052.         } else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
  3053.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3054. }
  3055.  
  3056. dcmd_admins(playerid,params[]) {
  3057.     #pragma unused params
  3058.     new Count[2], i, string[128];
  3059.     for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
  3060.     {
  3061.         if(PlayerInfo[i][Level] > 0) Count[0]++;
  3062.         if(IsPlayerAdmin(i)) Count[1]++;
  3063.     }
  3064.  
  3065.     #if defined HIDE_ADMINS
  3066.     if(PlayerInfo[playerid][Level] == 0) {
  3067.         if(Count[0] >= 1) {
  3068.             format(string, sizeof(string), "There are %d Administrators online. Use /report <id> <reason> if you suspect a player of cheating", Count[0]);
  3069.             return SendClientMessage(playerid, blue, string);
  3070.         } else return SendClientMessage(playerid, blue, "No Administrators online");
  3071.     }
  3072.     #endif
  3073.  
  3074.     if( (Count[0] == 0 && Count[1] == 0) || (Count[0] == 0 && Count[1] >= 1 && PlayerInfo[playerid][Level] == 0) ) return SendClientMessage(playerid, blue, "No Administrators online");
  3075.  
  3076.     if(Count[0] == 1) {
  3077.         for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] > 0) {
  3078.             format(string, sizeof(string), "Admin: (%d)%s [%d]", i, PlayerName2(i), PlayerInfo[i][Level] ); SendClientMessage(playerid, blue, string);
  3079.         }
  3080.     }
  3081.  
  3082.     if(Count[0] > 1) {
  3083.         new x; format(string, sizeof(string), "Admins: ");
  3084.         for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] > 0)
  3085.         {
  3086.             format(string,sizeof(string),"%s(%d)%s [%d]",string,i,PlayerName2(i),PlayerInfo[i][Level]);
  3087.             x++;
  3088.             if(x >= 5) {
  3089.                 SendClientMessage(playerid, blue, string); format(string, sizeof(string), "Admins: "); x = 0;
  3090.             }
  3091.             else format(string, sizeof(string), "%s,  ", string);
  3092.         }
  3093.         if(x <= 4 && x > 0) {
  3094.             string[strlen(string)-3] = '.';
  3095.             SendClientMessage(playerid, blue, string);
  3096.         }
  3097.     }
  3098.  
  3099.     if( (Count[1] == 1) && (PlayerInfo[playerid][Level] > 0) ) {
  3100.         for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) {
  3101.             format(string, sizeof(string), "RCON Admin: (%d)%s", i, PlayerName2(i)); SendClientMessage(playerid, COLOR_WHITE, string);
  3102.         }
  3103.     }
  3104.     if(Count[1] > 1) {
  3105.         new x; format(string, sizeof(string), "RCON Admins: ");
  3106.         for(i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i))
  3107.         {
  3108.             format(string,sizeof(string),"%s(%d)%s",string,i,PlayerName2(i));
  3109.             x++;
  3110.             if(x >= 5) {
  3111.                 SendClientMessage(playerid, COLOR_WHITE, string); format(string, sizeof(string), "RCON Admins: "); x = 0;
  3112.             }
  3113.             else format(string, sizeof(string), "%s,  ", string);
  3114.         }
  3115.         if(x <= 4 && x > 0) {
  3116.             string[strlen(string)-3] = '.';
  3117.             SendClientMessage(playerid, COLOR_WHITE, string);
  3118.         }
  3119.     }
  3120.     return 1;
  3121. }
  3122.  
  3123. dcmd_morning(playerid,params[]) {
  3124.     #pragma unused params
  3125.     if(PlayerInfo[playerid][Level] >= 1) {
  3126.         CMDMessageToAdmins(playerid,"MORNING");
  3127.         return SetPlayerTime(playerid,7,0);
  3128.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  3129. }
  3130.  
  3131. dcmd_adminarea(playerid,params[]) {
  3132.     #pragma unused params
  3133.     if(PlayerInfo[playerid][Level] >= 1) {
  3134.         CMDMessageToAdmins(playerid,"ADMINAREA");
  3135.         SetPlayerPos(playerid, AdminArea[0], AdminArea[1], AdminArea[2]);
  3136.         SetPlayerFacingAngle(playerid, AdminArea[3]);
  3137.         SetPlayerInterior(playerid, AdminArea[4]);
  3138.         SetPlayerVirtualWorld(playerid, AdminArea[5]);
  3139.         return GameTextForPlayer(playerid,"Welcome Admin",1000,3);
  3140.     } else {
  3141.         SetPlayerHealth(playerid,1.0);
  3142.         new string[100]; format(string, sizeof(string),"%s has used adminarea (non admin)", PlayerName2(playerid) );
  3143.         MessageToAdmins(red,string);
  3144.     } return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command.");
  3145. }
  3146.  
  3147. dcmd_setlevel(playerid,params[]) {
  3148.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  3149.         if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3150.             new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3151.             if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");
  3152.             new player1, level, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  3153.             player1 = strval(tmp);
  3154.             if(!strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");
  3155.             level = strval(tmp2);
  3156.  
  3157.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3158.                 if(PlayerInfo[player1][LoggedIn] == 1) {
  3159.                     if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
  3160.                     if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  3161.                     CMDMessageToAdmins(playerid,"SETLEVEL");
  3162.                     GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  3163.                     new year,month,day;   getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  3164.  
  3165.                     if(level > 0) format(string,sizeof(string),"Administrator %s has set you to Administrator Status [level %d]",adminname, level);
  3166.                     else format(string,sizeof(string),"Administrator %s has set you to Player Status [level %d]",adminname, level);
  3167.                     SendClientMessage(player1,blue,string);
  3168.  
  3169.                     if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"Promoted", 2000, 3);
  3170.                     else GameTextForPlayer(player1,"Demoted", 2000, 3);
  3171.  
  3172.                     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);
  3173.                     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);
  3174.                     SaveToFile("AdminLog",string);
  3175.                     dUserSetINT(PlayerName2(player1)).("level",(level));
  3176.                     PlayerInfo[player1][Level] = level;
  3177.                     return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  3178.                 } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
  3179.             } else return SendClientMessage(playerid, red, "Player is not connected");
  3180.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3181.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3182. }
  3183.  
  3184. dcmd_settemplevel(playerid,params[]) {
  3185.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  3186.         if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid)) {
  3187.             new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3188.             if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /settemplevel [playerid] [level]");
  3189.             new player1, level, string[128];
  3190.             player1 = strval(tmp);
  3191.             level = strval(tmp2);
  3192.  
  3193.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3194.                 if(PlayerInfo[player1][LoggedIn] == 1) {
  3195.                     if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
  3196.                     if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  3197.                     CMDMessageToAdmins(playerid,"SETTEMPLEVEL");
  3198.                     new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
  3199.  
  3200.                     if(level > 0) format(string,sizeof(string),"Administrator %s has temporarily set you to Administrator Status [level %d]", pName(playerid), level);
  3201.                     else format(string,sizeof(string),"Administrator %s has temporarily set you to Player Status [level %d]", pName(playerid), level);
  3202.                     SendClientMessage(player1,blue,string);
  3203.  
  3204.                     if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"Promoted", 2000, 3);
  3205.                     else GameTextForPlayer(player1,"Demoted", 2000, 3);
  3206.  
  3207.                     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);
  3208.                     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);
  3209.                     SaveToFile("TempAdminLog",string);
  3210.                     PlayerInfo[player1][Level] = level;
  3211.                     return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  3212.                 } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
  3213.             } else return SendClientMessage(playerid, red, "Player is not connected");
  3214.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3215.     } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  3216. }
  3217.  
  3218. dcmd_report(playerid,params[]) {
  3219.     new reported, tmp[256], tmp2[256], Index;       tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3220.     if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /report [playerid] [reason]");
  3221.     reported = strval(tmp);
  3222.  
  3223.     if(IsPlayerConnected(reported) && reported != INVALID_PLAYER_ID) {
  3224.         if(PlayerInfo[reported][Level] == ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot report this administrator");
  3225.         if(playerid == reported) return SendClientMessage(playerid,red,"ERROR: You Cannot report yourself");
  3226.         if(strlen(params) > 7) {
  3227.             new reportedname[MAX_PLAYER_NAME], reporter[MAX_PLAYER_NAME], str[128], hour,minute,second; gettime(hour,minute,second);
  3228.             GetPlayerName(reported, reportedname, sizeof(reportedname));    GetPlayerName(playerid, reporter, sizeof(reporter));
  3229.             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);
  3230.             MessageToAdmins(COLOR_WHITE,str);
  3231.             SaveToFile("ReportLog",str);
  3232.             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]);
  3233.             for(new i = 1; i < MAX_REPORTS-1; i++) Reports[i] = Reports[i+1];
  3234.             Reports[MAX_REPORTS-1] = str;
  3235.             return SendClientMessage(playerid,yellow, "Your report has been sent to online administrators.");
  3236.         } else return SendClientMessage(playerid,red,"ERROR: Must be a valid reason");
  3237.     } else return SendClientMessage(playerid, red, "Player is not connected");
  3238. }
  3239.  
  3240. dcmd_reports(playerid,params[]) {
  3241.     #pragma unused params
  3242.     if(PlayerInfo[playerid][Level] >= 1) {
  3243.         new ReportCount;
  3244.         for(new i = 1; i < MAX_REPORTS; i++)
  3245.         {
  3246.             if(strcmp( Reports[i], "<none>", true) != 0) { ReportCount++; SendClientMessage(playerid,COLOR_WHITE,Reports[i]); }
  3247.         }
  3248.         if(ReportCount == 0) SendClientMessage(playerid,COLOR_WHITE,"There have been no reports");
  3249.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  3250.     return 1;
  3251. }
  3252.  
  3253. dcmd_richlist(playerid,params[]) {
  3254.     #pragma unused params
  3255.     if(PlayerInfo[playerid][Level] >= 1) {
  3256.         new string[128], Slot1 = -1, Slot2 = -1, Slot3 = -1, Slot4 = -1, HighestCash = -9999;
  3257.         SendClientMessage(playerid,COLOR_WHITE,"Rich List:");
  3258.  
  3259.         for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x)) if (GetPlayerMoney(x) >= HighestCash) {
  3260.             HighestCash = GetPlayerMoney(x);
  3261.             Slot1 = x;
  3262.         }
  3263.         HighestCash = -9999;
  3264.         for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1) if (GetPlayerMoney(x) >= HighestCash) {
  3265.             HighestCash = GetPlayerMoney(x);
  3266.             Slot2 = x;
  3267.         }
  3268.         HighestCash = -9999;
  3269.         for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1 && x != Slot2) if (GetPlayerMoney(x) >= HighestCash) {
  3270.             HighestCash = GetPlayerMoney(x);
  3271.             Slot3 = x;
  3272.         }
  3273.         HighestCash = -9999;
  3274.         for(new x=0; x<MAX_PLAYERS; x++) if (IsPlayerConnected(x) && x != Slot1 && x != Slot2 && x != Slot3) if (GetPlayerMoney(x) >= HighestCash) {
  3275.             HighestCash = GetPlayerMoney(x);
  3276.             Slot4 = x;
  3277.         }
  3278.         format(string, sizeof(string), "(%d) %s - $%d", Slot1,PlayerName2(Slot1),GetPlayerMoney(Slot1) );
  3279.         SendClientMessage(playerid,COLOR_WHITE,string);
  3280.         if(Slot2 != -1) {
  3281.             format(string, sizeof(string), "(%d) %s - $%d", Slot2,PlayerName2(Slot2),GetPlayerMoney(Slot2) );
  3282.             SendClientMessage(playerid,COLOR_WHITE,string);
  3283.         }
  3284.         if(Slot3 != -1) {
  3285.             format(string, sizeof(string), "(%d) %s - $%d", Slot3,PlayerName2(Slot3),GetPlayerMoney(Slot3) );
  3286.             SendClientMessage(playerid,COLOR_WHITE,string);
  3287.         }
  3288.         if(Slot4 != -1) {
  3289.             format(string, sizeof(string), "(%d) %s - $%d", Slot4,PlayerName2(Slot4),GetPlayerMoney(Slot4) );
  3290.             SendClientMessage(playerid,COLOR_WHITE,string);
  3291.         }
  3292.         return 1;
  3293.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3294. }
  3295.  
  3296. dcmd_miniguns(playerid,params[]) {
  3297.     #pragma unused params
  3298.     if(PlayerInfo[playerid][Level] >= 1) {
  3299.         new bool:First2 = false, Count, string[128], i, slot, weap, ammo;
  3300.         for(i = 0; i < MAX_PLAYERS; i++) {
  3301.             if(IsPlayerConnected(i)) {
  3302.                 for(slot = 0; slot < 14; slot++) {
  3303.                     GetPlayerWeaponData(i, slot, weap, ammo);
  3304.                     if(ammo != 0 && weap == 38) {
  3305.                         Count++;
  3306.                         if(!First2) { format(string, sizeof(string), "Minigun: (%d)%s(ammo%d)", i, PlayerName2(i), ammo); First2 = true; }
  3307.                         else format(string,sizeof(string),"%s, (%d)%s(ammo%d) ",string, i, PlayerName2(i), ammo);
  3308.                     }
  3309.                 }
  3310.             }
  3311.         }
  3312.         if(Count == 0) return SendClientMessage(playerid,COLOR_WHITE,"No players have a minigun"); else return SendClientMessage(playerid,COLOR_WHITE,string);
  3313.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3314. }
  3315.  
  3316. dcmd_uconfig(playerid,params[]) {
  3317.     #pragma unused params
  3318.     if(PlayerInfo[playerid][Level] >= 4)
  3319.     {
  3320.         UpdateConfig();
  3321.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  3322.         return CMDMessageToAdmins(playerid,"UCONFIG");
  3323.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3324. }
  3325.  
  3326. dcmd_botcheck(playerid,params[]) {
  3327.     #pragma unused params
  3328.     if(PlayerInfo[playerid][Level] >= 4) {
  3329.         for(new i=0; i<MAX_PLAYERS; i++) BotCheck(i);
  3330.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  3331.         return CMDMessageToAdmins(playerid,"BOTCHECK");
  3332.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3333. }
  3334.  
  3335. dcmd_lockserver(playerid,params[]) {
  3336.     if(PlayerInfo[playerid][Level] >= 4) {
  3337.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /lockserver [password]");
  3338.         new adminname[MAX_PLAYER_NAME], string[128];
  3339.         ServerInfo[Locked] = 1;
  3340.         strmid(ServerInfo[Password], params[0], 0, strlen(params[0]), 128);
  3341.         GetPlayerName(playerid, adminname, sizeof(adminname));
  3342.         format(string, sizeof(string), "Administrator \"%s\" has locked the server",adminname);
  3343.         SendClientMessageToAll(red,"________________________________________");
  3344.         SendClientMessageToAll(red," ");
  3345.         SendClientMessageToAll(red,string);
  3346.         SendClientMessageToAll(red,"________________________________________");
  3347.         for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][AllowedIn] = true; }
  3348.         CMDMessageToAdmins(playerid,"LOCKSERVER");
  3349.         format(string, sizeof(string), "Administrator \"%s\" has set the server password to '%s'",adminname, ServerInfo[Password] );
  3350.         return MessageToAdmins(COLOR_WHITE, string);
  3351.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3352. }
  3353.  
  3354. dcmd_unlockserver(playerid,params[]) {
  3355.     #pragma unused params
  3356.     if(PlayerInfo[playerid][Level] >= 4) {
  3357.         if(ServerInfo[Locked] == 1) {
  3358.             new adminname[MAX_PLAYER_NAME], string[128];
  3359.             ServerInfo[Locked] = 0;
  3360.             strmid(ServerInfo[Password], "", 0, strlen(""), 128);
  3361.             GetPlayerName(playerid, adminname, sizeof(adminname));
  3362.             format(string, sizeof(string), "Administrator \"%s\" has unlocked the server",adminname);
  3363.             SendClientMessageToAll(green,"________________________________________");
  3364.             SendClientMessageToAll(green," ");
  3365.             SendClientMessageToAll(green,string);
  3366.             SendClientMessageToAll(green,"________________________________________");
  3367.             for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][AllowedIn] = true; }
  3368.             return CMDMessageToAdmins(playerid,"UNLOCKSERVER");
  3369.         } else return SendClientMessage(playerid,red,"ERROR: Server is not locked");
  3370.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3371. }
  3372.  
  3373. dcmd_password(playerid,params[]) {
  3374.     if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /password [password]");
  3375.     if(ServerInfo[Locked] == 1) {
  3376.         if(PlayerInfo[playerid][AllowedIn] == false) {
  3377.             if(!strcmp(ServerInfo[Password],params[0],true)) {
  3378.                 KillTimer( LockKickTimer[playerid] );
  3379.                 PlayerInfo[playerid][AllowedIn] = true;
  3380.                 new string[128];
  3381.                 SendClientMessage(playerid,COLOR_WHITE,"You have successsfully entered the server password and may now spawn");
  3382.                 format(string, sizeof(string), "%s has successfully entered server password",PlayerName2(playerid));
  3383.                 return MessageToAdmins(COLOR_WHITE, string);
  3384.             } else return SendClientMessage(playerid,red,"ERROR: Incorrect server password");
  3385.         } else return SendClientMessage(playerid,red,"ERROR: You are already logged in");
  3386.     } else return SendClientMessage(playerid,red,"ERROR: Server isnt Locked");
  3387. }
  3388.  
  3389. //------------------------------------------------------------------------------
  3390. dcmd_forbidname(playerid,params[]) {
  3391.     if(PlayerInfo[playerid][Level] >= 4) {
  3392.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /forbidname [nickname]");
  3393.         new File:BLfile, string[128];
  3394.         BLfile = fopen("ladmin/config/ForbiddenNames.cfg",io_append);
  3395.         format(string,sizeof(string),"%s\r\n",params[1]);
  3396.         fwrite(BLfile,string);
  3397.         fclose(BLfile);
  3398.         UpdateConfig();
  3399.         CMDMessageToAdmins(playerid,"FORBIDNAME");
  3400.         format(string, sizeof(string), "Administrator \"%s\" has added the name \"%s\" to the forbidden name list", pName(playerid), params );
  3401.         return MessageToAdmins(green,string);
  3402.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3403. }
  3404.  
  3405. dcmd_forbidword(playerid,params[]) {
  3406.     if(PlayerInfo[playerid][Level] >= 4) {
  3407.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /forbidword [word]");
  3408.         new File:BLfile, string[128];
  3409.         BLfile = fopen("ladmin/config/ForbiddenWords.cfg",io_append);
  3410.         format(string,sizeof(string),"%s\r\n",params[1]);
  3411.         fwrite(BLfile,string);
  3412.         fclose(BLfile);
  3413.         UpdateConfig();
  3414.         CMDMessageToAdmins(playerid,"FORBIDWORD");
  3415.         format(string, sizeof(string), "Administrator \"%s\" has added the word \"%s\" to the forbidden word list", pName(playerid), params );
  3416.         return MessageToAdmins(green,string);
  3417.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3418. }
  3419.  
  3420. //==========================[ Spectate Commands ]===============================
  3421. #if defined ENABLE_SPEC
  3422.  
  3423. dcmd_lspec(playerid,params[]) {
  3424.     if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3425.         if(!strlen(params) || !IsNumeric(params)) return SendClientMessage(playerid, red, "USAGE: /lspec [playerid]");
  3426.         new specplayerid = strval(params);
  3427.         if(PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3428.         if(IsPlayerConnected(specplayerid) && specplayerid != INVALID_PLAYER_ID) {
  3429.             if(specplayerid == playerid) return SendClientMessage(playerid, red, "ERROR: You cannot spectate yourself");
  3430.             if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && PlayerInfo[specplayerid][SpecID] != INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "Spectate: Player spectating someone else");
  3431.             if(GetPlayerState(specplayerid) != 1 && GetPlayerState(specplayerid) != 2 && GetPlayerState(specplayerid) != 3) return SendClientMessage(playerid, red, "Spectate: Player not spawned");
  3432.             if( (PlayerInfo[specplayerid][Level] != ServerInfo[MaxAdminLevel]) || (PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] == ServerInfo[MaxAdminLevel]) )  {
  3433.                 StartSpectate(playerid, specplayerid);
  3434.                 CMDMessageToAdmins(playerid,"LSPEC");
  3435.                 GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  3436.                 GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  3437.                 return SendClientMessage(playerid,blue,"Now Spectating");
  3438.             } else return SendClientMessage(playerid,red,"ERROR: You cannot spectate the highest level admin");
  3439.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3440.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3441. }
  3442.  
  3443. dcmd_lspecvehicle(playerid,params[]) {
  3444.     if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3445.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /lspecvehicle [vehicleid]");
  3446.         new specvehicleid = strval(params);
  3447.         if(specvehicleid < MAX_VEHICLES) {
  3448.             TogglePlayerSpectating(playerid, 1);
  3449.             PlayerSpectateVehicle(playerid, specvehicleid);
  3450.             PlayerInfo[playerid][SpecID] = specvehicleid;
  3451.             PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  3452.             CMDMessageToAdmins(playerid,"SPEC VEHICLE");
  3453.             GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  3454.             GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  3455.             return SendClientMessage(playerid,blue,"Now Spectating");
  3456.         } else return SendClientMessage(playerid,red, "ERROR: Invalid Vehicle ID");
  3457.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3458. }
  3459. dcmd_lspecoff(playerid,params[]) {
  3460.     #pragma unused params
  3461.     if(PlayerInfo[playerid][Level] >= 2 || IsPlayerAdmin(playerid)) {
  3462.         if(PlayerInfo[playerid][SpecType] != ADMIN_SPEC_TYPE_NONE) {
  3463.             StopSpectate(playerid);
  3464.             SetTimerEx("PosAfterSpec",3000,0,"d",playerid);
  3465.             return SendClientMessage(playerid,blue,"No Longer Spectating");
  3466.         } else return SendClientMessage(playerid,red,"ERROR: You are not spectating");
  3467.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3468. }
  3469.  
  3470. #endif
  3471.  
  3472. //==========================[ CHAT COMMANDS ]===================================
  3473.  
  3474. dcmd_disablechat(playerid,params[]) {
  3475.     #pragma unused params
  3476.     if(PlayerInfo[playerid][Level] >= 3) {
  3477.         CMDMessageToAdmins(playerid,"DISABLECHAT");
  3478.         new string[128];
  3479.         if(ServerInfo[DisableChat] == 0) {
  3480.             ServerInfo[DisableChat] = 1;
  3481.             format(string,sizeof(string),"Administrator \"%s\" has disabled chat", pName(playerid) );
  3482.         } else {
  3483.             ServerInfo[DisableChat] = 0;
  3484.             format(string,sizeof(string),"Administrator \"%s\" has enabled chat", pName(playerid) );
  3485.         } return SendClientMessageToAll(blue,string);
  3486.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3487. }
  3488.  
  3489. dcmd_clearchat(playerid,params[]) {
  3490.     #pragma unused params
  3491.     if(PlayerInfo[playerid][Level] >= 2) {
  3492.         CMDMessageToAdmins(playerid,"CLEARCHAT");
  3493.         for(new i = 0; i < 11; i++) SendClientMessageToAll(green," "); return 1;
  3494.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");
  3495. }
  3496.  
  3497. dcmd_clearallchat(playerid,params[]) {
  3498.     #pragma unused params
  3499.     if(PlayerInfo[playerid][Level] >= 3) {
  3500.         CMDMessageToAdmins(playerid,"CLEARALLCHAT");
  3501.         for(new i = 0; i < 50; i++) SendClientMessageToAll(green," "); return 1;
  3502.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3503. }
  3504.  
  3505. dcmd_caps(playerid,params[]) {
  3506.     if(PlayerInfo[playerid][Level] >= 3) {
  3507.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3508.         if(!strlen(tmp) || !strlen(tmp2) || IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [\"on\" / \"off\"]");
  3509.         new player1 = strval(tmp), string[128];
  3510.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3511.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3512.             if(strcmp(tmp2,"on",true) == 0) {
  3513.                 CMDMessageToAdmins(playerid,"CAPS");
  3514.                 PlayerInfo[player1][Caps] = 0;
  3515.                 if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has allowed you to use capitals in chat", pName(playerid) ); SendClientMessage(playerid,blue,string); }
  3516.                 format(string,sizeof(string),"You have allowed \"%s\" to use capitals in chat", pName(player1) ); return SendClientMessage(playerid,blue,string);
  3517.             } else if(strcmp(tmp2,"off",true) == 0) {
  3518.                 CMDMessageToAdmins(playerid,"CAPS");
  3519.                 PlayerInfo[player1][Caps] = 1;
  3520.                 if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has prevented you from using capitals in chat", pName(playerid) ); SendClientMessage(playerid,blue,string); }
  3521.                 format(string,sizeof(string),"You have prevented \"%s\" from using capitals in chat", pName(player1) ); return SendClientMessage(playerid,blue,string);
  3522.             } else return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [\"on\" / \"off\"]");
  3523.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3524.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3525. }
  3526.  
  3527. //==================[ Object & Pickup ]=========================================
  3528. dcmd_pickup(playerid,params[]) {
  3529.     if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3530.         if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /pickup [pickup id]");
  3531.         new pickup = strval(params), string[128], Float:x, Float:y, Float:z, Float:a;
  3532.         CMDMessageToAdmins(playerid,"PICKUP");
  3533.         GetPlayerPos(playerid, x, y, z);
  3534.         GetPlayerFacingAngle(playerid, a);
  3535.         x += (3 * floatsin(-a, degrees));
  3536.         y += (3 * floatcos(-a, degrees));
  3537.         CreatePickup(pickup, 2, x+2, y, z);
  3538.         format(string, sizeof(string), "CreatePickup(%d, 2, %0.2f, %0.2f, %0.2f);", pickup, x+2, y, z);
  3539.         SaveToFile("Pickups",string);
  3540.         return SendClientMessage(playerid,yellow, string);
  3541.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3542. }
  3543.  
  3544. dcmd_object(playerid,params[]) {
  3545.     if(PlayerInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid)) {
  3546.         if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /object [object id]");
  3547.         new object = strval(params), string[128], Float:x, Float:y, Float:z, Float:a;
  3548.         CMDMessageToAdmins(playerid,"OBJECT");
  3549.         GetPlayerPos(playerid, x, y, z);
  3550.         GetPlayerFacingAngle(playerid, a);
  3551.         x += (3 * floatsin(-a, degrees));
  3552.         y += (3 * floatcos(-a, degrees));
  3553.         CreateObject(object, x, y, z, 0.0, 0.0, a);
  3554.         format(string, sizeof(string), "CreateObject(%d, %0.2f, %0.2f, %0.2f, 0.00, 0.00, %0.2f);", object, x, y, z, a);
  3555.         SaveToFile("Objects",string);
  3556.         format(string, sizeof(string), "You Have Created Object %d, at %0.2f, %0.2f, %0.2f Angle %0.2f", object, x, y, z, a);
  3557.         return SendClientMessage(playerid,yellow, string);
  3558.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3559. }
  3560.  
  3561. //===================[ Move ]===================================================
  3562.  
  3563. dcmd_move(playerid,params[]) {
  3564.     if(PlayerInfo[playerid][Level] >= 3) {
  3565.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /move [up / down / +x / -x / +y / -y / off]");
  3566.         new Float:X, Float:Y, Float:Z;
  3567.         if(strcmp(params,"up",true) == 0)   {
  3568.             TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z+5); SetCameraBehindPlayer(playerid); }
  3569.         else if(strcmp(params,"down",true) == 0)    {
  3570.             TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z-5); SetCameraBehindPlayer(playerid); }
  3571.         else if(strcmp(params,"+x",true) == 0)  {
  3572.             TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X+5,Y,Z); }
  3573.         else if(strcmp(params,"-x",true) == 0)  {
  3574.             TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X-5,Y,Z); }
  3575.         else if(strcmp(params,"+y",true) == 0)  {
  3576.             TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y+5,Z); }
  3577.         else if(strcmp(params,"-y",true) == 0)  {
  3578.             TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y-5,Z); }
  3579.         else if(strcmp(params,"off",true) == 0) {
  3580.             TogglePlayerControllable(playerid,true);    }
  3581.         else return SendClientMessage(playerid,red,"USAGE: /move [up / down / +x / -x / +y / -y / off]");
  3582.         return 1;
  3583.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3584. }
  3585.  
  3586. dcmd_moveplayer(playerid,params[]) {
  3587.     if(PlayerInfo[playerid][Level] >= 3) {
  3588.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3589.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp)) return SendClientMessage(playerid, red, "USAGE: /moveplayer [playerid] [up / down / +x / -x / +y / -y / off]");
  3590.         new Float:X, Float:Y, Float:Z, 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.             if(strcmp(tmp2,"up",true) == 0) {
  3594.                 GetPlayerPos(player1,X,Y,Z);    SetPlayerPos(player1,X,Y,Z+5); SetCameraBehindPlayer(player1)}
  3595.             else if(strcmp(tmp2,"down",true) == 0)  {
  3596.                 GetPlayerPos(player1,X,Y,Z);    SetPlayerPos(player1,X,Y,Z-5); SetCameraBehindPlayer(player1)}
  3597.             else if(strcmp(tmp2,"+x",true) == 0)    {
  3598.                 GetPlayerPos(player1,X,Y,Z);    SetPlayerPos(player1,X+5,Y,Z)}
  3599.             else if(strcmp(tmp2,"-x",true) == 0)    {
  3600.                 GetPlayerPos(player1,X,Y,Z);    SetPlayerPos(player1,X-5,Y,Z); }
  3601.             else if(strcmp(tmp2,"+y",true) == 0)    {
  3602.                 GetPlayerPos(player1,X,Y,Z);    SetPlayerPos(player1,X,Y+5,Z)}
  3603.             else if(strcmp(tmp2,"-y",true) == 0)    {
  3604.                 GetPlayerPos(player1,X,Y,Z);    SetPlayerPos(player1,X,Y-5,Z)}
  3605.             else SendClientMessage(playerid,red,"USAGE: /moveplayer [up / down / +x / -x / +y / -y / off]");
  3606.             return 1;
  3607.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3608.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3609. }
  3610.  
  3611. //===================[ Fake ]===================================================
  3612.  
  3613. #if defined ENABLE_FAKE_CMDS
  3614. dcmd_fakedeath(playerid,params[]) {
  3615.     if(PlayerInfo[playerid][Level] >= 4) {
  3616.         new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
  3617.         if(!strlen(tmp) || !strlen(tmp2) || !strlen(tmp3)) return SendClientMessage(playerid, red, "USAGE: /fakedeath [killer] [killee] [weapon]");
  3618.         new killer = strval(tmp), killee = strval(tmp2), weap = strval(tmp3);
  3619.         if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid Weapon ID");
  3620.         if(PlayerInfo[killer][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3621.         if(PlayerInfo[killee][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3622.  
  3623.         if(IsPlayerConnected(killer) && killer != INVALID_PLAYER_ID) {
  3624.             if(IsPlayerConnected(killee) && killee != INVALID_PLAYER_ID) {
  3625.                 CMDMessageToAdmins(playerid,"FAKEDEATH");
  3626.                 SendDeathMessage(killer,killee,weap);
  3627.                 return SendClientMessage(playerid,blue,"Fake death message sent");
  3628.             } else return SendClientMessage(playerid,red,"ERROR: Killee is not connected");
  3629.         } else return SendClientMessage(playerid,red,"ERROR: Killer is not connected");
  3630.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3631. }
  3632.  
  3633. dcmd_fakechat(playerid,params[]) {
  3634.     if(PlayerInfo[playerid][Level] >= 5) {
  3635.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3636.         if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /fakechat [playerid] [text]");
  3637.         new player1 = strval(tmp);
  3638.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3639.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3640.             CMDMessageToAdmins(playerid,"FAKECHAT");
  3641.             SendPlayerMessageToAll(player1, params[strlen(tmp)+1]);
  3642.             return SendClientMessage(playerid,blue,"Fake message sent");
  3643.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3644.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3645. }
  3646.  
  3647. dcmd_fakecmd(playerid,params[]) {
  3648.     if(PlayerInfo[playerid][Level] >= 5) {
  3649.         new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  3650.         if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /fakecmd [playerid] [command]");
  3651.         new player1 = strval(tmp);
  3652.         if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  3653.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  3654.             CMDMessageToAdmins(playerid,"FAKECMD");
  3655.             CallRemoteFunction("OnPlayerCommandText", "is", player1, tmp2);
  3656.             return SendClientMessage(playerid,blue,"Fake command sent");
  3657.         } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
  3658.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3659. }
  3660. #endif
  3661.  
  3662. //----------------------------------------------------------------------------//
  3663. //                      /all Commands                                         //
  3664. //----------------------------------------------------------------------------//
  3665.  
  3666. dcmd_spawnall(playerid,params[]) {
  3667.     #pragma unused params
  3668.     if(PlayerInfo[playerid][Level] >= 4) {
  3669.         CMDMessageToAdmins(playerid,"SPAWNAll");
  3670.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3671.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3672.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerPos(i, 0.0, 0.0, 0.0); SpawnPlayer(i);
  3673.             }
  3674.         }
  3675.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has spawned all players", pName(playerid) );
  3676.         return SendClientMessageToAll(blue, string);
  3677.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3678. }
  3679.  
  3680. dcmd_muteall(playerid,params[]) {
  3681.     #pragma unused params
  3682.     if(PlayerInfo[playerid][Level] >= 4) {
  3683.         CMDMessageToAdmins(playerid,"MUTEALL");
  3684.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3685.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3686.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][Muted] = 1; PlayerInfo[i][MuteWarnings] = 0;
  3687.             }
  3688.         }
  3689.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has muted all players", pName(playerid) );
  3690.         return SendClientMessageToAll(blue, string);
  3691.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3692. }
  3693.  
  3694. dcmd_unmuteall(playerid,params[]) {
  3695.     #pragma unused params
  3696.     if(PlayerInfo[playerid][Level] >= 4) {
  3697.         CMDMessageToAdmins(playerid,"UNMUTEAll");
  3698.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3699.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3700.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); PlayerInfo[i][Muted] = 0; PlayerInfo[i][MuteWarnings] = 0;
  3701.             }
  3702.         }
  3703.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unmuted all players", pName(playerid) );
  3704.         return SendClientMessageToAll(blue, string);
  3705.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3706. }
  3707.  
  3708. dcmd_getall(playerid,params[]) {
  3709.     #pragma unused params
  3710.     if(PlayerInfo[playerid][Level] >= 4) {
  3711.         CMDMessageToAdmins(playerid,"GETAll");
  3712.         new Float:x,Float:y,Float:z, interior = GetPlayerInterior(playerid);
  3713.         GetPlayerPos(playerid,x,y,z);
  3714.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3715.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3716.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerPos(i,x+(playerid/4)+1,y+(playerid/4),z); SetPlayerInterior(i,interior);
  3717.             }
  3718.         }
  3719.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has teleported all players", pName(playerid) );
  3720.         return SendClientMessageToAll(blue, string);
  3721.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3722. }
  3723.  
  3724. dcmd_healall(playerid,params[]) {
  3725.     #pragma unused params
  3726.     if(PlayerInfo[playerid][Level] >= 3) {
  3727.         CMDMessageToAdmins(playerid,"HEALALL");
  3728.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3729.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3730.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerHealth(i,100.0);
  3731.             }
  3732.         }
  3733.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has healed all players", pName(playerid) );
  3734.         return SendClientMessageToAll(blue, string);
  3735.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3736. }
  3737.  
  3738. dcmd_armourall(playerid,params[]) {
  3739.     #pragma unused params
  3740.     if(PlayerInfo[playerid][Level] >= 3) {
  3741.         CMDMessageToAdmins(playerid,"ARMOURALL");
  3742.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3743.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3744.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerArmour(i,100.0);
  3745.             }
  3746.         }
  3747.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has restored all players armour", pName(playerid) );
  3748.         return SendClientMessageToAll(blue, string);
  3749.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");
  3750. }
  3751.  
  3752. dcmd_killall(playerid,params[]) {
  3753.     #pragma unused params
  3754.     if(PlayerInfo[playerid][Level] >= 4) {
  3755.         CMDMessageToAdmins(playerid,"KILLALL");
  3756.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3757.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3758.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); SetPlayerHealth(i,0.0);
  3759.             }
  3760.         }
  3761.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has killed all players", pName(playerid) );
  3762.         return SendClientMessageToAll(blue, string);
  3763.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3764. }
  3765.  
  3766. dcmd_freezeall(playerid,params[]) {
  3767.     #pragma unused params
  3768.     if(PlayerInfo[playerid][Level] >= 4) {
  3769.         CMDMessageToAdmins(playerid,"FREEZEALL");
  3770.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3771.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3772.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); TogglePlayerControllable(playerid,false); PlayerInfo[i][Frozen] = 1;
  3773.             }
  3774.         }
  3775.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has frozen all players", pName(playerid) );
  3776.         return SendClientMessageToAll(blue, string);
  3777.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3778. }
  3779.  
  3780. dcmd_unfreezeall(playerid,params[]) {
  3781.     #pragma unused params
  3782.     if(PlayerInfo[playerid][Level] >= 4) {
  3783.         CMDMessageToAdmins(playerid,"UNFREEZEALL");
  3784.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3785.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3786.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); TogglePlayerControllable(playerid,true); PlayerInfo[i][Frozen] = 0;
  3787.             }
  3788.         }
  3789.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has unfrozen all players", pName(playerid) );
  3790.         return SendClientMessageToAll(blue, string);
  3791.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3792. }
  3793.  
  3794. dcmd_kickall(playerid,params[]) {
  3795.     #pragma unused params
  3796.     if(PlayerInfo[playerid][Level] >= 4) {
  3797.         CMDMessageToAdmins(playerid,"KICKALL");
  3798.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3799.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3800.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); Kick(i);
  3801.             }
  3802.         }
  3803.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has kicked all players", pName(playerid) );
  3804.         SaveToFile("KickLog",string);
  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. dcmd_slapall(playerid,params[]) {
  3810.     #pragma unused params
  3811.     if(PlayerInfo[playerid][Level] >= 4) {
  3812.         CMDMessageToAdmins(playerid,"SLAPALL");
  3813.         new Float:x, Float:y, Float:z;
  3814.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3815.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3816.                 PlayerPlaySound(i,1190,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); SetPlayerPos(i,x,y,z+4);
  3817.             }
  3818.         }
  3819.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has slapped all players", pName(playerid) );
  3820.         return SendClientMessageToAll(blue, string);
  3821.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3822. }
  3823.  
  3824. dcmd_explodeall(playerid,params[]) {
  3825.     #pragma unused params
  3826.     if(PlayerInfo[playerid][Level] >= 4) {
  3827.         CMDMessageToAdmins(playerid,"EXPLODEALL");
  3828.         new Float:x, Float:y, Float:z;
  3829.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3830.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3831.                 PlayerPlaySound(i,1190,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); CreateExplosion(x, y , z, 7, 10.0);
  3832.             }
  3833.         }
  3834.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has exploded all players", pName(playerid) );
  3835.         return SendClientMessageToAll(blue, string);
  3836.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3837. }
  3838.  
  3839. dcmd_disarmall(playerid,params[]) {
  3840.     #pragma unused params
  3841.     if(PlayerInfo[playerid][Level] >= 4) {
  3842.         CMDMessageToAdmins(playerid,"DISARMALL");
  3843.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3844.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3845.                 PlayerPlaySound(i,1057,0.0,0.0,0.0); ResetPlayerWeapons(i);
  3846.             }
  3847.         }
  3848.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has disarmed all players", pName(playerid) );
  3849.         return SendClientMessageToAll(blue, string);
  3850.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3851. }
  3852.  
  3853. dcmd_ejectall(playerid,params[]) {
  3854.     #pragma unused params
  3855.     if(PlayerInfo[playerid][Level] >= 4) {
  3856.         CMDMessageToAdmins(playerid,"EJECTALL");
  3857.         new Float:x, Float:y, Float:z;
  3858.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3859.             if(IsPlayerConnected(i) && (i != playerid) && i != ServerInfo[MaxAdminLevel]) {
  3860.                 if(IsPlayerInAnyVehicle(i)) {
  3861.                     PlayerPlaySound(i,1057,0.0,0.0,0.0); GetPlayerPos(i,x,y,z); SetPlayerPos(i,x,y,z+3);
  3862.                 }
  3863.             }
  3864.         }
  3865.         new string[128]; format(string,sizeof(string),"Administrator \"%s\" has ejected all players", pName(playerid) );
  3866.         return SendClientMessageToAll(blue, string);
  3867.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");
  3868. }
  3869.  
  3870. //-------------==== Set All Commands ====-------------//
  3871.  
  3872. dcmd_setallskin(playerid,params[]) {
  3873.     if(PlayerInfo[playerid][Level] >= 3) {
  3874.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallskin [skinid]");
  3875.         new var = strval(params), string[128];
  3876.         if(!IsValidSkin(var)) return SendClientMessage(playerid, red, "ERROR: Invaild Skin ID");
  3877.         CMDMessageToAdmins(playerid,"SETALLSKIN");
  3878.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3879.             if(IsPlayerConnected(i)) {
  3880.                 PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3881.                 SetPlayerSkin(i,var);
  3882.             }
  3883.         }
  3884.         format(string,sizeof(string),"Administrator \"%s\" has set all players skin to '%d'", pName(playerid), var );
  3885.         return SendClientMessageToAll(blue, string);
  3886.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3887. }
  3888.  
  3889. dcmd_setallwanted(playerid,params[]) {
  3890.     if(PlayerInfo[playerid][Level] >= 3) {
  3891.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallwanted [wanted level]");
  3892.         new var = strval(params), string[128];
  3893.         CMDMessageToAdmins(playerid,"SETALLWANTED");
  3894.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3895.             if(IsPlayerConnected(i)) {
  3896.                 PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3897.                 SetPlayerWantedLevel(i,var);
  3898.             }
  3899.         }
  3900.         format(string,sizeof(string),"Administrator \"%s\" has set all players wanted level to '%d'", pName(playerid), var );
  3901.         return SendClientMessageToAll(blue, string);
  3902.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3903. }
  3904.  
  3905. dcmd_setallweather(playerid,params[]) {
  3906.     if(PlayerInfo[playerid][Level] >= 3) {
  3907.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallweather [weather ID]");
  3908.         new var = strval(params), string[128];
  3909.         CMDMessageToAdmins(playerid,"SETALLWEATHER");
  3910.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3911.             if(IsPlayerConnected(i)) {
  3912.                 PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3913.                 SetPlayerWeather(i, var);
  3914.             }
  3915.         }
  3916.         format(string,sizeof(string),"Administrator \"%s\" has set all players weather to '%d'", pName(playerid), var );
  3917.         return SendClientMessageToAll(blue, string);
  3918.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3919. }
  3920.  
  3921. dcmd_setalltime(playerid,params[]) {
  3922.     if(PlayerInfo[playerid][Level] >= 3) {
  3923.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setalltime [hour]");
  3924.         new var = strval(params), string[128];
  3925.         if(var > 24) return SendClientMessage(playerid, red, "ERROR: Invalid hour");
  3926.         CMDMessageToAdmins(playerid,"SETALLTIME");
  3927.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3928.             if(IsPlayerConnected(i)) {
  3929.                 PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3930.                 SetPlayerTime(i, var, 0);
  3931.             }
  3932.         }
  3933.         format(string,sizeof(string),"Administrator \"%s\" has set all players time to '%d:00'", pName(playerid), var );
  3934.         return SendClientMessageToAll(blue, string);
  3935.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3936. }
  3937.  
  3938. dcmd_setallworld(playerid,params[]) {
  3939.     if(PlayerInfo[playerid][Level] >= 3) {
  3940.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallworld [virtual world]");
  3941.         new var = strval(params), string[128];
  3942.         CMDMessageToAdmins(playerid,"SETALLWORLD");
  3943.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3944.             if(IsPlayerConnected(i)) {
  3945.                 PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3946.                 SetPlayerVirtualWorld(i,var);
  3947.             }
  3948.         }
  3949.         format(string,sizeof(string),"Administrator \"%s\" has set all players virtual worlds to '%d'", pName(playerid), var );
  3950.         return SendClientMessageToAll(blue, string);
  3951.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3952. }
  3953.  
  3954. dcmd_setallscore(playerid,params[]) {
  3955.     if(PlayerInfo[playerid][Level] >= 3) {
  3956.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallscore [score]");
  3957.         new var = strval(params), string[128];
  3958.         CMDMessageToAdmins(playerid,"SETALLSCORE");
  3959.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3960.             if(IsPlayerConnected(i)) {
  3961.                 PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3962.                 SetPlayerScore(i,var);
  3963.             }
  3964.         }
  3965.         format(string,sizeof(string),"Administrator \"%s\" has set all players scores to '%d'", pName(playerid), var );
  3966.         return SendClientMessageToAll(blue, string);
  3967.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3968. }
  3969.  
  3970. dcmd_setallcash(playerid,params[]) {
  3971.     if(PlayerInfo[playerid][Level] >= 3) {
  3972.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /setallcash [Amount]");
  3973.         new var = strval(params), string[128];
  3974.         CMDMessageToAdmins(playerid,"SETALLCASH");
  3975.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3976.             if(IsPlayerConnected(i)) {
  3977.                 PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3978.                 ResetPlayerMoney(i);
  3979.                 GivePlayerMoney(i,var);
  3980.             }
  3981.         }
  3982.         format(string,sizeof(string),"Administrator \"%s\" has set all players cash to '$%d'", pName(playerid), var );
  3983.         return SendClientMessageToAll(blue, string);
  3984.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  3985. }
  3986.  
  3987. dcmd_giveallcash(playerid,params[]) {
  3988.     if(PlayerInfo[playerid][Level] >= 3) {
  3989.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /giveallcash [Amount]");
  3990.         new var = strval(params), string[128];
  3991.         CMDMessageToAdmins(playerid,"GIVEALLCASH");
  3992.         for(new i = 0; i < MAX_PLAYERS; i++) {
  3993.             if(IsPlayerConnected(i)) {
  3994.                 PlayerPlaySound(i,1057,0.0,0.0,0.0);
  3995.                 GivePlayerMoney(i,var);
  3996.             }
  3997.         }
  3998.         format(string,sizeof(string),"Administrator \"%s\" has given all players '$%d'", pName(playerid), var );
  3999.         return SendClientMessageToAll(blue, string);
  4000.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4001. }
  4002.  
  4003. dcmd_giveallweapon(playerid,params[]) {
  4004.     if(PlayerInfo[playerid][Level] >= 3) {
  4005.         new tmp[256], tmp2[256], Index, ammo, weap, WeapName[32], string[128]; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4006.         if(!strlen(tmp) ) return SendClientMessage(playerid, red, "USAGE: /giveallweapon [weapon id/weapon name] [ammo]");
  4007.         if(!strlen(tmp2) || !IsNumeric(tmp2) || strval(tmp2) <= 0 || strval(tmp2) > 99999) ammo = 500;
  4008.         if(!IsNumeric(tmp)) weap = GetWeaponIDFromName(tmp); else weap = strval(tmp);
  4009.         if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Invalid weapon ID");
  4010.         CMDMessageToAdmins(playerid,"GIVEALLWEAPON");
  4011.         for(new i = 0; i < MAX_PLAYERS; i++) {
  4012.             if(IsPlayerConnected(i)) {
  4013.                 PlayerPlaySound(i,1057,0.0,0.0,0.0);
  4014.                 GivePlayerWeapon(i,weap,ammo);
  4015.             }
  4016.         }
  4017.         GetWeaponName(weap, WeapName, sizeof(WeapName) );
  4018.         format(string,sizeof(string),"Administrator \"%s\" has given all players a %s (%d) with %d rounds of ammo", pName(playerid), WeapName, weap, ammo);
  4019.         return SendClientMessageToAll(blue, string);
  4020.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4021. }
  4022.  
  4023.  
  4024. //================================[ Menu Commands ]=============================
  4025.  
  4026. #if defined USE_MENUS
  4027.  
  4028. dcmd_lmenu(playerid,params[]) {
  4029.     #pragma unused params
  4030.     if(PlayerInfo[playerid][Level] >= 2) {
  4031.         if(IsPlayerInAnyVehicle(playerid)) {
  4032.         TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LMainMenu,playerid);
  4033.         } else return ShowMenuForPlayer(LMainMenu,playerid);
  4034.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4035. }
  4036. dcmd_ltele(playerid,params[]) {
  4037.     #pragma unused params
  4038.     if(PlayerInfo[playerid][Level] >= 2) {
  4039.         if(IsPlayerInAnyVehicle(playerid)) {
  4040.         TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTele,playerid);
  4041.         } else return ShowMenuForPlayer(LTele,playerid);
  4042.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4043. }
  4044. dcmd_lweather(playerid,params[]) {
  4045.     #pragma unused params
  4046.     if(PlayerInfo[playerid][Level] >= 3) {
  4047.         if(IsPlayerInAnyVehicle(playerid)) {
  4048.         TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LWeather,playerid);
  4049.         } else return ShowMenuForPlayer(LWeather,playerid);
  4050.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4051. }
  4052. dcmd_ltime(playerid,params[]) {
  4053.     #pragma unused params
  4054.     if(PlayerInfo[playerid][Level] >= 3) {
  4055.         if(IsPlayerInAnyVehicle(playerid)) {
  4056.         TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTime,playerid);
  4057.         } else return ShowMenuForPlayer(LTime,playerid);
  4058.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4059. }
  4060. dcmd_cm(playerid,params[]) {
  4061.     #pragma unused params
  4062.     if(PlayerInfo[playerid][Level] >= 2) {
  4063.         if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You already have a car.");
  4064.         else { ShowMenuForPlayer(LCars,playerid); return TogglePlayerControllable(playerid,false);  }
  4065.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4066. }
  4067. dcmd_ltmenu(playerid,params[]) {
  4068.     #pragma unused params
  4069.     if(PlayerInfo[playerid][Level] >= 2) {
  4070.         if(IsPlayerInAnyVehicle(playerid)) {
  4071.         new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  4072.         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!"); }
  4073.         TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(LTuneMenu,playerid);
  4074.         } else return SendClientMessage(playerid,red,"ERROR: You do not have a vehicle to tune");
  4075.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4076. }
  4077. dcmd_lweapons(playerid,params[]) {
  4078.     #pragma unused params
  4079.     if(PlayerInfo[playerid][Level] >= 3) {
  4080.         if(IsPlayerInAnyVehicle(playerid)) {
  4081.         TogglePlayerControllable(playerid,false); return ShowMenuForPlayer(XWeapons,playerid);
  4082.         } else return ShowMenuForPlayer(XWeapons,playerid);
  4083.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4084. }
  4085. dcmd_lvehicle(playerid,params[]) {
  4086.     #pragma unused params
  4087.     if(PlayerInfo[playerid][Level] >= 2) {
  4088.         if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"ERROR: You already have a car.");
  4089.         else { ShowMenuForPlayer(LVehicles,playerid); return TogglePlayerControllable(playerid,false);  }
  4090.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4091. }
  4092.  
  4093. #endif
  4094.  
  4095. //----------------------===== Place & Skin Saving =====-------------------------
  4096. dcmd_gotoplace(playerid,params[]) {
  4097.     #pragma unused params
  4098.     if(PlayerInfo[playerid][LoggedIn] == 1 && PlayerInfo[playerid][Level] >= 1) {
  4099.         if (dUserINT(PlayerName2(playerid)).("x")!=0) {
  4100.             PutAtPos(playerid);
  4101.             SetPlayerVirtualWorld(playerid, (dUserINT(PlayerName2(playerid)).("world")) );
  4102.             return SendClientMessage(playerid,yellow,"You have successfully teleported to your saved place");
  4103.         } else return SendClientMessage(playerid,red,"ERROR: You must save a place before you can teleport to it");
  4104.     } else return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");
  4105. }
  4106.  
  4107. dcmd_saveplace(playerid,params[]) {
  4108.     #pragma unused params
  4109.     if(PlayerInfo[playerid][LoggedIn] == 1 && PlayerInfo[playerid][Level] >= 1) {
  4110.         new Float:x,Float:y,Float:z, interior;
  4111.         GetPlayerPos(playerid,x,y,z);   interior = GetPlayerInterior(playerid);
  4112.         dUserSetINT(PlayerName2(playerid)).("x",floatround(x));
  4113.         dUserSetINT(PlayerName2(playerid)).("y",floatround(y));
  4114.         dUserSetINT(PlayerName2(playerid)).("z",floatround(z));
  4115.         dUserSetINT(PlayerName2(playerid)).("interior",interior);
  4116.         dUserSetINT(PlayerName2(playerid)).("world", (GetPlayerVirtualWorld(playerid)) );
  4117.         return SendClientMessage(playerid,yellow,"You have successfully saved these coordinates");
  4118.     } else return SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");
  4119. }
  4120.  
  4121. dcmd_saveskin(playerid,params[]) {
  4122.     if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4123.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /saveskin [skinid]");
  4124.         new string[128], SkinID = strval(params);
  4125.         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))
  4126.         {
  4127.             dUserSetINT(PlayerName2(playerid)).("FavSkin",SkinID);
  4128.             format(string, sizeof(string), "You have successfully saved this skin (ID %d)",SkinID);
  4129.             SendClientMessage(playerid,yellow,string);
  4130.             SendClientMessage(playerid,yellow,"Type: /useskin to use this skin when you spawn or /dontuseskin to stop using skin");
  4131.             dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
  4132.             return CMDMessageToAdmins(playerid,"SAVESKIN");
  4133.         } else return SendClientMessage(playerid, green, "ERROR: Invalid Skin ID");
  4134.     } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4135. }
  4136.  
  4137. dcmd_useskin(playerid,params[]) {
  4138.     #pragma unused params
  4139.     if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4140.         dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
  4141.         SetPlayerSkin(playerid,dUserINT(PlayerName2(playerid)).("FavSkin"));
  4142.         return SendClientMessage(playerid,yellow,"Skin now in use");
  4143.     } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4144. }
  4145.  
  4146. dcmd_dontuseskin(playerid,params[]) {
  4147.     #pragma unused params
  4148.     if(PlayerInfo[playerid][Level] >= 1 && PlayerInfo[playerid][LoggedIn] == 1) {
  4149.         dUserSetINT(PlayerName2(playerid)).("UseSkin",0);
  4150.         return SendClientMessage(playerid,yellow,"Skin will no longer be used");
  4151.     } else return SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");
  4152. }
  4153.  
  4154. //====================== [REGISTER  &  LOGIN] ==================================
  4155. #if defined USE_AREGISTER
  4156.  
  4157. dcmd_aregister(playerid,params[])
  4158. {
  4159.     if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already registered and logged in.");
  4160.     if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: This account already exists, please use '/alogin [password]'.");
  4161.     if (strlen(params) == 0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/aregister [password]'");
  4162.     if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,red,"ACCOUNT: Password length must be greater than three characters");
  4163.     if (udb_Create(PlayerName2(playerid),params))
  4164.     {
  4165.         new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  4166.         new strdate[20], year,month,day;    getdate(year, month, day);
  4167.         GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  4168.         GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  4169. //      dini_Set(file,"password",params);
  4170.         dUserSetINT(PlayerName2(playerid)).("registered",1);
  4171.         format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  4172.         dini_Set(file,"RegisteredDate",strdate);
  4173.         dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4174.         dUserSetINT(PlayerName2(playerid)).("banned",0);
  4175.         dUserSetINT(PlayerName2(playerid)).("level",0);
  4176.         dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  4177.         dUserSetINT(PlayerName2(playerid)).("money",0);
  4178.         dUserSetINT(PlayerName2(playerid)).("kills",0);
  4179.         dUserSetINT(PlayerName2(playerid)).("deaths",0);
  4180.         PlayerInfo[playerid][LoggedIn] = 1;
  4181.         PlayerInfo[playerid][Registered] = 1;
  4182.         SendClientMessage(playerid, green, "ACCOUNT: You are now registered, and have been automaticaly logged in");
  4183.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4184.         return 1;
  4185.     }
  4186.     return 1;
  4187. }
  4188.  
  4189. dcmd_alogin(playerid,params[])
  4190. {
  4191.     if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
  4192.     if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/aregister [password]'.");
  4193.     if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/alogin [password]'");
  4194.     if (udb_CheckLogin(PlayerName2(playerid),params))
  4195.     {
  4196.         new file[256], tmp3[100], string[128];
  4197.         format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  4198.         GetPlayerIp(playerid,tmp3,100);
  4199.         dini_Set(file,"ip",tmp3);
  4200.         LoginPlayer(playerid);
  4201.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4202.         if(PlayerInfo[playerid][Level] > 0) {
  4203.             format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
  4204.             return SendClientMessage(playerid,green,string);
  4205.         } else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
  4206.     }
  4207.     else {
  4208.         PlayerInfo[playerid][FailLogin]++;
  4209.         printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
  4210.         if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
  4211.         {
  4212.             new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
  4213.             SendClientMessageToAll(grey, string); print(string);
  4214.             Kick(playerid);
  4215.         }
  4216.         return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
  4217.     }
  4218. }
  4219.  
  4220. dcmd_achangepass(playerid,params[]) {
  4221.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  4222.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /achangepass [new password]");
  4223.         if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
  4224.         new string[128];
  4225.         dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(params) );
  4226.         dUserSet(PlayerName2(playerid)).("Password",params);
  4227.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4228.         format(string, sizeof(string),"ACCOUNT: You have successfully changed your password to [ %s ]",params);
  4229.         return SendClientMessage(playerid,yellow,string);
  4230.     } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4231. }
  4232.  
  4233. dcmd_asetpass(playerid,params[]) {
  4234.     if(PlayerInfo[playerid][Level] >= 3) {
  4235.         new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4236.         if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /asetpass [playername] [new password]");
  4237.         if(strlen(tmp2) < 4 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect password length");
  4238.         if(udb_Exists(tmp)) {
  4239.             dUserSetINT(tmp).("password_hash", udb_hash(tmp2));
  4240.             PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4241.             format(string, sizeof(string),"ACCOUNT: You have successfully set \"%s's\" account password to \"%s\"", tmp, tmp2);
  4242.             return SendClientMessage(playerid,yellow,string);
  4243.         } else return SendClientMessage(playerid,red, "ERROR: This player doesnt have an account");
  4244.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4245. }
  4246.  
  4247. #if defined USE_STATS
  4248. dcmd_aresetstats(playerid,params[]) {
  4249.     #pragma unused params
  4250.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  4251.         // save as backup
  4252.         dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
  4253.         dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
  4254.         // stats reset
  4255.         PlayerInfo[playerid][Kills] = 0;
  4256.         PlayerInfo[playerid][Deaths] = 0;
  4257.         dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  4258.         dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  4259.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4260.         return SendClientMessage(playerid,yellow,"ACCOUNT: You have successfully reset your stats. Your kills and deaths are: 0");
  4261.     } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4262. }
  4263.  
  4264. dcmd_astats(playerid,params[]) {
  4265.     new string[128], pDeaths, player1, h, m, s;
  4266.     if(!strlen(params)) player1 = playerid;
  4267.     else player1 = strval(params);
  4268.  
  4269.     if(IsPlayerConnected(player1)) {
  4270.         TotalGameTime(player1, h, m, s);
  4271.         if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
  4272.         format(string, sizeof(string), "| %s's Stats:  Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d | Time: %d hrs %d mins %d secs |",PlayerName2(player1), PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths], Float:PlayerInfo[player1][Kills]/Float:pDeaths,GetPlayerMoney(player1), h, m, s);
  4273.         return SendClientMessage(playerid, green, string);
  4274.     } else return SendClientMessage(playerid, red, "Player Not Connected!");
  4275. }
  4276. #endif
  4277.  
  4278.  
  4279. #else
  4280.  
  4281.  
  4282. dcmd_register(playerid,params[])
  4283. {
  4284.     if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already registered and logged in.");
  4285.     if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: This account already exists, please use '/login [password]'.");
  4286.     if (strlen(params) == 0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/register [password]'");
  4287.     if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,red,"ACCOUNT: Password length must be greater than three characters");
  4288.     if (udb_Create(PlayerName2(playerid),params))
  4289.     {
  4290.         new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  4291.         new strdate[20], year,month,day;    getdate(year, month, day);
  4292.         GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  4293.         GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  4294. //      dini_Set(file,"password",params);
  4295.         dUserSetINT(PlayerName2(playerid)).("registered",1);
  4296.         format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  4297.         dini_Set(file,"RegisteredDate",strdate);
  4298.         dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4299.         dUserSetINT(PlayerName2(playerid)).("banned",0);
  4300.         dUserSetINT(PlayerName2(playerid)).("level",0);
  4301.         dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  4302.         dUserSetINT(PlayerName2(playerid)).("money",0);
  4303.         dUserSetINT(PlayerName2(playerid)).("kills",0);
  4304.         dUserSetINT(PlayerName2(playerid)).("deaths",0);
  4305.         dUserSetINT(PlayerName2(playerid)).("hours",0);
  4306.         dUserSetINT(PlayerName2(playerid)).("minutes",0);
  4307.         dUserSetINT(PlayerName2(playerid)).("seconds",0);
  4308.         PlayerInfo[playerid][LoggedIn] = 1;
  4309.         PlayerInfo[playerid][Registered] = 1;
  4310.         SendClientMessage(playerid, green, "ACCOUNT: You are now registered, and have been automaticaly logged in");
  4311.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4312.         return 1;
  4313.     }
  4314.     return 1;
  4315. }
  4316.  
  4317. dcmd_login(playerid,params[])
  4318. {
  4319.     if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
  4320.     if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register [password]'.");
  4321.     if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/login [password]'");
  4322.     if (udb_CheckLogin(PlayerName2(playerid),params))
  4323.     {
  4324.         new file[256], tmp3[100], string[128];
  4325.         format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  4326.         GetPlayerIp(playerid,tmp3,100);
  4327.         dini_Set(file,"ip",tmp3);
  4328.         LoginPlayer(playerid);
  4329.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4330.         if(PlayerInfo[playerid][Level] > 0) {
  4331.             format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
  4332.             return SendClientMessage(playerid,green,string);
  4333.         } else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
  4334.     }
  4335.     else {
  4336.         PlayerInfo[playerid][FailLogin]++;
  4337.         printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
  4338.         if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
  4339.         {
  4340.             new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
  4341.             SendClientMessageToAll(grey, string);
  4342.             print(string);
  4343.             Kick(playerid);
  4344.         }
  4345.         return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
  4346.     }
  4347. }
  4348.  
  4349. dcmd_changepass(playerid,params[]) {
  4350.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  4351.         if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /changepass [new password]");
  4352.         if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
  4353.         new string[128];
  4354.         dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(params) );
  4355.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4356.         format(string, sizeof(string),"ACCOUNT: You have successfully changed your password to \"%s\"",params);
  4357.         return SendClientMessage(playerid,yellow,string);
  4358.     } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4359. }
  4360.  
  4361. dcmd_setpass(playerid,params[]) {
  4362.     if(PlayerInfo[playerid][Level] >= 3) {
  4363.         new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
  4364.         if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setpass [playername] [new password]");
  4365.         if(strlen(tmp2) < 4 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect password length");
  4366.         if(udb_Exists(tmp)) {
  4367.             dUserSetINT(tmp).("password_hash", udb_hash(tmp2));
  4368.             PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4369.             format(string, sizeof(string),"ACCOUNT: You have successfully set \"%s's\" account password to \"%s\"", tmp, tmp2);
  4370.             return SendClientMessage(playerid,yellow,string);
  4371.         } else return SendClientMessage(playerid,red, "ERROR: This player doesnt have an account");
  4372.     } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4373. }
  4374.  
  4375. #if defined USE_STATS
  4376. dcmd_resetstats(playerid,params[]) {
  4377.     #pragma unused params
  4378.     if(PlayerInfo[playerid][LoggedIn] == 1) {
  4379.         // save as backup
  4380.         dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
  4381.         dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
  4382.         // stats reset
  4383.         PlayerInfo[playerid][Kills] = 0;
  4384.         PlayerInfo[playerid][Deaths] = 0;
  4385.         dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  4386.         dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  4387.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  4388.         return SendClientMessage(playerid,yellow,"ACCOUNT: You have successfully reset your stats. Your kills and deaths are: 0");
  4389.     } else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
  4390. }
  4391. #endif
  4392.  
  4393. #if defined USE_STATS
  4394. dcmd_stats(playerid,params[]) {
  4395.     new string[128], pDeaths, player1, h, m, s;
  4396.     if(!strlen(params)) player1 = playerid;
  4397.     else player1 = strval(params);
  4398.  
  4399.     if(IsPlayerConnected(player1)) {
  4400.         TotalGameTime(player1, h, m, s);
  4401.         if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
  4402.         format(string, sizeof(string), "| %s's Stats:  Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d | Time: %d hrs %d mins %d secs |",PlayerName2(player1), PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths], Float:PlayerInfo[player1][Kills]/Float:pDeaths,GetPlayerMoney(player1), h, m, s);
  4403.         return SendClientMessage(playerid, green, string);
  4404.     } else return SendClientMessage(playerid, red, "Player Not Connected!");
  4405. }
  4406. #endif
  4407.  
  4408.  
  4409. #endif
  4410.  
  4411.  
  4412. LoginPlayer(playerid)
  4413. {
  4414.     if(ServerInfo[GiveMoney] == 1) {ResetPlayerMoney(playerid); GivePlayerMoney(playerid, dUserINT(PlayerName2(playerid)).("money") ); }
  4415.     dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  4416.     PlayerInfo[playerid][Deaths] = (dUserINT(PlayerName2(playerid)).("deaths"));
  4417.     PlayerInfo[playerid][Kills] = (dUserINT(PlayerName2(playerid)).("kills"));
  4418.     PlayerInfo[playerid][Level] = (dUserINT(PlayerName2(playerid)).("level"));
  4419.     PlayerInfo[playerid][hours] = dUserINT(PlayerName2(playerid)).("hours");
  4420.     PlayerInfo[playerid][mins] = dUserINT(PlayerName2(playerid)).("minutes");
  4421.     PlayerInfo[playerid][secs] = dUserINT(PlayerName2(playerid)).("seconds");
  4422.     PlayerInfo[playerid][Registered] = 1;
  4423.     PlayerInfo[playerid][LoggedIn] = 1;
  4424. }
  4425.  
  4426. //==============================================================================
  4427. public OnPlayerCommandText(playerid, cmdtext[])
  4428. {
  4429.     if(PlayerInfo[playerid][Jailed] == 1 && PlayerInfo[playerid][Level] < 1) return
  4430.         SendClientMessage(playerid,red,"You cannot use commands in jail");
  4431.  
  4432.     new cmd[256], string[128], tmp[256], idx;
  4433.     cmd = strtok(cmdtext, idx);
  4434.  
  4435.     #if defined USE_AREGISTER
  4436.         dcmd(aregister,9,cmdtext);
  4437.         dcmd(alogin,6,cmdtext);
  4438.         dcmd(achangepass,11,cmdtext);
  4439.         dcmd(asetpass,8,cmdtext);
  4440.         #if defined USE_STATS
  4441.         dcmd(astats,6,cmdtext);
  4442.         dcmd(aresetstats,11,cmdtext);
  4443.         #endif
  4444.    
  4445.     #else
  4446.    
  4447.         dcmd(register,8,cmdtext);
  4448.         dcmd(login,5,cmdtext);
  4449.         dcmd(changepass,10,cmdtext);
  4450.         dcmd(setpass,7,cmdtext);
  4451.         #if defined USE_STATS
  4452.             dcmd(stats,5,cmdtext);
  4453.             dcmd(resetstats,10,cmdtext);
  4454.         #endif
  4455.        
  4456.     #endif
  4457.    
  4458.     dcmd(report,6,cmdtext);
  4459.     dcmd(reports,7,cmdtext);
  4460.    
  4461.     //================ [ Read Comamands ] ===========================//
  4462.     if(ServerInfo[ReadCmds] == 1)
  4463.     {
  4464.         format(string, sizeof(string), "*** %s (%d) typed: %s", pName(playerid),playerid,cmdtext);
  4465.         for(new i = 0; i < MAX_PLAYERS; i++) {
  4466.             if(IsPlayerConnected(i)) {
  4467.                 if( (PlayerInfo[i][Level] > PlayerInfo[playerid][Level]) && (PlayerInfo[i][Level] > 1) && (i != playerid) ) {
  4468.                     SendClientMessage(i, grey, string);
  4469.                 }
  4470.             }
  4471.         }
  4472.     }
  4473.  
  4474.     //-= Spectate Commands =-//
  4475.     #if defined ENABLE_SPEC
  4476.     dcmd(lspec,5,cmdtext);
  4477.     dcmd(lspecoff,8,cmdtext);
  4478.     dcmd(lspecvehicle,12,cmdtext);
  4479.     #endif
  4480.    
  4481.     //-= Chat Commands =-//
  4482.     dcmd(disablechat,11,cmdtext);
  4483.     dcmd(clearchat,9,cmdtext);
  4484.     dcmd(clearallchat,12,cmdtext);
  4485.     dcmd(caps,4,cmdtext);
  4486.    
  4487.     //-= Vehicle Commands =-//
  4488.     dcmd(destroycar,10,cmdtext);
  4489.     dcmd(lockcar,7,cmdtext);
  4490.     dcmd(unlockcar,9,cmdtext);
  4491.     dcmd(carhealth,9,cmdtext);
  4492.     dcmd(carcolour,9,cmdtext);
  4493.     dcmd(car,3,cmdtext);
  4494.     dcmd(vr,2,cmdtext);
  4495.     dcmd(fix,3,cmdtext);
  4496.     dcmd(repair,6,cmdtext);
  4497.     dcmd(ltune,5,cmdtext);
  4498.     dcmd(lhy,3,cmdtext);
  4499.     dcmd(lcar,4,cmdtext);
  4500.     dcmd(lbike,5,cmdtext);
  4501.     dcmd(lheli,5,cmdtext);
  4502.     dcmd(lboat,5,cmdtext);
  4503.     dcmd(lnos,4,cmdtext);
  4504.     dcmd(lplane,6,cmdtext);
  4505.     dcmd(vgoto,5,cmdtext);
  4506.     dcmd(vget,4,cmdtext);
  4507.     dcmd(givecar,7,cmdtext);
  4508.     dcmd(flip,4,cmdtext);
  4509.     dcmd(ltc,3,cmdtext);
  4510.     dcmd(linkcar,7,cmdtext);
  4511.    
  4512.     //-= Playerid Commands =-//
  4513.     dcmd(crash,5,cmdtext);
  4514.     dcmd(ip,2,cmdtext);
  4515.     dcmd(force,5,cmdtext);
  4516.     dcmd(burn,4,cmdtext);
  4517.     dcmd(spawn,5,cmdtext);
  4518.     dcmd(spawnplayer,11,cmdtext);
  4519.     dcmd(disarm,6,cmdtext);
  4520.     dcmd(eject,5,cmdtext);
  4521.     dcmd(bankrupt,8,cmdtext);
  4522.     dcmd(sbankrupt,9,cmdtext);
  4523.     dcmd(setworld,8,cmdtext);
  4524.     dcmd(setinterior,11,cmdtext);
  4525.     dcmd(ubound,6,cmdtext);
  4526.     dcmd(setwanted,9,cmdtext);
  4527.     dcmd(setcolour,9,cmdtext);
  4528.     dcmd(settime,7,cmdtext);
  4529.     dcmd(setweather,10,cmdtext);
  4530.     dcmd(setname,7,cmdtext);
  4531.     dcmd(setskin,7,cmdtext);
  4532.     dcmd(setscore,8,cmdtext);
  4533.     dcmd(setcash,7,cmdtext);
  4534.     dcmd(sethealth,9,cmdtext);
  4535.     dcmd(setarmour,9,cmdtext);
  4536.     dcmd(giveweapon,10,cmdtext);
  4537.     dcmd(warp,4,cmdtext);
  4538.     dcmd(teleplayer,10,cmdtext);
  4539.     dcmd(goto,4,cmdtext);
  4540.     dcmd(gethere,7,cmdtext);
  4541.     dcmd(get,3,cmdtext);
  4542.     dcmd(setlevel,8,cmdtext);
  4543.     dcmd(settemplevel,12,cmdtext);
  4544.     dcmd(fu,2,cmdtext);
  4545.     dcmd(warn,4,cmdtext);
  4546.     dcmd(kick,4,cmdtext);
  4547.     dcmd(ban,3,cmdtext);
  4548.     dcmd(rban,4,cmdtext);
  4549.     dcmd(slap,4,cmdtext);
  4550.     dcmd(explode,7,cmdtext);
  4551.     dcmd(jail,4,cmdtext);
  4552.     dcmd(unjail,6,cmdtext);
  4553.     dcmd(jailed,6,cmdtext);
  4554.     dcmd(freeze,6,cmdtext);
  4555.     dcmd(unfreeze,8,cmdtext);
  4556.     dcmd(frozen,6,cmdtext);
  4557.     dcmd(mute,4,cmdtext);
  4558.     dcmd(unmute,6,cmdtext);
  4559.     dcmd(muted,5,cmdtext);
  4560.     dcmd(akill,5,cmdtext);
  4561.     dcmd(weaps,5,cmdtext);
  4562.     dcmd(screen,6,cmdtext);
  4563.     dcmd(lgoto,5,cmdtext);
  4564.     dcmd(aka,3,cmdtext);
  4565.     dcmd(highlight,9,cmdtext);
  4566.  
  4567.     //-= /All Commands =-//
  4568.     dcmd(healall,7,cmdtext);
  4569.     dcmd(armourall,9,cmdtext);
  4570.     dcmd(muteall,7,cmdtext);
  4571.     dcmd(unmuteall,9,cmdtext);
  4572.     dcmd(killall,7,cmdtext);
  4573.     dcmd(getall,6,cmdtext);
  4574.     dcmd(spawnall,8,cmdtext);
  4575.     dcmd(freezeall,9,cmdtext);
  4576.     dcmd(unfreezeall,11,cmdtext);
  4577.     dcmd(explodeall,10,cmdtext);
  4578.     dcmd(kickall,7,cmdtext);
  4579.     dcmd(slapall,7,cmdtext);
  4580.     dcmd(ejectall,8,cmdtext);
  4581.     dcmd(disarmall,9,cmdtext);
  4582.     dcmd(setallskin,10,cmdtext);
  4583.     dcmd(setallwanted,12,cmdtext);
  4584.     dcmd(setallweather,13,cmdtext);
  4585.     dcmd(setalltime,10,cmdtext);
  4586.     dcmd(setallworld,11,cmdtext);
  4587.     dcmd(setallscore,11,cmdtext);
  4588.     dcmd(setallcash,10,cmdtext);
  4589.     dcmd(giveallcash,11,cmdtext);
  4590.     dcmd(giveallweapon,13,cmdtext);
  4591.    
  4592.     //-= No params =-//
  4593.     dcmd(lslowmo,7,cmdtext);
  4594.     dcmd(lweaps,6,cmdtext);
  4595.     dcmd(lammo,5,cmdtext);
  4596.     dcmd(god,3,cmdtext);
  4597.     dcmd(sgod,4,cmdtext);
  4598.     dcmd(godcar,6,cmdtext);
  4599.     dcmd(die,3,cmdtext);
  4600.     dcmd(jetpack,7,cmdtext);
  4601.     dcmd(admins,6,cmdtext);
  4602.     dcmd(morning,7,cmdtext);
  4603.  
  4604.     //-= Admin special =-//
  4605.     dcmd(saveplace,9,cmdtext);
  4606.     dcmd(gotoplace,9,cmdtext);
  4607.     dcmd(saveskin,8,cmdtext);
  4608.     dcmd(useskin,7,cmdtext);
  4609.     dcmd(dontuseskin,11,cmdtext);
  4610.  
  4611.     //-= Config =-//
  4612.     dcmd(disable,7,cmdtext);
  4613.     dcmd(enable,6,cmdtext);
  4614.     dcmd(setping,7,cmdtext);
  4615.     dcmd(setgravity,10,cmdtext);
  4616.     dcmd(uconfig,7,cmdtext);
  4617.     dcmd(lconfig,7,cmdtext);
  4618.     dcmd(forbidname,10,cmdtext);
  4619.     dcmd(forbidword,10,cmdtext);
  4620.    
  4621.     //-= Misc =-//
  4622.     dcmd(setmytime,9,cmdtext);
  4623.     dcmd(kill,4,cmdtext);
  4624.     dcmd(time,4,cmdtext);
  4625.     dcmd(lhelp,5,cmdtext);
  4626.     dcmd(lcmds,5,cmdtext);
  4627.     dcmd(lcommands,9,cmdtext);
  4628.     dcmd(level1,6,cmdtext);
  4629.     dcmd(level2,6,cmdtext);
  4630.     dcmd(level3,6,cmdtext);
  4631.     dcmd(level4,6,cmdtext);
  4632.     dcmd(level5,6,cmdtext);
  4633.     dcmd(lcredits,8,cmdtext);
  4634.     dcmd(serverinfo,10,cmdtext);
  4635.     dcmd(getid,5,cmdtext);
  4636.     dcmd(getinfo,7,cmdtext);
  4637.     dcmd(laston,6,cmdtext);
  4638.     dcmd(ping,4,cmdtext);
  4639.     dcmd(countdown,9,cmdtext);
  4640.     dcmd(duel,4,cmdtext);
  4641.     dcmd(asay,4,cmdtext);
  4642.     dcmd(password,8,cmdtext);
  4643.     dcmd(lockserver,10,cmdtext);
  4644.     dcmd(unlockserver,12,cmdtext);
  4645.     dcmd(adminarea,9,cmdtext);
  4646.     dcmd(announce,8,cmdtext);
  4647.     dcmd(announce2,9,cmdtext);
  4648.     dcmd(richlist,8,cmdtext);
  4649.     dcmd(miniguns,8,cmdtext);
  4650.     dcmd(botcheck,8,cmdtext);
  4651.     dcmd(object,6,cmdtext);
  4652.     dcmd(pickup,6,cmdtext);
  4653.     dcmd(move,4,cmdtext);
  4654.     dcmd(moveplayer,10,cmdtext);
  4655.  
  4656.     #if defined ENABLE_FAKE_CMDS
  4657.     dcmd(fakedeath,9,cmdtext);
  4658.     dcmd(fakechat,8,cmdtext);
  4659.     dcmd(fakecmd,7,cmdtext);
  4660.     #endif
  4661.  
  4662.     //-= Menu Commands =-//
  4663.     #if defined USE_MENUS
  4664.     dcmd(lmenu,5,cmdtext);
  4665.     dcmd(ltele,5,cmdtext);
  4666.     dcmd(lvehicle,8,cmdtext);
  4667.     dcmd(lweapons,8,cmdtext);
  4668.     dcmd(lweather,8,cmdtext);
  4669.     dcmd(ltmenu,6,cmdtext);
  4670.     dcmd(ltime,5,cmdtext);
  4671.     dcmd(cm,2,cmdtext);
  4672.     #endif
  4673.  
  4674.  
  4675.  
  4676.    
  4677. //========================= [ Car Commands ]====================================
  4678.  
  4679.     if(strcmp(cmdtext, "/ltunedcar2", true)==0 || strcmp(cmdtext, "/ltc2", true)==0)    {
  4680.     if(PlayerInfo[playerid][Level] >= 1) {
  4681.         if(IsPlayerInAnyVehicle(playerid)) {
  4682.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4683.         } else  {
  4684.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4685.         new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt;    GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4686.         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);
  4687.         AddVehicleComponent(LVehicleIDt, 1028); AddVehicleComponent(LVehicleIDt, 1030); AddVehicleComponent(LVehicleIDt, 1031); AddVehicleComponent(LVehicleIDt, 1138); AddVehicleComponent(LVehicleIDt, 1140);  AddVehicleComponent(LVehicleIDt, 1170);
  4688.         AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,1);
  4689.         SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  4690.         PlayerInfo[playerid][pCar] = LVehicleIDt;
  4691.         }
  4692.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4693.     return 1;   }
  4694. //------------------------------------------------------------------------------
  4695.     if(strcmp(cmdtext, "/ltunedcar3", true)==0 || strcmp(cmdtext, "/ltc3", true)==0)    {
  4696.     if(PlayerInfo[playerid][Level] >= 1) {
  4697.         if(IsPlayerInAnyVehicle(playerid)) {
  4698.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4699.         } else  {
  4700.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4701.         new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt;    GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4702.         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);
  4703.         AddVehicleComponent(LVehicleIDt, 1080); AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(LVehicleIDt,2);
  4704.         SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid));
  4705.         PlayerInfo[playerid][pCar] = LVehicleIDt;
  4706.         }
  4707.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4708.     return 1;   }
  4709. //------------------------------------------------------------------------------
  4710.     if(strcmp(cmdtext, "/ltunedcar4", true)==0 || strcmp(cmdtext, "/ltc4", true)==0)    {
  4711.     if(PlayerInfo[playerid][Level] >= 1) {
  4712.         if(IsPlayerInAnyVehicle(playerid)) {
  4713.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4714.         } else  {
  4715.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4716.         new Float:X,Float:Y,Float:Z,Float:Angle,carid;  GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4717.         carid = CreateVehicle(559,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4718.         AddVehicleComponent(carid,1065);    AddVehicleComponent(carid,1067);    AddVehicleComponent(carid,1162); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073)ChangeVehiclePaintjob(carid,1);
  4719.         SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4720.         PlayerInfo[playerid][pCar] = carid;
  4721.         }
  4722.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4723.     return 1;   }
  4724. //------------------------------------------------------------------------------
  4725.     if(strcmp(cmdtext, "/ltunedcar5", true)==0 || strcmp(cmdtext, "/ltc5", true)==0)    {
  4726.     if(PlayerInfo[playerid][Level] >= 1) {
  4727.         if(IsPlayerInAnyVehicle(playerid)) {
  4728.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4729.         } else  {
  4730.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4731.         new Float:X,Float:Y,Float:Z,Float:Angle,carid;  GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4732.         carid = CreateVehicle(565,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4733.         AddVehicleComponent(carid,1046); AddVehicleComponent(carid,1049); AddVehicleComponent(carid,1053); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4734.         SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4735.         PlayerInfo[playerid][pCar] = carid;
  4736.         }
  4737.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4738.     return 1;   }
  4739. //------------------------------------------------------------------------------
  4740.     if(strcmp(cmdtext, "/ltunedcar6", true)==0 || strcmp(cmdtext, "/ltc6", true)==0)    {
  4741.     if(PlayerInfo[playerid][Level] >= 1) {
  4742.         if(IsPlayerInAnyVehicle(playerid)) {
  4743.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4744.         } else  {
  4745.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4746.         new Float:X,Float:Y,Float:Z,Float:Angle,carid;  GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4747.         carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4748.         AddVehicleComponent(carid,1088); AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1139); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4749.         SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4750.         PlayerInfo[playerid][pCar] = carid;
  4751.         }
  4752.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4753.     return 1;   }
  4754. //------------------------------------------------------------------------------
  4755.     if(strcmp(cmdtext, "/ltunedcar7", true)==0 || strcmp(cmdtext, "/ltc7", true)==0)    {
  4756.     if(PlayerInfo[playerid][Level] >= 1) {
  4757.         if(IsPlayerInAnyVehicle(playerid)) {
  4758.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4759.         } else  {
  4760.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4761.         new Float:X,Float:Y,Float:Z,Float:Angle,carid;  GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4762.         carid = CreateVehicle(561,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4763.         AddVehicleComponent(carid,1055); AddVehicleComponent(carid,1058); AddVehicleComponent(carid,1064); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4764.         SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4765.         PlayerInfo[playerid][pCar] = carid;
  4766.         }
  4767.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4768.     return 1;   }
  4769. //------------------------------------------------------------------------------
  4770.     if(strcmp(cmdtext, "/ltunedcar8", true)==0 || strcmp(cmdtext, "/ltc8", true)==0)    {
  4771.     if(PlayerInfo[playerid][Level] >= 1) {
  4772.         if(IsPlayerInAnyVehicle(playerid)) {
  4773.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4774.         } else  {
  4775.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4776.         new Float:X,Float:Y,Float:Z,Float:Angle,carid;  GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4777.         carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4778.         AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
  4779.         SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4780.         PlayerInfo[playerid][pCar] = carid;
  4781.         }
  4782.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4783.     return 1;   }
  4784. //------------------------------------------------------------------------------
  4785.     if(strcmp(cmdtext, "/ltunedcar9", true)==0 || strcmp(cmdtext, "/ltc9", true)==0)    {
  4786.     if(PlayerInfo[playerid][Level] >= 1) {
  4787.         if(IsPlayerInAnyVehicle(playerid)) {
  4788.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4789.         } else  {
  4790.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4791.         new Float:X,Float:Y,Float:Z,Float:Angle,carid;  GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4792.         carid = CreateVehicle(567,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4793.         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);
  4794.         SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4795.         PlayerInfo[playerid][pCar] = carid;
  4796.         }
  4797.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4798.     return 1;   }
  4799. //------------------------------------------------------------------------------
  4800.     if(strcmp(cmdtext, "/ltunedcar10", true)==0 || strcmp(cmdtext, "/ltc10", true)==0)  {
  4801.     if(PlayerInfo[playerid][Level] >= 1) {
  4802.         if(IsPlayerInAnyVehicle(playerid)) {
  4803.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4804.         } else  {
  4805.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4806.         new Float:X,Float:Y,Float:Z,Float:Angle,carid;  GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4807.         carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4808.         AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1166); AddVehicleComponent(carid,1165); AddVehicleComponent(carid,1090);
  4809.         AddVehicleComponent(carid,1094); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1163);//SPOILER
  4810.         AddVehicleComponent(carid,1091); ChangeVehiclePaintjob(carid,2);
  4811.         SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4812.         PlayerInfo[playerid][pCar] = carid;
  4813.         }
  4814.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4815.     return 1;   }
  4816. //------------------------------------------------------------------------------
  4817.     if(strcmp(cmdtext, "/ltunedcar11", true)==0 || strcmp(cmdtext, "/ltc11", true)==0)  {
  4818.     if(PlayerInfo[playerid][Level] >= 1) {
  4819.         if(IsPlayerInAnyVehicle(playerid)) {
  4820.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4821.         } else {
  4822.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4823.         new Float:X,Float:Y,Float:Z,Float:Angle,carid;  GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4824.         carid = CreateVehicle(557,X,Y,Z,Angle,1,1,-1)PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4825.         AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1081);
  4826.         SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4827.         PlayerInfo[playerid][pCar] = carid;
  4828.         }
  4829.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4830.     return 1;   }
  4831. //------------------------------------------------------------------------------
  4832.     if(strcmp(cmdtext, "/ltunedcar12", true)==0 || strcmp(cmdtext, "/ltc12", true)==0)  {
  4833.     if(PlayerInfo[playerid][Level] >= 1) {
  4834.         if(IsPlayerInAnyVehicle(playerid)) {
  4835.         SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4836.         } else  {
  4837.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4838.         new Float:X,Float:Y,Float:Z,Float:Angle,carid;  GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4839.         carid = CreateVehicle(535,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4840.         ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1109); AddVehicleComponent(carid,1115); AddVehicleComponent(carid,1117); AddVehicleComponent(carid,1073); AddVehicleComponent(carid,1010);
  4841.         AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1114); AddVehicleComponent(carid,1081); AddVehicleComponent(carid,1119); AddVehicleComponent(carid,1121);
  4842.         SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4843.         PlayerInfo[playerid][pCar] = carid;
  4844.         }
  4845.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4846.     return 1;   }
  4847. //------------------------------------------------------------------------------
  4848.     if(strcmp(cmdtext, "/ltunedcar13", true)==0 || strcmp(cmdtext, "/ltc13", true)==0)  {
  4849.     if(PlayerInfo[playerid][Level] >= 1) {
  4850.         if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid,red,"Error: You already have a vehicle");
  4851.         else {
  4852.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  4853.         new Float:X,Float:Y,Float:Z,Float:Angle,carid;  GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  4854.         carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  4855.         AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147);
  4856.         AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,0);
  4857.         SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
  4858.         PlayerInfo[playerid][pCar] = carid;
  4859.         }
  4860.     } else SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4861.     return 1;   }
  4862. //------------------------------------------------------------------------------
  4863.     if(strcmp(cmd, "/lp", true) == 0)   {
  4864.     if(PlayerInfo[playerid][Level] >= 1) {
  4865.         if (GetPlayerState(playerid) == 2)
  4866.         {
  4867.         new VehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(VehicleID);
  4868.         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"); }
  4869.         new str[128], Float:pos[3]; format(str, sizeof(str), "%s", cmdtext[2]);
  4870.         SetVehicleNumberPlate(VehicleID, str);
  4871.         GetPlayerPos(playerid, pos[0], pos[1], pos[2]); SetPlayerPos(playerid, pos[0]+1, pos[1], pos[2]);
  4872.         SetVehicleToRespawn(VehicleID); SetVehiclePos(VehicleID, pos[0], pos[1], pos[2]);
  4873.         SetTimerEx("TuneLCar",4000,0,"d",VehicleID);    PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  4874.         SendClientMessage(playerid, blue, "You have changed your licence plate");   CMDMessageToAdmins(playerid,"LP");
  4875.         } else {
  4876.         SendClientMessage(playerid,red,"Error: You have to be the driver of a vehicle to change its licence plate");    }
  4877.     } else  {
  4878.     SendClientMessage(playerid,red,"ERROR: You need to be level 1 use this command");   }
  4879.     return 1;   }
  4880.  
  4881. //------------------------------------------------------------------------------
  4882.     if(strcmp(cmd, "/spam", true) == 0) {
  4883.         if(PlayerInfo[playerid][Level] >= 5) {
  4884.             tmp = strtok(cmdtext, idx);
  4885.             if(!strlen(tmp)) {
  4886.                 SendClientMessage(playerid, red, "USAGE: /spam [Colour] [Text]");
  4887.                 SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  4888.                 return 1;
  4889.             }
  4890.             new Colour = strval(tmp);
  4891.             if(Colour > 9 ) return SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
  4892.             tmp = strtok(cmdtext, idx);
  4893.  
  4894.             format(string,sizeof(string),"%s",cmdtext[8]);
  4895.  
  4896.             if(Colour == 0)      for(new i; i < 50; i++) SendClientMessageToAll(black,string);
  4897.             else if(Colour == 1) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_WHITE,string);
  4898.             else if(Colour == 2) for(new i; i < 50; i++) SendClientMessageToAll(red,string);
  4899.             else if(Colour == 3) for(new i; i < 50; i++) SendClientMessageToAll(orange,string);
  4900.             else if(Colour == 4) for(new i; i < 50; i++) SendClientMessageToAll(yellow,string);
  4901.             else if(Colour == 5) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_GREEN1,string);
  4902.             else if(Colour == 6) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_BLUE,string);
  4903.             else if(Colour == 7) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_PURPLE,string);
  4904.             else if(Colour == 8) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_BROWN,string);
  4905.             else if(Colour == 9) for(new i; i < 50; i++) SendClientMessageToAll(COLOR_PINK,string);
  4906.             return 1;
  4907.         } else return SendClientMessage(playerid,red,"ERROR: You need to be level 5 to use this command");
  4908.     }
  4909.  
  4910. //------------------------------------------------------------------------------
  4911.     if(strcmp(cmd, "/write", true) == 0) {
  4912.     if(PlayerInfo[playerid][Level] >= 2) {
  4913.         tmp = strtok(cmdtext, idx);
  4914.         if(!strlen(tmp)) {
  4915.             SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
  4916.             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");
  4917.         }
  4918.         new Colour;
  4919.         Colour = strval(tmp);
  4920.         if(Colour > 9 ) {
  4921.             SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
  4922.             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");
  4923.         }
  4924.         tmp = strtok(cmdtext, idx);
  4925.  
  4926.         CMDMessageToAdmins(playerid,"WRITE");
  4927.  
  4928.         if(Colour == 0) {   format(string,sizeof(string),"%s",cmdtext[9])SendClientMessageToAll(black,string); return 1; }
  4929.         else if(Colour == 1) {  format(string,sizeof(string),"%s",cmdtext[9])SendClientMessageToAll(COLOR_WHITE,string); return 1;   }
  4930.         else if(Colour == 2) {  format(string,sizeof(string),"%s",cmdtext[9])SendClientMessageToAll(red,string); return 1;   }
  4931.         else if(Colour == 3) {  format(string,sizeof(string),"%s",cmdtext[9])SendClientMessageToAll(orange,string); return 1;    }
  4932.         else if(Colour == 4) {  format(string,sizeof(string),"%s",cmdtext[9])SendClientMessageToAll(yellow,string); return 1;    }
  4933.         else if(Colour == 5) {  format(string,sizeof(string),"%s",cmdtext[9])SendClientMessageToAll(COLOR_GREEN1,string); return 1}
  4934.         else if(Colour == 6) {  format(string,sizeof(string),"%s",cmdtext[9])SendClientMessageToAll(COLOR_BLUE,string); return 1;    }
  4935.         else if(Colour == 7) {  format(string,sizeof(string),"%s",cmdtext[9])SendClientMessageToAll(COLOR_PURPLE,string); return 1}
  4936.         else if(Colour == 8) {  format(string,sizeof(string),"%s",cmdtext[9])SendClientMessageToAll(COLOR_BROWN,string); return 1;   }
  4937.         else if(Colour == 9) {  format(string,sizeof(string),"%s",cmdtext[9])SendClientMessageToAll(COLOR_PINK,string); return 1;    }
  4938.         return 1;
  4939.     } else return SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");
  4940.     }
  4941.  
  4942. //------------------------------------------------------------------------------
  4943. //                      Remote Console
  4944. //------------------------------------------------------------------------------
  4945.  
  4946.     if(strcmp(cmd, "/loadfs", true) == 0) {
  4947.         if(PlayerInfo[playerid][Level] >= 5) {
  4948.             new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  4949.             return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4950.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4951.     }
  4952.    
  4953.     if(strcmp(cmd, "/unloadfs", true) == 0)  {
  4954.         if(PlayerInfo[playerid][Level] >= 5) {
  4955.             new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  4956.             return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4957.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4958.     }
  4959.  
  4960.     if(strcmp(cmd, "/changemode", true) == 0)    {
  4961.         if(PlayerInfo[playerid][Level] >= 4) {
  4962.             new str[128]; format(str,sizeof(string),"%s",cmdtext[1]); SendRconCommand(str);
  4963.             return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4964.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4965.     }
  4966.  
  4967.     if(strcmp(cmd, "/gmx", true) == 0)   {
  4968.         if(PlayerInfo[playerid][Level] >= 5) {
  4969.             OnFilterScriptExit(); SetTimer("RestartGM",5000,0);
  4970.             return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4971.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4972.     }
  4973.  
  4974.     if(strcmp(cmd, "/loadladmin", true) == 0)    {
  4975.         if(PlayerInfo[playerid][Level] >= 5) {
  4976.             SendRconCommand("loadfs ladmin4");
  4977.             return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4978.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4979.     }
  4980.  
  4981.     if(strcmp(cmd, "/unloadladmin", true) == 0)  {
  4982.         if(PlayerInfo[playerid][Level] >= 5) {
  4983.             SendRconCommand("unloadfs ladmin4");
  4984.             return SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4985.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4986.     }
  4987.  
  4988.     if(strcmp(cmd, "/reloadladmin", true) == 0)  {
  4989.         if(PlayerInfo[playerid][Level] >= 4 || IsPlayerAdmin(playerid) ) {
  4990.             SendRconCommand("reloadfs ladmin4");
  4991.             SendClientMessage(playerid,COLOR_WHITE,"RCON Command Sent");
  4992.             return CMDMessageToAdmins(playerid,"RELOADLADMIN");
  4993.         } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  4994.     }
  4995.  
  4996.  
  4997.     return 0;
  4998. }
  4999.  
  5000.  
  5001. //==============================================================================
  5002. #if defined ENABLE_SPEC
  5003.  
  5004. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  5005. {
  5006.     new x = 0;
  5007.     while(x!=MAX_PLAYERS) {
  5008.         if( IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_SPECTATING &&
  5009.             PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_PLAYER )
  5010.         {
  5011.             SetPlayerInterior(x,newinteriorid);
  5012.         }
  5013.         x++;
  5014.     }
  5015. }
  5016.  
  5017. //==============================================================================
  5018. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  5019. {
  5020.     if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5021.     {
  5022.         if(newkeys == KEY_JUMP) AdvanceSpectate(playerid);
  5023.         else if(newkeys == KEY_SPRINT) ReverseSpectate(playerid);
  5024.     }
  5025.     return 1;
  5026. }
  5027.  
  5028. //==============================================================================
  5029. public OnPlayerEnterVehicle(playerid, vehicleid) {
  5030.     for(new x=0; x<MAX_PLAYERS; x++) {
  5031.         if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
  5032.             TogglePlayerSpectating(x, 1);
  5033.             PlayerSpectateVehicle(x, vehicleid);
  5034.             PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  5035.         }
  5036.     }
  5037.     return 1;
  5038. }
  5039.  
  5040. //==============================================================================
  5041. public OnPlayerStateChange(playerid, newstate, oldstate) {
  5042.     switch(newstate) {
  5043.         case PLAYER_STATE_ONFOOT: {
  5044.             switch(oldstate) {
  5045.                 case PLAYER_STATE_DRIVER: OnPlayerExitVehicle(playerid,255);
  5046.                 case PLAYER_STATE_PASSENGER: OnPlayerExitVehicle(playerid,255);
  5047.             }
  5048.         }
  5049.     }
  5050.     return 1;
  5051. }
  5052.  
  5053. #endif
  5054.  
  5055. //==============================================================================
  5056. public OnPlayerExitVehicle(playerid, vehicleid)
  5057. {
  5058.     if(PlayerInfo[playerid][DoorsLocked] == 1) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,false,false);
  5059.  
  5060.     #if defined ENABLE_SPEC
  5061.     for(new x=0; x<MAX_PLAYERS; x++) {
  5062.         if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_VEHICLE) {
  5063.             TogglePlayerSpectating(x, 1);
  5064.             PlayerSpectatePlayer(x, playerid);
  5065.             PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
  5066.         }
  5067.     }
  5068.     #endif
  5069.  
  5070.     return 1;
  5071. }
  5072.  
  5073. //==============================================================================
  5074. #if defined ENABLE_SPEC
  5075.  
  5076. stock StartSpectate(playerid, specplayerid)
  5077. {
  5078.     for(new x=0; x<MAX_PLAYERS; x++) {
  5079.         if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
  5080.            AdvanceSpectate(x);
  5081.         }
  5082.     }
  5083.     SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
  5084.     TogglePlayerSpectating(playerid, 1);
  5085.    
  5086.     if(IsPlayerInAnyVehicle(specplayerid)) {
  5087.         PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
  5088.         PlayerInfo[playerid][SpecID] = specplayerid;
  5089.         PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
  5090.     }
  5091.     else {
  5092.         PlayerSpectatePlayer(playerid, specplayerid);
  5093.         PlayerInfo[playerid][SpecID] = specplayerid;
  5094.         PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
  5095.     }
  5096.     new string[100], Float:hp, Float:ar;
  5097.     GetPlayerName(specplayerid,string,sizeof(string));
  5098.     GetPlayerHealth(specplayerid, hp)GetPlayerArmour(specplayerid, ar);
  5099.     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) );
  5100.     GameTextForPlayer(playerid,string,25000,3);
  5101.     return 1;
  5102. }
  5103.  
  5104. stock StopSpectate(playerid)
  5105. {
  5106.     TogglePlayerSpectating(playerid, 0);
  5107.     PlayerInfo[playerid][SpecID] = INVALID_PLAYER_ID;
  5108.     PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_NONE;
  5109.     GameTextForPlayer(playerid,"~n~~n~~n~~w~Spectate mode ended",1000,3);
  5110.     return 1;
  5111. }
  5112.  
  5113. stock AdvanceSpectate(playerid)
  5114. {
  5115.     if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
  5116.     if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5117.     {
  5118.         for(new x=PlayerInfo[playerid][SpecID]+1; x<=MAX_PLAYERS; x++)
  5119.         {
  5120.             if(x == MAX_PLAYERS) x = 0;
  5121.             if(IsPlayerConnected(x) && x != playerid)
  5122.             {
  5123.                 if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
  5124.                 {
  5125.                     continue;
  5126.                 }
  5127.                 else
  5128.                 {
  5129.                     StartSpectate(playerid, x);
  5130.                     break;
  5131.                 }
  5132.             }
  5133.         }
  5134.     }
  5135.     return 1;
  5136. }
  5137.  
  5138. stock ReverseSpectate(playerid)
  5139. {
  5140.     if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
  5141.     if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
  5142.     {
  5143.         for(new x=PlayerInfo[playerid][SpecID]-1; x>=0; x--)
  5144.         {
  5145.             if(x == 0) x = MAX_PLAYERS;
  5146.             if(IsPlayerConnected(x) && x != playerid)
  5147.             {
  5148.                 if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
  5149.                 {
  5150.                     continue;
  5151.                 }
  5152.                 else
  5153.                 {
  5154.                     StartSpectate(playerid, x);
  5155.                     break;
  5156.                 }
  5157.             }
  5158.         }
  5159.     }
  5160.     return 1;
  5161. }
  5162.  
  5163. //-------------------------------------------
  5164. forward PosAfterSpec(playerid);
  5165. public PosAfterSpec(playerid)
  5166. {
  5167.     SetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  5168.     SetPlayerFacingAngle(playerid,Pos[playerid][3]);
  5169. }
  5170. #endif
  5171.  
  5172. //==============================================================================
  5173. EraseVehicle(vehicleid)
  5174. {
  5175.     for(new players=0;players<=MAX_PLAYERS;players++)
  5176.     {
  5177.         new Float:X,Float:Y,Float:Z;
  5178.         if (IsPlayerInVehicle(players,vehicleid))
  5179.         {
  5180.             GetPlayerPos(players,X,Y,Z);
  5181.             SetPlayerPos(players,X,Y,Z+2);
  5182.             SetVehicleToRespawn(vehicleid);
  5183.         }
  5184.         SetVehicleParamsForPlayer(vehicleid,players,0,1);
  5185.     }
  5186.     SetTimerEx("VehRes",3000,0,"d",vehicleid);
  5187.     return 1;
  5188. }
  5189.  
  5190. forward CarSpawner(playerid,model);
  5191. public CarSpawner(playerid,model)
  5192. {
  5193.     if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, red, "You already have a car!");
  5194.     else
  5195.     {
  5196.         new Float:x, Float:y, Float:z, Float:angle;
  5197.         GetPlayerPos(playerid, x, y, z);
  5198.         GetPlayerFacingAngle(playerid, angle);
  5199.         if(PlayerInfo[playerid][pCar] != -1) CarDeleter(PlayerInfo[playerid][pCar]);
  5200.         new vehicleid=CreateVehicle(model, x, y, z, angle, -1, -1, -1);
  5201.         PutPlayerInVehicle(playerid, vehicleid, 0);
  5202.         SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
  5203.         LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid));
  5204.         ChangeVehicleColor(vehicleid,0,7);
  5205.         PlayerInfo[playerid][pCar] = vehicleid;
  5206.     }
  5207.     return 1;
  5208. }
  5209.  
  5210. forward CarDeleter(vehicleid);
  5211. public CarDeleter(vehicleid)
  5212. {
  5213.     for(new i=0;i<MAX_PLAYERS;i++) {
  5214.         new Float:X,Float:Y,Float:Z;
  5215.         if(IsPlayerInVehicle(i, vehicleid)) {
  5216.             RemovePlayerFromVehicle(i);
  5217.             GetPlayerPos(i,X,Y,Z);
  5218.             SetPlayerPos(i,X,Y+3,Z);
  5219.         }
  5220.         SetVehicleParamsForPlayer(vehicleid,i,0,1);
  5221.     }
  5222.     SetTimerEx("VehRes",1500,0,"i",vehicleid);
  5223. }
  5224.  
  5225. forward VehRes(vehicleid);
  5226. public VehRes(vehicleid)
  5227. {
  5228.     DestroyVehicle(vehicleid);
  5229. }
  5230.  
  5231. public OnVehicleSpawn(vehicleid)
  5232. {
  5233.     for(new i=0;i<MAX_PLAYERS;i++)
  5234.     {
  5235.         if(vehicleid==PlayerInfo[i][pCar])
  5236.         {
  5237.             CarDeleter(vehicleid);
  5238.             PlayerInfo[i][pCar]=-1;
  5239.         }
  5240.     }
  5241.     return 1;
  5242. }
  5243. //==============================================================================
  5244. forward TuneLCar(VehicleID);
  5245. public TuneLCar(VehicleID)
  5246. {
  5247.     ChangeVehicleColor(VehicleID,0,7);
  5248.     AddVehicleComponent(VehicleID, 1010);  AddVehicleComponent(VehicleID, 1087);
  5249. }
  5250.  
  5251. //==============================================================================
  5252.  
  5253. public OnRconCommand(cmd[])
  5254. {
  5255.     if( strlen(cmd) > 50 || strlen(cmd) == 1 ) return print("Invalid command length (exceeding 50 characters)");
  5256.  
  5257.     if(strcmp(cmd, "ladmin", true)==0) {
  5258.         print("Rcon Commands");
  5259.         print("info, aka, pm, asay, ann, uconfig, chat");
  5260.         return true;
  5261.     }
  5262.    
  5263.     if(strcmp(cmd, "info", true)==0)
  5264.     {
  5265.         new TotalVehicles = CreateVehicle(411, 0, 0, 0, 0, 0, 0, 1000);    DestroyVehicle(TotalVehicles);
  5266.         new numo = CreateObject(1245,0,0,1000,0,0,0);   DestroyObject(numo);
  5267.         new nump = CreatePickup(371,2,0,0,1000);    DestroyPickup(nump);
  5268.         new gz = GangZoneCreate(3,3,5,5);   GangZoneDestroy(gz);
  5269.  
  5270.         new model[250], nummodel;
  5271.         for(new i=1;i<TotalVehicles;i++) model[GetVehicleModel(i)-400]++;
  5272.         for(new i=0;i<250;i++) { if(model[i]!=0) {  nummodel++; }   }
  5273.  
  5274.         new string[256];
  5275.         print(" ===========================================================================");
  5276.         printf("                           Server Info:");
  5277.         format(string,sizeof(string),"[ Players Connected: %d || Maximum Players: %d ] [Ratio %0.2f ]",ConnectedPlayers(),GetMaxPlayers(),Float:ConnectedPlayers() / Float:GetMaxPlayers() );
  5278.         printf(string);
  5279.         format(string,sizeof(string),"[ Vehicles: %d || Models %d || Players In Vehicle: %d ]",TotalVehicles-1,nummodel, InVehCount() );
  5280.         printf(string);
  5281.         format(string,sizeof(string),"[ InCar %d  ||  OnBike %d ]",InCarCount(),OnBikeCount() );
  5282.         printf(string);
  5283.         format(string,sizeof(string),"[ Objects: %d || Pickups %d  || Gangzones %d]",numo-1, nump, gz);
  5284.         printf(string);
  5285.         format(string,sizeof(string),"[ Players In Jail %d || Players Frozen %d || Muted %d ]",JailedPlayers(),FrozenPlayers(), MutedPlayers() );
  5286.         printf(string);
  5287.         format(string,sizeof(string),"[ Admins online %d  RCON admins online %d ]",AdminCount(), RconAdminCount() );
  5288.         printf(string);
  5289.         print(" ===========================================================================");
  5290.         return true;
  5291.     }
  5292.  
  5293.     if(!strcmp(cmd, "pm", .length = 2))
  5294.     {
  5295.         new arg_1 = argpos(cmd), arg_2 = argpos(cmd, arg_1),targetid = strval(cmd[arg_1]), message[128];
  5296.  
  5297.         if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > MAX_PLAYERS || targetid < 0 || !cmd[arg_2])
  5298.             print("Usage: \"pm <playerid> <message>\"");
  5299.  
  5300.         else if ( !IsPlayerConnected(targetid) ) print("This player is not connected!");
  5301.         else
  5302.         {
  5303.             format(message, sizeof(message), "[RCON] PM: %s", cmd[arg_2]);
  5304.             SendClientMessage(targetid, COLOR_WHITE, message);
  5305.             printf("Rcon PM '%s' sent", cmd[arg_1] );
  5306.         }
  5307.         return true;
  5308.     }
  5309.  
  5310.     if(!strcmp(cmd, "asay", .length = 4))
  5311.     {
  5312.         new arg_1 = argpos(cmd), message[128];
  5313.  
  5314.         if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"asay  <message>\" (MessageToAdmins)");
  5315.         else
  5316.         {
  5317.             format(message, sizeof(message), "[RCON] MessageToAdmins: %s", cmd[arg_1]);
  5318.             MessageToAdmins(COLOR_WHITE, message);
  5319.             printf("Admin Message '%s' sent", cmd[arg_1] );
  5320.         }
  5321.         return true;
  5322.     }
  5323.  
  5324.     if(!strcmp(cmd, "ann", .length = 3))
  5325.     {
  5326.         new arg_1 = argpos(cmd), message[128];
  5327.         if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"ann  <message>\" (GameTextForAll)");
  5328.         else
  5329.         {
  5330.             format(message, sizeof(message), "[RCON]: %s", cmd[arg_1]);
  5331.             GameTextForAll(message,3000,3);
  5332.             printf("GameText Message '%s' sent", cmd[arg_1] );
  5333.         }
  5334.         return true;
  5335.     }
  5336.  
  5337.     if(!strcmp(cmd, "msg", .length = 3))
  5338.     {
  5339.         new arg_1 = argpos(cmd), message[128];
  5340.         if ( !cmd[arg_1] || cmd[arg_1] < '0') print("Usage: \"msg  <message>\" (SendClientMessageToAll)");
  5341.         else
  5342.         {
  5343.             format(message, sizeof(message), "[RCON]: %s", cmd[arg_1]);
  5344.             SendClientMessageToAll(COLOR_WHITE, message);
  5345.             printf("MessageToAll '%s' sent", cmd[arg_1] );
  5346.         }
  5347.         return true;
  5348.     }
  5349.    
  5350.     if(strcmp(cmd, "uconfig", true)==0)
  5351.     {
  5352.         UpdateConfig();
  5353.         print("Configuration Successfully Updated");
  5354.         return true;
  5355.     }
  5356.  
  5357.     if(!strcmp(cmd, "aka", .length = 3))
  5358.     {
  5359.         new arg_1 = argpos(cmd), targetid = strval(cmd[arg_1]);
  5360.  
  5361.         if ( !cmd[arg_1] || cmd[arg_1] < '0' || cmd[arg_1] > '9' || targetid > MAX_PLAYERS || targetid < 0)
  5362.             print("Usage: aka <playerid>");
  5363.         else if ( !IsPlayerConnected(targetid) ) print("This player is not connected!");
  5364.         else
  5365.         {
  5366.             new tmp3[50], playername[MAX_PLAYER_NAME];
  5367.             GetPlayerIp(targetid,tmp3,50);
  5368.             GetPlayerName(targetid, playername, sizeof(playername));
  5369.             printf("AKA: [%s id:%d] [%s] %s", playername, targetid, tmp3, dini_Get("ladmin/config/aka.txt",tmp3) );
  5370.         }
  5371.         return true;
  5372.     }
  5373.  
  5374.     if(!strcmp(cmd, "chat", .length = 4)) {
  5375.     for(new i = 1; i < MAX_CHAT_LINES; i++) print(Chat[i]);
  5376.     return true;
  5377.     }
  5378.  
  5379.     return 0;
  5380. }
  5381.  
  5382. //==============================================================================
  5383. //                          Menus
  5384. //==============================================================================
  5385.  
  5386. #if defined USE_MENUS
  5387. public OnPlayerSelectedMenuRow(playerid, row) {
  5388.     new Menu:Current = GetPlayerMenu(playerid);
  5389.     new string[128];
  5390.  
  5391.     if(Current == LMainMenu) {
  5392.         switch(row)
  5393.         {
  5394.             case 0:
  5395.             {
  5396.                 if(PlayerInfo[playerid][Level] >= 4) ShowMenuForPlayer(AdminEnable,playerid);
  5397.                 else {
  5398.                     SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5399.                     TogglePlayerControllable(playerid,true);
  5400.                 }
  5401.             }
  5402.             case 1:
  5403.             {
  5404.                 if(PlayerInfo[playerid][Level] >= 4) ShowMenuForPlayer(AdminDisable,playerid);
  5405.                 else {
  5406.                     SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
  5407.                     TogglePlayerControllable(playerid,true);
  5408.                 }
  5409.             }
  5410.             case 2: ShowMenuForPlayer(LWeather,playerid);
  5411.             case 3: ShowMenuForPlayer(LTime,playerid);
  5412.             case 4: ShowMenuForPlayer(LVehicles,playerid);
  5413.             case 5: ShowMenuForPlayer(LCars,playerid);
  5414.             case 6:
  5415.             {
  5416.                 if(PlayerInfo[playerid][Level] >= 2)
  5417.                 {
  5418.                     if(IsPlayerInAnyVehicle(playerid))
  5419.                     {
  5420.                         new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
  5421.                         switch(LModel)
  5422.                         {
  5423.                             case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  5424.                             {
  5425.                                 SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle");  TogglePlayerControllable(playerid,true);
  5426.                                 return 1;
  5427.                             }
  5428.                         }
  5429.                         TogglePlayerControllable(playerid,false);   ShowMenuForPlayer(LTuneMenu,playerid);
  5430.                     }
  5431.                     else { SendClientMessage(playerid,red,"ERROR: You do not have a vehicle to tune"); TogglePlayerControllable(playerid,true); }
  5432.                 } else { SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); TogglePlayerControllable(playerid,true); }
  5433.             }
  5434.             case 7:
  5435.             {
  5436.                 if(PlayerInfo[playerid][Level] >= 3) ShowMenuForPlayer(XWeapons,playerid);
  5437.                 else SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); TogglePlayerControllable(playerid,true);
  5438.             }
  5439.             case 8:  ShowMenuForPlayer(LTele,playerid);
  5440.             case 9:
  5441.             {
  5442.                 new Menu:Currentxmenu = GetPlayerMenu(playerid);
  5443.                 HideMenuForPlayer(Currentxmenu,playerid);   TogglePlayerControllable(playerid,true);
  5444.             }
  5445.         }
  5446.         return 1;
  5447.     }//-------------------------------------------------------------------------
  5448.     if(Current == AdminEnable) {
  5449.         new adminname[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5450.         format(file,sizeof(file),"ladmin/config/Config.ini");
  5451.         switch(row){
  5452.             case 0: { ServerInfo[AntiSwear] = 1; dini_IntSet(file,"AntiSwear",1); format(string,sizeof(string),"Administrator %s has enabled antiswear",adminname); SendClientMessageToAll(blue,string);    }
  5453.             case 1: { ServerInfo[NameKick] = 1; dini_IntSet(file,"NameKick",1); format(string,sizeof(string),"Administrator %s has enabled namekick",adminname); SendClientMessageToAll(blue,string);   }
  5454.             case 2: { ServerInfo[AntiSpam] = 1; dini_IntSet(file,"AntiSpam",1); format(string,sizeof(string),"Administrator %s has enabled antispam",adminname); SendClientMessageToAll(blue,string);   }
  5455.             case 3: { ServerInfo[MaxPing] = 1000; dini_IntSet(file,"MaxPing",1000); format(string,sizeof(string),"Administrator %s has enabled ping kick",adminname); SendClientMessageToAll(blue,string)}
  5456.             case 4: { ServerInfo[ReadCmds] = 1; dini_IntSet(file,"ReadCmds",1); format(string,sizeof(string),"Administrator %s has enabled reading commands",adminname); MessageToAdmins(green,string); }
  5457.             case 5: { ServerInfo[ReadPMs] = 1; dini_IntSet(file,"ReadPMs",1); format(string,sizeof(string),"Administrator %s has enabled reading pms",adminname); MessageToAdmins(green,string); }
  5458.             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); }
  5459.             case 7: { ServerInfo[ConnectMessages] = 1; dini_IntSet(file,"ConnectMessages",1); format(string,sizeof(string),"Administrator %s has enabled connect messages",adminname); SendClientMessageToAll(blue,string); }
  5460.             case 8: { ServerInfo[AdminCmdMsg] = 1; dini_IntSet(file,"AdminCmdMessages",1); format(string,sizeof(string),"Administrator %s has enabled admin command messages",adminname); MessageToAdmins(green,string); }
  5461.             case 9: { ServerInfo[AutoLogin] = 1; dini_IntSet(file,"AutoLogin",1); format(string,sizeof(string),"Administrator %s has enabled auto login",adminname); SendClientMessageToAll(blue,string); }
  5462.             case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5463.         }
  5464.         return TogglePlayerControllable(playerid,true);
  5465.     }//------------------------------------------------------------------------
  5466.     if(Current == AdminDisable) {
  5467.         new adminname[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5468.         format(file,sizeof(file),"ladmin/config/Config.ini");
  5469.         switch(row){
  5470.             case 0: { ServerInfo[AntiSwear] = 0; dini_IntSet(file,"AntiSwear",0); format(string,sizeof(string),"Administrator %s has disabled antiswear",adminname); SendClientMessageToAll(blue,string);   }
  5471.             case 1: { ServerInfo[NameKick] = 0; dini_IntSet(file,"NameKick",0); format(string,sizeof(string),"Administrator %s has disabled namekick",adminname); SendClientMessageToAll(blue,string)}
  5472.             case 2: { ServerInfo[AntiSpam] = 0; dini_IntSet(file,"AntiSpam",0); format(string,sizeof(string),"Administrator %s has disabled antispam",adminname); SendClientMessageToAll(blue,string)}
  5473.             case 3: { ServerInfo[MaxPing] = 0; dini_IntSet(file,"MaxPing",0); format(string,sizeof(string),"Administrator %s has disabled ping kick",adminname); SendClientMessageToAll(blue,string);   }
  5474.             case 4: { ServerInfo[ReadCmds] = 0; dini_IntSet(file,"ReadCmds",0); format(string,sizeof(string),"Administrator %s has disabled reading commands",adminname); MessageToAdmins(green,string);    }
  5475.             case 5: { ServerInfo[ReadPMs] = 0; dini_IntSet(file,"ReadPMs",0); format(string,sizeof(string),"Administrator %s has disabled reading pms",adminname); MessageToAdmins(green,string); }
  5476.             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); }
  5477.             case 7: { ServerInfo[ConnectMessages] = 0; dini_IntSet(file,"ConnectMessages",0); format(string,sizeof(string),"Administrator %s has disabled connect messages",adminname); SendClientMessageToAll(blue,string); }
  5478.             case 8: { ServerInfo[AdminCmdMsg] = 0; dini_IntSet(file,"AdminCmdMessages",0); format(string,sizeof(string),"Administrator %s has disabled admin command messages",adminname); MessageToAdmins(green,string); }
  5479.             case 9: { ServerInfo[AutoLogin] = 0; dini_IntSet(file,"AutoLogin",0); format(string,sizeof(string),"Administrator %s has disabled auto login",adminname); SendClientMessageToAll(blue,string); }
  5480.             case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5481.         }
  5482.         return TogglePlayerControllable(playerid,true);
  5483.     }//-------------------------------------------------------------------------
  5484.     if(Current==LVehicles){
  5485.         switch(row){
  5486.             case 0: ChangeMenu(playerid,Current,twodoor);
  5487.             case 1: ChangeMenu(playerid,Current,fourdoor);
  5488.             case 2: ChangeMenu(playerid,Current,fastcar);
  5489.             case 3: ChangeMenu(playerid,Current,Othercars);
  5490.             case 4: ChangeMenu(playerid,Current,bikes);
  5491.             case 5: ChangeMenu(playerid,Current,boats);
  5492.             case 6: ChangeMenu(playerid,Current,planes);
  5493.             case 7: ChangeMenu(playerid,Current,helicopters);
  5494.             case 8: return ChangeMenu(playerid,Current,LMainMenu);
  5495.         }
  5496.         return 1;
  5497.     }
  5498.     if(Current==twodoor){
  5499.         new vehid;
  5500.         switch(row){
  5501.             case 0: vehid = 533;
  5502.             case 1: vehid = 439;
  5503.             case 2: vehid = 555;
  5504.             case 3: vehid = 422;
  5505.             case 4: vehid = 554;
  5506.             case 5: vehid = 575;
  5507.             case 6: vehid = 536;
  5508.             case 7: vehid = 535;
  5509.             case 8: vehid = 576;
  5510.             case 9: vehid = 401;
  5511.             case 10: vehid = 526;
  5512.             case 11: return ChangeMenu(playerid,Current,LVehicles);
  5513.         }
  5514.         return SelectCar(playerid,vehid,Current);
  5515.     }
  5516.     if(Current==fourdoor){
  5517.         new vehid;
  5518.         switch(row){
  5519.             case 0: vehid = 404;
  5520.             case 1: vehid = 566;
  5521.             case 2: vehid = 412;
  5522.             case 3: vehid = 445;
  5523.             case 4: vehid = 507;
  5524.             case 5: vehid = 466;
  5525.             case 6: vehid = 546;
  5526.             case 7: vehid = 511;
  5527.             case 8: vehid = 467;
  5528.             case 9: vehid = 426;
  5529.             case 10: vehid = 405;
  5530.             case 11: return ChangeMenu(playerid,Current,LVehicles);
  5531.         }
  5532.         return SelectCar(playerid,vehid,Current);
  5533.     }
  5534.     if(Current==fastcar){
  5535.         new vehid;
  5536.         switch(row){
  5537.             case 0: vehid = 480;
  5538.             case 1: vehid = 402;
  5539.             case 2: vehid = 415;
  5540.             case 3: vehid = 587;
  5541.             case 4: vehid = 494;
  5542.             case 5: vehid = 411;
  5543.             case 6: vehid = 603;
  5544.             case 7: vehid = 506;
  5545.             case 8: vehid = 451;
  5546.             case 9: vehid = 477;
  5547.             case 10: vehid = 541;
  5548.             case 11: return ChangeMenu(playerid,Current,LVehicles);
  5549.         }
  5550.         return SelectCar(playerid,vehid,Current);
  5551.     }
  5552.     if(Current==Othercars){
  5553.         new vehid;
  5554.         switch(row){
  5555.             case 0: vehid = 556;
  5556.             case 1: vehid = 408;
  5557.             case 2: vehid = 431;
  5558.             case 3: vehid = 437;
  5559.             case 4: vehid = 427;
  5560.             case 5: vehid = 432;
  5561.             case 6: vehid = 601;
  5562.             case 7: vehid = 524;
  5563.             case 8: vehid = 455;
  5564.             case 9: vehid = 424;
  5565.             case 10: vehid = 573;
  5566.             case 11: return ChangeMenu(playerid,Current,LVehicles);
  5567.         }
  5568.         return SelectCar(playerid,vehid,Current);
  5569.     }
  5570.     if(Current==bikes){
  5571.         new vehid;
  5572.         switch(row){
  5573.             case 0: vehid = 581;
  5574.             case 1: vehid = 481;
  5575.             case 2: vehid = 462;
  5576.             case 3: vehid = 521;
  5577.             case 4: vehid = 463;
  5578.             case 5: vehid = 522;
  5579.             case 6: vehid = 461;
  5580.             case 7: vehid = 448;
  5581.             case 8: vehid = 471;
  5582.             case 9: vehid = 468;
  5583.             case 10: vehid = 586;
  5584.             case 11: return ChangeMenu(playerid,Current,LVehicles);
  5585.         }
  5586.         return SelectCar(playerid,vehid,Current);
  5587.     }
  5588.     if(Current==boats){
  5589.         new vehid;
  5590.         switch(row){
  5591.             case 0: vehid = 472;
  5592.             case 1: vehid = 473;
  5593.             case 2: vehid = 493;
  5594.             case 3: vehid = 595;
  5595.             case 4: vehid = 484;
  5596.             case 5: vehid = 430;
  5597.             case 6: vehid = 453;
  5598.             case 7: vehid = 452;
  5599.             case 8: vehid = 446;
  5600.             case 9: vehid = 454;
  5601.             case 10: return ChangeMenu(playerid,Current,LVehicles);
  5602.         }
  5603.         return SelectCar(playerid,vehid,Current);
  5604.     }
  5605.     if(Current==planes){
  5606.         new vehid;
  5607.         switch(row){
  5608.             case 0: vehid = 592;
  5609.             case 1: vehid = 577;
  5610.             case 2: vehid = 511;
  5611.             case 3: vehid = 512;
  5612.             case 4: vehid = 593;
  5613.             case 5: vehid = 520;
  5614.             case 6: vehid = 553;
  5615.             case 7: vehid = 476;
  5616.             case 8: vehid = 519;
  5617.             case 9: vehid = 460;
  5618.             case 10: vehid = 513;
  5619.             case 11: return ChangeMenu(playerid,Current,LVehicles);
  5620.         }
  5621.         return SelectCar(playerid,vehid,Current);
  5622.     }
  5623.     if(Current==helicopters){
  5624.         new vehid;
  5625.         switch(row){
  5626.             case 0: vehid = 548;
  5627.             case 1: vehid = 425;
  5628.             case 2: vehid = 417;
  5629.             case 3: vehid = 487;
  5630.             case 4: vehid = 488;
  5631.             case 5: vehid = 497;
  5632.             case 6: vehid = 563;
  5633.             case 7: vehid = 447;
  5634.             case 8: vehid = 469;
  5635.             case 9: return ChangeMenu(playerid,Current,LVehicles);
  5636.         }
  5637.         return SelectCar(playerid,vehid,Current);
  5638.     }
  5639.  
  5640.     if(Current==XWeapons){
  5641.         switch(row){
  5642.             case 0: { GivePlayerWeapon(playerid,24,500); }
  5643.             case 1: { GivePlayerWeapon(playerid,31,500); }
  5644.             case 2: { GivePlayerWeapon(playerid,26,500); }
  5645.             case 3: { GivePlayerWeapon(playerid,27,500); }
  5646.             case 4: { GivePlayerWeapon(playerid,28,500); }
  5647.             case 5: { GivePlayerWeapon(playerid,35,500); }
  5648.             case 6: { GivePlayerWeapon(playerid,38,1000); }
  5649.             case 7: { GivePlayerWeapon(playerid,34,500); }
  5650.             case 8: return ChangeMenu(playerid,Current,XWeaponsBig);
  5651.             case 9: return ChangeMenu(playerid,Current,XWeaponsSmall);
  5652.             case 10: return ChangeMenu(playerid,Current,XWeaponsMore);
  5653.             case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5654.         }
  5655.         return TogglePlayerControllable(playerid,true);
  5656.     }
  5657.  
  5658.     if(Current==XWeaponsBig){
  5659.         switch(row){
  5660.             case 0: { GivePlayerWeapon(playerid,25,500);  }
  5661.             case 1: { GivePlayerWeapon(playerid,30,500); }
  5662.             case 2: { GivePlayerWeapon(playerid,33,500); }
  5663.             case 3: { GivePlayerWeapon(playerid,36,500); }
  5664.             case 4: { GivePlayerWeapon(playerid,37,500); }
  5665.             case 5: { GivePlayerWeapon(playerid,29,500); }
  5666.             case 6: { GivePlayerWeapon(playerid,32,1000); }
  5667.             case 7: return ChangeMenu(playerid,Current,XWeapons);
  5668.         }
  5669.         return TogglePlayerControllable(playerid,true);
  5670.     }
  5671.  
  5672.     if(Current==XWeaponsSmall){
  5673.         switch(row){
  5674.             case 0: { GivePlayerWeapon(playerid,22,500); }//9mm
  5675.             case 1: { GivePlayerWeapon(playerid,23,500); }//s9
  5676.             case 2: { GivePlayerWeapon(playerid,18,500); }// MC
  5677.             case 3: { GivePlayerWeapon(playerid,42,500); }//FE
  5678.             case 4: { GivePlayerWeapon(playerid,41,500); }//spraycan
  5679.             case 5: { GivePlayerWeapon(playerid,16,500); }//grenade
  5680.             case 6: { GivePlayerWeapon(playerid,8,500); }//Katana
  5681.             case 7: { GivePlayerWeapon(playerid,9,1000); }//chainsaw
  5682.             case 8: return ChangeMenu(playerid,Current,XWeapons);
  5683.         }
  5684.         return TogglePlayerControllable(playerid,true);
  5685.     }
  5686.  
  5687.     if(Current==XWeaponsMore){
  5688.         switch(row){
  5689.             case 0: SetPlayerSpecialAction(playerid, 2);
  5690.             case 1: GivePlayerWeapon(playerid,4,500);
  5691.             case 2: GivePlayerWeapon(playerid,14,500);
  5692.             case 3: GivePlayerWeapon(playerid,43,500);
  5693.             case 4: GivePlayerWeapon(playerid,7,500);
  5694.             case 5: GivePlayerWeapon(playerid,5,500);
  5695.             case 6: GivePlayerWeapon(playerid,2,1000);
  5696.             case 7: MaxAmmo(playerid);
  5697.             case 8: return ChangeMenu(playerid,Current,XWeapons);
  5698.         }
  5699.         return TogglePlayerControllable(playerid,true);
  5700.     }
  5701.  
  5702.     if(Current == LTele)
  5703.     {
  5704.         switch(row)
  5705.         {
  5706.             case 0: ChangeMenu(playerid,Current,LasVenturasMenu);
  5707.             case 1: ChangeMenu(playerid,Current,LosSantosMenu);
  5708.             case 2: ChangeMenu(playerid,Current,SanFierroMenu);
  5709.             case 3: ChangeMenu(playerid,Current,DesertMenu);
  5710.             case 4: ChangeMenu(playerid,Current,FlintMenu);
  5711.             case 5: ChangeMenu(playerid,Current,MountChiliadMenu);
  5712.             case 6: ChangeMenu(playerid,Current,InteriorsMenu);
  5713.             case 7: return ChangeMenu(playerid,Current,LMainMenu);
  5714.         }
  5715.         return 1;
  5716.     }
  5717.  
  5718.     if(Current == LasVenturasMenu)
  5719.     {
  5720.         switch(row)
  5721.         {
  5722.             case 0: { SetPlayerPos(playerid,2037.0,1343.0,12.0); SetPlayerInterior(playerid,0); }// strip
  5723.             case 1: { SetPlayerPos(playerid,2163.0,1121.0,23); SetPlayerInterior(playerid,0); }// come a lot
  5724.             case 2: { SetPlayerPos(playerid,1688.0,1615.0,12.0); SetPlayerInterior(playerid,0); }// lv airport
  5725.             case 3: { SetPlayerPos(playerid,2503.0,2764.0,10.0); SetPlayerInterior(playerid,0); }// military fuel
  5726.             case 4: { SetPlayerPos(playerid,1418.0,2733.0,10.0); SetPlayerInterior(playerid,0); }// golf lv
  5727.             case 5: { SetPlayerPos(playerid,1377.0,2196.0,9.0); SetPlayerInterior(playerid,0); }// pitch match
  5728.             case 6: return ChangeMenu(playerid,Current,LTele);
  5729.         }
  5730.         return TogglePlayerControllable(playerid,true);
  5731.     }
  5732.  
  5733.     if(Current == LosSantosMenu)
  5734.     {
  5735.         switch(row)
  5736.         {
  5737.             case 0: { SetPlayerPos(playerid,2495.0,-1688.0,13.0); SetPlayerInterior(playerid,0); }// ganton
  5738.             case 1: { SetPlayerPos(playerid,1979.0,-2241.0,13.0); SetPlayerInterior(playerid,0); }// ls airport
  5739.             case 2: { SetPlayerPos(playerid,2744.0,-2435.0,15.0); SetPlayerInterior(playerid,0); }// docks
  5740.             case 3: { SetPlayerPos(playerid,1481.0,-1656.0,14.0); SetPlayerInterior(playerid,0); }// square
  5741.             case 4: { SetPlayerPos(playerid,1150.0,-2037.0,69.0); SetPlayerInterior(playerid,0); }// veradant bluffs
  5742.             case 5: { SetPlayerPos(playerid,425.0,-1815.0,6.0); SetPlayerInterior(playerid,0); }// santa beach
  5743.             case 6: { SetPlayerPos(playerid,1240.0,-744.0,95.0); SetPlayerInterior(playerid,0); }// mullholland
  5744.             case 7: { SetPlayerPos(playerid,679.0,-1070.0,49.0); SetPlayerInterior(playerid,0); }// richman
  5745.             case 8: return ChangeMenu(playerid,Current,LTele);
  5746.         }
  5747.         return TogglePlayerControllable(playerid,true);
  5748.     }
  5749.  
  5750.     if(Current == SanFierroMenu)
  5751.     {
  5752.         switch(row)
  5753.         {
  5754.             case 0: { SetPlayerPos(playerid,-1990.0,137.0,27.0); SetPlayerInterior(playerid,0); } // sf station
  5755.             case 1: { SetPlayerPos(playerid,-1528.0,-206.0,14.0); SetPlayerInterior(playerid,0); }// sf airport
  5756.             case 2: { SetPlayerPos(playerid,-2709.0,198.0,4.0); SetPlayerInterior(playerid,0); }// ocean flats
  5757.             case 3: { SetPlayerPos(playerid,-2738.0,-295.0,6.0); SetPlayerInterior(playerid,0); }// avispa country club
  5758.             case 4: { SetPlayerPos(playerid,-1457.0,465.0,7.0); SetPlayerInterior(playerid,0); }// easter basic docks
  5759.             case 5: { SetPlayerPos(playerid,-1853.0,1404.0,7.0); SetPlayerInterior(playerid,0); }// esplanadae north
  5760.             case 6: { SetPlayerPos(playerid,-2620.0,1373.0,7.0); SetPlayerInterior(playerid,0); }// battery point
  5761.             case 7: return ChangeMenu(playerid,Current,LTele);
  5762.         }
  5763.         return TogglePlayerControllable(playerid,true);
  5764.     }
  5765.  
  5766.     if(Current == DesertMenu)
  5767.     {
  5768.         switch(row)
  5769.         {
  5770.             case 0: { SetPlayerPos(playerid,416.0,2516.0,16.0); SetPlayerInterior(playerid,0); } // plane graveyard
  5771.             case 1: { SetPlayerPos(playerid,81.0,1920.0,17.0); SetPlayerInterior(playerid,0); }// area51
  5772.             case 2: { SetPlayerPos(playerid,-324.0,1516.0,75.0); SetPlayerInterior(playerid,0); }// big ear
  5773.             case 3: { SetPlayerPos(playerid,-640.0,2051.0,60.0); SetPlayerInterior(playerid,0); }// dam
  5774.             case 4: { SetPlayerPos(playerid,-766.0,1545.0,27.0); SetPlayerInterior(playerid,0); }// las barrancas
  5775.             case 5: { SetPlayerPos(playerid,-1514.0,2597.0,55.0); SetPlayerInterior(playerid,0); }// el qyebrados
  5776.             case 6: { SetPlayerPos(playerid,442.0,1427.0,9.0); SetPlayerInterior(playerid,0); }// actane springs
  5777.             case 7: return ChangeMenu(playerid,Current,LTele);
  5778.         }
  5779.         return TogglePlayerControllable(playerid,true);
  5780.     }
  5781.  
  5782.     if(Current == FlintMenu)
  5783.     {
  5784.         switch(row)
  5785.         {
  5786.             case 0: { SetPlayerPos(playerid,-849.0,-1940.0,13.0);  SetPlayerInterior(playerid,0); }// lake
  5787.             case 1: { SetPlayerPos(playerid,-1107.0,-1619.0,76.0);  SetPlayerInterior(playerid,0); }// leafy hollow
  5788.             case 2: { SetPlayerPos(playerid,-1049.0,-1199.0,128.0);  SetPlayerInterior(playerid,0); }// the farm
  5789.             case 3: { SetPlayerPos(playerid,-1655.0,-2219.0,32.0);  SetPlayerInterior(playerid,0); }// shady cabin
  5790.             case 4: { SetPlayerPos(playerid,-375.0,-1441.0,25.0); SetPlayerInterior(playerid,0); }// flint range
  5791.             case 5: { SetPlayerPos(playerid,-367.0,-1049.0,59.0); SetPlayerInterior(playerid,0); }// beacon hill
  5792.             case 6: { SetPlayerPos(playerid,-494.0,-555.0,25.0); SetPlayerInterior(playerid,0); }// fallen tree
  5793.             case 7: return ChangeMenu(playerid,Current,LTele);
  5794.         }
  5795.         return TogglePlayerControllable(playerid,true);
  5796.     }
  5797.  
  5798.     if(Current == MountChiliadMenu)
  5799.     {
  5800.         switch(row)
  5801.         {
  5802.             case 0: { SetPlayerPos(playerid,-2308.0,-1657.0,483.0);  SetPlayerInterior(playerid,0); }// chiliad jump
  5803.             case 1: { SetPlayerPos(playerid,-2331.0,-2180.0,35.0); SetPlayerInterior(playerid,0); }// bottom chiliad
  5804.             case 2: { SetPlayerPos(playerid,-2431.0,-1620.0,526.0);  SetPlayerInterior(playerid,0); }// highest point
  5805.             case 3: { SetPlayerPos(playerid,-2136.0,-1775.0,208.0);  SetPlayerInterior(playerid,0); }// chiliad path
  5806.             case 4: return ChangeMenu(playerid,Current,LTele);
  5807.         }
  5808.         return TogglePlayerControllable(playerid,true);
  5809.     }
  5810.  
  5811.     if(Current == InteriorsMenu)
  5812.     {
  5813.         switch(row)
  5814.         {
  5815.             case 0: {   SetPlayerPos(playerid,386.5259, 173.6381, 1008.3828);   SetPlayerInterior(playerid,3); }
  5816.             case 1: {   SetPlayerPos(playerid,288.4723, 170.0647, 1007.1794);   SetPlayerInterior(playerid,3); }
  5817.             case 2: {   SetPlayerPos(playerid,372.5565, -131.3607, 1001.4922)SetPlayerInterior(playerid,5); }
  5818.             case 3: {   SetPlayerPos(playerid,-1129.8909, 1057.5424, 1346.4141);    SetPlayerInterior(playerid,10); }
  5819.             case 4: {   SetPlayerPos(playerid,2233.9363, 1711.8038, 1011.6312); SetPlayerInterior(playerid,1); }
  5820.             case 5: {   SetPlayerPos(playerid,2536.5322, -1294.8425, 1044.125); SetPlayerInterior(playerid,2); }
  5821.             case 6: {   SetPlayerPos(playerid,1267.8407, -776.9587, 1091.9063); SetPlayerInterior(playerid,5); }
  5822.             case 7: {   SetPlayerPos(playerid,-1421.5618, -663.8262, 1059.5569);    SetPlayerInterior(playerid,4); }
  5823.             case 8: {   SetPlayerPos(playerid,-1401.067, 1265.3706, 1039.8672); SetPlayerInterior(playerid,16); }
  5824.             case 9: {   SetPlayerPos(playerid,285.8361, -39.0166, 1001.5156);   SetPlayerInterior(playerid,1); }
  5825.             case 10: {  SetPlayerPos(playerid,1727.2853, -1642.9451, 20.2254)SetPlayerInterior(playerid,18); }
  5826.             case 11: return ChangeMenu(playerid,Current,LTele);
  5827.         }
  5828.         return TogglePlayerControllable(playerid,true);
  5829.     }
  5830.  
  5831.     if(Current == LWeather)
  5832.     {
  5833.         new adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5834.         switch(row)
  5835.         {
  5836.             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); }
  5837.             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); }
  5838.             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); }
  5839.             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); }
  5840.             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); }
  5841.             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); }
  5842.             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); }
  5843.             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); }
  5844.             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); }
  5845.             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); }
  5846.             case 10: return ChangeMenu(playerid,Current,LMainMenu);
  5847.         }
  5848.         return TogglePlayerControllable(playerid,true);
  5849.     }
  5850.  
  5851.     if(Current == LTuneMenu)
  5852.     {
  5853.         switch(row)
  5854.         {
  5855.             case 0: {   AddVehicleComponent(GetPlayerVehicleID(playerid),1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5856.             case 1: {   AddVehicleComponent(GetPlayerVehicleID(playerid),1087); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5857.             case 2: {   AddVehicleComponent(GetPlayerVehicleID(playerid),1081); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5858.             case 3: {   AddVehicleComponent(GetPlayerVehicleID(playerid),1078); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5859.             case 4: {   AddVehicleComponent(GetPlayerVehicleID(playerid),1098); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5860.             case 5: {   AddVehicleComponent(GetPlayerVehicleID(playerid),1074); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5861.             case 6: {   AddVehicleComponent(GetPlayerVehicleID(playerid),1082); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5862.             case 7: {   AddVehicleComponent(GetPlayerVehicleID(playerid),1085); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5863.             case 8: {   AddVehicleComponent(GetPlayerVehicleID(playerid),1025); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5864.             case 9: {   AddVehicleComponent(GetPlayerVehicleID(playerid),1077); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); SendClientMessage(playerid,blue,"Vehicle Component Added"); }
  5865.             case 10: return ChangeMenu(playerid,Current,PaintMenu);
  5866.             case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5867.         }
  5868.         return TogglePlayerControllable(playerid,true);
  5869.     }
  5870.  
  5871.     if(Current == PaintMenu)
  5872.     {
  5873.         switch(row)
  5874.         {
  5875.             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"); }
  5876.             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"); }
  5877.             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"); }
  5878.             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"); }
  5879.             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"); }
  5880.             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"); }
  5881.             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"); }
  5882.             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"); }
  5883.             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"); }
  5884.             case 9: return ChangeMenu(playerid,Current,LTuneMenu);
  5885.         }
  5886.         return TogglePlayerControllable(playerid,true);
  5887.     }
  5888.  
  5889.     if(Current == LTime)
  5890.     {
  5891.         new adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, sizeof(adminname));
  5892.         switch(row)
  5893.         {
  5894.             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); }
  5895.             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); }
  5896.             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); }
  5897.             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); }
  5898.             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); }
  5899.             case 5: return ChangeMenu(playerid,Current,LMainMenu);
  5900.         }
  5901.         return TogglePlayerControllable(playerid,true);
  5902.     }
  5903.  
  5904.     if(Current == LCars)
  5905.     {
  5906.         new vehid;
  5907.         switch(row) {
  5908.             case 0: vehid = 451;//Turismo
  5909.             case 1: vehid = 568;//Bandito
  5910.             case 2: vehid = 539;//Vortex
  5911.             case 3: vehid = 522;//nrg
  5912.             case 4: vehid = 601;//s.w.a.t
  5913.             case 5: vehid = 425; //hunter
  5914.             case 6: vehid = 493;//jetmax
  5915.             case 7: vehid = 432;//rhino
  5916.             case 8: vehid = 444; //mt
  5917.             case 9: vehid = 447; //sea sparrow
  5918.             case 10: return ChangeMenu(playerid,Current,LCars2);
  5919.             case 11: return ChangeMenu(playerid,Current,LMainMenu);
  5920.         }
  5921.         return SelectCar(playerid,vehid,Current);
  5922.     }
  5923.  
  5924.     if(Current == LCars2)
  5925.     {
  5926.         new vehid;
  5927.         switch(row) {
  5928.             case 0: vehid = 406;// dumper
  5929.             case 1: vehid = 564; //rc tank
  5930.             case 2: vehid = 441;//RC Bandit
  5931.             case 3: vehid = 464;// rc baron
  5932.             case 4: vehid = 501; //rc goblin
  5933.             case 5: vehid = 465; //rc raider
  5934.             case 6: vehid = 594; // rc cam
  5935.             case 7: vehid = 449; //tram
  5936.             case 8: return ChangeMenu(playerid,Current,LCars);
  5937.         }
  5938.         return SelectCar(playerid,vehid,Current);
  5939.     }
  5940.  
  5941.     return 1;
  5942. }
  5943.  
  5944. //==============================================================================
  5945.  
  5946. public OnPlayerExitedMenu(playerid)
  5947. {
  5948.     new Menu:Current = GetPlayerMenu(playerid);
  5949.     HideMenuForPlayer(Current,playerid);
  5950.     return TogglePlayerControllable(playerid,true);
  5951. }
  5952.  
  5953. //==============================================================================
  5954.  
  5955. ChangeMenu(playerid,Menu:oldmenu,Menu:newmenu)
  5956. {
  5957.     if(IsValidMenu(oldmenu)) {
  5958.         HideMenuForPlayer(oldmenu,playerid);
  5959.         ShowMenuForPlayer(newmenu,playerid);
  5960.     }
  5961.     return 1;
  5962. }
  5963.  
  5964. CloseMenu(playerid,Menu:oldmenu)
  5965. {
  5966.     HideMenuForPlayer(oldmenu,playerid);
  5967.     TogglePlayerControllable(playerid,1);
  5968.     return 1;
  5969. }
  5970. SelectCar(playerid,vehid,Menu:menu)
  5971. {
  5972.     CloseMenu(playerid,menu);
  5973.     SetCameraBehindPlayer(playerid);
  5974.     CarSpawner(playerid,vehid);
  5975.     return 1;
  5976. }
  5977. #endif
  5978.  
  5979. //==============================================================================
  5980. forward countdown();
  5981. public countdown()
  5982. {
  5983.     if(CountDown==6) GameTextForAll("~p~Starting...",1000,6);
  5984.  
  5985.     CountDown--;
  5986.     if(CountDown==0)
  5987.     {
  5988.         GameTextForAll("~g~GO~ r~!",1000,6);
  5989.         CountDown = -1;
  5990.         for(new i = 0; i < MAX_PLAYERS; i++) {
  5991.             TogglePlayerControllable(i,true);
  5992.             PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  5993.         }
  5994.         return 0;
  5995.     }
  5996.     else
  5997.     {
  5998.         new text[7]; format(text,sizeof(text),"~w~%d",CountDown);
  5999.         for(new i = 0; i < MAX_PLAYERS; i++) {
  6000.             PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
  6001.             TogglePlayerControllable(i,false);
  6002.         }
  6003.         GameTextForAll(text,1000,6);
  6004.     }
  6005.    
  6006.     SetTimer("countdown",1000,0);
  6007.     return 0;
  6008. }
  6009.  
  6010. forward Duel(player1, player2);
  6011. public Duel(player1, player2)
  6012. {
  6013.     if(cdt[player1]==6) {
  6014.         GameTextForPlayer(player1,"~p~Duel Starting...",1000,6); GameTextForPlayer(player2,"~p~Duel Starting...",1000,6);
  6015.     }
  6016.  
  6017.     cdt[player1]--;
  6018.     if(cdt[player1]==0)
  6019.     {
  6020.         TogglePlayerControllable(player1,1); TogglePlayerControllable(player2,1);
  6021.         PlayerPlaySound(player1, 1057, 0.0, 0.0, 0.0); PlayerPlaySound(player2, 1057, 0.0, 0.0, 0.0);
  6022.         GameTextForPlayer(player1,"~g~GO~ r~!",1000,6); GameTextForPlayer(player2,"~g~GO~ r~!",1000,6);
  6023.         return 0;
  6024.     }
  6025.     else
  6026.     {
  6027.         new text[7]; format(text,sizeof(text),"~w~%d",cdt[player1]);
  6028.         PlayerPlaySound(player1, 1056, 0.0, 0.0, 0.0); PlayerPlaySound(player2, 1056, 0.0, 0.0, 0.0);
  6029.         TogglePlayerControllable(player1,0); TogglePlayerControllable(player2,0);
  6030.         GameTextForPlayer(player1,text,1000,6); GameTextForPlayer(player2,text,1000,6);
  6031.     }
  6032.  
  6033.     SetTimerEx("Duel",1000,0,"dd", player1, player2);
  6034.     return 0;
  6035. }
  6036.  
  6037. //==================== [ Jail & Freeze ]========================================
  6038.  
  6039. forward Jail1(player1);
  6040. public Jail1(player1)
  6041. {
  6042.     TogglePlayerControllable(player1,false);
  6043.     new Float:x, Float:y, Float:z;  GetPlayerPos(player1,x,y,z);
  6044.     SetPlayerCameraPos(player1,x+10,y,z+10);SetPlayerCameraLookAt(player1,x,y,z);
  6045.     SetTimerEx("Jail2",1000,0,"d",player1);
  6046. }
  6047.  
  6048. forward Jail2(player1);
  6049. public Jail2(player1)
  6050. {
  6051.     new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6052.     SetPlayerCameraPos(player1,x+7,y,z+5); SetPlayerCameraLookAt(player1,x,y,z);
  6053.     if(GetPlayerState(player1) == PLAYER_STATE_ONFOOT) SetPlayerSpecialAction(player1,SPECIAL_ACTION_HANDSUP);
  6054.     GameTextForPlayer(player1,"~r~Busted By Admins",3000,3);
  6055.     SetTimerEx("Jail3",1000,0,"d",player1);
  6056. }
  6057.  
  6058. forward Jail3(player1);
  6059. public Jail3(player1)
  6060. {
  6061.     new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
  6062.     SetPlayerCameraPos(player1,x+3,y,z); SetPlayerCameraLookAt(player1,x,y,z);
  6063. }
  6064.  
  6065. forward JailPlayer(player1);
  6066. public JailPlayer(player1)
  6067. {
  6068.     TogglePlayerControllable(player1,true);
  6069.     SetPlayerPos(player1,197.6661,173.8179,1003.0234);
  6070.     SetPlayerInterior(player1,3);
  6071.     SetCameraBehindPlayer(player1);
  6072.     JailTimer[player1] = SetTimerEx("JailRelease",PlayerInfo[player1][JailTime],0,"d",player1);
  6073.     PlayerInfo[player1][Jailed] = 1;
  6074. }
  6075.  
  6076. forward JailRelease(player1);
  6077. public JailRelease(player1)
  6078. {
  6079.     KillTimer( JailTimer[player1] );
  6080.     PlayerInfo[player1][JailTime] = 0;  PlayerInfo[player1][Jailed] = 0;
  6081.     SetPlayerInterior(player1,0); SetPlayerPos(player1, 0.0, 0.0, 0.0); SpawnPlayer(player1);
  6082.     PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  6083.     GameTextForPlayer(player1,"~g~Released ~n~From Jail",3000,3);
  6084. }
  6085.  
  6086. //------------------------------------------------------------------------------
  6087. forward UnFreezeMe(player1);
  6088. public UnFreezeMe(player1)
  6089. {
  6090.     KillTimer( FreezeTimer[player1] );
  6091.     TogglePlayerControllable(player1,true);   PlayerInfo[player1][Frozen] = 0;
  6092.     PlayerPlaySound(player1,1057,0.0,0.0,0.0)GameTextForPlayer(player1,"~g~Unfrozen",3000,3);
  6093. }
  6094.  
  6095. //==============================================================================
  6096. forward RepairCar(playerid);
  6097. public RepairCar(playerid)
  6098. {
  6099.     if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid),Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]+0.5);
  6100.     SetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[playerid][3]);
  6101.     SetCameraBehindPlayer(playerid);
  6102. }
  6103.  
  6104. //============================ [ Timers ]=======================================
  6105.  
  6106. forward PingKick();
  6107. public PingKick()
  6108. {
  6109.     if(ServerInfo[MaxPing] != 0)
  6110.     {
  6111.         PingPos++; if(PingPos > PING_MAX_EXCEEDS) PingPos = 0;
  6112.        
  6113.         for(new i=0; i<MAX_PLAYERS; i++)
  6114.         {
  6115.             PlayerInfo[i][pPing][PingPos] = GetPlayerPing(i);
  6116.            
  6117.             if(GetPlayerPing(i) > ServerInfo[MaxPing])
  6118.             {
  6119.                 if(PlayerInfo[i][PingCount] == 0) PlayerInfo[i][PingTime] = TimeStamp();
  6120.  
  6121.                 PlayerInfo[i][PingCount]++;
  6122.                 if(TimeStamp() - PlayerInfo[i][PingTime] > PING_TIMELIMIT)
  6123.                 {
  6124.                     PlayerInfo[i][PingTime] = TimeStamp();
  6125.                     PlayerInfo[i][PingCount] = 1;
  6126.                 }
  6127.                 else if(PlayerInfo[i][PingCount] >= PING_MAX_EXCEEDS)
  6128.                 {
  6129.                     new Sum, Average, x, string[128];
  6130.                     while (x < PING_MAX_EXCEEDS) {
  6131.                         Sum += PlayerInfo[i][pPing][x];
  6132.                         x++;
  6133.                     }
  6134.                     Average = (Sum / PING_MAX_EXCEEDS);
  6135.                     format(string,sizeof(string),"%s has been kicked from the server. (Reason: High Ping (%d) | Average (%d) | Max Allowed (%d) )", PlayerName2(i), GetPlayerPing(i), Average, ServerInfo[MaxPing] );
  6136.                     SendClientMessageToAll(grey,string);
  6137.                     SaveToFile("KickLog",string);
  6138.                     Kick(i);
  6139.                 }
  6140.             }
  6141.             else if(GetPlayerPing(i) < 1 && ServerInfo[AntiBot] == 1)
  6142.             {
  6143.                 PlayerInfo[i][BotPing]++;
  6144.                 if(PlayerInfo[i][BotPing] >= 3) BotCheck(i);
  6145.             }
  6146.             else
  6147.             {
  6148.                 PlayerInfo[i][BotPing] = 0;
  6149.             }
  6150.         }
  6151.     }
  6152.  
  6153.     #if defined ANTI_MINIGUN
  6154.     new weap, ammo;
  6155.     for(new i = 0; i < MAX_PLAYERS; i++)
  6156.     {
  6157.         if(IsPlayerConnected(i) && PlayerInfo[i][Level] == 0)
  6158.         {
  6159.             GetPlayerWeaponData(i, 7, weap, ammo);
  6160.             if(ammo > 1 && weap == 38) {
  6161.                 new string[128]; format(string,sizeof(string),"INFO: %s has a mingun with %d ammo", PlayerName2(i), ammo);
  6162.                 MessageToAdmins(COLOR_WHITE,string);
  6163.             }
  6164.         }
  6165.     }
  6166.     #endif
  6167. }
  6168.  
  6169. //==============================================================================
  6170. forward GodUpdate();
  6171. public GodUpdate()
  6172. {
  6173.     for(new i = 0; i < MAX_PLAYERS; i++)
  6174.     {
  6175.         if(IsPlayerConnected(i) && PlayerInfo[i][God] == 1)
  6176.         {
  6177.             SetPlayerHealth(i,100000);
  6178.         }
  6179.         if(IsPlayerConnected(i) && PlayerInfo[i][GodCar] == 1 && IsPlayerInAnyVehicle(i))
  6180.         {
  6181.             SetVehicleHealth(GetPlayerVehicleID(i),10000);
  6182.         }
  6183.     }
  6184. }
  6185.  
  6186. //==========================[ Server Info  ]====================================
  6187.  
  6188. forward ConnectedPlayers();
  6189. public ConnectedPlayers()
  6190. {
  6191.     new Connected;
  6192.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) Connected++;
  6193.     return Connected;
  6194. }
  6195.  
  6196. forward JailedPlayers();
  6197. public JailedPlayers()
  6198. {
  6199.     new JailedCount;
  6200.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Jailed] == 1) JailedCount++;
  6201.     return JailedCount;
  6202. }
  6203.  
  6204. forward FrozenPlayers();
  6205. public FrozenPlayers()
  6206. {
  6207.     new FrozenCount; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Frozen] == 1) FrozenCount++;
  6208.     return FrozenCount;
  6209. }
  6210.  
  6211. forward MutedPlayers();
  6212. public MutedPlayers()
  6213. {
  6214.     new Count; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Muted] == 1) Count++;
  6215.     return Count;
  6216. }
  6217.  
  6218. forward InVehCount();
  6219. public InVehCount()
  6220. {
  6221.     new InVeh; for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) InVeh++;
  6222.     return InVeh;
  6223. }
  6224.  
  6225. forward OnBikeCount();
  6226. public OnBikeCount()
  6227. {
  6228.     new BikeCount;
  6229.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  6230.         new LModel = GetVehicleModel(GetPlayerVehicleID(i));
  6231.         switch(LModel)
  6232.         {
  6233.             case 448,461,462,463,468,471,509,510,521,522,523,581,586:  BikeCount++;
  6234.         }
  6235.     }
  6236.     return BikeCount;
  6237. }
  6238.  
  6239. forward InCarCount();
  6240. public InCarCount()
  6241. {
  6242.     new PInCarCount;
  6243.     for(new i = 0; i < MAX_PLAYERS; i++) {
  6244.         if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  6245.             new LModel = GetVehicleModel(GetPlayerVehicleID(i));
  6246.             switch(LModel)
  6247.             {
  6248.                 case 448,461,462,463,468,471,509,510,521,522,523,581,586: {}
  6249.                 default: PInCarCount++;
  6250.             }
  6251.         }
  6252.     }
  6253.     return PInCarCount;
  6254. }
  6255.  
  6256. forward AdminCount();
  6257. public AdminCount()
  6258. {
  6259.     new LAdminCount;
  6260.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && PlayerInfo[i][Level] >= 1)  LAdminCount++;
  6261.     return LAdminCount;
  6262. }
  6263.  
  6264. forward RconAdminCount();
  6265. public RconAdminCount()
  6266. {
  6267.     new rAdminCount;
  6268.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && IsPlayerAdmin(i)) rAdminCount++;
  6269.     return rAdminCount;
  6270. }
  6271.  
  6272. //==========================[ Remote Console ]==================================
  6273.  
  6274. forward RestartGM();
  6275. public RestartGM()
  6276. {
  6277.     SendRconCommand("gmx");
  6278. }
  6279.  
  6280. forward UnloadFS();
  6281. public UnloadFS()
  6282. {
  6283.     SendRconCommand("unloadfs ladmin4");
  6284. }
  6285.  
  6286. forward PrintWarning(const string[]);
  6287. public PrintWarning(const string[])
  6288. {
  6289.     new str[128];
  6290.     print("\n\n>        WARNING:\n");
  6291.     format(str, sizeof(str), " The  %s  folder is missing from scriptfiles", string);
  6292.     print(str);
  6293.     print("\n Please Create This Folder And Reload the Filterscript\n\n");
  6294. }
  6295.  
  6296. //============================[ Bot Check ]=====================================
  6297. forward BotCheck(playerid);
  6298. public BotCheck(playerid)
  6299. {
  6300.     if(IsPlayerConnected(playerid))
  6301.     {
  6302.         if(GetPlayerPing(playerid) < 1)
  6303.         {
  6304.             new string[128], ip[20];  GetPlayerIp(playerid,ip,sizeof(ip));
  6305.             format(string,sizeof(string),"BOT: %s id:%d ip: %s ping: %d",PlayerName2(playerid),playerid,ip,GetPlayerPing(playerid));
  6306.             SaveToFile("BotKickLog",string);
  6307.             SaveToFile("KickLog",string);
  6308.             printf("[ADMIN] Possible bot has been detected (Kicked %s ID:%d)", PlayerName2(playerid), playerid);
  6309.             Kick(playerid);
  6310.         }
  6311.     }
  6312. }
  6313.  
  6314. //==============================================================================
  6315. forward PutAtPos(playerid);
  6316. public PutAtPos(playerid)
  6317. {
  6318.     if (dUserINT(PlayerName2(playerid)).("x")!=0) {
  6319.         SetPlayerPos(playerid, float(dUserINT(PlayerName2(playerid)).("x")), float(dUserINT(PlayerName2(playerid)).("y")), float(dUserINT(PlayerName2(playerid)).("z")) );
  6320.         SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior"))  );
  6321.     }
  6322. }
  6323.  
  6324. forward PutAtDisconectPos(playerid);
  6325. public PutAtDisconectPos(playerid)
  6326. {
  6327.     if (dUserINT(PlayerName2(playerid)).("x1")!=0) {
  6328.         SetPlayerPos(playerid, float(dUserINT(PlayerName2(playerid)).("x1")), float(dUserINT(PlayerName2(playerid)).("y1")), float(dUserINT(PlayerName2(playerid)).("z1")) );
  6329.         SetPlayerInterior(playerid, (dUserINT(PlayerName2(playerid)).("interior1")) );
  6330.     }
  6331. }
  6332.  
  6333. TotalGameTime(playerid, &h=0, &m=0, &s=0)
  6334. {
  6335.     PlayerInfo[playerid][TotalTime] = ( (gettime() - PlayerInfo[playerid][ConnectTime]) + (PlayerInfo[playerid][hours]*60*60) + (PlayerInfo[playerid][mins]*60) + (PlayerInfo[playerid][secs]) );
  6336.  
  6337.     h = floatround(PlayerInfo[playerid][TotalTime] / 3600, floatround_floor);
  6338.     m = floatround(PlayerInfo[playerid][TotalTime] / 60,   floatround_floor) % 60;
  6339.     s = floatround(PlayerInfo[playerid][TotalTime] % 60,   floatround_floor);
  6340.  
  6341.     return PlayerInfo[playerid][TotalTime];
  6342. }
  6343.  
  6344. //==============================================================================
  6345. MaxAmmo(playerid)
  6346. {
  6347.     new slot, weap, ammo;
  6348.     for (slot = 0; slot < 14; slot++)
  6349.     {
  6350.         GetPlayerWeaponData(playerid, slot, weap, ammo);
  6351.         if(IsValidWeapon(weap))
  6352.         {
  6353.             GivePlayerWeapon(playerid, weap, 99999);
  6354.         }
  6355.     }
  6356.     return 1;
  6357. }
  6358.  
  6359. stock PlayerName2(playerid) {
  6360.   new name[MAX_PLAYER_NAME];
  6361.   GetPlayerName(playerid, name, sizeof(name));
  6362.   return name;
  6363. }
  6364.  
  6365. stock pName(playerid)
  6366. {
  6367.   new name[MAX_PLAYER_NAME];
  6368.   GetPlayerName(playerid, name, sizeof(name));
  6369.   return name;
  6370. }
  6371.  
  6372. stock TimeStamp()
  6373. {
  6374.     new time = GetTickCount() / 1000;
  6375.     return time;
  6376. }
  6377.  
  6378. stock PlayerSoundForAll(SoundID)
  6379. {
  6380.     for(new i = 0; i < MAX_PLAYERS; i++) PlayerPlaySound(i, SoundID, 0.0, 0.0, 0.0);
  6381. }
  6382.  
  6383. stock IsValidWeapon(weaponid)
  6384. {
  6385.     if (weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47) return 1;
  6386.     return 0;
  6387. }
  6388.  
  6389. stock IsValidSkin(SkinID)
  6390. {
  6391.     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;
  6392.     else return false;
  6393. }
  6394.  
  6395. stock IsNumeric(string[])
  6396. {
  6397.     for (new i = 0, j = strlen(string); i < j; i++)
  6398.     {
  6399.         if (string[i] > '9' || string[i] < '0') return 0;
  6400.     }
  6401.     return 1;
  6402. }
  6403.  
  6404. stock ReturnPlayerID(PlayerName[])
  6405. {
  6406.     for(new i = 0; i < MAX_PLAYERS; i++)
  6407.     {
  6408.         if(IsPlayerConnected(i))
  6409.         {
  6410.             if(strfind(pName(i),PlayerName,true)!=-1) return i;
  6411.         }
  6412.     }
  6413.     return INVALID_PLAYER_ID;
  6414. }
  6415.  
  6416. GetVehicleModelIDFromName(vname[])
  6417. {
  6418.     for(new i = 0; i < 211; i++)
  6419.     {
  6420.         if ( strfind(VehicleNames[i], vname, true) != -1 )
  6421.             return i + 400;
  6422.     }
  6423.     return -1;
  6424. }
  6425.  
  6426. stock GetWeaponIDFromName(WeaponName[])
  6427. {
  6428.     if(strfind("molotov",WeaponName,true)!=-1) return 18;
  6429.     for(new i = 0; i <= 46; i++)
  6430.     {
  6431.         switch(i)
  6432.         {
  6433.             case 0,19,20,21,44,45: continue;
  6434.             default:
  6435.             {
  6436.                 new name[32]; GetWeaponName(i,name,32);
  6437.                 if(strfind(name,WeaponName,true) != -1) return i;
  6438.             }
  6439.         }
  6440.     }
  6441.     return -1;
  6442. }
  6443.  
  6444. stock DisableWord(const badword[], text[])
  6445. {
  6446.     for(new i=0; i<256; i++)
  6447.     {
  6448.         if (strfind(text[i], badword, true) == 0)
  6449.         {
  6450.             for(new a=0; a<256; a++)
  6451.             {
  6452.                 if (a >= i && a < i+strlen(badword)) text[a]='*';
  6453.             }
  6454.         }
  6455.     }
  6456. }
  6457.  
  6458. argpos(const string[], idx = 0, sep = ' ')// (by yom)
  6459. {
  6460.     for(new i = idx, j = strlen(string); i < j; i++)
  6461.         if (string[i] == sep && string[i+1] != sep)
  6462.             return i+1;
  6463.  
  6464.     return -1;
  6465. }
  6466.  
  6467. //==============================================================================
  6468. forward MessageToAdmins(color,const string[]);
  6469. public MessageToAdmins(color,const string[])
  6470. {
  6471.     for(new i = 0; i < MAX_PLAYERS; i++)
  6472.     {
  6473.         if(IsPlayerConnected(i) == 1) if (PlayerInfo[i][Level] >= 1) SendClientMessage(i, color, string);
  6474.     }
  6475.     return 1;
  6476. }
  6477.  
  6478. stock CMDMessageToAdmins(playerid,command[])
  6479. {
  6480.     if(ServerInfo[AdminCmdMsg] == 0) return 1;
  6481.     new string[128]; GetPlayerName(playerid,string,sizeof(string));
  6482.     format(string,sizeof(string),"[ADMIN] %s has used the command %s",string,command);
  6483.     return MessageToAdmins(blue,string);
  6484. }
  6485.  
  6486. //==============================================================================
  6487. SavePlayer(playerid)
  6488. {
  6489.     dUserSetINT(PlayerName2(playerid)).("money",GetPlayerMoney(playerid));
  6490.     dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
  6491.     dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
  6492.  
  6493.     new h, m, s;
  6494.     TotalGameTime(playerid, h, m, s);
  6495.  
  6496.     dUserSetINT(PlayerName2(playerid)).("hours", h);
  6497.     dUserSetINT(PlayerName2(playerid)).("minutes", m);
  6498.     dUserSetINT(PlayerName2(playerid)).("seconds", s);
  6499.  
  6500.     new Float:x,Float:y,Float:z, interior;
  6501.     GetPlayerPos(playerid,x,y,z);   interior = GetPlayerInterior(playerid);
  6502.     dUserSetINT(PlayerName2(playerid)).("x1",floatround(x));
  6503.     dUserSetINT(PlayerName2(playerid)).("y1",floatround(y));
  6504.     dUserSetINT(PlayerName2(playerid)).("z1",floatround(z));
  6505.     dUserSetINT(PlayerName2(playerid)).("interior1",interior);
  6506.  
  6507.     new weap1, ammo1, weap2, ammo2, weap3, ammo3, weap4, ammo4, weap5, ammo5, weap6, ammo6;
  6508.     GetPlayerWeaponData(playerid,2,weap1,ammo1);// hand gun
  6509.     GetPlayerWeaponData(playerid,3,weap2,ammo2);//shotgun
  6510.     GetPlayerWeaponData(playerid,4,weap3,ammo3);// SMG
  6511.     GetPlayerWeaponData(playerid,5,weap4,ammo4);// AK47 / M4
  6512.     GetPlayerWeaponData(playerid,6,weap5,ammo5);// rifle
  6513.     GetPlayerWeaponData(playerid,7,weap6,ammo6);// rocket launcher
  6514.     dUserSetINT(PlayerName2(playerid)).("weap1",weap1); dUserSetINT(PlayerName2(playerid)).("weap1ammo",ammo1);
  6515.     dUserSetINT(PlayerName2(playerid)).("weap2",weap2); dUserSetINT(PlayerName2(playerid)).("weap2ammo",ammo2);
  6516.     dUserSetINT(PlayerName2(playerid)).("weap3",weap3); dUserSetINT(PlayerName2(playerid)).("weap3ammo",ammo3);
  6517.     dUserSetINT(PlayerName2(playerid)).("weap4",weap4); dUserSetINT(PlayerName2(playerid)).("weap4ammo",ammo4);
  6518.     dUserSetINT(PlayerName2(playerid)).("weap5",weap5); dUserSetINT(PlayerName2(playerid)).("weap5ammo",ammo5);
  6519.     dUserSetINT(PlayerName2(playerid)).("weap6",weap6); dUserSetINT(PlayerName2(playerid)).("weap6ammo",ammo6);
  6520.  
  6521.     new Float:health;   GetPlayerHealth(playerid, Float:health);
  6522.     new Float:armour;   GetPlayerArmour(playerid, Float:armour);
  6523.     new year,month,day; getdate(year, month, day);
  6524.     new strdate[20];    format(strdate, sizeof(strdate), "%d.%d.%d",day,month,year);
  6525.     new file[256];      format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  6526.  
  6527.     dUserSetINT(PlayerName2(playerid)).("health",floatround(health));
  6528.     dUserSetINT(PlayerName2(playerid)).("armour",floatround(armour));
  6529.     dini_Set(file,"LastOn",strdate);
  6530.     dUserSetINT(PlayerName2(playerid)).("loggedin",0);
  6531.     dUserSetINT(PlayerName2(playerid)).("TimesOnServer",(dUserINT(PlayerName2(playerid)).("TimesOnServer"))+1);
  6532. }
  6533.  
  6534. //==============================================================================
  6535. #if defined USE_MENUS
  6536. DestroyAllMenus()
  6537. {
  6538.     DestroyMenu(LVehicles); DestroyMenu(twodoor); DestroyMenu(fourdoor); DestroyMenu(fastcar); DestroyMenu(Othercars);
  6539.     DestroyMenu(bikes); DestroyMenu(boats); DestroyMenu(planes); DestroyMenu(helicopters ); DestroyMenu(LTime);
  6540.     DestroyMenu(XWeapons); DestroyMenu(XWeaponsBig); DestroyMenu(XWeaponsSmall); DestroyMenu(XWeaponsMore);
  6541.     DestroyMenu(LWeather); DestroyMenu(LTuneMenu); DestroyMenu(PaintMenu); DestroyMenu(LCars); DestroyMenu(LCars2);
  6542.     DestroyMenu(LTele); DestroyMenu(LasVenturasMenu); DestroyMenu(LosSantosMenu); DestroyMenu(SanFierroMenu);
  6543.     DestroyMenu(LMainMenu); DestroyMenu(DesertMenu); DestroyMenu(FlintMenu); DestroyMenu(MountChiliadMenu); DestroyMenu(InteriorsMenu);
  6544.     DestroyMenu(AdminEnable); DestroyMenu(AdminDisable);
  6545. }
  6546. #endif
  6547.  
  6548. //==============================================================================
  6549. #if defined DISPLAY_CONFIG
  6550. stock ConfigInConsole()
  6551. {
  6552.     print(" ________ Configuration ___________\n");
  6553.     print(" __________ Chat & Messages ______");
  6554.     if(ServerInfo[AntiSwear] == 0) print("  Anti Swear:              Disabled "); else print("  Anti Swear:             Enabled ");
  6555.     if(ServerInfo[AntiSpam] == 0)  print("  Anti Spam:               Disabled "); else print("  Anti Spam:              Enabled ");
  6556.     if(ServerInfo[ReadCmds] == 0)  print("  Read Cmds:               Disabled "); else print("  Read Cmds:              Enabled ");
  6557.     if(ServerInfo[ReadPMs] == 0)   print("  Read PMs:                Disabled "); else print("  Read PMs:               Enabled ");
  6558.     if(ServerInfo[ConnectMessages] == 0) print("  Connect Messages:        Disabled "); else print("  Connect Messages:       Enabled ");
  6559.     if(ServerInfo[AdminCmdMsg] == 0) print("  Admin Cmd Messages:     Disabled ");  else print("  Admin Cmd Messages:     Enabled ");
  6560.     if(ServerInfo[ReadPMs] == 0)   print("  Anti capital letters:    Disabled \n"); else print("  Anti capital letters:   Enabled \n");
  6561.     print(" __________ Skins ________________");
  6562.     if(ServerInfo[AdminOnlySkins] == 0) print("  AdminOnlySkins:         Disabled "); else print("  AdminOnlySkins:         Enabled ");
  6563.     printf("  Admin Skin 1 is:         %d", ServerInfo[AdminSkin] );
  6564.     printf("  Admin Skin 2 is:         %d\n", ServerInfo[AdminSkin2] );
  6565.     print(" ________ Server Protection ______");
  6566.     if(ServerInfo[AntiBot] == 0) print("  Anti Bot:                Disabled "); else print("  Anti Bot:                Enabled ");
  6567.     if(ServerInfo[NameKick] == 0) print("  Bad Name Kick:           Disabled\n"); else print("  Bad Name Kick:           Enabled\n");
  6568.     print(" __________ Ping Control _________");
  6569.     if(ServerInfo[MaxPing] == 0) print("  Ping Control:            Disabled"); else print("  Ping Control:            Enabled");
  6570.     printf("  Max Ping:                %d\n", ServerInfo[MaxPing] );
  6571.     print(" __________ Players ______________");
  6572.     if(ServerInfo[GiveWeap] == 0) print("  Save/Give Weaps:         Disabled"); else print("  Save/Give Weaps:         Enabled");
  6573.     if(ServerInfo[GiveMoney] == 0) print("  Save/Give Money:         Disabled\n"); else print("  Save/Give Money:         Enabled\n");
  6574.     print(" __________ Other ________________");
  6575.     printf("  Max Admin Level:         %d", ServerInfo[MaxAdminLevel] );
  6576.     if(ServerInfo[Locked] == 0) print("  Server Locked:           No"); else print("  Server Locked:           Yes");
  6577.     if(ServerInfo[AutoLogin] == 0) print("  Auto Login:             Disabled\n"); else print("  Auto Login:              Enabled\n");
  6578. }
  6579. #endif
  6580.  
  6581. //=====================[ Configuration ] =======================================
  6582. stock UpdateConfig()
  6583. {
  6584.     new file[256], File:file2, string[100]; format(file,sizeof(file),"ladmin/config/Config.ini");
  6585.     ForbiddenWordCount = 0;
  6586.     BadNameCount = 0;
  6587.     BadPartNameCount = 0;
  6588.    
  6589.     if(!dini_Exists("ladmin/config/aka.txt")) dini_Create("ladmin/config/aka.txt");
  6590.    
  6591.     if(!dini_Exists(file))
  6592.     {
  6593.         dini_Create(file);
  6594.         print("\n >Configuration File Successfully Created");
  6595.     }
  6596.  
  6597.     if(!dini_Isset(file,"MaxPing")) dini_IntSet(file,"MaxPing",1200);
  6598.     if(!dini_Isset(file,"ReadPms")) dini_IntSet(file,"ReadPMs",1);
  6599.     if(!dini_Isset(file,"ReadCmds")) dini_IntSet(file,"ReadCmds",1);
  6600.     if(!dini_Isset(file,"MaxAdminLevel")) dini_IntSet(file,"MaxAdminLevel",5);
  6601.     if(!dini_Isset(file,"AdminOnlySkins")) dini_IntSet(file,"AdminOnlySkins",0);
  6602.     if(!dini_Isset(file,"AdminSkin")) dini_IntSet(file,"AdminSkin",217);
  6603.     if(!dini_Isset(file,"AdminSkin2")) dini_IntSet(file,"AdminSkin2",214);
  6604.     if(!dini_Isset(file,"AntiBot")) dini_IntSet(file,"AntiBot",1);
  6605.     if(!dini_Isset(file,"AntiSpam")) dini_IntSet(file,"AntiSpam",1);
  6606.     if(!dini_Isset(file,"AntiSwear")) dini_IntSet(file,"AntiSwear",1);
  6607.     if(!dini_Isset(file,"NameKick")) dini_IntSet(file,"NameKick",1);
  6608.     if(!dini_Isset(file,"PartNameKick")) dini_IntSet(file,"PartNameKick",1);
  6609.     if(!dini_Isset(file,"NoCaps")) dini_IntSet(file,"NoCaps",0);
  6610.     if(!dini_Isset(file,"Locked")) dini_IntSet(file,"Locked",0);
  6611.     if(!dini_Isset(file,"SaveWeap")) dini_IntSet(file,"SaveWeap",1);
  6612.     if(!dini_Isset(file,"SaveMoney")) dini_IntSet(file,"SaveMoney",1);
  6613.     if(!dini_Isset(file,"ConnectMessages")) dini_IntSet(file,"ConnectMessages",1);
  6614.     if(!dini_Isset(file,"AdminCmdMessages")) dini_IntSet(file,"AdminCmdMessages",1);
  6615.     if(!dini_Isset(file,"AutoLogin")) dini_IntSet(file,"AutoLogin",1);
  6616.     if(!dini_Isset(file,"MaxMuteWarnings")) dini_IntSet(file,"MaxMuteWarnings",4);
  6617.     if(!dini_Isset(file,"MustLogin")) dini_IntSet(file,"MustLogin",0);
  6618.     if(!dini_Isset(file,"MustRegister")) dini_IntSet(file,"MustRegister",0);
  6619.  
  6620.     if(dini_Exists(file))
  6621.     {
  6622.         ServerInfo[MaxPing] = dini_Int(file,"MaxPing");
  6623.         ServerInfo[ReadPMs] = dini_Int(file,"ReadPMs");
  6624.         ServerInfo[ReadCmds] = dini_Int(file,"ReadCmds");
  6625.         ServerInfo[MaxAdminLevel] = dini_Int(file,"MaxAdminLevel");
  6626.         ServerInfo[AdminOnlySkins] = dini_Int(file,"AdminOnlySkins");
  6627.         ServerInfo[AdminSkin] = dini_Int(file,"AdminSkin");
  6628.         ServerInfo[AdminSkin2] = dini_Int(file,"AdminSkin2");
  6629.         ServerInfo[AntiBot] = dini_Int(file,"AntiBot");
  6630.         ServerInfo[AntiSpam] = dini_Int(file,"AntiSpam");
  6631.         ServerInfo[AntiSwear] = dini_Int(file,"AntiSwear");
  6632.         ServerInfo[NameKick] = dini_Int(file,"NameKick");
  6633.         ServerInfo[PartNameKick] = dini_Int(file,"PartNameKick");
  6634.         ServerInfo[NoCaps] = dini_Int(file,"NoCaps");
  6635.         ServerInfo[Locked] = dini_Int(file,"Locked");
  6636.         ServerInfo[GiveWeap] = dini_Int(file,"SaveWeap");
  6637.         ServerInfo[GiveMoney] = dini_Int(file,"SaveMoney");
  6638.         ServerInfo[ConnectMessages] = dini_Int(file,"ConnectMessages");
  6639.         ServerInfo[AdminCmdMsg] = dini_Int(file,"AdminCmdMessages");
  6640.         ServerInfo[AutoLogin] = dini_Int(file,"AutoLogin");
  6641.         ServerInfo[MaxMuteWarnings] = dini_Int(file,"MaxMuteWarnings");
  6642.         ServerInfo[MustLogin] = dini_Int(file,"MustLogin");
  6643.         ServerInfo[MustRegister] = dini_Int(file,"MustRegister");
  6644.         print("\n -Configuration Settings Loaded");
  6645.     }
  6646.  
  6647.     //forbidden names
  6648.     if((file2 = fopen("ladmin/config/ForbiddenNames.cfg",io_read)))
  6649.     {
  6650.         while(fread(file2,string))
  6651.         {
  6652.             for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
  6653.             BadNames[BadNameCount] = string;
  6654.             BadNameCount++;
  6655.         }
  6656.         fclose(file2)printf(" -%d Forbidden Names Loaded", BadNameCount);
  6657.     }
  6658.  
  6659.     //forbidden part of names
  6660.     if((file2 = fopen("ladmin/config/ForbiddenPartNames.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.             BadPartNames[BadPartNameCount] = string;
  6666.             BadPartNameCount++;
  6667.         }
  6668.         fclose(file2)printf(" -%d Forbidden Tags Loaded", BadPartNameCount);
  6669.     }
  6670.  
  6671.     //forbidden words
  6672.     if((file2 = fopen("ladmin/config/ForbiddenWords.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.             ForbiddenWords[ForbiddenWordCount] = string;
  6678.             ForbiddenWordCount++;
  6679.         }
  6680.         fclose(file2)printf(" -%d Forbidden Words Loaded", ForbiddenWordCount);
  6681.     }
  6682. }
  6683. //=====================[ SAVING DATA ] =========================================
  6684.  
  6685. forward SaveToFile(filename[],text[]);
  6686. public SaveToFile(filename[],text[])
  6687. {
  6688.     #if defined SAVE_LOGS
  6689.     new File:LAdminfile, filepath[256], string[256], year,month,day, hour,minute,second;
  6690.     getdate(year,month,day); gettime(hour,minute,second);
  6691.    
  6692.     format(filepath,sizeof(filepath),"ladmin/logs/%s.txt",filename);
  6693.     LAdminfile = fopen(filepath,io_append);
  6694.     format(string,sizeof(string),"[%d.%d.%d %d:%d:%d] %s\r\n",day,month,year,hour,minute,second,text);
  6695.     fwrite(LAdminfile,string);
  6696.     fclose(LAdminfile);
  6697.     #endif
  6698.    
  6699.     return 1;
  6700. }
  6701.  
  6702. //============================[ EOF ]===========================================
  6703. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  6704. {
  6705. if(dialogid == 9048 && response)
  6706. {
  6707.     new dialogstr[256];
  6708.     new pame[MAX_PLAYER_NAME];
  6709.     GetPlayerName(playerid, pame, sizeof(pame));
  6710.     if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
  6711.     if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register [password]'.");
  6712.     if (strlen(inputtext)==0) return format(dialogstr,sizeof(dialogstr),"{FFFFFF}%s This nickname is registed please login:", pame), ShowPlayerDialog(playerid, 9048, DIALOG_STYLE_INPUT, "{FF0000}Login", dialogstr, "Aceptar", "Cancelar");
  6713.     if (udb_CheckLogin(PlayerName2(playerid),inputtext))
  6714.     {
  6715.         new file[256], tmp3[100], string[128];
  6716.         format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
  6717.         GetPlayerIp(playerid,tmp3,100);
  6718.         dini_Set(file,"ip",tmp3);
  6719.         LoginPlayer(playerid);
  6720.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  6721.         if(PlayerInfo[playerid][Level] > 0) {
  6722.             format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
  6723.             return SendClientMessage(playerid,green,string);
  6724.         } else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
  6725.     }
  6726.     else {
  6727.         PlayerInfo[playerid][FailLogin]++;
  6728.         printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), inputtext, PlayerInfo[playerid][FailLogin] );
  6729.         if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
  6730.         {
  6731.             new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
  6732.             SendClientMessageToAll(grey, string);
  6733.             print(string);
  6734.             Kick(playerid);
  6735.         }
  6736.         return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
  6737.     }
  6738. }
  6739. if(dialogid == 9049 && response)
  6740. {
  6741.     new dialogstr[256];
  6742.     new pame[MAX_PLAYER_NAME];
  6743.     GetPlayerName(playerid, pame, sizeof(pame));
  6744.     if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already registered and logged in.");
  6745.     if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: This account already exists, please use '/login [password]'.");
  6746.     if (strlen(inputtext) == 0) return format(dialogstr,sizeof(dialogstr),"{FFFFFF}%s your nickname isn't registed please choose a password:", pame), ShowPlayerDialog(playerid, 9049, DIALOG_STYLE_INPUT, "{FF0000}Register", dialogstr, "Aceptar", "Cancelar");
  6747.     if (strlen(inputtext) < 4 || strlen(inputtext) > 20) return format(dialogstr,sizeof(dialogstr),"{FFFFFF}%s your nickname isn't registed please choose a password:", pame), ShowPlayerDialog(playerid, 9049, DIALOG_STYLE_INPUT, "{FF0000}Register", dialogstr, "Aceptar", "Cancelar");
  6748.     if (udb_Create(PlayerName2(playerid),inputtext))
  6749.     {
  6750.         new file[256],name[MAX_PLAYER_NAME], tmp3[100];
  6751.         new strdate[20], year,month,day;    getdate(year, month, day);
  6752.         GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(name));
  6753.         GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
  6754. //      dini_Set(file,"password",params);
  6755.         dUserSetINT(PlayerName2(playerid)).("registered",1);
  6756.         format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
  6757.         dini_Set(file,"RegisteredDate",strdate);
  6758.         dUserSetINT(PlayerName2(playerid)).("loggedin",1);
  6759.         dUserSetINT(PlayerName2(playerid)).("banned",0);
  6760.         dUserSetINT(PlayerName2(playerid)).("level",0);
  6761.         dUserSetINT(PlayerName2(playerid)).("LastOn",0);
  6762.         dUserSetINT(PlayerName2(playerid)).("money",0);
  6763.         dUserSetINT(PlayerName2(playerid)).("kills",0);
  6764.         dUserSetINT(PlayerName2(playerid)).("deaths",0);
  6765.         dUserSetINT(PlayerName2(playerid)).("hours",0);
  6766.         dUserSetINT(PlayerName2(playerid)).("minutes",0);
  6767.         dUserSetINT(PlayerName2(playerid)).("seconds",0);
  6768.         PlayerInfo[playerid][LoggedIn] = 1;
  6769.         PlayerInfo[playerid][Registered] = 1;
  6770.         SendClientMessage(playerid, green, "ACCOUNT: You are now registered, and have been automaticaly logged in");
  6771.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  6772.         return 1;
  6773.     }
  6774.     return 1;
  6775. }
  6776. return 1;
  6777. }
  6778.  
Advertisement
Add Comment
Please, Sign In to add comment