Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #include <a_mysql>
- new SQL = -1, gQuery[256], gString[256];
- #define function%0(%1) forward %0(%1); public %0(%1)
- #define SCM SendClientMessage
- // Culori:
- #define COLOR_RED 0xB22222FF
- #define COLOR_ATTENTION 0xcdcdc1FF
- enum {
- // La Inregistrare
- DIALOG_REGISTER,
- DIALOG_EMAIL,
- DIALOG_GENDER,
- DIALOG_INFO,
- // La Logare
- DIALOG_LOGIN,
- }
- enum pInfo {
- pSQLID,
- pName[MAX_PLAYER_NAME],
- pPassword[32],
- pEmail[32],
- pGender,
- pIP[16],
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- new
- IncercariParola[MAX_PLAYERS];
- main() {
- print(" Gamemode-ul Mentosan in curs de procesare .. ");
- }
- public OnGameModeInit() {
- SQL = mysql_connect("localhost", "root", "mentos_db", "");
- SetGameModeText("MENTOSAN V.0.01");
- AddPlayerClass(0, 2007.1852, 1165.4506, 10.8136, 269.1425, 0, 0, 0, 0, 0, 0);
- return 1;
- }
- public OnGameModeExit() {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid) {
- TogglePlayerSpectating(playerid, true);
- return 1;
- }
- public OnPlayerConnect(playerid) {
- IncercariParola[playerid] = 0;
- PlayAudioStreamForPlayer(playerid, "http://k003.kiwi6.com/hotlink/oo6ql0uclv/Mentoan-LoginRegister.mp3");
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' LIMIT 1", GetName(playerid));
- mysql_tquery(SQL, gQuery, "verificareCont", "i", playerid);
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- switch(dialogid) {
- case DIALOG_REGISTER: {
- if(!response)
- return Kick(playerid);
- if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Inregistrare Cont", " Introdu in spatiul de mai jos o parola pentru a te putea inregistra: (min 6caractere / max 32caractere)", "Done", "Cancel");
- else {
- new playerIP[16];
- GetPlayerIp(playerid, playerIP, sizeof(playerIP));
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "INSERT INTO `users` (`Name`, `Password`, `IP`) VALUES ('%s', '%s', '%s')", GetName(playerid), inputtext, playerIP);
- mysql_tquery(SQL, gQuery, "AdaugareCont", "i", playerid);
- format(PlayerInfo[playerid][pPassword], 32, inputtext);
- ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", " Introdu E-Mail.ul contului tau: ", "Selecteaza", "Cancel");
- }
- }
- case DIALOG_EMAIL: {
- if(!response)
- return Kick(playerid);
- if(strlen(inputtext) < 4 || strlen(inputtext) > 32)
- ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", " Introdu E-Mail.ul contului tau: (min 4caractere / max 32caractere) ", "Selecteaza", "Cancel");
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Email`='%s' WHERE `ID`='%d'", inputtext, PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, gQuery, "", "");
- format(PlayerInfo[playerid][pEmail], 32, inputtext);
- ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Introduceti Sex-ul: ", " Introduceti Sex-Ul: ", "Masculin", "Feminin");
- }
- case DIALOG_GENDER: {
- switch(response) {
- case 0: {
- PlayerInfo[playerid][pGender] = 0; // Masculin
- }
- case 1: {
- PlayerInfo[playerid][pGender] = 1; // Feminin
- }
- }
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Gender`='%d' WHERE `ID`='%d'", PlayerInfo[playerid][pGender], PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, gQuery, "", "");
- SpawnPlayer(playerid);
- TogglePlayerSpectating(playerid, false);
- StopAudioStreamForPlayer(playerid);
- gString[0] = EOS;
- //backup
- format(gString, sizeof(gString), " Detalii despre contul %s[%d]: \n", GetName(playerid), playerid);
- format(gString, sizeof(gString), "%s- Parola dvs contine %d caractere. \n", gString, strlen(PlayerInfo[playerid][pPassword]));
- format(gString, sizeof(gString), "%s- Email-ul dvs este: %s\n", gString, PlayerInfo[playerid][pEmail]);
- format(gString, sizeof(gString), "%s- Sex-ul dvs este 1 - Masculin, 0 - Feminin (DVS: %d)", gString, PlayerInfo[playerid][pGender]);
- ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, " Informatii Cont: ", gString, ".", ".");
- }
- case DIALOG_LOGIN: {
- if(!response)
- Kick(playerid);
- mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' AND `Password`='%s' LIMIT 1", GetName(playerid), inputtext);
- mysql_tquery(SQL, gQuery, "onLogin", "i", playerid);
- SpawnPlayer(playerid);
- TogglePlayerSpectating(playerid, false);
- StopAudioStreamForPlayer(playerid);
- }
- }
- return 1;
- }
- function onLogin(playerid) {
- switch(cache_num_rows()) {
- case 0: { //cand parola nu se potriveste cu cea din DATABASE
- IncercariParola[playerid]++;
- gString[0] = EOS;
- format(gString, sizeof(gString), "(!) Parola incorecta (%d/3 incercari ramase) ", IncercariParola[playerid]);
- SCM(playerid, COLOR_RED, gString);
- if(IncercariParola[playerid] == 3) Kick(playerid);
- else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logare Cont", " Introdu parola pentru a te putea loga: ", "Done", "Cancel");
- }
- case 1: {
- new rezultat[64];
- PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
- PlayerInfo[playerid][pGender] = cache_get_field_content_int(0, "GENDER");
- cache_get_field_content(0, "Nume", rezultat); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, rezultat);
- cache_get_field_content(0, "Parola", rezultat); format(PlayerInfo[playerid][pPassword], 32, rezultat);
- cache_get_field_content(0, "Email", rezultat); format(PlayerInfo[playerid][pEmail], 32, rezultat);
- printf("(LOGARE): %s (ID: %d) tocmai s-a logat! [Gender: %d, Email: %d, Password: %s", GetName(playerid), PlayerInfo[playerid][pSQLID], PlayerInfo[playerid][pGender], PlayerInfo[playerid][pEmail], PlayerInfo[playerid][pPassword]);
- }
- }
- return 1;
- }
- function AdaugareCont(playerid) {
- PlayerInfo[playerid][pSQLID] = cache_insert_id();
- printf("(!) %s tocmai s-a inregistrat in baza de date cu SQL-ID #%d !", GetName(playerid), PlayerInfo[playerid][pSQLID]);
- return 1;
- }
- function verificareCont(playerid) {
- new rows, fields;
- cache_get_data(rows, fields);
- if(rows)
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logare:", " Introdu parola pentru a te putea conecta! ", "Conectare", "Iesire");
- else {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Inregistrare Cont", " Introdu parola contului pentru a te putea inregistra! :", "Selecteaza", "Cancel");
- }
- return 1;
- }
- stock GetName(playerid) {
- new playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- return playerName;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement