Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #include <YSI\y_timers>
- #include <YSI\y_master>
- #include <YSI\y_commands>
- #include <YSI\y_va>
- #include <YSI\y_inline>
- #include <YSI\y_iterate>
- #include <easyDialog>
- main(){}
- enum pInfo
- {
- pSQLID,
- pName[24],
- pPassword[128],
- pEmail[128],
- pLoginTries
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- new SQL, gQuery[256], gString[512];
- #define function%0(%1) forward %0(%1); public %0(%1)
- #define SendFormatMessage va_SendClientMessage
- public OnGameModeInit()
- {
- mysql_log(LOG_ERROR | LOG_WARNING, LOG_TYPE_TEXT);
- SQL = mysql_connect("localhost", "root", "good", "");
- if(mysql_errno() != 0)
- print("Baza de date nu a putut fi conectata");
- else
- print("Baza de date a fost conectata cu succes.");
- SetGameModeText("Diamond");
- AddPlayerClass(292,1653.9551,-1655.7367,22.5156,177.0045,0,0,0,0,0,0);
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- TogglePlayerSpectating(playerid, true);
- return 1;
- }
- stock GetPlayerNameEx(playerid)
- {
- new name[24];
- GetPlayerName(playerid, name, 24);
- return name;
- }
- stock GetTimeDate()
- {
- new string[64],hour, minute, second, year, month, day;
- gettime(hour, minute, second);
- getdate(year, month, day);
- format(string, sizeof string, "%02d:%02d:%02d - %02d/%02d/%d", hour, minute, second, day, month, year);
- return string;
- }
- stock ClearChat(playerid, lines = 25)
- {
- for(new i = 0; i < lines; i++)
- {
- SendClientMessage(playerid, -1, "");
- }
- return true;
- }
- stock mysqlQuery(const text[], va_args<>)
- {
- new string[256];
- va_format(string, sizeof string, text, va_start<1>);
- mysql_pquery(SQL, gQuery, "","");
- return true;
- }
- function CheckPlayerAccount(playerid)
- {
- gString[0] = (EOS);
- switch(cache_num_rows())
- {
- case 0:
- {
- format(gString, sizeof gString, "Bine ai venit, %s.\nScrie o parola pentru a te inregistra pe server", GetPlayerNameEx(playerid));
- Dialog_Show(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", gString, "Register", "Quit");
- }
- case 1:
- {
- new lastLogin[64];
- cache_get_field_content(0, "LastLogin", lastLogin);
- format(gString, sizeof gString, "Bine ai revenit, %s.\nScrie o parola pentru a te loga pe server!\n\nLastLogin: %s", GetPlayerNameEx(playerid), lastLogin);
- Dialog_Show(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", gString, "Login", "Quit");
- }
- }
- return true;
- }
- function OnPlayerLogin(playerid)
- {
- switch(cache_num_rows())
- {
- case 0:
- {
- PlayerInfo[playerid][pLoginTries]++;
- if(PlayerInfo[playerid][pLoginTries] == 3)
- {
- Kick(playerid);
- }
- Dialog_Show(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrie mai jos parola contului tau:", "Login", "Quit");
- }
- case 1:
- {
- cache_get_field_content(0, "Name", PlayerInfo[playerid][pName]);
- cache_get_field_content(0, "Password", PlayerInfo[playerid][pPassword]);
- cache_get_field_content(0, "Email", PlayerInfo[playerid][pEmail]);
- PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
- ClearChat(playerid);
- SendFormatMessage(playerid, 0x1c5fa3, "Bine ai venit pe server, %s.", GetPlayerNameEx(playerid));
- TogglePlayerSpectating(playerid, false);
- SpawnPlayer(playerid);
- }
- }
- return true;
- }
- Dialog:DIALOG_STYLE_REGISTER(playerid, response, listitem, inputtext[])
- {
- if(!response)
- return Kick(playerid);
- if(strlen(inputtext) < 8 || strlen(inputtext) > 64)
- return Dialog_Show(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register","Scrie o parola pentru a te inregistra pe server:\n{AFAFAF}Numarul de caractere trebuie sa fie format din 8 - 64 caractere.", "Register", "Quit");
- format(PlayerInfo[playerid][pName], 24, GetPlayerNameEx(playerid));
- format(PlayerInfo[playerid][pPassword], 128, inputtext);
- gQuery[0] = (EOS);
- mysql_format(SQL, gQuery, sizeof gQuery, "INSTER INTO `server_accounts` (Name, Password, RegisterDate, LastLogin) VALUES ('%e', '%e', '%e' '%e')", GetPlayerNameEx(playerid), inputtext, GetTimeDate(), GetTimeDate());
- inline CheckSQLID()
- {
- PlayerInfo[playerid][pSQLID] = cache_insert_id();
- printf("New Account: %s(%d).", GetPlayerNameEx(playerid), playerid);
- return true;
- }
- mysql_pquery(SQL, gQuery, using inline CheckSQLID, "");
- Dialog_Show(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Tasteaza un e-mail valid in casuta de mai jos:", "Ok", "");
- return true;
- }
- Dialog:DIALOG_EMAIL(playerid, response, listitem, inputtext[])
- {
- if(!response)
- return Dialog_Show(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Tasteaza un e-mail valid in casuta de mai jos:", "Ok", "");
- if(strlen(inputtext) < 8 || strlen(inputtext) > 128 || !IsValidEmailAdress(inputtext))
- return Dialog_Show(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Tasteaza un e-mail valid in casuta de mai jos:\n{AFAFAF}Adresa de e-mail nu este valida.", "Ok", "");
- format(PlayerInfo[playerid][pEmail], 128, inputtext);
- mysqlQuery("UPDATE `server_accounts` SET `Email` = '%e' WHERE `ID` = '%d'", PlayerInfo[playerid][pEmail], PlayerInfo[playerid][pSQLID]);
- SendFormatMessage(playerid, 0x1c5fa3, "(Notice) {FFFFFF}Adresa de e-mail este: %s", PlayerInfo[playerid][pEmail]);
- TogglePlayerSpectating(playerid, false);
- SpawnPlayer(playerid);
- return true;
- }
- Dialog:DIALOG_LOGIN(playerid, response, listitem, inputtext[])
- {
- if(!response)
- return Kick(playerid);
- gQuery[0] = (EOS);
- format(gQuery, sizeof gQuery, "SELECT * FROM `server_accounts` WHERE `Name` = '%e' AND `Password` = '%e' LIMIT 1", GetPlayerNameEx(playerid), inputtext);
- mysql_tquery(SQL, gQuery, "OnPlayerLogin", "d" playerid);
- return true;
- }
- IsValidEmailAdress(const email[])
- {
- new at_pos = strfind(email, "@", true);
- if(at_pos >= 1)
- {
- new offset = (at_pos + 1), dot_pos = strfind(email, ".", true, offset);
- if(dot_pos > offset)
- {
- return 1;
- }
- }
- return 0;
- }
- public OnPlayerConnect(playerid)
- {
- PlayerInfo[playerid][pLoginTries] = 0;
- gQuery[0] = (EOS);
- mysql_format(SQL, gQuery, sizeof gQuery, "SELECT * FROM `server_accounts` WHERE `Name` = '%e' LIMIT 1", GetPlayerNameEx(playerid));
- defer Camera(playerid);
- return 1;
- }
- timer Camera[500](playerid)
- {
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement