Guest User

Untitled

a guest
Jan 23rd, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 51.20 KB | None | 0 0
  1. /*
  2.  *  To 'Michael Palmer':
  3.  *
  4.  *      codename: vehiclesystem.pwn; author: Lorenc; Complete: 10/16/2011;
  5.  *      email: zeelorenc@hotmail.com; SA-MP Username: Lorenc_
  6.  *
  7.  *  Thanks for purchasing this script, your greatly appriecated, Lorenc.
  8.  *
  9. */
  10.  
  11. #include                        <a_samp>
  12. #include                        <foreach>
  13. #include                        <sscanf2>
  14. #include                        <zcmd>
  15. #include                        <YSI/y_va>
  16.  
  17. /* ** Configuration ** */
  18. #undef  MAX_PLAYERS
  19. #define MAX_PLAYERS             (52)       //Change to how big your server slots are!
  20.  
  21. #define FILE_VERSION            "0.3c"
  22. #define SERVER_NAME             "Los Santos Freeroam (0.3c) "
  23. #define SERVER_SITE             "lsservers.co.cc"
  24.  
  25. #define DB_FILE                 "admin.db"
  26.  
  27. /* ** Functions/Macros ** */
  28. #define IsHigherAdminLevel(%1,%2) (gPlayerData[(%1)][E_ADMIN_LEVEL]>gPlayerData[(%2)][E_ADMIN_LEVEL])
  29. #define function%1(%2)          forward%1(%2); public%1(%2)
  30. /* ** Dialogs ** */
  31. #define DIALOG_TITLE            "{FFFFFF}"#SERVER_NAME""
  32.  
  33. #define DIALOG_NULL             (0xFF)
  34. #define DIALOG_REGISTER         (1001)
  35. #define DIALOG_LOGIN            (1002)
  36. #define DIALOG_TELES            (1003)
  37. #define DIALOG_TELES_LV         (1004)
  38. #define DIALOG_TELES_LS         (1005)
  39. #define DIALOG_TELES_SF         (1006)
  40.  
  41. #define REGISTER_MSG            "{FFFFFF}Welcome to "#SERVER_NAME", Welcome You Are Currently Not Registered!\nEnter your password and register in the server!"
  42. #define LOGIN_MSG               "{FFFFFF}Welcome to "#SERVER_NAME", Welcome You Are Currently Registered\nEnter your password and log on to the server!"
  43.  
  44. /* ** Colours ** */
  45. #define COL_GREEN                   "{6EF83C}"
  46. #define COL_RED                     "{F81414}"
  47. #define COL_BLUE                    "{00C0FF}"
  48. #define COL_LGREEN                  "{C9FFAB}"
  49. #define COL_LRED                    "{FFA1A1}"
  50. #define COL_GOLD                    "{FFDC2E}"
  51. #define COL_GREY                    "{C0C0C0}"
  52. #define COL_PINK                    "{FF0770}"
  53.  
  54. #define COLOR_GREEN             0x00CC00FF
  55. #define COLOR_RED               0xFF0000FF
  56. #define COLOR_YELLOW            0xFFFF00FF
  57. #define COLOR_ORANGE            0xEE9911FF
  58. #define COLOR_BLUE              0x60CED4FF
  59.  
  60. /* ** Player Data ** */
  61. enum PLAYER_DATA
  62. {
  63.     bool: E_LOGGED,             E_ADMIN_LEVEL,              E_VIP_LEVEL,
  64.     E_KILLS,                    E_DEATHS,                   bool: E_CAGED,
  65.     E_CAGE[4],
  66.  
  67.     E_BAN_BY[24],               E_BAN_REASON[60],
  68. }
  69.  
  70. enum SERVER_DATA
  71. {
  72.     bool: E_SERVER_LOCKED,      E_COUNTDOWN_TICK,           E_COUNTDOWN_TIMER,
  73.     bool: E_GOTOLOC_BLOCKED,
  74. }
  75.  
  76. new
  77.     gPlayerData                 [MAX_PLAYERS][PLAYER_DATA],
  78.     gServerData                 [SERVER_DATA],
  79.     DB: Database,
  80.     szName                      [MAX_PLAYER_NAME],
  81.     szIP                        [16]
  82. ;
  83.  
  84. static const vNames[212][] =
  85. {
  86.     {"Landstalker"},    {"Bravura"},            {"Buffalo"},            {"Linerunner"},     {"Perrenial"},      {"Sentinel"},       {"Dumper"},
  87.     {"Firetruck"},      {"Trashmaster"},        {"Stretch"},            {"Manana"},         {"Infernus"},       {"Voodoo"},         {"Pony"},           {"Mule"},
  88.     {"Cheetah"},        {"Ambulance"},          {"Leviathan"},          {"Moonbeam"},       {"Esperanto"},      {"Taxi"},           {"Washington"},
  89.     {"Bobcat"},         {"Mr Whoopee"},         {"BF Injection"},       {"Hunter"},         {"Premier"},        {"Enforcer"},       {"Securicar"},
  90.     {"Banshee"},        {"Predator"},           {"Bus"},{"Rhino"},      {"Barracks"},       {"Hotknife"},       {"Trailer 1"},      {"Previon"},
  91.     {"Coach"},          {"Cabbie"},             {"Stallion"},           {"Rumpo"},          {"RC Bandit"},      {"Romero"},         {"Packer"},         {"Monster"},
  92.     {"Admiral"},        {"Squalo"},             {"Seasparrow"},         {"Pizzaboy"},       {"Tram"},           {"Trailer 2"},      {"Turismo"},
  93.     {"Speeder"},        {"Reefer"},             {"Tropic"},             {"Flatbed"},        {"Yankee"},         {"Caddy"},          {"Solair"},         {"Berkley's RC Van"},
  94.     {"Skimmer"},        {"PCJ-6_0_0"},          {"Faggio"},             {"Freeway"},        {"RC Baron"},       {"RC Raider"},      {"Glendale"},       {"Oceanic"},
  95.     {"Sanchez"},        {"Sparrow"},            {"Patriot"},            {"Quad"},           {"Coastguard"},     {"Dinghy"},         {"Hermes"},         {"Sabre"},
  96.     {"Rustler"},        {"ZR-3_5_0"},           {"Walton"},             {"Regina"},         {"Comet"},{"BMX"}{"Burrito"},        {"Camper"},         {"Marquis"},
  97.     {"Baggage"},        {"Dozer"},              {"Maverick"},           {"News Chopper"},   {"Rancher"},        {"FBI Rancher"},    {"Virgo"},          {"Greenwood"},
  98.     {"Jetmax"},         {"Hotring"},            {"Sandking"},           {"Blista Compact"}, {"Police Maverick"},{"Boxville"},       {"Benson"},
  99.     {"Mesa"},           {"RC Goblin"},          {"Hotring Racer A"},    {"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
  100.     {"Super GT"},       {"Elegant"},            {"Journey"},            {"Bike"},           {"Mountain Bike"}{"Beagle"},         {"Cropdust"},       {"Stunt"},
  101.     {"Tanker"},         {"Roadtrain"},          {"Nebula"},             {"Majestic"},       {"Buccaneer"},      {"Shamal"},         {"Hydra"},          {"FCR-900"},
  102.     {"NRG-500"},        {"HPV1000"},            {"Cement Truck"},       {"Tow Truck"},      {"Fortune"},        {"Cadrona"},        {"FBI Truck"},
  103.     {"Willard"},        {"Forklift"},           {"Tractor"},            {"Combine"},        {"Feltzer"},        {"Remington"},      {"Slamvan"},
  104.     {"Blade"},          {"Freight"},            {"Streak"},             {"Vortex"},         {"Vincent"},        {"Bullet"},         {"Clover"},         {"Sadler"},
  105.     {"Firetruck LA"},   {"Hustler"},            {"Intruder"},           {"Primo"},          {"Cargobob"},       {"Tampa"},          {"Sunrise"},        {"Merit"},
  106.     {"Utility"},        {"Nevada"},             {"Yosemite"},           {"Windsor"},        {"Monster A"},      {"Monster B"},      {"Uranus"},         {"Jester"},
  107.     {"Sultan"},         {"Stratum"},            {"Elegy"},              {"Raindance"},      {"RC Tiger"},       {"Flash"},          {"Tahoma"},         {"Savanna"},
  108.     {"Bandito"},        {"Freight Flat"},       {"Streak Carriage"},    {"Kart"},           {"Mower"},          {"Duneride"},       {"Sweeper"},
  109.     {"Broadway"},       {"Tornado"},            {"AT-400"},             {"DFT-30"},         {"Huntley"},        {"Stafford"},       {"BF-400"},         {"Newsvan"},
  110.     {"Tug"},            {"Trailer 3"},          {"Emperor"},            {"Wayfarer"},       {"Euros"},          {"Hotdog"},         {"Club"},           {"Freight Carriage"},
  111.     {"Trailer 3"},      {"Andromada"},          {"Dodo"},               {"RC Cam"},         {"Launch"},         {"Police Car LSPD"},{"Police Car SFPD"},
  112.     {"Police _LVPD"},   {"Police Ranger"},      {"Picador"},            {"SWAT. Van"},      {"Alpha"},          {"Phoenix"},        {"Glendale"},
  113.     {"Sadler"},         {"Luggage Trailer A"}{"Luggage Trailer B"}{"Stair Trailer"},{"Boxville"},         {"Farm Plow"},
  114.     {"Utility Trailer"}
  115. };
  116.  
  117. public OnFilterScriptInit()
  118. {
  119.     print("\nLorenc's admin filterscript!\n");
  120.  
  121.     if(GetMaxPlayers() > MAX_PLAYERS)
  122.         print("ADMIN SCRIPT: Please redefine \"MAX_PLAYERS\" to what your server slots are!"), gServerData[E_SERVER_LOCKED] = true;
  123.  
  124.     Database = db_open(DB_FILE);
  125.     db_query(Database, "CREATE TABLE IF NOT EXISTS `USERS` (NAME, PASSWORD, IP, ADMINLEVEL, VIP, LASTLOGIN, KILLS, DEATHS, SCORE)");
  126.     db_query(Database, "CREATE TABLE IF NOT EXISTS `BANS` (NAME, IP, BANBY, REASON)");
  127.     db_query(Database, "CREATE TABLE IF NOT EXISTS `IPBANS` (IP)");
  128.     return 1;
  129. }
  130.  
  131. public OnFilterScriptExit()
  132. {
  133.     return 1;
  134. }
  135.  
  136. public OnPlayerConnect(playerid)
  137. {
  138.     new
  139.         Query[ 150 ],
  140.         DBResult: Result,
  141.         name[ MAX_PLAYER_NAME ]
  142.     ;
  143.     gPlayerData[playerid][E_ADMIN_LEVEL] = 0;
  144.     gPlayerData[playerid][E_LOGGED] = false;
  145.  
  146.     if(gServerData[E_SERVER_LOCKED] == true)
  147.     {
  148.         SendClientMessage(playerid, -1, ""COL_GREEN"[NOTE]{FFFFFF} The server has been locked, you cannot visit at this time!");
  149.         Kick(playerid);
  150.     }
  151.  
  152.     if(IsPlayerBanned(playerid))
  153.         return ShowPlayerBan(playerid);
  154.  
  155.     if(IsIPBanned(ReturnPlayerIP(playerid)))
  156.         return SendClientMessage(playerid, COLOR_YELLOW, "You Are Currently Banned From This Server!, Visit "#SERVER_SITE""), Kick(playerid);
  157.  
  158.     GetPlayerName(playerid, name, sizeof(name));
  159.  
  160.     format(Query, sizeof(Query), "SELECT NAME FROM USERS WHERE NAME = '%s'", DB_Escape(name));
  161.     Result = db_query(Database, Query);
  162.  
  163.     if(db_num_rows(Result))
  164.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, DIALOG_TITLE, LOGIN_MSG, "Login", "Quit");
  165.     else
  166.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, DIALOG_TITLE, REGISTER_MSG, "Register", "Quit");
  167.  
  168.     db_free_result(Result);
  169.     return 1;
  170. }
  171. public OnPlayerDisconnect(playerid, reason)
  172. {
  173.     new
  174.         Query[ 200 ],
  175.         name[ MAX_PLAYER_NAME ]
  176.     ;
  177.     GetPlayerName(playerid, name, sizeof(name));
  178.  
  179.     DestroyPlayerCage(playerid);
  180.  
  181.     if(gPlayerData[playerid][E_LOGGED] == true)
  182.     {
  183.         format(Query,sizeof(Query),"UPDATE `USERS` SET ADMINLEVEL = %d, VIP = %d, LASTLOGIN = '%s', KILLS = %d, DEATHS = %d, SCORE = %d WHERE `NAME` = '%s'",
  184.                                                                                         gPlayerData[playerid][E_ADMIN_LEVEL],
  185.                                                                                         gPlayerData[playerid][E_VIP_LEVEL],
  186.                                                                                         getDate(),
  187.                                                                                         gPlayerData[playerid][E_KILLS],
  188.                                                                                         gPlayerData[playerid][E_DEATHS],
  189.                                                                                         GetPlayerScore(playerid),
  190.                                                                                         DB_Escape(name));
  191.         db_query(Database, Query);
  192.         gPlayerData[playerid][E_LOGGED] = false;
  193.     }
  194.     return 1;
  195. }
  196.  
  197. public OnPlayerSpawn(playerid)
  198. {
  199.     return 1;
  200. }
  201.  
  202. public OnPlayerDeath(playerid, killerid, reason)
  203. {
  204.     return 1;
  205. }
  206.  
  207. public OnVehicleSpawn(vehicleid)
  208. {
  209.     return 1;
  210. }
  211.  
  212. public OnVehicleDeath(vehicleid, killerid)
  213. {
  214.     return 1;
  215. }
  216.  
  217. public OnPlayerText(playerid, text[])
  218. {
  219.     new string[150];
  220.     if(GetPVarInt(playerid, "admin_Muted") == 1)
  221.     {
  222.         SendError(playerid, "You cannot talk, you're muted!");
  223.         return 0;
  224.     }
  225.     if(text[0] == '@')
  226.     {
  227.         if(gPlayerData[playerid][E_ADMIN_LEVEL] > 0)
  228.         {
  229.             format(string, sizeof(string), "{05FEF8}<Admin Chat> %s(%d):{FFFFFF} %s", ReturnPlayerName(playerid), playerid, text[1]);
  230.             SendClientMessageToAdmins(-1, string);
  231.             return 0;
  232.         }
  233.     }
  234.     return 1;
  235. }
  236.  
  237. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  238. {
  239.     return 1;
  240. }
  241.  
  242. public OnPlayerExitVehicle(playerid, vehicleid)
  243. {
  244.     return 1;
  245. }
  246.  
  247. public OnPlayerStateChange(playerid, newstate, oldstate)
  248. {
  249.     return 1;
  250. }
  251.  
  252. public OnPlayerEnterCheckpoint(playerid)
  253. {
  254.     return 1;
  255. }
  256.  
  257. public OnPlayerLeaveCheckpoint(playerid)
  258. {
  259.     return 1;
  260. }
  261.  
  262. public OnPlayerEnterRaceCheckpoint(playerid)
  263. {
  264.     return 1;
  265. }
  266.  
  267. public OnPlayerLeaveRaceCheckpoint(playerid)
  268. {
  269.     return 1;
  270. }
  271.  
  272. /*
  273.                 COMMANDS
  274.     - REGULAR:
  275.  
  276.     - LEVEL 1:
  277.         - /carpark
  278.         - /flame
  279.         - /adminduty
  280.  
  281.     - LEVEL 2:
  282.         - /kick
  283.         - /spec
  284.         - /ann
  285.         - /countdown
  286.         - /warn
  287.         - /gotoloc
  288.         - /goto
  289.         - /get
  290.         - /(un)mute
  291.  
  292.     - LEVEL 3:
  293.         - /asay
  294.         - /burn
  295.         - /ban
  296.         - /banip
  297.         - /rban
  298.         - /explode
  299.         - /(un)cage
  300.         - /aweaps
  301.         - /god
  302.         - /mammo
  303.         - /v
  304.         - /acar
  305.         - /aplane
  306.         - /abike
  307.         - /aboat
  308.         - /aheli
  309.  
  310.     - LEVEL 4:
  311.         - /makevip
  312.         - /drift
  313.         - /lockserver
  314.         - /blockteleports
  315.         - /muteall
  316.         - /kickall
  317.  
  318.     - RCON - CONSOLE:
  319.         - /makeadmin
  320. */
  321. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  322. {
  323.     if(success == 0) return SendClientMessage(playerid, -1, "[SERVER] Error with command, please use /commands");
  324.     return 1;
  325. }
  326.  
  327. /* Regular Commands */
  328. CMD:acmds(playerid, params[])
  329. {
  330.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 1) return 0;
  331.     SendClientMessage(playerid, -1, ""COL_BLUE".: Admin Commands :.");
  332.     SendClientMessage(playerid, -1, ""COL_PINK"LEVEL 1:{FFFFFF} /acmds, /carpark, /flame, /adminduty");
  333.     SendClientMessage(playerid, -1, ""COL_PINK"LEVEL 2:{FFFFFF} /kick, /spec, /ann, /countdown, /warn, /gotoloc, /goto, /get, /(un)mute");
  334.     SendClientMessage(playerid, -1, ""COL_PINK"LEVEL 3:{FFFFFF} /asay, /burn, /ban, /banip, /rban, /explode, /(un)cage, /aweaps, /god, /mammo");
  335.     SendClientMessage(playerid, -1, ""COL_PINK"LEVEL 3:{FFFFFF} /v, /acar, /aplane, /abike, /aboat, /aheli");
  336.     SendClientMessage(playerid, -1, ""COL_PINK"LEVEL 4:{FFFFFF} /makevip, /drift, /lockserver, /blockteleports, /muteall, /kickall");
  337.     SendClientMessage(playerid, -1, ""COL_PINK"RCON CONSOLE:{FFFFFF} /makeadmin");
  338.     return 1;
  339. }
  340.  
  341. CMD:admins(playerid, params[])
  342. {
  343.     new
  344.         string[128],
  345.         count,
  346.         iname[MAX_PLAYER_NAME]
  347.     ;
  348.     SendClientMessage(playerid, -1, ""COL_BLUE".: Online Admins :.");
  349.     foreach(Player, i)
  350.     {
  351.         if(!IsPlayerConnected(i)) continue;
  352.         if(gPlayerData[i][E_ADMIN_LEVEL] >= 1 && GetPVarInt(i, "admin_notHidden") == 1)
  353.         {
  354.             GetPlayerName(i, iname, sizeof(iname));
  355.             format(string, sizeof(string), ""COL_PINK"Name:{FFFFFF} %s(%i) Level: %s", iname, i, GetAdminRank(gPlayerData[i][E_ADMIN_LEVEL]));
  356.             SendClientMessage(playerid, -1, string);
  357.             count++;
  358.         }
  359.     }
  360.     if(count == 0) return SendClientMessage(playerid, COLOR_BLUE, "No administrators are online");
  361.     return 1;
  362. }
  363.  
  364. CMD:report(playerid, params[])
  365. {
  366.     new msg[64], string[128];
  367.     if(sscanf(params, "s[64]", msg)) SendUsage(playerid, "/report [msg]");
  368.     else if(gPlayerData[playerid][E_ADMIN_LEVEL] > 0) SendError(playerid, "You cannot use this because you're a admin!");
  369.     else
  370.     {
  371.         format(string, sizeof(string), ""COL_GREEN"[REPORT]{FFFFFF} "COL_GOLD"%s:{FFFFFF} %s", ReturnPlayerName(playerid), msg);
  372.         SendClientMessageToAdmins(-1, string);
  373.     }
  374.     return 1;
  375. }
  376.  
  377. /* LEVEL 1 */
  378. CMD:adminduty(playerid, params[])
  379. {
  380.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 1) return 0;
  381.     if(GetPVarInt(playerid, "admin_notHidden") == 0)
  382.     {
  383.         SetPVarInt(playerid, "admin_notHidden", 1);
  384.         SetPlayerSkin(playerid, 294);
  385.         GivePlayerWeapon(playerid, 38, 0xFFFF);
  386.         GivePlayerWeapon(playerid, 9, 1);
  387.         GivePlayerWeapon(playerid, 39, 0xFFFF);
  388.         GivePlayerWeapon(playerid, 40, 1);
  389.         GivePlayerWeapon(playerid, 31, 0xFFFF);
  390.         GivePlayerWeapon(playerid, 27, 0xFFFF);
  391.         GivePlayerWeapon(playerid, 24, 0xFFFF);
  392.         SendClientMessage(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have been given Admin Duty equipment!");
  393.     }
  394.     else
  395.     {
  396.         SetPVarInt(playerid, "admin_notHidden", 0);
  397.         SendClientMessage(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You're now not on admin duty.");
  398.     }
  399.     return 1;
  400. }
  401.  
  402. CMD:flame(playerid, params[])
  403. {
  404.     new
  405.         pID
  406.     ;
  407.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 1) return 0;
  408.     else if(sscanf(params, "u", pID)) SendUsage(playerid, "/flame [PLAYER_ID]");
  409.     else if(pID == playerid) SendError(playerid, "You cannot apply this command to yourself.");
  410.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  411.     else
  412.     {
  413.         SendClientMessage(pID, COLOR_RED, ".: Flaming :.");
  414.         SendClientMessage(pID, COLOR_YELLOW, "Don't Flame Other Players Read /rules");
  415.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have notified %s(%d) about flaming!", ReturnPlayerName(pID), pID);
  416.     }
  417.     return 1;
  418. }
  419.  
  420. CMD:carpark(playerid, params[])
  421. {
  422.     new
  423.         pID
  424.     ;
  425.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 1) return 0;
  426.     else if(sscanf(params, "u", pID)) SendUsage(playerid, "/carpark [PLAYER_ID]");
  427.     else if(pID == playerid) SendError(playerid, "You cannot apply this command to yourself.");
  428.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  429.     else
  430.     {
  431.         SendClientMessage(pID, COLOR_RED, ".: Car parking :.");
  432.         SendClientMessage(pID, COLOR_YELLOW, "Don't Carpark Other Players Read /rules!");
  433.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have notified %s(%d) about car parking!", ReturnPlayerName(pID), pID);
  434.     }
  435.     return 1;
  436. }
  437.  
  438. /* LEVEL 2 */
  439. CMD:mute(playerid, params[])
  440. {
  441.     new
  442.         pID,
  443.         reason[70]
  444.     ;
  445.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 2) return 0;
  446.     else if(sscanf(params, "uS(No reason)[70]", pID, reason)) SendUsage(playerid, "/kick [PLAYER_ID] [REASON]");
  447.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  448.     else if(pID == playerid) SendError(playerid, "You cannot kick yourself.");
  449.     else if(IsHigherAdminLevel(pID, playerid)) SendError(playerid, "This player has a greater admin level then yours!");
  450.     else if(GetPVarInt(pID, "admin_Muted") == 1) SendError(playerid, "This person is muted!");
  451.     else
  452.     {
  453.         SendClientMessageFormattedToAll(COLOR_YELLOW, ""COL_GREY"[SERVER]{FFFFFF} %s(%d) has been muted by %s(%d) [Reason: %s]", ReturnPlayerName(pID), pID, ReturnPlayerName(playerid), playerid, reason);
  454.         SetPVarInt(pID, "admin_Muted", 1);
  455.     }
  456.     return 1;
  457. }
  458.  
  459. CMD:unmute(playerid, params[])
  460. {
  461.     new
  462.         pID,
  463.         reason[70]
  464.     ;
  465.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 2) return 0;
  466.     else if(sscanf(params, "uS(No reason)[70]", pID, reason)) SendUsage(playerid, "/kick [PLAYER_ID] [REASON]");
  467.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  468.     else if(pID == playerid) SendError(playerid, "You cannot kick yourself.");
  469.     else if(IsHigherAdminLevel(pID, playerid)) SendError(playerid, "This player has a greater admin level then yours!");
  470.     else if(GetPVarInt(pID, "admin_Muted") != 1) SendError(playerid, "This person is not muted!");
  471.     else
  472.     {
  473.         SendClientMessageFormattedToAll(COLOR_YELLOW, ""COL_GREY"[SERVER]{FFFFFF} %s(%d) has been un-muted by %s(%d) [Reason: %s]", ReturnPlayerName(pID), pID, ReturnPlayerName(playerid), playerid, reason);
  474.         SetPVarInt(pID, "admin_Muted", 0);
  475.     }
  476.     return 1;
  477. }
  478.  
  479. CMD:get(playerid, params[])
  480. {
  481.     new
  482.         pID,
  483.         Float: X,
  484.         Float: Y,
  485.         Float: Z
  486.     ;
  487.  
  488.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 2) return 0;
  489.     else if(sscanf(params, "u", pID)) SendUsage(playerid, "/get [PLAYER_ID]");
  490.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  491.     else if(pID == playerid) SendError(playerid, "You cannot bring yourself.");
  492.     else
  493.     {
  494.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have brang %s(%d) to your current location!", ReturnPlayerName(pID), pID);
  495.         SendClientMessageFormatted(pID, -1, ""COL_PINK"[ADMIN]{FFFFFF} %s(%d) has teleported you to his location!", ReturnPlayerName(playerid), playerid);
  496.         GetPlayerPos(playerid, X, Y, Z);
  497.         SetPlayerPos(pID, X, Y + 2, Z);
  498.     }
  499.     return 1;
  500. }
  501.  
  502. CMD:goto(playerid, params[])
  503. {
  504.     new
  505.         pID,
  506.         Float: X,
  507.         Float: Y,
  508.         Float: Z
  509.     ;
  510.  
  511.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 2) return 0;
  512.     else if(sscanf(params, "u", pID)) SendUsage(playerid, "/goto [PLAYER_ID]");
  513.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  514.     else if(pID == playerid) SendError(playerid, "You cannot go to yourself.");
  515.     else
  516.     {
  517.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have went to %s(%d)'s location!", ReturnPlayerName(pID), pID);
  518.         SendClientMessageFormatted(pID, -1, ""COL_PINK"[ADMIN]{FFFFFF} %s(%d) has teleported to your location!", ReturnPlayerName(playerid), playerid);
  519.         GetPlayerPos(pID, X, Y, Z);
  520.         SetPlayerPos(playerid, X, Y + 2, Z);
  521.     }
  522.     return 1;
  523. }
  524.  
  525. CMD:gotoloc(playerid, params[])
  526. {
  527.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 2) return 0;
  528.     else if(gServerData[E_GOTOLOC_BLOCKED] == true) SendError(playerid, "The server owned has blocked the usage of this!");
  529.     else ShowPlayerDialog(playerid, DIALOG_TELES, DIALOG_STYLE_LIST, ""#DIALOG_TITLE" - Teles", "Las Venturas\nLos Santos\nSan Fierro", "Select", "Cancel");
  530.     return 1;
  531. }
  532.  
  533. CMD:warn(playerid, params[])
  534. {
  535.     new
  536.         pID,
  537.         reason[70]
  538.     ;
  539.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 2) return 0;
  540.     else if(sscanf(params, "uS(No reason)[70]", pID, reason)) SendUsage(playerid, "/warn [PLAYER_ID] [REASON]");
  541.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  542.     else if(pID == playerid) SendError(playerid, "You cannot warn yourself.");
  543.     else if(IsHigherAdminLevel(pID, playerid)) SendError(playerid, "This player has a greater admin level then yours!");
  544.     else
  545.     {
  546.         SetPVarInt(pID, "admin_Warns", GetPVarInt(pID, "admin_Warns") + 1);
  547.         if(GetPVarInt(pID, "Warned") == 3)
  548.         {
  549.             SendClientMessageFormattedToAll(COLOR_YELLOW, "%s(%d) has been kicked from the server. [Reason: 3/3 Excessive warnings]", ReturnPlayerName(pID), pID);
  550.             Kick(pID);
  551.         }
  552.         else SendClientMessageFormattedToAll(COLOR_YELLOW, ""COL_GREY"[SERVER]{FFFFFF} %s(%d) has been warned by %s(%d) [Reason: %s][%d/3]", ReturnPlayerName(pID), pID, ReturnPlayerName(playerid), playerid, reason, GetPVarInt(pID, "admin_Warns"));
  553.     }
  554.     return 1;
  555. }
  556.  
  557.  
  558. CMD:countdown(playerid, params[])
  559. {
  560.     new
  561.         ticks
  562.     ;
  563.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 2) return 0;
  564.     else if(sscanf(params, "D(5)", ticks)) SendUsage(playerid, "/countdown [SECONDS]");
  565.     else if(ticks > 20 || ticks < 1) SendError(playerid, "Please specify a time between 1 - 20 seconds.");
  566.     else
  567.     {
  568.         SendClientMessageFormattedToAll(COLOR_YELLOW, ""COL_GREY"[SERVER]{FFFFFF} %s(%d) has started a countdown! [%d second countdown] ", ReturnPlayerName(playerid), playerid, ticks);
  569.  
  570.         KillTimer(gServerData[E_COUNTDOWN_TIMER]);
  571.         gServerData[E_COUNTDOWN_TICK] = ticks;
  572.         gServerData[E_COUNTDOWN_TIMER] = SetTimer("admin_CountDown", 960, 1);
  573.     }
  574.     return 1;
  575. }
  576.  
  577. function admin_CountDown()
  578. {
  579.     static
  580.         string[6]
  581.     ;
  582.     gServerData[E_COUNTDOWN_TICK]--;
  583.     if(gServerData[E_COUNTDOWN_TICK] < 0) return KillTimer(gServerData[E_COUNTDOWN_TIMER]);
  584.  
  585.     foreach(Player, i)
  586.     {
  587.         if(gServerData[E_COUNTDOWN_TICK] != 0) PlayerPlaySound(i, 1137, 0.0, 0.0, 5.0);
  588.         else PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
  589.     }
  590.  
  591.     format(string, sizeof(string), "~w~%d", gServerData[E_COUNTDOWN_TICK]);
  592.     GameTextForAll(string, 1100, 3);
  593.     return 1;
  594. }
  595.  
  596. CMD:ann(playerid, params[])
  597. {
  598.     new
  599.         string[128],
  600.         msg[60]
  601.     ;
  602.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 2) return 0;
  603.     else if(sscanf(params, "s[60]", msg)) SendUsage(playerid, "/ann [MESSAGE]");
  604.     else
  605.     {
  606.         strreplacechar(msg, '~', ']');
  607.         format(string, sizeof(string), "~w~%s", msg);
  608.         GameTextForAll(string, 6000, 3);
  609.     }
  610.     return 1;
  611. }
  612.  
  613. CMD:kick(playerid, params[])
  614. {
  615.     new
  616.         pID,
  617.         reason[70]
  618.     ;
  619.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 2) return 0;
  620.     else if(sscanf(params, "uS(No reason)[70]", pID, reason)) SendUsage(playerid, "/kick [PLAYER_ID] [REASON]");
  621.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  622.     else if(pID == playerid) SendError(playerid, "You cannot kick yourself.");
  623.     else if(IsHigherAdminLevel(pID, playerid)) SendError(playerid, "This player has a greater admin level then yours!");
  624.     else
  625.     {
  626.         SendClientMessageFormattedToAll(COLOR_YELLOW, ""COL_GREY"[SERVER]{FFFFFF} %s(%d) has been kicked from the server by %s(%d) [Reason: %s]", ReturnPlayerName(pID), pID, ReturnPlayerName(playerid), playerid, reason);
  627.         Kick(pID);
  628.     }
  629.     return 1;
  630. }
  631.  
  632. CMD:spec(playerid, params[])
  633. {
  634.     new
  635.         pID
  636.     ;
  637.  
  638.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 2) return 0;
  639.     else if(sscanf(params, "u", pID))
  640.     {
  641.         if(GetPVarInt(playerid, "Spectating") == 1)
  642.         {
  643.             SetPVarInt(playerid, "Specing", 0);
  644.             TogglePlayerSpectating(playerid, 0);
  645.             SendClientMessage(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have stopped spectating!");
  646.         }
  647.         else SendUsage(playerid, "/spec [PLAYER_ID](No parameter = stop spec)");
  648.     }
  649.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  650.     else if(pID == playerid) SendError(playerid, "You cannot spectate yourself.");
  651.     else
  652.     {
  653.         SetPVarInt(playerid, "Spectating", 1);
  654.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You are now spectating %s(%d)!", ReturnPlayerName(pID), pID);
  655.  
  656.         TogglePlayerSpectating(playerid, 1);
  657.         if(IsPlayerInAnyVehicle(pID)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(pID));
  658.         else PlayerSpectatePlayer(playerid, pID);
  659.     }
  660.     return 1;
  661. }
  662.  
  663. /* LEVEL 3 */
  664. CMD:aboat(playerid, params[])
  665. {
  666.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  667.     CreateVehicleForPlayer(playerid, 493, 0, 0);
  668.     SendClientMessage(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have created a admin boat.");
  669.     return 1;
  670. }
  671.  
  672. CMD:aheli(playerid, params[])
  673. {
  674.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  675.     CreateVehicleForPlayer(playerid, 487, 0, 0);
  676.     SendClientMessage(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have created a admin helicopter.");
  677.     return 1;
  678. }
  679.  
  680. CMD:abike(playerid, params[])
  681. {
  682.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  683.     CreateVehicleForPlayer(playerid, 522, 0, 0);
  684.     SendClientMessage(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have created a admin bike.");
  685.     return 1;
  686. }
  687.  
  688. CMD:aplane(playerid, params[])
  689. {
  690.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  691.     CreateVehicleForPlayer(playerid, 513, 0, 0);
  692.     SendClientMessage(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have created a admin plane.");
  693.     return 1;
  694. }
  695.  
  696. CMD:acar(playerid, params[])
  697. {
  698.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  699.     CreateVehicleForPlayer(playerid, 415, 0, 0);
  700.     SendClientMessage(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have created a admin car.");
  701.     return 1;
  702. }
  703.  
  704. CMD:v(playerid, params[])
  705. {
  706.     new
  707.         vName[ 24 ],
  708.         vCar,
  709.         Float: X,
  710.         Float: Y,
  711.         Float: Z
  712.     ;
  713.     GetPlayerPos(playerid, X, Y, Z);
  714.  
  715.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  716.     else if(sscanf(params, "s[24]", vName)) SendUsage(playerid, "/v [VEHICLE_NAME]");
  717.     else
  718.     {
  719.         vCar = CreateVehicle(GetVehicleModelFromName(vName), X, Y, Z, 0, -1, -1, -1);
  720.         PutPlayerInVehicle(playerid, vCar, 0);
  721.         SendClientMessage(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have created a car!");
  722.     }
  723.     return 1;
  724. }
  725.  
  726. CMD:god(playerid, params[])
  727. {
  728.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  729.     SetPVarInt(playerid, "admin_God", GetPVarInt(playerid, "admin_God") == 1 ? 0 : 1);
  730.     SetPlayerHealth(playerid, GetPVarInt(playerid, "admin_God") == 0 ? 100 : 0xFFFF);
  731.     SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have %s god mode.", GetPVarInt(playerid, "admin_God") == 1 ? ("toggled") : ("un-toggled"));
  732.     return 1;
  733. }
  734.  
  735. CMD:mammo(playerid, params[]) return cmd_aweaps(playerid, params);
  736. CMD:aweaps(playerid, params[])
  737. {
  738.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  739.     GivePlayerWeapon(playerid, 38, 0xFFFF);
  740.     GivePlayerWeapon(playerid, 9, 1);
  741.     GivePlayerWeapon(playerid, 39, 0xFFFF);
  742.     GivePlayerWeapon(playerid, 40, 1);
  743.     GivePlayerWeapon(playerid, 31, 0xFFFF);
  744.     GivePlayerWeapon(playerid, 27, 0xFFFF);
  745.     GivePlayerWeapon(playerid, 24, 0xFFFF);
  746.     SendClientMessage(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have been given admin weapons!");
  747.     return 1;
  748. }
  749.  
  750. CMD:cage(playerid, params[])
  751. {
  752.     new
  753.         pID
  754.     ;
  755.  
  756.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  757.     else if(sscanf(params, "u", pID)) SendUsage(playerid, "/cage [PLAYER_ID]");
  758.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  759.     else if(pID == playerid) SendError(playerid, "You cannot cage yourself.");
  760.     else if(IsHigherAdminLevel(pID, playerid)) SendError(playerid, "This player has a greater admin level then yours!");
  761.     else if(gPlayerData[playerid][E_CAGED] == true) SendError(playerid, "This player is already caged!");
  762.     else
  763.     {
  764.         CagePlayer(playerid);
  765.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have caged %s(%d)!", ReturnPlayerName(pID), pID);
  766.         SendClientMessageFormatted(pID, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have been caged by %s(%d)!", ReturnPlayerName(playerid), playerid);
  767.     }
  768.     return 1;
  769. }
  770.  
  771. CMD:uncage(playerid, params[])
  772. {
  773.     new
  774.         pID
  775.     ;
  776.  
  777.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  778.     else if(sscanf(params, "u", pID)) SendUsage(playerid, "/uncage [PLAYER_ID]");
  779.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  780.     else if(pID == playerid) SendError(playerid, "You cannot uncage yourself.");
  781.     else if(IsHigherAdminLevel(pID, playerid)) SendError(playerid, "This player has a greater admin level then yours!");
  782.     else if(gPlayerData[playerid][E_CAGED] == false) SendError(playerid, "This player is not caged!");
  783.     else
  784.     {
  785.         DestroyPlayerCage(playerid);
  786.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have uncaged %s(%d)!", ReturnPlayerName(pID), pID);
  787.         SendClientMessageFormatted(pID, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have been uncaged by %s(%d)!", ReturnPlayerName(playerid), playerid);
  788.     }
  789.     return 1;
  790. }
  791.  
  792. CMD:explode(playerid, params[])
  793. {
  794.     new
  795.         pID
  796.     ;
  797.  
  798.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  799.     else if(sscanf(params, "u", pID)) SendUsage(playerid, "/explode [PLAYER_ID]");
  800.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  801.     else if(IsHigherAdminLevel(pID, playerid)) SendError(playerid, "This player has a greater admin level then yours!");
  802.     else
  803.     {
  804.         new Float: X, Float: Y, Float: Z;
  805.         GetPlayerPos(pID, X, Y, Z);
  806.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have exploded %s(%d)!", ReturnPlayerName(pID), pID);
  807.         CreateExplosion(X, Y, Z, 12, 10.0);
  808.     }
  809.     return 1;
  810. }
  811.  
  812.  
  813. CMD:rban(playerid, params[])
  814. {
  815.     new
  816.         reason[40],
  817.         pID
  818.     ;
  819.  
  820.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  821.     else if(sscanf(params, "uS(No Reason)[40]", pID, reason)) SendUsage(playerid, "/rban [PLAYER_ID] [REASON]");
  822.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  823.     else if(pID == playerid) SendError(playerid, "You cannot ban yourself.");
  824.     else if(IsHigherAdminLevel(pID, playerid)) SendError(playerid, "This player has a greater admin level then yours!");
  825.     else
  826.     {
  827.         SendClientMessageFormattedToAll(COLOR_YELLOW, ""COL_GREY"[SERVER]{FFFFFF} %s(%d) has been range banned from the server by %s(%d) [Reason: %s]", ReturnPlayerName(pID), pID, ReturnPlayerName(playerid), playerid, reason);
  828.         Ban(pID);
  829.     }
  830.     return 1;
  831. }
  832.  
  833. CMD:ban(playerid, params[])
  834. {
  835.     new
  836.         reason[40],
  837.         pID
  838.     ;
  839.  
  840.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  841.     else if(sscanf(params, "uS(No Reason)[40]", pID, reason)) SendUsage(playerid, "/ban [PLAYER_ID] [REASON]");
  842.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  843.     else if(pID == playerid) SendError(playerid, "You cannot ban yourself.");
  844.     else if(IsHigherAdminLevel(pID, playerid)) SendError(playerid, "This player has a greater admin level then yours!");
  845.     else
  846.     {
  847.         SendClientMessageFormattedToAll(COLOR_YELLOW, ""COL_GREY"[SERVER]{FFFFFF} %s(%d) has been banned from the server by %s(%d) [Reason: %s]", ReturnPlayerName(pID), pID, ReturnPlayerName(playerid), playerid, reason);
  848.         AdvanceBan(playerid, pID, reason);
  849.     }
  850.     return 1;
  851. }
  852.  
  853. CMD:banip(playerid, params[])
  854. {
  855.     new
  856.         IP[16]
  857.     ;
  858.  
  859.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  860.     else if(sscanf(params, "s[16]", IP)) SendUsage(playerid, "/banip [IP]");
  861.     else
  862.     {
  863.         SendClientMessageFormattedToAll(COLOR_YELLOW, ""COL_GREY"[SERVER]{FFFFFF} IP %s has been banned from the server by %s(%d)", IP, ReturnPlayerName(playerid), playerid);
  864.         BanIPAddress(IP);
  865.     }
  866.     return 1;
  867. }
  868.  
  869. CMD:asay(playerid, params[])
  870. {
  871.     new string[100];
  872.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  873.     else if(sscanf(params, "s[100]", string)) SendUsage(playerid, "/asay [TEXT]");
  874.     else
  875.     {
  876.         SendClientMessageToAll(-1, string);
  877.     }
  878.     return 1;
  879. }
  880.  
  881. CMD:burn(playerid, params[])
  882. {
  883.     new
  884.         pID
  885.     ;
  886.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 3) return 0;
  887.     else if(sscanf(params, "u", pID)) SendUsage(playerid, "/burn [PLAYER_ID]");
  888.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  889.     else if(IsHigherAdminLevel(pID, playerid)) SendError(playerid, "This player has a greater admin level then yours!");
  890.     else
  891.     {
  892.         new Float: X, Float: Y, Float: Z;
  893.         GetPlayerPos(pID, X, Y, Z);
  894.         CreateExplosion(X, Y, Z + 3, 1, 10);
  895.  
  896.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have burned %s(%d)!", ReturnPlayerName(pID), pID);
  897.     }
  898.     return 1;
  899. }
  900.  
  901. /* LEVEL 4 */
  902. CMD:unlockserver(playerid, params[])
  903. {
  904.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 4) return 0;
  905.     gServerData[E_SERVER_LOCKED] = false;
  906.     return 1;
  907. }
  908.  
  909. CMD:lockserver(playerid, params[])
  910. {
  911.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 4) return 0;
  912.     gServerData[E_SERVER_LOCKED] = true;
  913.     return 1;
  914. }
  915.  
  916. CMD:blockteleports(playerid, params[])
  917. {
  918.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 4) return 0;
  919.     gServerData[E_GOTOLOC_BLOCKED] = gServerData[E_GOTOLOC_BLOCKED] == true ? false : true;
  920.     SendClientMessageFormattedToAll(COLOR_YELLOW, ""COL_GREY"[SERVER]{FFFFFF} %s(%d) %s teleporting for admins.", ReturnPlayerName(playerid), playerid, gServerData[E_GOTOLOC_BLOCKED] == false ? ("enabled") : ("disabled"));
  921.     return 1;
  922. }
  923.  
  924. CMD:unmuteall(playerid, params[])
  925. {
  926.     new Message[24];
  927.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 4) return 0;
  928.     else if(sscanf(params, "S(No Reason)[24]", Message)) SendUsage(playerid, "/unmuteall [MESSAGE]");
  929.     else
  930.     {
  931.         SendClientMessage(playerid, COLOR_YELLOW, "You have un-muted all players in the server!");
  932.         SendClientMessageFormattedToAll(COLOR_YELLOW, "Everyone has been un-muted in the server! [Reason: %s]", Message);
  933.         for(new i; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
  934.         {
  935.             if(gPlayerData[i][E_ADMIN_LEVEL] > 0) continue;
  936.             SetPVarInt(i, "admin_Muted", 0);
  937.         }
  938.     }
  939.     return 1;
  940. }
  941.  
  942. CMD:muteall(playerid, params[])
  943. {
  944.     new Message[24], string[128];
  945.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 4) return 0;
  946.     else if(sscanf(params, "S(No Reason)[24]", Message)) SendUsage(playerid, "/muteall [MESSAGE]");
  947.     else
  948.     {
  949.         SendClientMessage(playerid, COLOR_YELLOW, "You have muted all players in the server [ex. Admins]");
  950.         SendClientMessageFormattedToAll(COLOR_YELLOW, string, "Everyone has been muted in the server! [Reason: %s]", Message);
  951.         for(new i; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
  952.         {
  953.             if(gPlayerData[i][E_ADMIN_LEVEL] > 0) continue;
  954.             SetPVarInt(i, "admin_Muted", 1);
  955.         }
  956.     }
  957.     return 1;
  958. }
  959.  
  960. CMD:kickall(playerid, params[])
  961. {
  962.     new Message[24], string[128];
  963.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 4) return 0;
  964.     else if(sscanf(params, "S(No Reason)[24]", Message)) SendUsage(playerid, "/kickall [MESSAGE]");
  965.     else
  966.     {
  967.         SendClientMessage(playerid, COLOR_YELLOW, "You have kicked all players from the server [ex. Admins]");
  968.         SendClientMessageFormattedToAll(COLOR_YELLOW, string, "Everyone has been kicked from the server! [Reason: %s]", Message);
  969.         for(new i; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
  970.         {
  971.             if(gPlayerData[i][E_ADMIN_LEVEL] > 0) continue;
  972.             Kick(i);
  973.         }
  974.     }
  975.     return 1;
  976. }
  977.  
  978. CMD:drift(playerid, params[])
  979. {
  980.     new
  981.         driftid
  982.     ;
  983.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 4) return 0;
  984.     else if(sscanf(params, "d", driftid)) SendUsage(playerid, "/drift [0 - 2]");
  985.     else if(driftid > 2) SendError(playerid, "Specify a drift between 0 and 2");
  986.     else
  987.     {
  988.         switch(driftid)
  989.         {
  990.             case 0: SetPlayerPos(playerid, -358.1943, 1531.2909, 75.1698);
  991.             case 1: SetPlayerPos(playerid, 2265.3010, 1399.5085, 42.8203);
  992.             case 2: SetPlayerPos(playerid, -2489.8352, -616.3492, 132.5658);
  993.         }
  994.     }
  995.     return 1;
  996. }
  997.  
  998. CMD:makevip(playerid, params[])
  999. {
  1000.     new
  1001.         pID,
  1002.         level
  1003.     ;
  1004.     if(gPlayerData[playerid][E_ADMIN_LEVEL] < 4) return 0;
  1005.     else if(sscanf(params, "ud", pID, level)) SendUsage(playerid, "/makevip [PLAYER_ID] [VIP_LEVEL]");
  1006.     else if(level > 2) SendError(playerid, "Specify a vip level between 0 and 2!");
  1007.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  1008.     else if(!gPlayerData[playerid][E_LOGGED]) SendError(playerid, "This player is not logged in!");
  1009.     else
  1010.     {
  1011.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have set %s(%d)'s VIP level to %d [%s]!", ReturnPlayerName(pID), pID, level, GetVIPRank(level));
  1012.         SendClientMessageFormatted(pID, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have been set VIP level %d [%s] by %s(%d)!", level, GetVIPRank(level), ReturnPlayerName(playerid), playerid);
  1013.         gPlayerData[pID][E_VIP_LEVEL] = level;
  1014.     }
  1015.     return 1;
  1016. }
  1017.  
  1018. /* RCON - CONSOLE */
  1019. CMD:makeadmin(playerid, params[])
  1020. {
  1021.     new
  1022.         pID,
  1023.         level
  1024.     ;
  1025.     if(!IsPlayerAdmin(playerid)) return 0;
  1026.     else if(sscanf(params, "ud", pID, level)) SendUsage(playerid, "/makeadmin [PLAYER_ID] [ADMIN_LEVEL]");
  1027.     else if(level > 4) SendError(playerid, "Specify a admin level between 0 and 4!");
  1028.     else if(!IsPlayerConnected(pID)) SendError(playerid, "This player is not connected!");
  1029.     else if(!gPlayerData[playerid][E_LOGGED]) SendError(playerid, "This player is not logged in!");
  1030.     else
  1031.     {
  1032.         SendClientMessageFormatted(playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have set %s(%d)'s admin level to %d [%s]!", ReturnPlayerName(pID), pID, level, GetAdminRank(level));
  1033.         SendClientMessageFormatted(pID, -1, ""COL_PINK"[ADMIN]{FFFFFF} You have been set admin level %d [%s] by %s(%d)!", level, GetAdminRank(level), ReturnPlayerName(playerid), playerid);
  1034.         gPlayerData[pID][E_ADMIN_LEVEL] = level;
  1035.     }
  1036.     return 1;
  1037. }
  1038.  
  1039. /*
  1040.             END OF COMMANDS
  1041.  
  1042. */
  1043.  
  1044. stock GetVIPRank(level)
  1045. {
  1046.     new rank[24];
  1047.     switch(level)
  1048.     {
  1049.         case 0: rank = "Normal Player";
  1050.         case 1: rank = "Basic VIP";
  1051.         case 2: rank = "High VIP";
  1052.     }
  1053.     return rank;
  1054. }
  1055.  
  1056. stock GetAdminRank(level)
  1057. {
  1058.     new rank[24];
  1059.     switch(level)
  1060.     {
  1061.         case 0: rank = "Normal Player";
  1062.         case 1: rank = "VIP Moderator";
  1063.         case 2: rank = "Moderator";
  1064.         case 3: rank = "Administrator";
  1065.         case 4: rank = "Server Owner";
  1066.     }
  1067.     return rank;
  1068. }
  1069.  
  1070. public OnRconCommand(cmd[])
  1071. {
  1072.     return 1;
  1073. }
  1074.  
  1075. public OnPlayerRequestSpawn(playerid)
  1076. {
  1077.     return 1;
  1078. }
  1079.  
  1080. public OnObjectMoved(objectid)
  1081. {
  1082.     return 1;
  1083. }
  1084.  
  1085. public OnPlayerObjectMoved(playerid, objectid)
  1086. {
  1087.     return 1;
  1088. }
  1089.  
  1090. public OnPlayerPickUpPickup(playerid, pickupid)
  1091. {
  1092.     return 1;
  1093. }
  1094.  
  1095. public OnVehicleMod(playerid, vehicleid, componentid)
  1096. {
  1097.     return 1;
  1098. }
  1099.  
  1100. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  1101. {
  1102.     return 1;
  1103. }
  1104.  
  1105. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  1106. {
  1107.     return 1;
  1108. }
  1109.  
  1110. public OnPlayerSelectedMenuRow(playerid, row)
  1111. {
  1112.     return 1;
  1113. }
  1114.  
  1115. public OnPlayerExitedMenu(playerid)
  1116. {
  1117.     return 1;
  1118. }
  1119.  
  1120. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  1121. {
  1122.     return 1;
  1123. }
  1124.  
  1125. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1126. {
  1127.     return 1;
  1128. }
  1129.  
  1130. public OnRconLoginAttempt(ip[], password[], success)
  1131. {
  1132.     return 1;
  1133. }
  1134.  
  1135. public OnPlayerUpdate(playerid)
  1136. {
  1137.     return 1;
  1138. }
  1139.  
  1140. public OnPlayerStreamIn(playerid, forplayerid)
  1141. {
  1142.     return 1;
  1143. }
  1144.  
  1145. public OnPlayerStreamOut(playerid, forplayerid)
  1146. {
  1147.     return 1;
  1148. }
  1149.  
  1150. public OnVehicleStreamIn(vehicleid, forplayerid)
  1151. {
  1152.     return 1;
  1153. }
  1154.  
  1155. public OnVehicleStreamOut(vehicleid, forplayerid)
  1156. {
  1157.     return 1;
  1158. }
  1159.  
  1160. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1161. {
  1162.     new
  1163.         Query[ 256 ],
  1164.         DBResult: Result,
  1165.         name[ MAX_PLAYER_NAME ],
  1166.         ip[ 16 ]
  1167.     ;
  1168.     GetPlayerName(playerid, name, sizeof(name));
  1169.     GetPlayerIp(playerid, ip, sizeof(ip));
  1170.  
  1171.     if(dialogid == DIALOG_LOGIN)
  1172.     {
  1173.         if(response)
  1174.         {
  1175.             format(Query, sizeof(Query), "SELECT * FROM `USERS` WHERE NAME = '%s' AND PASSWORD = '%s'", DB_Escape(name), DB_Escape(inputtext));
  1176.             Result = db_query(Database, Query);
  1177.             if(db_num_rows(Result))
  1178.             {
  1179.                 new Field[ 20 ];
  1180.                 db_get_field_assoc(Result, "ADMINLEVEL", Field, 30);
  1181.                 gPlayerData[playerid][E_ADMIN_LEVEL] = strval(Field);
  1182.  
  1183.                 db_get_field_assoc(Result, "VIP", Field, 30);
  1184.                 gPlayerData[playerid][E_VIP_LEVEL] = strval(Field);
  1185.  
  1186.                 db_get_field_assoc(Result, "KILLS", Field, 30);
  1187.                 gPlayerData[playerid][E_KILLS] = strval(Field);
  1188.  
  1189.                 db_get_field_assoc(Result, "DEATHS", Field, 30);
  1190.                 gPlayerData[playerid][E_DEATHS] = strval(Field);
  1191.  
  1192.                 db_get_field_assoc(Result, "SCORE", Field, 30);
  1193.                 SetPlayerScore(playerid, strval(Field));
  1194.  
  1195.                 gPlayerData[playerid][E_LOGGED] = true;
  1196.  
  1197.                 SendClientMessage(playerid, -1, ""COL_GREEN"[LOGGED]{FFFFFF} You have successfully logged in!");
  1198.             }
  1199.             else
  1200.             {
  1201.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, DIALOG_TITLE, LOGIN_MSG, "Login", "Leave");
  1202.                 SendClientMessage(playerid, -1, ""COL_RED"[ERROR]{FFFFFF} You have entered a wrong password, if this account isn't yours, we'd advise you relog with a new nickname.");
  1203.             }
  1204.             db_free_result(Result);
  1205.         }
  1206.         else return Kick(playerid);
  1207.     }
  1208.     if(dialogid == DIALOG_REGISTER)
  1209.     {
  1210.         if(response)
  1211.         {
  1212.             if(strlen(inputtext) > 24 || strlen(inputtext) < 3)
  1213.             {
  1214.                 ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, DIALOG_TITLE, REGISTER_MSG, "Register", "Leave");
  1215.                 SendClientMessage(playerid, -1, ""COL_RED"[ERROR]{FFFFFF} Your password must contain at least 3 characters and not exceed 24.");
  1216.             }
  1217.             else
  1218.             {
  1219.                 format(Query, sizeof(Query),    "INSERT INTO `USERS` (NAME, PASSWORD, IP, ADMINLEVEL, VIP, LASTLOGIN, KILLS, DEATHS, SCORE) VALUES('%s','%s','%s', 0, 0, '%s', 0, 0, 0)",
  1220.                                                 DB_Escape(name), DB_Escape(inputtext), DB_Escape(ip), getDate());
  1221.  
  1222.                 db_query(Database, Query);
  1223.                 gPlayerData[playerid][E_LOGGED] = true;
  1224.                 SetPlayerScore(playerid, 0);
  1225.                 SendClientMessage(playerid, -1, ""COL_GREEN"[REGISTERED]{FFFFFF} You have successfully registered into our database!");
  1226.             }
  1227.         }
  1228.         else return Kick(playerid);
  1229.     }
  1230.     if((dialogid == DIALOG_TELES) && response)
  1231.     {
  1232.         switch(listitem)
  1233.         {
  1234.             case 0: ShowPlayerDialog(playerid, DIALOG_TELES_LV, DIALOG_STYLE_LIST, ""#DIALOG_TITLE" - Teles - LV", "Four Dragons Casino\nAutobahn\nBayside\nAirport\nLVPD", "Select", "Back");
  1235.             case 1: ShowPlayerDialog(playerid, DIALOG_TELES_LS, DIALOG_STYLE_LIST, ""#DIALOG_TITLE" - Teles - LS", "Groove Street\nRichman\nAirport\nMulholland\nPalmonio Creek\nMontgomery\nBlueberry\nLSPD", "Select", "Back");
  1236.             case 2: ShowPlayerDialog(playerid, DIALOG_TELES_SF, DIALOG_STYLE_LIST, ""#DIALOG_TITLE" - Teles - SF", "Jizzys\nWang cars\nSFPD", "Select", "Back");
  1237.         }
  1238.     }
  1239.     if(dialogid == DIALOG_TELES_SF)
  1240.     {
  1241.         if(response)
  1242.         {
  1243.             //Jizzys\nWang cars\nSFPD
  1244.             switch(listitem)
  1245.             {
  1246.                 case 0: SetPlayerPos(playerid, -2614.1187, 1419.3098, 7.1500);
  1247.                 case 1: SetPlayerPos(playerid, -1986.0498, 302.6044, 35.1719);
  1248.                 case 2: SetPlayerPos(playerid, -1596.0472, 721.7451, 10.2534);
  1249.             }
  1250.         }
  1251.         else ShowPlayerDialog(playerid, DIALOG_TELES, DIALOG_STYLE_LIST, ""#DIALOG_TITLE" - Teles", "Las Venturas\nLos Santos\nSan Fierro", "Select", "Cancel");
  1252.     }
  1253.     if(dialogid == DIALOG_TELES_LV)
  1254.     {
  1255.         if(response)
  1256.         {
  1257.             //Four Dragons Casino\nAutobahn\nBayside\nAirport\nLVPD
  1258.             switch(listitem)
  1259.             {
  1260.                 case 0: SetPlayerPos(playerid, 2027.5721, 1008.2877, 10.8203);
  1261.                 case 1: SetPlayerPos(playerid, 2146.1252, 1426.8373, 13.0214);
  1262.                 case 2: SetPlayerPos(playerid, -670.6358, 2306.0559, 135.2990);
  1263.                 case 3: SetPlayerPos(playerid, 1679.3361, 1448.6248, 10.7744);
  1264.                 case 4: SetPlayerPos(playerid, 2287.0313, 2431.0276, 10.8203);
  1265.             }
  1266.         }
  1267.         else ShowPlayerDialog(playerid, DIALOG_TELES, DIALOG_STYLE_LIST, ""#DIALOG_TITLE" - Teles", "Las Venturas\nLos Santos\nSan Fierro", "Select", "Cancel");
  1268.     }
  1269.     if(dialogid == DIALOG_TELES_LS)
  1270.     {
  1271.         if(response)
  1272.         {
  1273.             //Groove Street\nRichman\nAirport\nMulholland\nPalmonio Creek\nMontgomery\nBlueberry\nLSPD
  1274.             switch(listitem)
  1275.             {
  1276.                 case 0: SetPlayerPos(playerid, 2474.8001, -1670.0190, 13.5001);
  1277.                 case 1: SetPlayerPos(playerid, 679.0143, -1070.0120, 49.0000);
  1278.                 case 2: SetPlayerPos(playerid, 1979.0213, -2241.0, 13.0002);
  1279.                 case 3: SetPlayerPos(playerid, 1240.0000, -744.0, 95.0101);
  1280.                 case 4: SetPlayerPos(playerid, 2269.6877, -75.0973, 26.7724);
  1281.                 case 5: SetPlayerPos(playerid, 1242.2875, 328.5506, 19.7555);
  1282.                 case 6: SetPlayerPos(playerid, 198.4328, -252.1696, 1.5781);
  1283.                 case 7: SetPlayerPos(playerid, 1539.3021, -1670.0192, 14.0123);
  1284.             }
  1285.         }
  1286.         else ShowPlayerDialog(playerid, DIALOG_TELES, DIALOG_STYLE_LIST, ""#DIALOG_TITLE" - Teles", "Las Venturas\nLos Santos\nSan Fierro", "Select", "Cancel");
  1287.     }
  1288.     return 1;
  1289. }
  1290.  
  1291. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1292. {
  1293.     return 1;
  1294. }
  1295.  
  1296. //Functions
  1297. stock getDate()
  1298. {
  1299.     static
  1300.         strDate[12],
  1301.         Year, Month, Day
  1302.     ;
  1303.     getdate(Year, Month, Day);
  1304.     format(strDate, sizeof(strDate), "%d/%d/%d", Month, Day, Year);
  1305.     return strDate;
  1306. }
  1307.  
  1308. stock DB_Escape(text[])
  1309. {
  1310.     new
  1311.         ret[80 * 2],
  1312.         ch,
  1313.         i,
  1314.         j;
  1315.     while ((ch = text[i++]) && j < sizeof (ret))
  1316.     {
  1317.         if (ch == '\'')
  1318.         {
  1319.             if (j < sizeof (ret) - 2)
  1320.             {
  1321.                 ret[j++] = '\'';
  1322.                 ret[j++] = '\'';
  1323.             }
  1324.         }
  1325.         else if (j < sizeof (ret))
  1326.         {
  1327.             ret[j++] = ch;
  1328.         }
  1329.         else
  1330.         {
  1331.             j++;
  1332.         }
  1333.     }
  1334.     ret[sizeof (ret) - 1] = '\0';
  1335.     return ret;
  1336. }
  1337.  
  1338. stock SendError(playerid, text[])
  1339. {
  1340.     new
  1341.         out[128]
  1342.     ;
  1343.     format(out, sizeof(out), ""COL_RED"[ERROR]{FFFFFF} %s", text);
  1344.     SendClientMessage(playerid, -1, out);
  1345. }
  1346.  
  1347. stock SendUsage(playerid, text[])
  1348. {
  1349.     new
  1350.         out[128]
  1351.     ;
  1352.     format(out, sizeof(out), "{FF7000}[USAGE]{FFFFFF} %s", text);
  1353.     SendClientMessage(playerid, -1, out);
  1354. }
  1355.  
  1356. stock SendClientMessageFormatted(playerid, colour, format[], va_args<>)
  1357. {
  1358.     new
  1359.         out[128]
  1360.     ;
  1361.     va_format(out, sizeof(out), format, va_start<3>);
  1362.     SendClientMessage(playerid, colour, out);
  1363. }
  1364.  
  1365. stock SendClientMessageFormattedToAll(colour, format[], va_args<>)
  1366. {
  1367.     new
  1368.         out[128]
  1369.     ;
  1370.     va_format(out, sizeof(out), format, va_start<2>);
  1371.     SendClientMessageToAll(colour, out);
  1372. }
  1373.  
  1374. stock ReturnPlayerName(playerid)
  1375. {
  1376.     GetPlayerName(playerid, szName, sizeof(szName));
  1377.     return szName;
  1378. }
  1379.  
  1380. stock strreplacechar(string[], oldchar, newchar)
  1381. {
  1382.     new matches;
  1383.     if(ispacked(string)) {
  1384.         if(newchar == '\0') {
  1385.             for(new i; string{i} != '\0'; i++) {
  1386.                 if(string{i} == oldchar) {
  1387.                     strdel(string, i, i + 1);
  1388.                     matches++;
  1389.                 }
  1390.             }
  1391.         } else {
  1392.             for(new i; string{i} != '\0'; i++) {
  1393.                 if(string{i} == oldchar) {
  1394.                     string{i} = newchar;
  1395.                     matches++;
  1396.                 }
  1397.             }
  1398.         }
  1399.     } else {
  1400.         if(newchar == '\0') {
  1401.             for(new i; string[i] != '\0'; i++) {
  1402.                 if(string[i] == oldchar) {
  1403.                     strdel(string, i, i + 1);
  1404.                     matches++;
  1405.                 }
  1406.             }
  1407.         } else {
  1408.             for(new i; string[i] != '\0'; i++) {
  1409.                 if(string[i] == oldchar) {
  1410.                     string[i] = newchar;
  1411.                     matches++;
  1412.                 }
  1413.             }
  1414.         }
  1415.     }
  1416.     return matches;
  1417. }
  1418.  
  1419. AdvanceBan(bannerid, playerid, reason[])
  1420. {
  1421.     new Query[256], DBResult:Result;
  1422.     format(Query, sizeof(Query), "SELECT * FROM `BANS` WHERE `NAME` = '%s'", ReturnPlayerName(playerid));
  1423.     Result = db_query(Database, Query);
  1424.     if(db_num_rows(Result)) return 0;
  1425.     else
  1426.     {
  1427.         if(playerid != INVALID_PLAYER_ID)
  1428.         {
  1429.             format( Query, sizeof(Query), "INSERT INTO `BANS` (NAME, IP, BANBY, REASON) VALUES('%s','%s','%s','%s')",
  1430.             DB_Escape(ReturnPlayerName(playerid)), DB_Escape(ReturnPlayerIP(playerid)), DB_Escape(ReturnPlayerName(bannerid)), DB_Escape(reason));
  1431.             db_query(Database, Query);
  1432.  
  1433.             Kick(playerid);
  1434.         }
  1435.         else return 0;
  1436.     }
  1437.     db_free_result(Result);
  1438.     return 1;
  1439. }
  1440.  
  1441. BanIPAddress(IP[])
  1442. {
  1443.     new Query[256], DBResult:Result;
  1444.     format(Query, sizeof(Query), "SELECT * FROM `IPBANS` WHERE IP = '%s'", IP);
  1445.     Result = db_query(Database, Query);
  1446.     if(db_num_rows(Result)) return 0;
  1447.     else
  1448.     {
  1449.         format( Query, sizeof(Query), "INSERT INTO `IPBANS` (IP) VALUES('%s')", DB_Escape(IP));
  1450.         db_query(Database, Query);
  1451.     }
  1452.     db_free_result(Result);
  1453.     return 1;
  1454. }
  1455.  
  1456.  
  1457. IsPlayerBanned(playerid)
  1458. {
  1459.     new Query[128], DBResult:Result;
  1460.     format(Query, sizeof(Query), "SELECT * FROM BANS WHERE NAME = '%s' OR IP = '%s'", ReturnPlayerName(playerid), ReturnPlayerIP(playerid));
  1461.     Result = db_query(Database, Query);
  1462.     if(db_num_rows(Result)) return true;
  1463.     return false;
  1464. }
  1465.  
  1466. IsIPBanned(IP[])
  1467. {
  1468.     new Query[128], DBResult:Result;
  1469.     format(Query, sizeof(Query), "SELECT * FROM IPBANS WHERE IP = '%s'", IP);
  1470.     Result = db_query(Database, Query);
  1471.     if(db_num_rows(Result)) return true;
  1472.     return false;
  1473. }
  1474.  
  1475.  
  1476. ShowPlayerBan(playerid)
  1477. {
  1478.     new Query[128], DBResult:Result, string[300];
  1479.     format(Query, sizeof(Query), "SELECT * FROM `BANS` WHERE NAME = '%s' OR IP = '%s'", ReturnPlayerName(playerid), ReturnPlayerIP(playerid));
  1480.     Result = db_query(Database, Query);
  1481.     if(db_num_rows(Result))
  1482.     {
  1483.         new Field[20];
  1484.  
  1485.         db_get_field_assoc(Result, "BANBY", Field, sizeof(Field));
  1486.         format(gPlayerData[playerid][E_BAN_BY], MAX_PLAYER_NAME, "%s", Field);
  1487.  
  1488.         db_get_field_assoc(Result, "REASON", Field, sizeof(Field));
  1489.         format(gPlayerData[playerid][E_BAN_REASON], 60, "%s", Field);
  1490.  
  1491.         format(string, sizeof(string), "{FFFFFF}You have been banned!\n"COL_RED"Reason:{FFFFFF} %s\n"COL_RED"Ban by:{FFFFFF} %s\nIf you feel wrongfully banned, please do create\na ban appeal on our forums.\n"#SERVER_SITE"", gPlayerData[playerid][E_BAN_REASON], gPlayerData[playerid][E_BAN_BY]);
  1492.         ShowPlayerDialog(playerid, DIALOG_NULL, DIALOG_STYLE_MSGBOX, ""#SERVER_NAME" - Banned", string, "OK", "");
  1493.         Kick(playerid);
  1494.     }
  1495.     return 1;
  1496. }
  1497.  
  1498. stock ReturnPlayerIP(playerid)
  1499. {
  1500.     GetPlayerIp(playerid, szIP, sizeof(szIP));
  1501.     return szIP;
  1502. }
  1503.  
  1504. stock CagePlayer(playerid)
  1505. {
  1506.     if(!IsPlayerConnected(playerid)) return 0;
  1507.     new Float:X, Float:Y, Float:Z;
  1508.     GetPlayerPos(playerid, X, Y, Z);
  1509.  
  1510.     gPlayerData[playerid][E_CAGE][0] = CreateObject(985, X, Y+4, Z, 0.0, 0.0, 0.0);
  1511.     gPlayerData[playerid][E_CAGE][1] = CreateObject(985, X+4, Y, Z, 0.0, 0.0, 90.0);
  1512.     gPlayerData[playerid][E_CAGE][2] = CreateObject(985, X-4, Y, Z, 0.0, 0.0, 270.0);
  1513.     gPlayerData[playerid][E_CAGE][3] = CreateObject(985, X, Y-4, Z, 0.0, 0.0, 180.0);
  1514.     gPlayerData[playerid][E_CAGED] = true;
  1515.     return 1;
  1516. }
  1517.  
  1518. stock DestroyPlayerCage(playerid)
  1519. {
  1520.     if(!IsPlayerConnected(playerid)) return 0;
  1521.  
  1522.     for(new i; i < 4; i++)
  1523.     {
  1524.         DestroyObject(gPlayerData[playerid][E_CAGE][i]);
  1525.         gPlayerData[playerid][E_CAGE][i] = INVALID_OBJECT_ID;
  1526.     }
  1527.     gPlayerData[playerid][E_CAGED] = false;
  1528.     return 1;
  1529. }
  1530.  
  1531. stock GetVehicleModelFromName(vName[])
  1532. {
  1533.     for (new i = 400; i <= 611; i++)
  1534.         if(strfind(vNames[i - 400], vName, true) != -1)
  1535.             return i;
  1536.     return -1;
  1537. }
  1538.  
  1539.  
  1540. stock GVN(modelid,name[],namesize)
  1541. {
  1542.     if(modelid < 400 || modelid > 611) return 0;
  1543.     modelid -= 400;
  1544.     for(new i = 0, len = strlen(vNames[modelid]); i < len && i < namesize; i++)
  1545.     {
  1546.         name[i] = vNames[modelid][i];
  1547.     }
  1548.     return 1;
  1549. }
  1550.  
  1551. stock GetVehicleName(modelid)
  1552. {
  1553.     new name[64];
  1554.     GVN(modelid, name, sizeof(name));
  1555.     return name;
  1556. }
  1557.  
  1558. stock CreateVehicleForPlayer(playerid, model, color = 0, color2 = 0)
  1559. {
  1560.     new
  1561.         vCar,
  1562.         Float: X,
  1563.         Float: Y,
  1564.         Float: Z
  1565.     ;
  1566.     GetPlayerPos(playerid, X, Y, Z);
  1567.     vCar = CreateVehicle(model, X, Y, Z, 0, color, color2, -1);
  1568.     PutPlayerInVehicle(playerid, vCar, 0);
  1569. }
  1570.  
  1571. stock SendClientMessageToAdmins(color, Text[])
  1572. {
  1573.     foreach(Player, i)
  1574.     {
  1575.         if(gPlayerData[i][E_ADMIN_LEVEL] > 0) {
  1576.             SendClientMessage(i, color, Text);
  1577.         }
  1578.     }
  1579.     return 1;
  1580. }
Add Comment
Please, Sign In to add comment