#include #include #include #include //Modules #include "libraries/mysql_functions.inc" #include "libraries/config.inc" #include "libraries/functions.inc" main(){} public OnGameModeInit() { if(!MySQL_Init()) return printf("[MySQL] Error while trying to connect with database. [ID: %d].", mysql_errno(m_sql)); else print("[MySQL] Successfully connected to the database."); return 1; } public OnPlayerRequestClass(playerid, classid) { new Cache:result; result = mysql_query(m_sql, sprintf("SELECT player_uid FROM `players` WHERE `player_name` = '%s'", PlayerName(playerid))); SpawnPlayer(playerid); TogglePlayerSpectating(playerid, 1); if(cache_num_rows() > 0) ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logowanie", sprintf("Witamy na serwerze %s.\n\nAby móc zalogować się do gry wpisz hasło podane\n przy pierwszej rejestracji w polu poniżej.", PlayerName(playerid)), "Logowanie", "Anuluj"); else ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Rejestracja", sprintf("Witamy na serwerze %s.\n\nAby rozpocząć rozgrywkę wpisz poniżej hasło, którego chcesz używać\ndo logowania się na serwer.", PlayerName(playerid)), "Rejestruj", "Anuluj"); cache_delete(result); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_LOGIN) { if(!response) return Kick(playerid); new Cache:result, password[33]; result = mysql_query(m_sql, sprintf("SELECT `player_password` FROM `players` WHERE `player_name` = '%s'", PlayerName(playerid))); cache_get(0, "player_password", password); cache_delete(result); if(!strcmp(MD5_Hash(inputtext), password)) { OnPlayerLogin(playerid); } else { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Logowanie", sprintf("Witamy na serwerze %s.\n\nPodane przez Ciebie hasło jest błędne.\nJeśli utraciłeś dostęp do swojego konta skontaktuj się z administatorem.", PlayerName(playerid)), "Logowanie", "Anuluj"); } } else if(dialogid == DIALOG_REGISTER) { if(!response) return Kick(playerid); if(strlen(inputtext) <= 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Rejestracja", sprintf("Witamy na serwerze %s.\n\nPodane przez Ciebie hasło jest za krótkie.\nSpróbuj jeszcze raz używając dłuższego ciągu znaków.", PlayerName(playerid)), "Rejestruj", "Anuluj"); mysql_query(m_sql, sprintf("INSERT INTO `players` VALUES (NULL, '%s', '%s', '%d')", PlayerName(playerid), MD5_Hash(inputtext), random(250))); OnPlayerLogin(playerid); } return 1; }