Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #include <sscanf2>
- #include <pawn.CMD>
- #include <errors>
- //colors
- #define COLOR_RED 0xAA3333AA
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_GREY 0xD8D8D8FF
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_GREEN 0x9EC73DAA
- #define COLOR_PINK 0xC2A2DAFF
- #define COLOR_FLESH 0xF5DEB3AA
- //dialog styles
- #define MSGBOX DIALOG_STYLE_MSGBOX
- #define INPUT DIALOG_STYLE_INPUT
- #define LIST DIALOG_STYLE_LIST
- #define PASSWORD DIALOG_STYLE_PASSWORD
- //mysql connect
- #define MYSQL_HOST "localhost"
- #define MYSQL_USER "root"
- #define MYSQL_DATABASE "rpserver"
- #define MYSQL_PASSWORD "123456"
- main();
- //globals
- new MySQL:mysql_connect_ID;
- enum e_DIALOG_IDs
- {
- dLogin
- };
- enum e_PLAYER_INFO {
- pID,
- pName[MAX_PLAYER_NAME],
- pPassword[31]
- };
- new pInfo[MAX_PLAYERS][e_PLAYER_INFO];
- enum CHAR_INFO {
- cID,
- cName,
- cCash,
- cMoney,
- cPosX,
- cPosY,
- cPosZ
- };
- new Char[MAX_PLAYERS][CHAR_INFO];
- public OnPlayerConnect(playerid)
- {
- TogglePlayerSpectating(playerid, true);
- SetPlayerColor(playerid,0xFFFFFF00);
- GetPlayerName(playerid, pInfo[playerid][pName], MAX_PLAYER_NAME);
- new query_string[49+MAX_PLAYER_NAME];
- format(query_string, sizeof(query_string), "SELECT * FROM `Accounts` WHERE `Nickname` = '%s'", pInfo[playerid][pName]);
- mysql_tquery(mysql_connect_ID, query_string, "FindPlayerInTable","i", playerid);
- ShowLoginDialog(playerid);
- return 1;
- }
- public OnGameModeInit()
- {
- mysql_connect_ID = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE);
- ShowConnectStatus();
- mysql_tquery(mysql_connect_ID, !"SET CHARACTER SET 'utf8'", "", "");
- mysql_tquery(mysql_connect_ID, !"SET NAMES 'utf8'", "", "");
- mysql_tquery(mysql_connect_ID, !"SET character_set_client = 'cp1251'", "", "");
- mysql_tquery(mysql_connect_ID, !"SET character_set_connection = 'cp1251'", "", "");
- mysql_tquery(mysql_connect_ID, !"SET character_set_results = 'cp1251'", "", "");
- mysql_tquery(mysql_connect_ID, !"SET SESSION collation_connection = 'utf8_general_ci'", "", "");
- SetGameModeText("RSprjct 0.0.1");
- DisableInteriorEnterExits();
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- RemovePlayerInfo(playerid);
- return 1;
- }
- forward ShowLoginDialog(playerid);
- public ShowLoginDialog(playerid)
- {
- new rows;
- cache_get_row_count(rows);
- if(!rows) {
- SendClientMessage(playerid, COLOR_FLESH, "Âàø àêêàóíò íå çàðåãèñòðèðîâàí íà ñåðåâåðå.");
- SendClientMessage(playerid, COLOR_FLESH, "Ïðîéòè ðåãèñòðàöèþ ìîæíî íà ñàéòå rsp.com");
- SetTimerEx("KickPlayer", 500, false, "i", playerid);
- }
- else {
- ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Ýòîò àêêàóíò çàðåãåñòðèðîâàí.\nÂâåäèòå ïàðîëü, ÷òîáû ïðîäîëæèòü:", "Âîéòè", "Ïîêèíóòü ñåðâåð");
- cache_get_value_name(0, "Password", pInfo[playerid][pPassword], 31);
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid) {
- case dLogin: {
- if(!response) return Kick(playerid);
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû íå ìîæåòå ïðîäîëæèòü àâòîðèçàöèþ íå ââåäÿ ïàðîëü!\nÂâåäèòå ïàðîëü îò àêêàóíòà äëÿ âõîäà íà ñåðâåð:", "Âîéòè", "Ïîêèíóòü ñåðâåð");
- if(!strcmp(pInfo[playerid][pPassword], inputtext)) {
- new query_string[49+MAX_PLAYER_NAME];
- format(query_string, sizeof(query_string), "SELECT * FROM `Accounts` WHERE `Nickname` = '%s'", pInfo[playerid][pName]);
- mysql_tquery(mysql_connect_ID, query_string, "UploadPlayerAccount","i", playerid);
- }
- else
- {
- switch(GetPVarInt(playerid, "WrongPassword"))
- {
- case 0: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû ââåëè íåâåðíûé ïàðîëü! Ó Âàñ îñòàëîñü 2 ïîïûòêè.\nÂâåäèòå ïàðîëü îò àêêàóíòà äëÿ âõîäà íà ñåðâåð:", "Âîéòè", "Ïîêèíóòü ñåðâåð");
- case 1: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû ââåëè íåâåðíûé ïàðîëü! Ó Âàñ îñòàëîñü 1 ïîïûòêè.\nÂâåäèòå ïàðîëü îò àêêàóíòà äëÿ âõîäà íà ñåðâåð:", "Âîéòè", "Ïîêèíóòü ñåðâåð");
- case 2: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû ââåëè íåâåðíûé ïàðîëü! Ó âàñ îñòàëîñü 0 ïîïûòîê.\nÂâåäèòå ïàðîëü îò àêêàóíòà äëÿ âõîäà íà ñåðâåð:", "Âîéòè", "Ïîêèíóòü ñåðâåð");
- default: {
- return Kick(playerid);
- }
- }
- SetPVarInt(playerid, "WrongPassword", GetPVarInt(playerid, "WrongPassword")+1);
- }
- return 1;
- }
- }
- return 1;
- }
- forward KickPlayer(playerid);
- public KickPlayer(playerid) {
- return Kick(playerid);
- }
- forward UploadPlayerAccount(playerid);
- public UploadPlayerAccount(playerid)
- {
- cache_get_value_name_int(0, "id", pInfo[playerid][pID]);
- SendClientMessage(playerid, 0xFFFFFF00, "Âû óñïåøíî àâòîðèçèðîâàëèñü!");
- SpawnPlayer(playerid);
- return 1;
- }
- stock RemovePlayerInfo(playerid)
- {
- pInfo[playerid][pID] = 0;
- pInfo[playerid][pName][0] = EOS;
- pInfo[playerid][pPassword][0] = EOS;
- return 1;
- }
Add Comment
Please, Sign In to add comment