25.02.2017, 19:22
My accounts aren't registering or saving. It doesn't show me anything once it hits onplayerregister function.
Код:
public OnGameModeInit() { // Don't use these lines if it's a filterscript SetGameModeText("Visionary Roleplay"); new MySQLOpt: option_id = mysql_init_options(); mysql_set_option(option_id, AUTO_RECONNECT, true); Database = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, option_id); if(Database == MYSQL_INVALID_HANDLE || mysql_errno(Database) != 0) { print("I couldn't connect to the MySQL server, closing."); SendRconCommand("exit"); return 1; } print("I have connected to the MySQL server."); return 1; } public OnPlayerConnect(playerid) { new DB_Query[115]; PlayerInfo[playerid][PasswordFails] = 0; PlayerInfo[playerid][Admin] = 0; GetPlayerName(playerid, PlayerInfo[playerid][Name], MAX_PLAYER_NAME); Corrupt_Check[playerid]++; mysql_format(Database, DB_Query, sizeof(DB_Query), "SELECT * FROM `accounts` WHERE `NAME` = '%e' LIMIT 1", PlayerInfo[playerid][Name]); mysql_tquery(Database, DB_Query, "OnPlayerDataCheck", "ii", playerid, Corrupt_Check[playerid]); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch (dialogid) { case LoginDialog: { if(!response) return Kick(playerid); new buf[129]; WP_Hash(buf, sizeof(buf), inputtext); if(!strcmp(buf, PlayerInfo[playerid][Password], true)) { OnPlayerLogin(playerid); } else { new String[150]; PlayerInfo[playerid][PasswordFails] += 1; printf("%s has been failed to login. (%d)", PlayerInfo[playerid][Name], PlayerInfo[playerid][PasswordFails]); if (PlayerInfo[playerid][PasswordFails] >= 3) { Kick(playerid); } else { format(String, sizeof(String), "Wrong password, you have %d out of 3 tries.", PlayerInfo[playerid][PasswordFails]); SendClientMessage(playerid, 0xFF0000FF, String); format(String, sizeof(String), "{FFFFFF}Welcome back, %s.\n\n{0099FF}This account is already registered.\n\ {0099FF}Please, input your password below to proceed to the game.\n\n", PlayerInfo[playerid][Name]); ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_PASSWORD, "Login System", String, "Login", "Leave"); } } } case RegisterDialog: { if(!response) return Kick(playerid); if(strlen(inputtext) <= 5 || strlen(inputtext) > 60) { SendClientMessage(playerid, 0x969696FF, "Invalid password length, should be 5 - 60."); new String[150]; format(String, sizeof(String), "{FFFFFF}Welcome %s.\n\n{0099FF}This account is not registered.\n\ {0099FF}Please, input your password below to proceed.\n\n", PlayerInfo[playerid][Name]); ShowPlayerDialog(playerid, RegisterDialog, DIALOG_STYLE_PASSWORD, "Registration System", String, "Register", "Leave"); } else { new playerip[16]; WP_Hash(PlayerInfo[playerid][Password], 129, inputtext); //hashing inputtext GetPlayerIp(playerid, playerip, sizeof(playerip)); new DB_Query[225]; mysql_format(Database, DB_Query, sizeof(DB_Query), "INSERT INTO `accounts` (`Name`, `Password`, `IP`, `Admin`) VALUES ('%e', '%s', '%s', '0')", PlayerInfo[playerid][Name], PlayerInfo[playerid][Password], playerip); mysql_tquery(Database, DB_Query, "OnPlayerRegister", "d", playerid); } } } return 1; } forward public OnPlayerDataCheck(playerid, corrupt_check); public OnPlayerDataCheck(playerid, corrupt_check) { if (corrupt_check != Corrupt_Check[playerid]) return Kick(playerid); new String[150]; if(cache_num_rows() > 0) { cache_get_value_name(0, "Password", PlayerInfo[playerid][Password]); PlayerInfo[playerid][Player_Cache] = cache_save(); format(String, sizeof(String), "{FFFFFF}Welcome back, %s.\n\n{0099FF}This account is already registered.\n\ {0099FF}Please, input your password below to proceed to the game.\n\n", PlayerInfo[playerid][Name]); ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_PASSWORD, "Login System", String, "Login", "Leave"); } else { format(String, sizeof(String), "{FFFFFF}Welcome %s.\n\n{0099FF}This account is not registered.\n\ {0099FF}Please, input your password below to proceed to the game.\n\n", PlayerInfo[playerid][Name]); ShowPlayerDialog(playerid, RegisterDialog, DIALOG_STYLE_PASSWORD, "Registration System", String, "Register", "Leave"); } return 1; } forward public OnPlayerRegister(playerid); public OnPlayerRegister(playerid) { SendClientMessage(playerid, 0x00FF00FF, "Welcome to Visionary roleplay."); PlayerInfo[playerid][LoggedIn] = true; return 1; } forward public OnPlayerLogin(playerid); public OnPlayerLogin(playerid) { cache_set_active(PlayerInfo[playerid][Player_Cache]); cache_get_value_int(0, "ID", PlayerInfo[playerid][ID]); cache_get_value_int(0, "Admin", PlayerInfo[playerid][Admin]); cache_delete(PlayerInfo[playerid][Player_Cache]); PlayerInfo[playerid][Player_Cache] = MYSQL_INVALID_CACHE; PlayerInfo[playerid][LoggedIn] = true; SendClientMessage(playerid, 0x00FF00FF, "Logged in to the account."); return 1; } forward public OnPlayerAccountSave(playerid); public OnPlayerAccountSave(playerid) { Corrupt_Check[playerid]++; new DB_Query[256]; if(PlayerInfo[playerid][LoggedIn] == true) { mysql_format(Database, DB_Query, sizeof(DB_Query), "UPDATE `accounts` SET `ADMIN` = %d WHERE `ID` = %d LIMIT 1", PlayerInfo[playerid][Admin], PlayerInfo[playerid][ID]); mysql_tquery(Database, DB_Query); if(cache_is_valid(PlayerInfo[playerid][Player_Cache])) { cache_delete(PlayerInfo[playerid][Player_Cache]); PlayerInfo[playerid][Player_Cache] = MYSQL_INVALID_CACHE; } } return 1; }