Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Includes + Whirlpool native
- #include <a_samp>
- #include <a_mysql>
- #include <zcmd>
- #include <sscanf2>
- native WP_Hash(buffer[], len, const str[]);
- //MySQL defines. Tweak them where needed.
- #define SQL_HOST "localhost"
- #define SQL_USER "root"
- #define SQL_DB "sa-mp"
- #define SQL_PASS ""
- #define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
- //Crappy colors - Why are thy reading this?
- #define COLOR_ORANGE 0xFFA500FF
- #define COLOR_LIMEGREEN 0x32CD32FF
- #define COLOR_ROYALBLUE 0x4169E1FF
- #define COLOR_SALMON 0xFA8072FF
- public OnFilterScriptInit()
- {
- mysql_debug(1);
- mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
- print("\n_____________________________");
- print("| HidMin |");
- print("| Crappy MySQL admin FS |");
- print("| Loading |");
- if( mysql_ping() == 1 ) print("|_MySQL:_Connected!______ __|");
- else print("|_MySQL:_Failed_to_connect__|");
- return 1;
- }
- public OnFilterScriptExit()
- {
- mysql_close();
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- //Auto log in
- new Query[256], pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, sizeof pName);
- mysql_real_escape_string(pName, pName);
- format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
- mysql_query(Query);
- mysql_store_result();
- if(mysql_num_rows() != 0)
- {
- new IP[16];
- GetPlayerIp(playerid, IP, sizeof IP);
- format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' and IP = '%s' LIMIT 1", pName, IP);
- mysql_query(Query);
- mysql_store_result();
- if(mysql_num_rows() != 0)
- {
- mysql_fetch_row(Query);
- new values[5];
- sscanf(Query, "p<|>{s[24]s[129]s[16]}a<i>[5]", values);
- SetPVarInt(playerid, "Admin", values[0]);
- GivePlayerMoney(playerid, values[1]);
- SetPlayerScore(playerid, values[2]);
- SetPVarInt(playerid, "Kills", values[3]);
- SetPVarInt(playerid, "Deaths", values[4]);
- SetPVarInt(playerid, "Logged", 1);
- SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Welcome back! You've been automatically logged in.");
- }
- else SendClientMessage(playerid, COLOR_ORANGE, "[*] Your account has been found, please use \"/login\" to log in!");
- }
- else SendClientMessage(playerid, COLOR_ORANGE, "[*] You aren't registered! Use \"/register\" to register an account!");
- mysql_free_result();
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- //Save at log out. Pretty clear.
- if(GetPVarInt(playerid, "Logged"))
- {
- new Query[180];
- GetPlayerName(playerid, Query, MAX_PLAYER_NAME);
- mysql_real_escape_string(Query, Query);
- format(Query, sizeof Query, "UPDATE `accounts` SET `Admin` = %i, `Money` = %i, `Score` = %i, `Kills` = %i, `Deaths` = %i WHERE Name = '%s'",
- GetPVarInt(playerid, "Admin"),
- GetPlayerMoney(playerid),
- GetPlayerScore(playerid),
- GetPVarInt(playerid, "Kills"),
- GetPVarInt(playerid, "Deaths"),
- Query);
- mysql_query(Query);
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- SetPVarInt(playerid, "Deaths", GetPVarInt(playerid, "Deaths") + 1);
- if(killerid != INVALID_PLAYER_ID) SetPVarInt(killerid, "Kills", GetPVarInt(killerid, "Kills") + 1);
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(text[0] == '#' && GetPlayerAdminLevel(playerid) >= 1)
- {
- new string[128];
- GetPlayerName(playerid, string, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] %s: %s", string, text[1]);
- SendClientMessageToAdmins(string);
- return 0;
- }
- if(GetPVarInt(playerid, "Muted"))
- {
- SendClientMessage(playerid, COLOR_ORANGE, "[*] You're muted and can't talk!");
- return 0;
- }
- return 1;
- }
- //Account-related
- COMMAND:register(playerid, params[])
- {
- if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
- if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /register [pass]");
- new Query[320], pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- mysql_real_escape_string(pName, pName);
- format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
- mysql_query(Query);
- mysql_store_result();
- if(mysql_num_rows())
- {
- SendClientMessage(playerid, COLOR_ORANGE, "[*] An account already exists under that name! Use \"/login\" to log in!");
- mysql_free_result();
- return 1;
- }
- mysql_free_result();
- WP_Hash(Query, 129, params);
- new IP[16];
- GetPlayerIp(playerid, IP, 16);
- format(Query, sizeof Query, "INSERT INTO `accounts` (Name, Password, IP, Admin, Money, Score, Kills, Deaths) VALUES ('%s', '%s', '%s', %i, %i, %i, %i, %i)",
- pName,
- Query,
- IP,
- GetPVarInt(playerid, "Admin"),
- GetPlayerMoney(playerid),
- GetPlayerScore(playerid),
- GetPVarInt(playerid, "Kills"),
- GetPVarInt(playerid, "Deaths"));
- mysql_query(Query);
- SetPVarInt(playerid, "Logged", 1);
- SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully registered and automatically logged in!");
- return 1;
- }
- COMMAND:login(playerid, params[])
- {
- if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
- if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /login [pass]");
- new Query[256], pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- mysql_real_escape_string(pName, pName);
- format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
- mysql_query(Query);
- mysql_store_result();
- if(!mysql_num_rows())
- {
- SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not registered! Use \"/register\" to register an account!");
- mysql_free_result();
- return 1;
- }
- mysql_free_result();
- WP_Hash(Query, 129, params);
- format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' AND `Password` = '%s' LIMIT 1", pName, Query);
- mysql_query(Query);
- mysql_store_result();
- if(!mysql_num_rows())
- {
- SetPVarInt(playerid, "LoginWarns", GetPVarInt(playerid, "LoginWarns") + 1);
- if(GetPVarInt(playerid, "LoginWarns") == 3)
- {
- format(Query, sizeof Query, "[*] %s has been kicked for 3 wrong login attempts!", pName);
- SendClientMessageToAll(COLOR_ROYALBLUE, Query);
- Kick(playerid);
- }
- else
- {
- format(Query, sizeof Query, "[*] Wrong password! Attempt %i out of 3.", GetPVarInt(playerid, "LoginWarns"));
- SendClientMessage(playerid, COLOR_ORANGE, Query);
- }
- return 1;
- }
- mysql_fetch_row(Query);
- new values[5];
- sscanf(Query, "p<|>{s[24]s[129]s[16]}a<i>[5]", values); //Enjoy editing.
- SetPVarInt(playerid, "Admin", values[0]);
- GivePlayerMoney(playerid, values[1]);
- SetPlayerScore(playerid, values[2]);
- SetPVarInt(playerid, "Kills", values[3]);
- SetPVarInt(playerid, "Deaths", values[4]);
- mysql_free_result();
- SetPVarInt(playerid, "Logged", 1);
- SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully logged in!");
- //Ip setting
- GetPlayerIp(playerid, Query, 16);
- format(Query, sizeof Query, "UPDATE `accounts` SET `IP` = '%s' WHERE `Name` = '%s' LIMIT 1", Query, pName);
- mysql_query(Query);
- return 1;
- }
- //Admin - LVL 4
- COMMAND:makeadmin(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 4) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 4 admin!");
- new target, level;
- if(sscanf(params, "ui", target, level)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /makeadmin [playerid/name] [level]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- SetPVarInt(target, "Admin", level);
- new string[128], pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has set %s's admin level to %i.", pName, gName, level);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "[*] Admin %s has set your admin level to %i.", pName, level);
- SendClientMessage(target, COLOR_ROYALBLUE, string);
- format(string, sizeof string, "%s set %s admin level to: %i", pName, gName, level);
- Log("MakeAdmin", string);
- return 1;
- }
- COMMAND:gmx(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 4) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 4 admin!");
- ShowPlayerDialog(playerid, 5482, DIALOG_STYLE_MSGBOX, "GMX", "Are you sure you want to GMX (restart) the server?", "Yes", "No");
- return 1;
- }
- //Admin - LVL 3
- COMMAND:giveweapon(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 3) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You aren't a level 3+ admin!");
- new target, weap[32], ammo;
- if(sscanf(params, "us[32]i", target, weap, ammo)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /giveweapon [playerid/name] [weaponid/name] [ammo]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- new WeapNames[48][32] = {
- {"Unarmed (Fist)"}, {"Brass Knuckles"}, {"Golf Club"}, {"Night Stick"},
- {"Knife"}, {"Baseball Bat"}, {"Shovel"}, {"Pool Cue"},
- {"Katana"}, {"Chainsaw"}, {"Purple Dildo"}, {"Big White Vibrator"},
- {"Medium White Vibrator"}, {"Small White Vibrator"}, {"Flowers"}, {"Cane"},
- {"Grenade"}, {"Teargas"}, {"Molotov"}, {" "}, {" "}, {" "},
- {"Colt 45"}, {"Colt 45(Silenced)"}, {"Deagle"}, {"Normal Shotgun"}, {"Sawnoff Shotgun"},
- {"Combat Shotgun"}, {"Micro Uzi(Mac 10)"}, {"SMG(MP5)"}, {"AK47"}, {"M4"},
- {"Tec9"}, {"Country Rifle"}, {"Sniper Rifle"}, {"Rocket Launcher"},
- {"Heat-Seeking Rocket Launcher"}, {"Flamethrower"}, {"Minigun"}, {"Satchel Charge"},
- {"Detonator"}, {"Spray Can"}, {"Fire Extinguisher"}, {"Camera"}, {"Night Vision Goggles"},
- {"Infrared Vision Goggles"}, {"Parachute"}, {"Fake Pistol"}
- }, weapon = -1;
- for(new w; w < 48; w++) if(strfind(WeapNames[w], weap, true) != -1) { weapon = w; break; }
- if(weapon == -1) weapon = strval(weap);
- if(weapon < 0 || weapon > 47) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid weapon ID!");
- GivePlayerWeapon(target, weapon, ammo);
- new pName[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, weap, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has given %s a %s with %i ammo.", pName, weap, WeapNames[weapon], ammo);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "[*] Admin %s has given you a %s with %i ammo!", pName, WeapNames[weapon], ammo);
- SendClientMessage(playerid, COLOR_ROYALBLUE, string);
- format(string, sizeof string, "%s gave %s a %s with %i ammo", pName, weap, WeapNames[weapon], ammo);
- Log("Giveweapon", string);
- return 1;
- }
- COMMAND:veh(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 3) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You aren't a level 3+ admin!");
- new veh[24], color[2];
- 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]");
- new VehicleNames[212][] = {
- {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},
- {"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},
- {"Cheetah"},{"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},
- {"Bobcat"},{"Mr Whoopee"},{"BF Injection"},{"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},
- {"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},{"Hotknife"},{"Trailer 1"},{"Previon"},
- {"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"},{"Monster"},
- {"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
- {"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},
- {"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},
- {"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},
- {"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},
- {"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},{"FBI Rancher"},{"Virgo"},{"Greenwood"},
- {"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},{"Boxville"},{"Benson"},
- {"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
- {"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt"},
- {"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},
- {"NRG-500"},{"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},
- {"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},
- {"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},
- {"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"},
- {"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"},
- {"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
- {"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},
- {"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},
- {"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},
- {"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},{"Police Car (LSPD)"},{"Police Car (SFPD)"},
- {"Police Car (LVPD)"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},{"Glendale"},
- {"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
- {"Utility Trailer"}
- }, vehicle = -1;
- for(new v; v < 212; v++) if(strfind(VehicleNames[v], veh, true) != -1) { vehicle = v + 400; break; }
- if(vehicle == -1) vehicle = strval(veh);
- if(vehicle < 400 || vehicle > 611) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid vehicle name or an ID between 400 and 611!");
- new Float:Pos[4];
- if(IsPlayerInAnyVehicle(playerid))
- {
- GetVehiclePos(GetPlayerVehicleID(playerid), Pos[0], Pos[1], Pos[2]);
- GetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[3]);
- }
- else
- {
- GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
- GetPlayerFacingAngle(playerid, Pos[3]);
- }
- PutPlayerInVehicle(playerid, CreateVehicle(vehicle, Pos[0], Pos[1], Pos[2], Pos[3], color[0], color[1], 120), 0);
- new string[128];
- GetPlayerName(playerid, veh, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s spawned a %s.", veh, VehicleNames[vehicle - 400]);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "%s spawned a %s", veh, VehicleNames[vehicle - 400]);
- Log("Veh(icle)", string);
- return 1;
- }
- COMMAND:unbanip(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 3) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You aren't a level 3+ admin!");
- new ip[16];
- if(sscanf(params, "s[16]", ip)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /unbanip [ip]");
- new string[128], pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has unbanned an IP: %s", pName, ip);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "unbanip %s", ip);
- SendRconCommand(string);
- format(string, sizeof string, "%s unbanned IP: %s", pName, ip);
- Log("UnbanIP", string);
- return 1;
- }
- //Admin - LVL 2
- COMMAND:ban(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 2) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 2+ admin!");
- new target, reason[128];
- if(sscanf(params, "us[128]", target, reason)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /ban [playerid/name] [reason]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[300]; //Immediately the query as well.
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has banned %s for: %s", pName, gName, reason);
- SendClientMessageToAll(COLOR_ROYALBLUE, string);
- SendClientMessage(target, COLOR_LIMEGREEN, "[*] You've been banned!");
- SendClientMessage(target, COLOR_LIMEGREEN, "[*] Visit the forums if you want to appeal your ban.");
- new ip[16];
- GetPlayerIp(target, ip, sizeof ip);
- format(string, sizeof string, "INSERT INTO `bans` (`Player`, `Admin`, `Reason`, `IP`) VALUES ('%s', '%s', '%s', '%s')", pName, gName, reason, ip);
- mysql_query(string);
- format(string, sizeof string, "%s banned %s for: %s", pName, gName, reason);
- Log("Ban", string);
- Ban(target);
- return 1;
- }
- COMMAND:announce(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 2) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 2+ admin!");
- if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /an(nounce) [message]");
- GameTextForAll(params, 3800, 6);
- return 1;
- }
- COMMAND:an(playerid, params[]) return cmd_announce(playerid, params);
- COMMAND:explode(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 2) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 2+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /explode [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- new Float:Pos[3];
- GetPlayerPos(target, Pos[0], Pos[1], Pos[2]);
- CreateExplosion(Pos[0], Pos[1], Pos[2], 0, 8.5);
- new string[128], pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has exploded %s.", pName, gName);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "%s exploded %s", pName, gName);
- Log("Explode", string);
- return 1;
- }
- COMMAND:goto(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 2) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 2+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /goto [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- new Float:Pos[3];
- GetPlayerPos(target, Pos[0], Pos[1], Pos[2]);
- if(!IsPlayerInAnyVehicle(playerid)) SetPlayerPos(playerid, Pos[0] + 2, Pos[1] + 2, Pos[2] + 2);
- else SetVehiclePos(GetPlayerVehicleID(playerid), Pos[0] + 2, Pos[1] + 2, Pos[2] + 2);
- SetPlayerInterior(playerid, GetPlayerInterior(target));
- if(IsPlayerInAnyVehicle(playerid)) LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(target));
- SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(target));
- if(IsPlayerInAnyVehicle(playerid)) SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(target));
- new string[128], pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s teleported to %s.", pName, gName);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "%s teleported to %s", pName, gName);
- Log("Goto", string);
- return 1;
- }
- COMMAND:gethere(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 2) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 2+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /get(here) [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- new Float:Pos[3];
- GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
- if(!IsPlayerInAnyVehicle(target)) SetPlayerPos(target, Pos[0] + 2, Pos[1] + 2, Pos[2] + 2);
- else SetVehiclePos(GetPlayerVehicleID(target), Pos[0] + 2, Pos[1] + 2, Pos[2] + 2);
- SetPlayerInterior(target, GetPlayerInterior(playerid));
- if(IsPlayerInAnyVehicle(target)) LinkVehicleToInterior(GetPlayerVehicleID(target), GetPlayerInterior(playerid));
- SetPlayerVirtualWorld(target, GetPlayerVirtualWorld(playerid));
- if(IsPlayerInAnyVehicle(target)) SetVehicleVirtualWorld(GetPlayerVehicleID(target), GetPlayerVirtualWorld(playerid));
- new string[128], pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s teleported %s to him.", pName, gName);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "%s teleported %s to him", pName, gName);
- return 1;
- }
- COMMAND:get(playerid, params[]) return cmd_gethere(playerid, params);
- //Admin - LVL 1
- COMMAND:kick(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- new target, reason[128];
- if(sscanf(params, "us[128]", target, reason)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /kick [playerid/name] [reason]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof reason, "[*] Admin %s has kicked %s for: %s", pName, gName, reason);
- SendClientMessageToAll(COLOR_ROYALBLUE, string);
- SendClientMessage(target, COLOR_LIMEGREEN, "[*] You've been kicked!");
- Kick(target);
- format(string, sizeof string, "%s kicked %s for: %s", pName, gName, reason);
- Log("Kick", string);
- return 1;
- }
- COMMAND:warn(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- new target, reason[128];
- if(sscanf(params, "us[128]", target, reason)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /warn [playerid/name] [reason]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- SetPVarInt(target, "Warnings", GetPVarInt(target, "Warnings") + 1);
- if(GetPVarInt(target, "Warnings") == 3)
- {
- format(string, sizeof string, "[*] Admin %s has auto-kicked %s for receiving 3 warnings, last: %s", pName, gName, reason);
- SendClientMessageToAll(COLOR_ROYALBLUE, string);
- SendClientMessage(target, COLOR_LIMEGREEN, "[*] You've been kicked for having 3 warnings, behave better in the future!");
- format(string, sizeof string, "%s warned %s: %s [Kick]", pName, gName, reason);
- Log("Warn", string);
- Kick(target);
- }
- else
- {
- format(string, sizeof string, "[*] Admin %s warned %s for: %s", pName, gName, reason);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "[*] Admin %s has warned you for: %s [Warning %d/3]", pName, reason, GetPVarInt(target, "Warnings"));
- SendClientMessage(target, COLOR_ROYALBLUE, string);
- format(string, sizeof string, "%s warned %s: %s [%i/3]", pName, gName, reason, GetPVarInt(target, "Warnings"));
- Log("Warn", string);
- }
- return 1;
- }
- COMMAND:mute(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /mute [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- SetPVarInt(target, "Muted", 1);
- new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has muted %s.", pName, gName);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "[*] Admin %s has muted you!", pName);
- SendClientMessage(target, COLOR_ROYALBLUE, string);
- format(string, sizeof string, "%s muted %s", pName, gName);
- Log("Mute", string);
- return 1;
- }
- COMMAND:voice(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /voice [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- DeletePVar(target, "Muted");
- new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has voiced %s.", pName, gName);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "[*] Admin %s has voiced you!", pName);
- SendClientMessage(target, COLOR_ROYALBLUE, string);
- format(string, sizeof string, "%s voiced %s", pName, gName);
- Log("Voice/Unmute", string);
- return 1;
- }
- COMMAND:unmute(playerid, params[]) return cmd_voice(playerid, params);
- COMMAND:freeze(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /freeze [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- TogglePlayerControllable(target, false);
- new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has frozen %s.", pName, gName);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "[*] Admin %s has frozen you!", pName);
- SendClientMessage(target, COLOR_ROYALBLUE, string);
- format(string, sizeof string, "%s froze %s", pName, gName);
- Log("Freeze", string);
- return 1;
- }
- COMMAND:unfreeze(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /unfreeze [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- TogglePlayerControllable(target, true);
- new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has unfrozen %s.", pName, gName);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "[*] Admin %s has unfrozen you!", pName);
- SendClientMessage(target, COLOR_ROYALBLUE, string);
- format(string, sizeof string, "%s unfroze %s", pName, gName);
- Log("Unfreeze", string);
- return 1;
- }
- COMMAND:slap(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /slap [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- new Float:Pos[3];
- GetPlayerPos(target, Pos[0], Pos[1], Pos[2]);
- SetPlayerPos(target, Pos[0], Pos[1], Pos[2] + 8);
- new string[128], pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has slapped %s.", pName, gName);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "%s slapped %s", pName, gName);
- Log("Slap", string);
- return 1;
- }
- COMMAND:spec(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /spec [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- TogglePlayerSpectating(playerid, true);
- if(IsPlayerInAnyVehicle(target)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(target));
- else PlayerSpectatePlayer(playerid, target);
- SendClientMessage(playerid, COLOR_SALMON, "[*] Type /specoff to stop spectating.");
- return 1;
- }
- COMMAND:specoff(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- TogglePlayerSpectating(playerid, false);
- return 1;
- }
- COMMAND:text(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /text [message]");
- SendClientMessageToAll(COLOR_LIMEGREEN, params);
- return 1;
- }
- COMMAND:ip(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /ip [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- new string[128], IP[16];
- GetPlayerName(target, string, MAX_PLAYER_NAME);
- GetPlayerIp(target, IP, 16);
- format(string, sizeof string, "[*] %s's IP: %s", string, IP);
- SendClientMessage(playerid, COLOR_ROYALBLUE, string);
- return 1;
- }
- COMMAND:getinfo(playerid, params[])
- {
- if(GetPlayerAdminLevel(playerid) < 1) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not a level 1+ admin!");
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /getinfo [playerid/name]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid player ID/name!");
- new string[128];
- GetPlayerName(target, string, MAX_PLAYER_NAME);
- SendClientMessage(playerid, COLOR_ROYALBLUE, "[*] Displaying information:");
- format(string, sizeof string, "Name: %s Admin level: %i", string, GetPVarInt(target, "Admin"));
- SendClientMessage(playerid, COLOR_SALMON, string);
- format(string, sizeof string, "Kills: %i Deaths: %i", GetPVarInt(target, "Kills"), GetPVarInt(target, "Deaths"));
- SendClientMessage(playerid, COLOR_SALMON, string);
- format(string, sizeof string, "Money: %i Score: %i", GetPlayerMoney(target), GetPlayerScore(target));
- SendClientMessage(playerid, COLOR_SALMON, string);
- GetPlayerIp(target, string, 16);
- format(string, sizeof string, "IP: %s Logged in: %s", string, GetPVarInt(target, "Logged") ? ("Yes") : ("No"));
- SendClientMessage(playerid, COLOR_SALMON, string);
- return 1;
- }
- //Public
- COMMAND:report(playerid, params[])
- {
- new target, string[128];
- if(sscanf(params, "us[128]", target, string)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /report [playerid/name] [reason]");
- else if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Enter a valid playerid ID/name!");
- new pName[MAX_PLAYER_NAME], gName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- GetPlayerName(target, gName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Player %s(%i) has reported %s(%i) for: %s", pName, playerid, gName, target, string);
- SendClientMessageToAdmins(string);
- format(string, sizeof string, "Your report on '%s' has been sent to the online admins.", gName);
- SendClientMessage(playerid, COLOR_ROYALBLUE, string);
- return 1;
- }
- COMMAND:admins(playerid, params[])
- {
- SendClientMessage(playerid, COLOR_ROYALBLUE, "[*] Displaying online admins:");
- new string[128];
- for(new i; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerAdmin(i))
- {
- GetPlayerName(i, string, MAX_PLAYER_NAME);
- format(string, sizeof string, "%s - RCON", string);
- SendClientMessage(playerid, COLOR_SALMON, string);
- }
- else if(GetPVarInt(i, "Admin"))
- {
- GetPlayerName(i, string, MAX_PLAYER_NAME);
- format(string, sizeof string, "%s - Level %i", string, GetPVarInt(i, "Admin"));
- SendClientMessage(playerid, COLOR_SALMON, string);
- }
- else if(i == MAX_PLAYERS - 1 && !strlen(string)) SendClientMessage(playerid, COLOR_SALMON, "There are no admins online!");
- }
- return 1;
- }
- COMMAND:stats(playerid, params[])
- {
- new string[128];
- SendClientMessage(playerid, COLOR_ROYALBLUE, "[*] Displaying your stats:");
- format(string, sizeof string, "Admin level: %i Logged in: %s", GetPVarInt(playerid, "Admin"), GetPVarInt(playerid, "Logged") ? ("Yes") : ("No"));
- SendClientMessage(playerid, COLOR_SALMON, string);
- format(string, sizeof string, "Kills: %i Deaths: %i KtD: %.3f", GetPVarInt(playerid, "Kills"), GetPVarInt(playerid, "Deaths"), floatdiv(GetPVarInt(playerid, "Kills"), GetPVarInt(playerid, "Deaths")));
- SendClientMessage(playerid, COLOR_SALMON, string);
- format(string, sizeof string, "Money: %i Score: %i", GetPlayerMoney(playerid), GetPlayerScore(playerid));
- SendClientMessage(playerid, COLOR_SALMON, string);
- return 1;
- }
- COMMAND:acmds(playerid, params[])
- {
- SendClientMessage(playerid, COLOR_ROYALBLUE, "[*] HidMin v1.00 admin command list:");
- SendClientMessage(playerid, COLOR_SALMON, "[*] Level 1: /getinfo /ip /text /spec(off) /slap");
- SendClientMessage(playerid, COLOR_SALMON, "[*] Level 1: /(un)freeze /(un)mute /warn /kick");
- SendClientMessage(playerid, COLOR_SALMON, "[*] Level 2: /get(here) /goto /explode /an(nounce) /ban");
- SendClientMessage(playerid, COLOR_SALMON, "[*] Level 3: /veh /giveweapon /unbanip");
- SendClientMessage(playerid, COLOR_SALMON, "[*] Level 4: /makeadmin /gmx");
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == 5482)
- {
- if(response)
- {
- for(new i; i < MAX_PLAYERS; i++)
- {
- OnPlayerDisconnect(i, 1);
- DeletePVar(i, "Logged");
- }
- new string[128], pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- format(string, sizeof string, "[*] Admin %s has restarted the server.", pName);
- SendClientMessageToAll(COLOR_ROYALBLUE, string);
- format(string, sizeof string, "%s performed a server restart.", pName);
- Log("GMX", string);
- SendRconCommand("gmx");
- }
- else SendClientMessage(playerid, COLOR_ORANGE, "[*] You cancelled to GMX the server");
- }
- return 1;
- }
- stock GetPlayerAdminLevel(playerid) return IsPlayerAdmin(playerid) ? 4 : GetPVarInt(playerid, "Admin");
- stock SendClientMessageToAdmins(msg[]) for(new i; i < MAX_PLAYERS; i++) if(GetPlayerAdminLevel(i)) SendClientMessage(i, COLOR_SALMON, msg);
- stock Log(command[], action[])
- {
- new Query[200];
- mysql_real_escape_string(action, action);
- format(Query, sizeof Query, "INSERT INTO `logs` (`Event`, `Details`) VALUES ('%s', '%s')", command, action);
- mysql_query(Query);
- }
Advertisement
Add Comment
Please, Sign In to add comment