Guest User

Hiddos

a guest
Mar 5th, 2011
1,130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 35.90 KB | None | 0 0
  1. //Includes + Whirlpool native
  2. #include <a_samp>
  3. #include <a_mysql>
  4. #include <zcmd>
  5. #include <sscanf2>
  6. native WP_Hash(buffer[], len, const str[]);
  7.  
  8. //MySQL defines. Tweak them where needed.
  9. #define SQL_HOST "localhost"
  10. #define SQL_USER "root"
  11. #define SQL_DB "sa-mp"
  12. #define SQL_PASS ""
  13. #define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
  14.  
  15. //Crappy colors - Why are thy reading this?
  16. #define COLOR_ORANGE 0xFFA500FF
  17. #define COLOR_LIMEGREEN 0x32CD32FF
  18. #define COLOR_ROYALBLUE 0x4169E1FF
  19. #define COLOR_SALMON 0xFA8072FF
  20.  
  21. public OnFilterScriptInit()
  22. {
  23.     mysql_debug(1);
  24.     mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
  25.     print("\n_____________________________");
  26.     print("| HidMin                    |");
  27.     print("|   Crappy MySQL admin FS   |");
  28.     print("|                  Loading  |");
  29.     if( mysql_ping() == 1 ) print("|_MySQL:_Connected!______ __|");
  30.     else print("|_MySQL:_Failed_to_connect__|");
  31.     return 1;
  32. }
  33.  
  34. public OnFilterScriptExit()
  35. {
  36.     mysql_close();
  37.     return 1;
  38. }
  39.  
  40. public OnPlayerConnect(playerid)
  41. {
  42.     //Auto log in
  43.     new Query[256], pName[MAX_PLAYER_NAME];
  44.     GetPlayerName(playerid, pName, sizeof pName);
  45.     mysql_real_escape_string(pName, pName);
  46.     format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
  47.     mysql_query(Query);
  48.     mysql_store_result();
  49.     if(mysql_num_rows() != 0)
  50.     {
  51.         new IP[16];
  52.         GetPlayerIp(playerid, IP, sizeof IP);
  53.         format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' and IP = '%s' LIMIT 1", pName, IP);
  54.         mysql_query(Query);
  55.         mysql_store_result();
  56.         if(mysql_num_rows() != 0)
  57.         {
  58.             mysql_fetch_row(Query);
  59.             new values[5];
  60.             sscanf(Query, "p<|>{s[24]s[129]s[16]}a<i>[5]", values);
  61.             SetPVarInt(playerid, "Admin", values[0]);
  62.             GivePlayerMoney(playerid, values[1]);
  63.             SetPlayerScore(playerid, values[2]);
  64.             SetPVarInt(playerid, "Kills", values[3]);
  65.             SetPVarInt(playerid, "Deaths", values[4]);
  66.             SetPVarInt(playerid, "Logged", 1);
  67.             SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Welcome back! You've been automatically logged in.");
  68.         }
  69.         else SendClientMessage(playerid, COLOR_ORANGE, "[*] Your account has been found, please use \"/login\" to log in!");
  70.     }
  71.     else SendClientMessage(playerid, COLOR_ORANGE, "[*] You aren't registered! Use \"/register\" to register an account!");
  72.     mysql_free_result();
  73.     return 1;
  74. }
  75.  
  76. public OnPlayerDisconnect(playerid, reason)
  77. {
  78.         //Save at log out. Pretty clear.
  79.     if(GetPVarInt(playerid, "Logged"))
  80.     {
  81.         new Query[180];
  82.         GetPlayerName(playerid, Query, MAX_PLAYER_NAME);
  83.         mysql_real_escape_string(Query, Query);
  84.         format(Query, sizeof Query, "UPDATE `accounts` SET `Admin` = %i, `Money` = %i, `Score` = %i, `Kills` = %i, `Deaths` = %i WHERE Name = '%s'",
  85.             GetPVarInt(playerid, "Admin"),
  86.             GetPlayerMoney(playerid),
  87.             GetPlayerScore(playerid),
  88.             GetPVarInt(playerid, "Kills"),
  89.             GetPVarInt(playerid, "Deaths"),
  90.             Query);
  91.         mysql_query(Query);
  92.     }
  93.     return 1;
  94. }
  95.  
  96. public OnPlayerDeath(playerid, killerid, reason)
  97. {
  98.     SetPVarInt(playerid, "Deaths", GetPVarInt(playerid, "Deaths") + 1);
  99.     if(killerid != INVALID_PLAYER_ID) SetPVarInt(killerid, "Kills", GetPVarInt(killerid, "Kills") + 1);
  100.     return 1;
  101. }
  102.  
  103. public OnPlayerText(playerid, text[])
  104. {
  105.     if(text[0] == '#' && GetPlayerAdminLevel(playerid) >= 1)
  106.     {
  107.         new string[128];
  108.         GetPlayerName(playerid, string, MAX_PLAYER_NAME);
  109.         format(string, sizeof string, "[*] %s: %s", string, text[1]);
  110.         SendClientMessageToAdmins(string);
  111.         return 0;
  112.     }
  113.     if(GetPVarInt(playerid, "Muted"))
  114.     {
  115.         SendClientMessage(playerid, COLOR_ORANGE, "[*] You're muted and can't talk!");
  116.         return 0;
  117.     }
  118.     return 1;
  119. }
  120.  
  121. //Account-related
  122.  
  123. COMMAND:register(playerid, params[])
  124. {
  125.     if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
  126.     if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /register [pass]");
  127.     new Query[320], pName[MAX_PLAYER_NAME];
  128.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  129.     mysql_real_escape_string(pName, pName);
  130.     format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
  131.     mysql_query(Query);
  132.     mysql_store_result();
  133.     if(mysql_num_rows())
  134.     {
  135.         SendClientMessage(playerid, COLOR_ORANGE, "[*] An account already exists under that name! Use \"/login\" to log in!");
  136.         mysql_free_result();
  137.         return 1;
  138.     }
  139.     mysql_free_result();
  140.     WP_Hash(Query, 129, params);
  141.     new IP[16];
  142.     GetPlayerIp(playerid, IP, 16);
  143.     format(Query, sizeof Query, "INSERT INTO `accounts` (Name, Password, IP, Admin, Money, Score, Kills, Deaths) VALUES ('%s', '%s', '%s', %i, %i, %i, %i, %i)",
  144.         pName,
  145.         Query,
  146.         IP,
  147.         GetPVarInt(playerid, "Admin"),
  148.         GetPlayerMoney(playerid),
  149.         GetPlayerScore(playerid),
  150.         GetPVarInt(playerid, "Kills"),
  151.         GetPVarInt(playerid, "Deaths"));
  152.     mysql_query(Query);
  153.     SetPVarInt(playerid, "Logged", 1);
  154.     SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully registered and automatically logged in!");
  155.     return 1;
  156. }
  157.  
  158. COMMAND:login(playerid, params[])
  159. {
  160.     if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
  161.     if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /login [pass]");
  162.     new Query[256], pName[MAX_PLAYER_NAME];
  163.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  164.     mysql_real_escape_string(pName, pName);
  165.     format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
  166.     mysql_query(Query);
  167.     mysql_store_result();
  168.     if(!mysql_num_rows())
  169.     {
  170.         SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not registered! Use \"/register\" to register an account!");
  171.         mysql_free_result();
  172.         return 1;
  173.     }
  174.     mysql_free_result();
  175.     WP_Hash(Query, 129, params);
  176.     format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' AND `Password` = '%s' LIMIT 1", pName, Query);
  177.     mysql_query(Query);
  178.     mysql_store_result();
  179.     if(!mysql_num_rows())
  180.     {
  181.         SetPVarInt(playerid, "LoginWarns", GetPVarInt(playerid, "LoginWarns") + 1);
  182.         if(GetPVarInt(playerid, "LoginWarns") == 3)
  183.         {
  184.             format(Query, sizeof Query, "[*] %s has been kicked for 3 wrong login attempts!", pName);
  185.             SendClientMessageToAll(COLOR_ROYALBLUE, Query);
  186.             Kick(playerid);
  187.         }
  188.             else
  189.         {
  190.             format(Query, sizeof Query, "[*] Wrong password! Attempt %i out of 3.", GetPVarInt(playerid, "LoginWarns"));
  191.             SendClientMessage(playerid, COLOR_ORANGE, Query);
  192.         }
  193.         return 1;
  194.     }
  195.     mysql_fetch_row(Query);
  196.     new values[5];
  197.     sscanf(Query, "p<|>{s[24]s[129]s[16]}a<i>[5]", values); //Enjoy editing.
  198.     SetPVarInt(playerid, "Admin", values[0]);
  199.     GivePlayerMoney(playerid, values[1]);
  200.     SetPlayerScore(playerid, values[2]);
  201.     SetPVarInt(playerid, "Kills", values[3]);
  202.     SetPVarInt(playerid, "Deaths", values[4]);
  203.     mysql_free_result();
  204.     SetPVarInt(playerid, "Logged", 1);
  205.     SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully logged in!");
  206.    
  207.         //Ip setting
  208.     GetPlayerIp(playerid, Query, 16);
  209.     format(Query, sizeof Query, "UPDATE `accounts` SET `IP` = '%s' WHERE `Name` = '%s' LIMIT 1", Query, pName);
  210.     mysql_query(Query);
  211.     return 1;
  212. }
  213.  
  214. //Admin - LVL 4
  215.  
  216. COMMAND:makeadmin(playerid, params[])
  217. {
  218.     if(GetPlayerAdminLevel(playerid) < 4) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 4 admin!");
  219.     new target, level;
  220.     if(sscanf(params, "ui", target, level)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /makeadmin [playerid/name] [level]");
  221.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  222.     SetPVarInt(target, "Admin", level);
  223.     new string[128], pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
  224.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  225.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  226.     format(string, sizeof string, "[*] Admin %s has set %s's admin level to %i.", pName, gName, level);
  227.     SendClientMessageToAdmins(string);
  228.     format(string, sizeof string, "[*] Admin %s has set your admin level to %i.", pName, level);
  229.     SendClientMessage(target, COLOR_ROYALBLUE, string);
  230.     format(string, sizeof string, "%s set %s admin level to: %i", pName, gName, level);
  231.     Log("MakeAdmin", string);
  232.     return 1;
  233. }
  234.    
  235. COMMAND:gmx(playerid, params[])
  236. {
  237.     if(GetPlayerAdminLevel(playerid) < 4) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 4 admin!");
  238.     ShowPlayerDialog(playerid, 5482, DIALOG_STYLE_MSGBOX, "GMX", "Are you sure you want to GMX (restart) the server?", "Yes", "No");
  239.     return 1;
  240. }
  241.  
  242. //Admin - LVL 3
  243.  
  244. COMMAND:giveweapon(playerid, params[])
  245. {
  246.     if(GetPlayerAdminLevel(playerid) < 3) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You aren't a level 3+ admin!");
  247.     new target, weap[32], ammo;
  248.     if(sscanf(params, "us[32]i", target, weap, ammo)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /giveweapon [playerid/name] [weaponid/name] [ammo]");
  249.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  250.  
  251.     new WeapNames[48][32] = {
  252.         {"Unarmed (Fist)"},     {"Brass Knuckles"},     {"Golf Club"},      {"Night Stick"},
  253.         {"Knife"},      {"Baseball Bat"},       {"Shovel"},     {"Pool Cue"},
  254.         {"Katana"},     {"Chainsaw"},       {"Purple Dildo"},       {"Big White Vibrator"},
  255.         {"Medium White Vibrator"},      {"Small White Vibrator"},       {"Flowers"},        {"Cane"},
  256.         {"Grenade"},        {"Teargas"},        {"Molotov"},        {" "},      {" "},      {" "},
  257.         {"Colt 45"},        {"Colt 45(Silenced)"},      {"Deagle"},     {"Normal Shotgun"},     {"Sawnoff Shotgun"},
  258.         {"Combat Shotgun"},     {"Micro Uzi(Mac 10)"},      {"SMG(MP5)"},       {"AK47"},       {"M4"},
  259.         {"Tec9"},       {"Country Rifle"},      {"Sniper Rifle"},       {"Rocket Launcher"},
  260.         {"Heat-Seeking Rocket Launcher"},       {"Flamethrower"},       {"Minigun"},        {"Satchel Charge"},
  261.         {"Detonator"},      {"Spray Can"},      {"Fire Extinguisher"},      {"Camera"},     {"Night Vision Goggles"},
  262.         {"Infrared Vision Goggles"},        {"Parachute"},      {"Fake Pistol"}
  263.     }, weapon = -1;
  264.     for(new w; w < 48; w++) if(strfind(WeapNames[w], weap, true) != -1) { weapon = w; break; }
  265.     if(weapon == -1) weapon = strval(weap);
  266.     if(weapon < 0 || weapon > 47) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid weapon ID!");
  267.     GivePlayerWeapon(target, weapon, ammo);
  268.     new pName[MAX_PLAYER_NAME], string[128];
  269.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  270.     GetPlayerName(target, weap, MAX_PLAYER_NAME);
  271.     format(string, sizeof string, "[*] Admin %s has given %s a %s with %i ammo.", pName, weap, WeapNames[weapon], ammo);
  272.     SendClientMessageToAdmins(string);
  273.     format(string, sizeof string, "[*] Admin %s has given you a %s with %i ammo!", pName, WeapNames[weapon], ammo);
  274.     SendClientMessage(playerid, COLOR_ROYALBLUE, string);
  275.     format(string, sizeof string, "%s gave %s a %s with %i ammo", pName, weap, WeapNames[weapon], ammo);
  276.     Log("Giveweapon", string);
  277.     return 1;
  278. }
  279.  
  280. COMMAND:veh(playerid, params[])
  281. {
  282.     if(GetPlayerAdminLevel(playerid) < 3) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You aren't a level 3+ admin!");
  283.     new veh[24], color[2];
  284.     if(sscanf(params, "s[24]I(-1)I(-1)", veh, color[0], color[1])) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /veh [vehicleid/name] [Optional: color 1] [Optional: color 2]");
  285.    
  286.     new VehicleNames[212][] = {
  287.         {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},
  288.         {"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},
  289.         {"Cheetah"},{"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},
  290.         {"Bobcat"},{"Mr Whoopee"},{"BF Injection"},{"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},
  291.         {"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},{"Hotknife"},{"Trailer 1"},{"Previon"},
  292.         {"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"},{"Monster"},
  293.         {"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
  294.         {"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},
  295.         {"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},
  296.         {"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},
  297.         {"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},
  298.         {"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},{"FBI Rancher"},{"Virgo"},{"Greenwood"},
  299.         {"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},{"Boxville"},{"Benson"},
  300.         {"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
  301.         {"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt"},
  302.         {"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},
  303.         {"NRG-500"},{"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},
  304.         {"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},
  305.         {"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},
  306.         {"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"},
  307.         {"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"},
  308.         {"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
  309.         {"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},
  310.         {"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},
  311.         {"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},
  312.         {"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},{"Police Car (LSPD)"},{"Police Car (SFPD)"},
  313.         {"Police Car (LVPD)"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},{"Glendale"},
  314.         {"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
  315.         {"Utility Trailer"}
  316.     }, vehicle = -1;
  317.    
  318.     for(new v; v < 212; v++) if(strfind(VehicleNames[v], veh, true) != -1) { vehicle = v + 400; break; }
  319.     if(vehicle == -1) vehicle = strval(veh);
  320.     if(vehicle < 400 || vehicle > 611) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid vehicle name or an ID between 400 and 611!");
  321.    
  322.     new Float:Pos[4];
  323.     if(IsPlayerInAnyVehicle(playerid))
  324.     {
  325.         GetVehiclePos(GetPlayerVehicleID(playerid), Pos[0], Pos[1], Pos[2]);
  326.         GetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[3]);
  327.     }
  328.         else
  329.     {
  330.         GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  331.         GetPlayerFacingAngle(playerid, Pos[3]);
  332.     }
  333.     PutPlayerInVehicle(playerid, CreateVehicle(vehicle, Pos[0], Pos[1], Pos[2], Pos[3], color[0], color[1], 120), 0);
  334.     new string[128];
  335.     GetPlayerName(playerid, veh, MAX_PLAYER_NAME);
  336.     format(string, sizeof string, "[*] Admin %s spawned a %s.", veh, VehicleNames[vehicle - 400]);
  337.     SendClientMessageToAdmins(string);
  338.     format(string, sizeof string, "%s spawned a %s", veh, VehicleNames[vehicle - 400]);
  339.     Log("Veh(icle)", string);
  340.     return 1;
  341. }
  342.  
  343. COMMAND:unbanip(playerid, params[])
  344. {
  345.     if(GetPlayerAdminLevel(playerid) < 3) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You aren't a level 3+ admin!");
  346.     new ip[16];
  347.     if(sscanf(params, "s[16]", ip)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /unbanip [ip]");
  348.     new string[128], pName[MAX_PLAYER_NAME];
  349.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  350.     format(string, sizeof string, "[*] Admin %s has unbanned an IP: %s", pName, ip);
  351.     SendClientMessageToAdmins(string);
  352.     format(string, sizeof string, "unbanip %s", ip);
  353.     SendRconCommand(string);
  354.     format(string, sizeof string, "%s unbanned IP: %s", pName, ip);
  355.     Log("UnbanIP", string);
  356.     return 1;
  357. }
  358.  
  359. //Admin - LVL 2
  360.  
  361. COMMAND:ban(playerid, params[])
  362. {
  363.     if(GetPlayerAdminLevel(playerid) < 2) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 2+ admin!");
  364.     new target, reason[128];
  365.     if(sscanf(params, "us[128]", target, reason)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /ban [playerid/name] [reason]");
  366.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  367.     new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[300]; //Immediately the query as well.
  368.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  369.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  370.     format(string, sizeof string, "[*] Admin %s has banned %s for: %s", pName, gName, reason);
  371.     SendClientMessageToAll(COLOR_ROYALBLUE, string);
  372.     SendClientMessage(target, COLOR_LIMEGREEN, "[*] You've been banned!");
  373.     SendClientMessage(target, COLOR_LIMEGREEN, "[*] Visit the forums if you want to appeal your ban.");
  374.     new ip[16];
  375.     GetPlayerIp(target, ip, sizeof ip);
  376.     format(string, sizeof string, "INSERT INTO `bans` (`Player`, `Admin`, `Reason`, `IP`) VALUES ('%s', '%s', '%s', '%s')", pName, gName, reason, ip);
  377.     mysql_query(string);
  378.     format(string, sizeof string, "%s banned %s for: %s", pName, gName, reason);
  379.     Log("Ban", string);
  380.     Ban(target);
  381.     return 1;
  382. }
  383.  
  384. COMMAND:announce(playerid, params[])
  385. {
  386.     if(GetPlayerAdminLevel(playerid) < 2) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 2+ admin!");
  387.     if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /an(nounce) [message]");
  388.     GameTextForAll(params, 3800, 6);
  389.     return 1;
  390. }
  391.  
  392. COMMAND:an(playerid, params[]) return cmd_announce(playerid, params);
  393.  
  394. COMMAND:explode(playerid, params[])
  395. {
  396.     if(GetPlayerAdminLevel(playerid) < 2) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 2+ admin!");
  397.     new target;
  398.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /explode [playerid/name]");
  399.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  400.     new Float:Pos[3];
  401.     GetPlayerPos(target, Pos[0], Pos[1], Pos[2]);
  402.     CreateExplosion(Pos[0], Pos[1], Pos[2], 0, 8.5);
  403.     new string[128], pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
  404.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  405.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  406.     format(string, sizeof string, "[*] Admin %s has exploded %s.", pName, gName);
  407.     SendClientMessageToAdmins(string);
  408.     format(string, sizeof string, "%s exploded %s", pName, gName);
  409.     Log("Explode", string);
  410.     return 1;
  411. }
  412.  
  413. COMMAND:goto(playerid, params[])
  414. {
  415.     if(GetPlayerAdminLevel(playerid) < 2) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 2+ admin!");
  416.     new target;
  417.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /goto [playerid/name]");
  418.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  419.     new Float:Pos[3];
  420.     GetPlayerPos(target, Pos[0], Pos[1], Pos[2]);
  421.     if(!IsPlayerInAnyVehicle(playerid)) SetPlayerPos(playerid, Pos[0] + 2, Pos[1] + 2, Pos[2] + 2);
  422.     else SetVehiclePos(GetPlayerVehicleID(playerid), Pos[0] + 2, Pos[1] + 2, Pos[2] + 2);
  423.     SetPlayerInterior(playerid, GetPlayerInterior(target));
  424.     if(IsPlayerInAnyVehicle(playerid)) LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(target));
  425.     SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(target));
  426.     if(IsPlayerInAnyVehicle(playerid)) SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(target));
  427.     new string[128], pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
  428.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  429.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  430.     format(string, sizeof string, "[*] Admin %s teleported to %s.", pName, gName);
  431.     SendClientMessageToAdmins(string);
  432.     format(string, sizeof string, "%s teleported to %s", pName, gName);
  433.     Log("Goto", string);
  434.     return 1;
  435. }
  436.  
  437. COMMAND:gethere(playerid, params[])
  438. {
  439.     if(GetPlayerAdminLevel(playerid) < 2) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 2+ admin!");
  440.     new target;
  441.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /get(here) [playerid/name]");
  442.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  443.     new Float:Pos[3];
  444.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  445.     if(!IsPlayerInAnyVehicle(target)) SetPlayerPos(target, Pos[0] + 2, Pos[1] + 2, Pos[2] + 2);
  446.     else SetVehiclePos(GetPlayerVehicleID(target), Pos[0] + 2, Pos[1] + 2, Pos[2] + 2);
  447.     SetPlayerInterior(target, GetPlayerInterior(playerid));
  448.     if(IsPlayerInAnyVehicle(target)) LinkVehicleToInterior(GetPlayerVehicleID(target), GetPlayerInterior(playerid));
  449.     SetPlayerVirtualWorld(target, GetPlayerVirtualWorld(playerid));
  450.     if(IsPlayerInAnyVehicle(target)) SetVehicleVirtualWorld(GetPlayerVehicleID(target), GetPlayerVirtualWorld(playerid));
  451.     new string[128], pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
  452.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  453.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  454.     format(string, sizeof string, "[*] Admin %s teleported %s to him.", pName, gName);
  455.     SendClientMessageToAdmins(string);
  456.     format(string, sizeof string, "%s teleported %s to him", pName, gName);
  457.     return 1;
  458. }
  459.  
  460. COMMAND:get(playerid, params[]) return cmd_gethere(playerid, params);
  461.  
  462. //Admin - LVL 1
  463.  
  464. COMMAND:kick(playerid, params[])
  465. {
  466.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  467.     new target, reason[128];
  468.     if(sscanf(params, "us[128]", target, reason)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /kick [playerid/name] [reason]");
  469.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  470.     new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
  471.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  472.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  473.     format(string, sizeof reason, "[*] Admin %s has kicked %s for: %s", pName, gName, reason);
  474.     SendClientMessageToAll(COLOR_ROYALBLUE, string);
  475.     SendClientMessage(target, COLOR_LIMEGREEN, "[*] You've been kicked!");
  476.     Kick(target);
  477.     format(string, sizeof string, "%s kicked %s for: %s", pName, gName, reason);
  478.     Log("Kick", string);
  479.     return 1;
  480. }
  481.  
  482. COMMAND:warn(playerid, params[])
  483. {
  484.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  485.     new target, reason[128];
  486.     if(sscanf(params, "us[128]", target, reason)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /warn [playerid/name] [reason]");
  487.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  488.     new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
  489.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  490.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  491.     SetPVarInt(target, "Warnings", GetPVarInt(target, "Warnings") + 1);
  492.     if(GetPVarInt(target, "Warnings") == 3)
  493.     {
  494.         format(string, sizeof string, "[*] Admin %s has auto-kicked %s for receiving 3 warnings, last: %s", pName, gName, reason);
  495.         SendClientMessageToAll(COLOR_ROYALBLUE, string);
  496.         SendClientMessage(target, COLOR_LIMEGREEN, "[*] You've been kicked for having 3 warnings, behave better in the future!");
  497.         format(string, sizeof string, "%s warned %s: %s [Kick]", pName, gName, reason);
  498.         Log("Warn", string);
  499.         Kick(target);
  500.     }
  501.         else
  502.     {
  503.         format(string, sizeof string, "[*] Admin %s warned %s for: %s", pName, gName, reason);
  504.         SendClientMessageToAdmins(string);
  505.         format(string, sizeof string, "[*] Admin %s has warned you for: %s [Warning %d/3]", pName, reason, GetPVarInt(target, "Warnings"));
  506.         SendClientMessage(target, COLOR_ROYALBLUE, string);
  507.         format(string, sizeof string, "%s warned %s: %s [%i/3]", pName, gName, reason, GetPVarInt(target, "Warnings"));
  508.         Log("Warn", string);
  509.     }
  510.     return 1;
  511. }
  512.  
  513. COMMAND:mute(playerid, params[])
  514. {
  515.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  516.     new target;
  517.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /mute [playerid/name]");
  518.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  519.     SetPVarInt(target, "Muted", 1);
  520.     new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
  521.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  522.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  523.     format(string, sizeof string, "[*] Admin %s has muted %s.", pName, gName);
  524.     SendClientMessageToAdmins(string);
  525.     format(string, sizeof string, "[*] Admin %s has muted you!", pName);
  526.     SendClientMessage(target, COLOR_ROYALBLUE, string);
  527.     format(string, sizeof string, "%s muted %s", pName, gName);
  528.     Log("Mute", string);
  529.     return 1;
  530. }
  531.  
  532. COMMAND:voice(playerid, params[])
  533. {
  534.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  535.     new target;
  536.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /voice [playerid/name]");
  537.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  538.     DeletePVar(target, "Muted");
  539.     new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
  540.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  541.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  542.     format(string, sizeof string, "[*] Admin %s has voiced %s.", pName, gName);
  543.     SendClientMessageToAdmins(string);
  544.     format(string, sizeof string, "[*] Admin %s has voiced you!", pName);
  545.     SendClientMessage(target, COLOR_ROYALBLUE, string);
  546.     format(string, sizeof string, "%s voiced %s", pName, gName);
  547.     Log("Voice/Unmute", string);
  548.     return 1;
  549. }
  550.  
  551. COMMAND:unmute(playerid, params[]) return cmd_voice(playerid, params);
  552.  
  553. COMMAND:freeze(playerid, params[])
  554. {
  555.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  556.     new target;
  557.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /freeze [playerid/name]");
  558.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  559.     TogglePlayerControllable(target, false);
  560.     new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
  561.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  562.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  563.     format(string, sizeof string, "[*] Admin %s has frozen %s.", pName, gName);
  564.     SendClientMessageToAdmins(string);
  565.     format(string, sizeof string, "[*] Admin %s has frozen you!", pName);
  566.     SendClientMessage(target, COLOR_ROYALBLUE, string);
  567.     format(string, sizeof string, "%s froze %s", pName, gName);
  568.     Log("Freeze", string);
  569.     return 1;
  570. }
  571.  
  572. COMMAND:unfreeze(playerid, params[])
  573. {
  574.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  575.     new target;
  576.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /unfreeze [playerid/name]");
  577.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  578.     TogglePlayerControllable(target, true);
  579.     new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
  580.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  581.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  582.     format(string, sizeof string, "[*] Admin %s has unfrozen %s.", pName, gName);
  583.     SendClientMessageToAdmins(string);
  584.     format(string, sizeof string, "[*] Admin %s has unfrozen you!", pName);
  585.     SendClientMessage(target, COLOR_ROYALBLUE, string);
  586.     format(string, sizeof string, "%s unfroze %s", pName, gName);
  587.     Log("Unfreeze", string);
  588.     return 1;
  589. }
  590.  
  591. COMMAND:slap(playerid, params[])
  592. {
  593.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  594.     new target;
  595.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /slap [playerid/name]");
  596.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  597.     new Float:Pos[3];
  598.     GetPlayerPos(target, Pos[0], Pos[1], Pos[2]);
  599.     SetPlayerPos(target, Pos[0], Pos[1], Pos[2] + 8);
  600.     new string[128], pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
  601.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  602.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  603.     format(string, sizeof string, "[*] Admin %s has slapped %s.", pName, gName);
  604.     SendClientMessageToAdmins(string);
  605.     format(string, sizeof string, "%s slapped %s", pName, gName);
  606.     Log("Slap", string);
  607.     return 1;
  608. }
  609.  
  610. COMMAND:spec(playerid, params[])
  611. {
  612.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  613.     new target;
  614.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /spec [playerid/name]");
  615.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  616.     TogglePlayerSpectating(playerid, true);
  617.     if(IsPlayerInAnyVehicle(target)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(target));
  618.     else PlayerSpectatePlayer(playerid, target);
  619.     SendClientMessage(playerid, COLOR_SALMON, "[*] Type /specoff to stop spectating.");
  620.     return 1;
  621. }
  622.  
  623. COMMAND:specoff(playerid, params[])
  624. {
  625.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  626.     TogglePlayerSpectating(playerid, false);
  627.     return 1;
  628. }
  629.  
  630. COMMAND:text(playerid, params[])
  631. {
  632.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  633.     if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /text [message]");
  634.     SendClientMessageToAll(COLOR_LIMEGREEN, params);
  635.     return 1;
  636. }
  637.  
  638. COMMAND:ip(playerid, params[])
  639. {
  640.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  641.     new target;
  642.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /ip [playerid/name]");
  643.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  644.     new string[128], IP[16];
  645.     GetPlayerName(target, string, MAX_PLAYER_NAME);
  646.     GetPlayerIp(target, IP, 16);
  647.     format(string, sizeof string, "[*] %s's IP: %s", string, IP);
  648.     SendClientMessage(playerid, COLOR_ROYALBLUE, string);
  649.     return 1;
  650. }
  651.  
  652. COMMAND:getinfo(playerid, params[])
  653. {
  654.     if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
  655.     new target;
  656.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /getinfo [playerid/name]");
  657.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
  658.     new string[128];
  659.     GetPlayerName(target, string, MAX_PLAYER_NAME);
  660.     SendClientMessage(playerid, COLOR_ROYALBLUE, "[*] Displaying information:");
  661.     format(string, sizeof string, "Name: %s   Admin level: %i", string, GetPVarInt(target, "Admin"));
  662.     SendClientMessage(playerid, COLOR_SALMON, string);
  663.     format(string, sizeof string, "Kills: %i   Deaths: %i", GetPVarInt(target, "Kills"), GetPVarInt(target, "Deaths"));
  664.     SendClientMessage(playerid, COLOR_SALMON, string);
  665.     format(string, sizeof string, "Money: %i   Score: %i", GetPlayerMoney(target), GetPlayerScore(target));
  666.     SendClientMessage(playerid, COLOR_SALMON, string);
  667.     GetPlayerIp(target, string, 16);
  668.     format(string, sizeof string, "IP: %s   Logged in: %s", string, GetPVarInt(target, "Logged") ? ("Yes") : ("No"));
  669.     SendClientMessage(playerid, COLOR_SALMON, string);
  670.     return 1;
  671. }
  672. //Public
  673.  
  674. COMMAND:report(playerid, params[])
  675. {
  676.     new target, string[128];
  677.     if(sscanf(params, "us[128]", target, string)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /report [playerid/name] [reason]");
  678.     else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid playerid ID/name!");
  679.     new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
  680.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  681.     GetPlayerName(target, gName, MAX_PLAYER_NAME);
  682.     format(string, sizeof string, "[*] Player %s(%i) has reported %s(%i) for: %s", pName, playerid, gName, target, string);
  683.     SendClientMessageToAdmins(string);
  684.     format(string, sizeof string, "Your report on '%s' has been sent to the online admins.", gName);
  685.     SendClientMessage(playerid, COLOR_ROYALBLUE, string);
  686.     return 1;
  687. }
  688.  
  689. COMMAND:admins(playerid, params[])
  690. {
  691.     SendClientMessage(playerid, COLOR_ROYALBLUE, "[*] Displaying online admins:");
  692.     new string[128];
  693.     for(new i; i < MAX_PLAYERS; i++)
  694.     {
  695.         if(IsPlayerAdmin(i))
  696.         {
  697.             GetPlayerName(i, string, MAX_PLAYER_NAME);
  698.             format(string, sizeof string, "%s - RCON", string);
  699.             SendClientMessage(playerid, COLOR_SALMON, string);
  700.         }
  701.             else if(GetPVarInt(i, "Admin"))
  702.         {
  703.             GetPlayerName(i, string, MAX_PLAYER_NAME);
  704.             format(string, sizeof string, "%s - Level %i", string, GetPVarInt(i, "Admin"));
  705.             SendClientMessage(playerid, COLOR_SALMON, string);
  706.         }
  707.             else if(i == MAX_PLAYERS - 1 && !strlen(string)) SendClientMessage(playerid, COLOR_SALMON, "There are no admins online!");
  708.     }
  709.     return 1;
  710. }
  711.  
  712. COMMAND:stats(playerid, params[])
  713. {
  714.     new string[128];
  715.     SendClientMessage(playerid, COLOR_ROYALBLUE, "[*] Displaying your stats:");
  716.     format(string, sizeof string, "Admin level: %i   Logged in: %s", GetPVarInt(playerid, "Admin"), GetPVarInt(playerid, "Logged") ? ("Yes") : ("No"));
  717.     SendClientMessage(playerid, COLOR_SALMON, string);
  718.     format(string, sizeof string, "Kills: %i   Deaths: %i   KtD: %.3f", GetPVarInt(playerid, "Kills"), GetPVarInt(playerid, "Deaths"), floatdiv(GetPVarInt(playerid, "Kills"), GetPVarInt(playerid, "Deaths")));
  719.     SendClientMessage(playerid, COLOR_SALMON, string);
  720.     format(string, sizeof string, "Money: %i   Score: %i", GetPlayerMoney(playerid), GetPlayerScore(playerid));
  721.     SendClientMessage(playerid, COLOR_SALMON, string);
  722.     return 1;
  723. }
  724.  
  725. COMMAND:acmds(playerid, params[])
  726. {
  727.     SendClientMessage(playerid, COLOR_ROYALBLUE, "[*] HidMin v1.00 admin command list:");
  728.     SendClientMessage(playerid, COLOR_SALMON, "[*] Level 1: /getinfo  /ip  /text  /spec(off)  /slap");
  729.     SendClientMessage(playerid, COLOR_SALMON, "[*] Level 1: /(un)freeze  /(un)mute  /warn  /kick");
  730.     SendClientMessage(playerid, COLOR_SALMON, "[*] Level 2: /get(here)  /goto  /explode  /an(nounce)  /ban");
  731.     SendClientMessage(playerid, COLOR_SALMON, "[*] Level 3: /veh  /giveweapon  /unbanip");
  732.     SendClientMessage(playerid, COLOR_SALMON, "[*] Level 4: /makeadmin  /gmx");
  733.     return 1;
  734. }
  735.  
  736. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  737. {
  738.     if(dialogid == 5482)
  739.     {
  740.         if(response)
  741.         {
  742.             for(new i; i < MAX_PLAYERS; i++)
  743.             {
  744.                 OnPlayerDisconnect(i, 1);
  745.                 DeletePVar(i, "Logged");
  746.             }
  747.             new string[128], pName[MAX_PLAYER_NAME];
  748.             GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  749.             format(string, sizeof string, "[*] Admin %s has restarted the server.", pName);
  750.             SendClientMessageToAll(COLOR_ROYALBLUE, string);
  751.             format(string, sizeof string, "%s performed a server restart.", pName);
  752.             Log("GMX", string);
  753.             SendRconCommand("gmx");
  754.         }
  755.         else SendClientMessage(playerid, COLOR_ORANGE, "[*] You cancelled to GMX the server");
  756.     }
  757.     return 1;
  758. }
  759.  
  760. stock GetPlayerAdminLevel(playerid) return IsPlayerAdmin(playerid) ? 4 : GetPVarInt(playerid, "Admin");
  761.  
  762. stock SendClientMessageToAdmins(msg[]) for(new i; i < MAX_PLAYERS; i++) if(GetPlayerAdminLevel(i)) SendClientMessage(i, COLOR_SALMON, msg);
  763.  
  764. stock Log(command[], action[])
  765. {
  766.     new Query[200];
  767.     mysql_real_escape_string(action, action);
  768.     format(Query, sizeof Query, "INSERT INTO `logs` (`Event`, `Details`) VALUES ('%s', '%s')", command, action);
  769.     mysql_query(Query);
  770. }
Advertisement
Add Comment
Please, Sign In to add comment