21.03.2015, 23:59
Hello there!
I've been scripting/making a new registration system for my server, and I got no error, but when I try registering in game, it's not working, the code will be below, I will be awaiting a reply
I've been scripting/making a new registration system for my server, and I got no error, but when I try registering in game, it's not working, the code will be below, I will be awaiting a reply
Code:
#include <a_samp> #include <a_mysql> #include <sscanf2> #include <zcmd> #include <foreach> #define SQL_HOSTNAME "127.0.0.1" #define SQL_USERNAME "root" #define SQL_DATABASE "luxery" #define SQL_PASSWORD "" #define dregister 6287 #define dlogin 6288 #define SERVER_NAME "[0.3z] .::Luxury Roleplay::." #define SERVER_URL "" #define SERVER_MAP "Los Santos" #define SERVER_REVISION ("v0.02") #define SERVER_CITY (1) #define ADMINBLUE (0x1D7CF2FF) #define SERVERCOLOR (0xA9C4E4FF) #define COLOR_CLIENT (0xAAC4E5FF) #define COLOR_WHITE (0xFFFFFFFF) #define COLOR_RED (0xFF0000FF) #define COLOR_CYAN (0x33CCFFFF) #define COLOR_LIGHTRED (0xFF6347FF) #define COLOR_LIGHTGREEN (0x9ACD32FF) #define COLOR_YELLOW (0xFFFF00FF) #define COLOR_GREY (0xAFAFAFFF) #define COLOR_HOSPITAL (0xFF8282FF) #define COLOR_PURPLE (0xD0AEEBFF) #define COLOR_LIGHTYELLOW (0xF5DEB3FF) #define COLOR_DARKBLUE (0x1394BFFF) #define COLOR_ORANGE (0xFFA500FF) #define COLOR_LIME (0x00FF00FF) #define COLOR_GREEN (0x33CC33FF) #define COLOR_BLUE (0x2641FEFF) #define COLOR_FACTION (0xBDF38BFF) #define COLOR_RADIO (0x8D8DFFFF) #define COLOR_LIGHTBLUE (0x007FFFFF) #define COLOR_SERVER (0xFFFF90FF) // 6688FF #define COLOR_DEPARTMENT (0xF0CC00FF) #define COLOR_PINK (0xFF66FF00) #define COLOR_ADMINCHAT (0x33EE33FF) #define DEFAULT_COLOR (0xFFFFFFFF) native WP_Hash(buffer[], len, const str[]); static mysql, Name[MAX_PLAYERS][24], IP[MAX_PLAYERS][16] ; enum PlayerInfo { CMD1[129], CMD2[129], CMD3[129], CMD4[129], CMD5[129], ID, Password[129], Skin, Admin, Moderator, Helper, Gold, Money, Float:posX, Float:posY, Float:posZ, pSpectator, pInterior, pWorld } new pInfo[MAX_PLAYERS][PlayerInfo]; new g_iHandle; new Text:Stats1[MAX_PLAYERS]; new Text:SpecLastCMD; new Text:SpecCMDBG; new Text:SpecCmd1[MAX_PLAYERS]; new Text:SpecCmd2[MAX_PLAYERS]; new Text:SpecCmd3[MAX_PLAYERS]; new Text:SpecCmd4[MAX_PLAYERS]; new Text:SpecCmd5[MAX_PLAYERS]; new ahide[MAX_PLAYERS]; new abusy[MAX_PLAYERS]; //stocks main() { print("Luxury Roleplay"); } SQL_Connect() { g_iHandle = mysql_connect(SQL_HOSTNAME, SQL_USERNAME, SQL_DATABASE, SQL_PASSWORD); if (g_iHandle < 1) { printf("[SQL] Connection to \"%s\" failed! Please check the connection settings...\a", SQL_HOSTNAME); } else { printf("[SQL] Connection to \"%s\" passed!", SQL_HOSTNAME); } } stock SendClientMessageEx(playerid, color, const str[], {Float,_}:...) { static args, start, end, string[144] ; #emit LOAD.S.pri 8 #emit STOR.pri args if (args > 12) { #emit ADDR.pri str #emit STOR.pri start for (end = start + (args - 12); end > start; end -= 4) { #emit LREF.pri end #emit PUSH.pri } #emit PUSH.S str #emit PUSH.C 144 #emit PUSH.C string #emit PUSH.C args #emit SYSREQ.C format SendClientMessage(playerid, color, string); #emit LCTRL 5 #emit SCTRL 4 #emit RETN } return SendClientMessage(playerid, color, str); } stock BanPlayer(playerid) { new query[128], player_ip[16], bool:banned = false; GetPlayerIp(playerid, player_ip, sizeof(player_ip)); format(query, sizeof(query), "SELECT * FROM `bans` WHERE `Reason`, `Bannedby`, `ip` = '%s' , '%s', '%s'",banreason, Lname(playerid),player_ip); mysql_query(query); mysql_store_result(); banned = mysql_num_rows>0; mysql_free_result(); return banned; } stock UnbanPlayer(ip[]) { new query[128]; format(query, sizeof(query), "DELETE FROM `bans` WHERE `Reason`, `Bannedby`, `ip` = '%s' , '%s', '%s'",banreason, Lname(playerid),player_ip); mysql_query(query); } stock SendNearbyMessage(playerid, Float:radius, color, const str[], {Float,_}:...) { static args, start, end, string[144] ; #emit LOAD.S.pri 8 #emit STOR.pri args if (args > 16) { #emit ADDR.pri str #emit STOR.pri start for (end = start + (args - 16); end > start; end -= 4) { #emit LREF.pri end #emit PUSH.pri } #emit PUSH.S str #emit PUSH.C 144 #emit PUSH.C string #emit LOAD.S.pri 8 #emit CONST.alt 4 #emit SUB #emit PUSH.pri #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 foreach (new i : Player) { if (IsPlayerNearPlayer(i, playerid, radius)) { SendClientMessage(i, color, string); } } return 1; } foreach (new i : Player) { if (IsPlayerNearPlayer(i, playerid, radius)) { SendClientMessage(i, color, str); } } return 1; } stock IsPlayerNearPlayer(playerid, targetid, Float:radius) { static Float:fX, Float:fY, Float:fZ; GetPlayerPos(targetid, fX, fY, fZ); return (GetPlayerInterior(playerid) == GetPlayerInterior(targetid) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(targetid)) && IsPlayerInRangeOfPoint(playerid, radius, fX, fY, fZ); } stock Lname(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); for(new i = 0; i < MAX_PLAYER_NAME; i++) { if(name[i] == '_') name[i] = ' '; } return name; } stock ProxDetector(Float:radi, playerid, string[],color) { new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); foreach(Player,i) { if(IsPlayerInRangeOfPoint(i,radi,x,y,z)) { SendClientMessage(i,color,string); } } } //forward forward OnPlayerConnect(playerid); forward OnAccountLoad(playerid); forward OnAccountRegister(playerid); //public public OnPlayerConnect(playerid) { ahide[playerid] = 0; abusy[playerid] = 0; new query[128]; GetPlayerName(playerid, Name[playerid], 24); GetPlayerIp(playerid, IP[playerid], 16); mysql_format(mysql, query, sizeof(query),"SELECT `Password`, `ID` FROM `players` WHERE `Username` = '%e' LIMIT 1", Name[playerid]); mysql_tquery(mysql, query, "OnAccountCheck", "i", playerid); Stats1[playerid] = TextDrawCreate(0.000000, 437.000000, "Name:"); TextDrawBackgroundColor(Stats1[playerid], 255); TextDrawFont(Stats1[playerid], 1); TextDrawLetterSize(Stats1[playerid], 0.250000, 1.000000); TextDrawColor(Stats1[playerid], -16776961); TextDrawSetOutline(Stats1[playerid], 1); TextDrawSetProportional(Stats1[playerid], 1); TextDrawUseBox(Stats1[playerid], 1); TextDrawBoxColor(Stats1[playerid], 255); TextDrawTextSize(Stats1[playerid], 640.000000, 0.000000); SpecCmd1[playerid] = TextDrawCreate(445.000000, 146.000000, "_"); TextDrawBackgroundColor(SpecCmd1[playerid], 255); TextDrawFont(SpecCmd1[playerid], 1); TextDrawLetterSize(SpecCmd1[playerid], 0.330000, 0.799999); TextDrawColor(SpecCmd1[playerid], -1); TextDrawSetOutline(SpecCmd1[playerid], 0); TextDrawSetProportional(SpecCmd1[playerid], 1); TextDrawSetShadow(SpecCmd1[playerid], 1); TextDrawUseBox(SpecCmd1[playerid], 1); TextDrawBoxColor(SpecCmd1[playerid], 17); TextDrawTextSize(SpecCmd1[playerid], 632.000000, 0.000000); SpecCmd2[playerid] = TextDrawCreate(445.000000, 183.000000, "_"); TextDrawBackgroundColor(SpecCmd2[playerid], 255); TextDrawFont(SpecCmd2[playerid], 1); TextDrawLetterSize(SpecCmd2[playerid], 0.330000, 0.799999); TextDrawColor(SpecCmd2[playerid], -1); TextDrawSetOutline(SpecCmd2[playerid], 0); TextDrawSetProportional(SpecCmd2[playerid], 1); TextDrawSetShadow(SpecCmd2[playerid], 1); TextDrawUseBox(SpecCmd2[playerid], 1); TextDrawBoxColor(SpecCmd2[playerid], 17); TextDrawTextSize(SpecCmd2[playerid], 632.000000, 0.000000); SpecCmd3[playerid] = TextDrawCreate(445.000000, 219.000000, "_"); TextDrawBackgroundColor(SpecCmd3[playerid], 255); TextDrawFont(SpecCmd3[playerid], 1); TextDrawLetterSize(SpecCmd3[playerid], 0.330000, 0.799999); TextDrawColor(SpecCmd3[playerid], -1); TextDrawSetOutline(SpecCmd3[playerid], 0); TextDrawSetProportional(SpecCmd3[playerid], 1); TextDrawSetShadow(SpecCmd3[playerid], 1); TextDrawUseBox(SpecCmd3[playerid], 1); TextDrawBoxColor(SpecCmd3[playerid], 17); TextDrawTextSize(SpecCmd3[playerid], 632.000000, 0.000000); SpecCmd4[playerid] = TextDrawCreate(445.000000, 255.000000, "_"); TextDrawBackgroundColor(SpecCmd4[playerid], 255); TextDrawFont(SpecCmd4[playerid], 1); TextDrawLetterSize(SpecCmd4[playerid], 0.330000, 0.799999); TextDrawColor(SpecCmd4[playerid], -1); TextDrawSetOutline(SpecCmd4[playerid], 0); TextDrawSetProportional(SpecCmd4[playerid], 1); TextDrawSetShadow(SpecCmd4[playerid], 1); TextDrawUseBox(SpecCmd4[playerid], 1); TextDrawBoxColor(SpecCmd4[playerid], 17); TextDrawTextSize(SpecCmd4[playerid], 632.000000, 0.000000); SpecCmd5[playerid] = TextDrawCreate(445.000000, 291.000000, "_"); TextDrawBackgroundColor(SpecCmd5[playerid], 255); TextDrawFont(SpecCmd5[playerid], 1); TextDrawLetterSize(SpecCmd5[playerid], 0.330000, 0.799999); TextDrawColor(SpecCmd5[playerid], -1); TextDrawSetOutline(SpecCmd5[playerid], 0); TextDrawSetProportional(SpecCmd5[playerid], 1); TextDrawSetShadow(SpecCmd5[playerid], 1); TextDrawUseBox(SpecCmd5[playerid], 1); TextDrawBoxColor(SpecCmd5[playerid], 17); TextDrawTextSize(SpecCmd5[playerid], 632.000000, 0.000000); return 1; } public OnPlayerDisconnect(playerid, reason) { new query[128], Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]); mysql_format(mysql, query, sizeof(query), "UPDATE `players` SET `Admin`=%d, `Gold`=%d, `Money`=%d, `posX`=%f, `posY`=%f, `posZ`=%f WHERE `ID`=%d",\ pInfo[playerid][Admin], pInfo[playerid][Gold], pInfo[playerid][Money], pos[0], pos[1], pos[2], pInfo[playerid][ID]); mysql_tquery(mysql, query, "", ""); return 1; } public OnPlayerCommandPerformed(playerid, cmdtext[], success) { if(!success) return SendClientMessage(playerid, COLOR_GREY, "SERVER: This command is unknown, use /help for a list of commands."); //If the command was wrong/invalid if(success) { format(pInfo[playerid][CMD1], 129, "%s", pInfo[playerid][CMD2]); format(pInfo[playerid][CMD2], 129, "%s", pInfo[playerid][CMD3]); format(pInfo[playerid][CMD3], 129, "%s", pInfo[playerid][CMD4]); format(pInfo[playerid][CMD4], 129, "%s", pInfo[playerid][CMD5]); format(pInfo[playerid][CMD5], 129, "%s", cmdtext); } return 1; } public OnPlayerSpawn(playerid) { SetPlayerPos(playerid, pInfo[playerid][posX], pInfo[playerid][posZ], pInfo[playerid][posZ]); return 1; } public OnAccountLoad(playerid) { pInfo[playerid][Admin] = cache_get_field_content_int(0, "Admin"); pInfo[playerid][Moderator] = cache_get_field_content_int(0, "Moderator"); pInfo[playerid][Helper] = cache_get_field_content_int(0, "Helper"); pInfo[playerid][Gold] = cache_get_field_content_int(0, "Gold"); pInfo[playerid][Money] = cache_get_field_content_int(0, "Money"); pInfo[playerid][Skin] = cache_get_field_content_int(0, "Skin"); pInfo[playerid][posX] = cache_get_field_content_float(0, "PosX"); pInfo[playerid][posY] = cache_get_field_content_float(0, "PosY"); pInfo[playerid][posZ] = cache_get_field_content_float(0, "PosZ"); GivePlayerMoney(playerid, pInfo[playerid][Money]); SendClientMessage(playerid, -1, "Successfully logged in"); return 1; } public OnAccountRegister(playerid) { pInfo[playerid][ID] = cache_insert_id(); printf("New account registered. ID: %d", pInfo[playerid][ID]); return 1; } public OnGameModeInit() { SQL_Connect(); mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG); mysql = mysql_connect(SQL_HOSTNAME, SQL_USERNAME, SQL_DATABASE, SQL_PASSWORD); if(mysql_errno(mysql) != 0) print("Could not connect to database!"); ManualVehicleEngineAndLights(); new rcon[80]; format(rcon, sizeof(rcon), "hostname %s", SERVER_NAME); SendRconCommand(rcon); format(rcon, sizeof(rcon), "weburl %s", SERVER_URL); SendRconCommand(rcon); format(rcon, sizeof(rcon), "map %s", SERVER_MAP); SendRconCommand(rcon); SetGameModeText(SERVER_REVISION); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case dlogin: { if(!response) Kick(playerid); new hpass[129]; new query[100]; WP_Hash(hpass, 129, inputtext); if(!strcmp(hpass, pInfo[playerid][Password])) { mysql_format(mysql, query, sizeof(query), "SELECT * FROM `players` WHERE `Username` = '%e' LIMIT 1", Name[playerid]); mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid); } else { ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_INPUT, "Login", "In order to play, you need to login\nWrong password!", "Login", "Quit"); } } case dregister: { if(!response) return Kick(playerid); if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, dregister, DIALOG_STYLE_INPUT, "Register", "In order to play, you need to register.\nYour password must be at least 6 characters long!", "Register", "Quit"); new query[300]; WP_Hash(pInfo[playerid][Password], 129, inputtext); mysql_format(mysql, query, sizeof(query), "INSERT INTO `players` (`Username`, `Password`, `IP`, `Admin`, `Moderator`, `Helper`, `Gold`, `Money`, `Skin`, `PosX` ,`PosY`, `PosZ`) VALUES ('%e', '%s', '%s', 0, 0, 0, 0.0, 0.0, 0.0)", Name[playerid], pInfo[playerid][Password], IP[playerid]); mysql_tquery(mysql, query, "OnAccountRegister", "i", playerid); } } return 1; } public OnPlayerUpdate(playerid) { if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING) { new playerb = pInfo[playerid][pSpectator]; new string[128]; if(playerb != INVALID_PLAYER_ID) { new ip[16], Float:H, Float:A; GetPlayerIp(playerb, ip, sizeof(ip)); GetPlayerHealth(playerb, H); GetPlayerArmour(playerb, A); format(string, sizeof(string), "Name: %s Health: %0.1f Armour: %0.1f Money: %d IP: %s", Lname(playerb), H, A, GetPlayerMoney(playerb), ip); TextDrawSetString(Stats1[playerid], string); format(string, sizeof(string), "%s", pInfo[playerb][CMD1]); TextDrawSetString(SpecCmd1[playerid], string); format(string, sizeof(string), "%s", pInfo[playerb][CMD2]); TextDrawSetString(SpecCmd2[playerid], string); format(string, sizeof(string), "%s", pInfo[playerb][CMD3]); TextDrawSetString(SpecCmd3[playerid], string); format(string, sizeof(string), "%s", pInfo[playerb][CMD4]); TextDrawSetString(SpecCmd4[playerid], string); format(string, sizeof(string), "%s", pInfo[playerb][CMD5]); TextDrawSetString(SpecCmd5[playerid], string); } } return 1; } //general commands CMD:help(playerid, params[]) { SendClientMessage(playerid, COLOR_YELLOW, "{FFA500}. : : {FFFF00}Luxury Help Commands {FFA500}: : ."); SendClientMessage(playerid, SERVERCOLOR, "General: /me, /do, /s(shout), /l(low), /pm, /blockpm"); return 1; } CMD:me(playerid, params[]) { new string[128], action[100]; if(sscanf(params, "s[100]", action)) { SendClientMessage(playerid, -1, "USAGE: /me [action]"); return 1; } else { format(string, sizeof(string), "%s %s", Lname(playerid), action); ProxDetector(30, playerid, string, COLOR_PURPLE); } return 1; } CMD:do(playerid, params[]) { new string[128], action[100]; if(sscanf(params, "s[100]", action)) { SendClientMessage(playerid, -1, "USAGE: /do [action]"); return 1; } else { format(string, sizeof(string), "%s (( %s ))", action, Lname(playerid)); ProxDetector(30, playerid, string, COLOR_PURPLE); } return 1; } CMD:s(playerid, params[]) return cmd_shout(playerid, params); CMD:shout(playerid, params[]) { new string[128], shout[100]; if(sscanf(params, "s[100]", shout)) { SendClientMessage(playerid, -1, "USAGE: /(s)hout [message]"); return 1; } else { format(string, sizeof(string), "%s shouts: %s!",Lname(playerid),shout); ProxDetector(50.0, playerid, string, -1); } return 1; } CMD:l(playerid, params[]) return cmd_low(playerid, params); CMD:low(playerid, params[]) { if (isnull(params)) return SendClientMessage(playerid, COLOR_GREY, "/(l)ow [low text]"); if (strlen(params) > 64) { SendNearbyMessage(playerid, 5.0, COLOR_WHITE, "%s says: %.64s", Lname(playerid), params); SendNearbyMessage(playerid, 5.0, COLOR_WHITE, "...%s", params[64]); } else { SendNearbyMessage(playerid, 5.0, COLOR_WHITE, "%s says: %s", Lname(playerid), params); } return 1; } CMD:pm(playerid, params[]) { new str2[128], id; if(sscanf(params, "us[128]", id, str2)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /pm [ID] [MESSAGE]"); if(!IsPlayerConnected(id)) return GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~ERROR: Player Isnt Connected", 3000, 3); if(playerid == id) return GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~You can't PM your self", 3000, 3); if(GetPVarInt(id, "BlockPM") == 1) return GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~Player has blocked their PM's", 3000, 3); new Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME], str[128]; GetPlayerName(playerid, Name1, sizeof(Name1)); GetPlayerName(id, Name2, sizeof(Name2)); format(str, sizeof(str), "((PM To %s: %s))", Name2, str2); SendClientMessage(playerid, COLOR_YELLOW, str); format(str, sizeof(str), "((PM From %s: %s))", Name1, str2); SendClientMessage(id, COLOR_YELLOW, str); return 1; } CMD:blockpm(playerid, params[]) { if(GetPVarInt(playerid, "BlockPM") == 1) { SetPVarInt(playerid, "BlockPM", 0); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~You've unblocked your PM's", 3000, 3); } else { SetPVarInt(playerid, "BlockPM", 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~You've blocked your PM's", 3000, 3); } return 1; } CMD:staff(playerid, params[]) { static string[128]; SendClientMessageEx(playerid,COLOR_ORANGE, ". : : Administrators : : ."); foreach(Player, i) { if(pInfo[i][Admin]) { if(abusy[i] == 0 && ahide[i] == 0) { format(string, sizeof(string), "Name: %s Level: %d {33CC33}(Available)", Lname(i),pInfo[i][Admin]); SendClientMessage(playerid, SERVERCOLOR, string); } else if(abusy[i] == 1) { format(string, sizeof(string), "Name: %s Level: %d {FF0000}(Busy)", Lname(i),pInfo[i][Admin]); SendClientMessage(playerid, SERVERCOLOR, string); } else if(ahide[i] == 1) { } } } SendClientMessageEx(playerid,COLOR_ORANGE, ". : : Moderators : : ."); foreach(Player, i) { if(pInfo[i][Moderator]) { if(ahide[i] == 0 && abusy[i] == 0) { format(string, sizeof(string), "Name: %s {33CC33}(Available)", Lname(i)); SendClientMessage(playerid, SERVERCOLOR, string); } else if(abusy[i] == 1) { format(string, sizeof(string), "Name: %s {FF0000}(Busy)", Lname(i)); SendClientMessage(playerid, SERVERCOLOR, string); } else if(ahide[i] == 1) { } } } SendClientMessage(playerid,COLOR_ORANGE, ". : : Helper : : ." ); foreach(Player, i) { if(pInfo[i][Helper]) { if (abusy[i] == 0) { format(string, sizeof(string), "Name: %s {33CC33}(Available)", Lname(i)); SendClientMessage(playerid, SERVERCOLOR, string); } else if(abusy[i] == 1) { format(string, sizeof(string), "Name: %s {FF0000}(Busy)", Lname(i)); SendClientMessage(playerid, SERVERCOLOR, string); } } } return 1; } //faction commands //admin+moderator commands CMD:makeadmin(playerid, params[]) { static playerb, level; if (pInfo[playerid][Admin] > 6) return SendClientMessageEx(playerid, COLOR_WHITE, "You don't have permission to use this command."); if (sscanf(params, "ud", playerb, level)) return SendClientMessageEx(playerid, COLOR_WHITE, "/makeadmin [playerid/name] [level]"); if (playerb == INVALID_PLAYER_ID) return SendClientMessageEx(playerid, COLOR_WHITE, "You have specified an invalid player."); if (level < 0 || level > 6) return SendClientMessageEx(playerid, COLOR_WHITE, "Invalid admin level. Levels range from 0 to 6."); if (level > pInfo[playerb][Admin]) { SendClientMessageEx(playerid, ADMINBLUE, "You have promoted %s to a higher admin level (%d).", Lname(playerb), level); SendClientMessageEx(playerb, ADMINBLUE, "%s has promoted you to a higher admin level (%d).", Lname(playerid), level); } else { SendClientMessageEx(playerid, ADMINBLUE, "You have demoted %s to a lower admin level (%d).", Lname(playerb), level); SendClientMessageEx(playerb, ADMINBLUE, "%s has demoted you to a lower admin level (%d).", Lname(playerid), level); } pInfo[playerb][Admin] = level; return 1; } CMD:makemoderator(playerid, params[]) { static playerb; if(pInfo[playerid][Admin] > 6) return SendClientMessageEx(playerid, COLOR_WHITE, "You don't have permission to use this command"); if(sscanf(params, "u", playerb)) return SendClientMessageEx(playerid, COLOR_WHITE, "[USAGE]/makemoderator [playerid/name]"); { SendClientMessageEx(playerid, ADMINBLUE, "You have promoted %s to an Moderator", Lname(playerb)); SendClientMessageEx(playerb, ADMINBLUE, "You've been promoted by %s to an Moderator Congratulations", Lname(playerid)); pInfo[playerb][Moderator] = 1; } return 1; } CMD:removemoderator(playerid, params[]) { static playerb; if(pInfo[playerid][Admin] > 6) return SendClientMessageEx(playerid, COLOR_WHITE, "You don't have permission to use this command"); if(sscanf(params, "u", playerb)) return SendClientMessageEx(playerid, COLOR_WHITE, "[USAGE]/removemoderator [playerid/name]"); { SendClientMessageEx(playerid, ADMINBLUE, "You have Fired %s from the Moderator Team", Lname(playerb)); SendClientMessageEx(playerb, ADMINBLUE, "You've been fired by %s from the Moderator Team", Lname(playerid)); pInfo[playerb][Moderator] = 0; } return 1; } CMD:makehelper(playerid, params[]) { static playerb; if(pInfo[playerid][Admin] > 6) return SendClientMessageEx(playerid, COLOR_WHITE, "You don't have permission to use this command"); if(sscanf(params, "u", playerb)) return SendClientMessageEx(playerid, COLOR_WHITE, "[USAGE]/makehelper [playerid/name]"); { SendClientMessageEx(playerid, ADMINBLUE, "You have promoted %s to an Helper", Lname(playerb)); SendClientMessageEx(playerb, ADMINBLUE, "You've been promoted by %s to an Helper Congratulations", Lname(playerid)); pInfo[playerb][Moderator] = 1; } return 1; } CMD:removehelper(playerid, params[]) { static playerb; if(pInfo[playerid][Admin] > 6) return SendClientMessageEx(playerid, COLOR_WHITE, "You don't have permission to use this command"); if(sscanf(params, "u", playerb)) return SendClientMessageEx(playerid, COLOR_WHITE, "[USAGE]/removehelper [playerid/name]"); { SendClientMessageEx(playerid, ADMINBLUE, "You have Fired %s from the Helper Team", Lname(playerb)); SendClientMessageEx(playerb, ADMINBLUE, "You've been fired by %s from the Helper Team", Lname(playerid)); pInfo[playerb][Moderator] = 0; } return 1; } CMD:apm(playerid, params[]) { static playerb, string[128]; if(pInfo[playerid][Admin] < 1) return SendClientMessageEx(playerid, COLOR_WHITE, "You don't have permission to use this command"); if (sscanf(params, "us[128]", playerb, string)) return SendClientMessageEx(playerid, COLOR_WHITE, "[USAGE]/apm [playerid/name] [text]"); { SendClientMessageEx(playerid, COLOR_ORANGE, "[APM] %s: %s", Lname(playerb), string); SendClientMessageEx(playerb, COLOR_RED, "Admin: %s", string); } return 1; } CMD:test(playerid, params[]) { pInfo[playerid][Admin] = 6; return 1; } CMD:mpm(playerid, params[]) { static playerb, string[128]; if(!pInfo[playerid][Moderator]) return SendClientMessageEx(playerid, COLOR_WHITE, "You don't have permission to use this command"); if (sscanf(params, "us[128]", playerb, string)) return SendClientMessageEx(playerid, COLOR_WHITE, "[USAGE]/mpm [playerid/name] [text]"); { SendClientMessageEx(playerid, COLOR_ORANGE, "[MPM] %s: %s", Lname(playerb), string); SendClientMessageEx(playerb, COLOR_PURPLE, "Moderator: %s", string); } return 1; } CMD:skin(playerid, params[]) { static userid, skinid; if (pInfo[playerid][Admin] < 1) return SendClientMessage(playerid,COLOR_WHITE, "You don't have permission to use this command."); if (sscanf(params, "ud", userid, skinid)) return SendClientMessage(playerid,COLOR_WHITE, "/skin [playerid/name] [skin id]"); if (userid == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_WHITE, "You have specified an invalid player."); if (skinid < 0 || skinid > 299) return SendClientMessage(playerid,COLOR_WHITE, "Invalid skin ID. Skins range from 0 to 299."); SetPlayerSkin(userid, skinid); pInfo[userid][Skin] = skinid; SendClientMessageEx(playerid, COLOR_WHITE, "You have set %s's skin to ID: %d.", Lname(userid), skinid); SendClientMessageEx(userid, COLOR_WHITE, "%s has set your skin to ID: %d.", Lname(playerid), skinid); return 1; } CMD:spec(playerid, params[]) { new playerb; if (pInfo[playerid][Admin] < 1 && pInfo[playerid][Moderator]) return SendClientMessageEx(playerid, COLOR_WHITE, "You don't have permission to use this command."); if (!isnull(params) && !strcmp(params, "off", true)) { if (GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) return SendClientMessageEx(playerid, COLOR_WHITE, "You are not spectating any player."); PlayerSpectatePlayer(playerid, INVALID_PLAYER_ID); PlayerSpectateVehicle(playerid, INVALID_VEHICLE_ID); GetPlayerPos(playerid, pInfo[playerid][posX], pInfo[playerid][posY], pInfo[playerid][posZ]); pInfo[playerid][Skin] = GetPlayerSkin(playerid); TogglePlayerSpectating(playerid, false); TextDrawHideForPlayer(playerid, Stats1[playerid]); TextDrawHideForPlayer(playerid, SpecCmd1[playerid]); TextDrawHideForPlayer(playerid, SpecCmd2[playerid]); TextDrawHideForPlayer(playerid, SpecCmd3[playerid]); TextDrawHideForPlayer(playerid, SpecCmd4[playerid]); TextDrawHideForPlayer(playerid, SpecCmd5[playerid]); TextDrawHideForPlayer(playerid, Text:SpecCMDBG); TextDrawHideForPlayer(playerid, Text:SpecLastCMD); return SendClientMessageEx(playerid, COLOR_WHITE, "You are no longer in spectator mode."); } if (sscanf(params, "u", playerb)) return SendClientMessageEx(playerid, COLOR_WHITE, "/spectate [playerid/name] - Type \"/spectate off\" to stop spectating."); if (playerb == INVALID_PLAYER_ID) return SendClientMessageEx(playerid, COLOR_WHITE, "You have specified an invalid player."); if (GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) { GetPlayerPos(playerid, pInfo[playerid][posX], pInfo[playerid][posY], pInfo[playerid][posZ]); pInfo[playerid][pInterior] = GetPlayerInterior(playerid); pInfo[playerid][pWorld] = GetPlayerVirtualWorld(playerid); } TextDrawShowForPlayer(playerid, Stats1[playerid]); TextDrawShowForPlayer(playerid, Text:SpecCmd1[playerid]); TextDrawShowForPlayer(playerid, Text:SpecCmd2[playerid]); TextDrawShowForPlayer(playerid, Text:SpecCmd3[playerid]); TextDrawShowForPlayer(playerid, Text:SpecCmd4[playerid]); TextDrawShowForPlayer(playerid, Text:SpecCmd5[playerid]); TextDrawShowForPlayer(playerid, Text:SpecCMDBG); TextDrawShowForPlayer(playerid, Text:SpecLastCMD); SetPlayerInterior(playerid, GetPlayerInterior(playerb)); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(playerb)); TogglePlayerSpectating(playerid, 1); if (IsPlayerInAnyVehicle(playerb)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(playerb)); else PlayerSpectatePlayer(playerid, playerb); SendClientMessageEx(playerid, COLOR_WHITE, "You are now spectating %s (ID: %d).", Lname(playerb), playerb); pInfo[playerid][pSpectator] = playerb; return 1; } CMD:goto(playerid, params[]) { new playerb, string[128], Float: ToX, Float: ToY, Float: ToZ; if(sscanf(params, "u", playerb)) return SendClientMessageEx(playerid, COLOR_WHITE, "[USAGE]/goto [playerid/name]"); { if(pInfo[playerid][Admin] >= 1) return SendClientMessageEx(playerid, COLOR_WHITE, "You don't have permission to use this command"); { SendClientMessage(playerid, COLOR_WHITE, "SYNTAX: /goto [playerid]"); } if(pInfo[playerid][Admin] > 1) { if(IsPlayerConnected(playerb)) { GetPlayerPos(playerb, ToX, ToY, ToZ); new VW = GetPlayerVirtualWorld(playerb); new INT = GetPlayerInterior(playerb); SetPlayerPos(playerid, ToX, ToY, ToZ); SetPlayerVirtualWorld(playerid, VW); SetPlayerInterior(playerid, INT); format(string, sizeof(string), "You have teleported to %s.", Lname(playerb)); SendClientMessage(playerid, COLOR_WHITE, string); } } } return 1; } CMD:airport(playerid, params[]) { SetPlayerPos(playerid, 1642.1957, -2334.4849, 13.5469); return 1; } CMD:ahide(playerid, params[]) { if (!pInfo[playerid][Admin] && !pInfo[playerid][Moderator]) return SendClientMessageEx(playerid, COLOR_GREY, "You don't have permission to use this command."); switch (ahide[playerid]) { case 0: { ahide[playerid] = 1; SendClientMessageEx(playerid, SERVERCOLOR, "You are now hidden from the staff list."); } case 1: { ahide[playerid] = 0; SendClientMessageEx(playerid, SERVERCOLOR, "You are now visible in the staff list."); } } return 1; } CMD:abusy(playerid, params[]) { if (!pInfo[playerid][Admin] && !pInfo[playerid][Moderator] && !pInfo[playerid][Helper]) return SendClientMessageEx(playerid, COLOR_GREY, "You don't have permission to use this command."); switch (abusy[playerid]) { case 0: { abusy[playerid] = 1; SendClientMessageEx(playerid, SERVERCOLOR, "You are now Busy on the staff list"); } case 1: { abusy[playerid] = 0; SendClientMessageEx(playerid, SERVERCOLOR, "You are now Available again on the Staff list"); } } return 1; } CMD:kick(playerid, params[]) { static playerb, string[128]; if(pInfo[playerid][Admin] < 1 && !pInfo[playerid][Moderator]) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command."); if(sscanf(params, "us[128]", playerb, params)) return SendClientMessage(playerid, COLOR_WHITE, "[Usage]: /kick [playerid] [reason]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player id."); if(pInfo[playerid][Admin] < pInfo[playerb][Admin]) return SendClientMessage(playerid, COLOR_GREY, "Player has a higher admin level than you."); format(string, sizeof(string), "[Server]: %s has been kicked by %s, reason: %s", Lname(playerb), Lname(playerid), params); SendClientMessageToAll(COLOR_RED, string); SetTimerEx("kickbugfix", 500, false, "i", playerb); return 1; } //helper commands