Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- enum pInfo
- {
- pName[MAX_PLAYER_NAME + 1],
- pPassword[32],
- pKills,
- pDeaths,
- bool:pLogged
- };
- new
- PInfo[MAX_PLAYERS][pInfo],
- gString[128],
- Connection,
- gRows,
- gFields;
- #define Name(%0) PInfo[%0][pName]
- #define DB_IP "localhost"
- #define DB_USER "root"
- #define DB_DATABASE "Mode"
- #define DB_PASSWORD ""
- #define DIALOG_REGISTER 0
- #define DIALOG_REGISTER_DETAILS 1
- #define DIALOG_LOGIN 2
- #define MINIMUM_PASSWORD_LENGTH 6
- #define MAXIMUM_PASSWORD_LENGTH 32
- #define Kick2_Kick(%0) SetTimerEx("KickP2", 200, false, "d", %0)
- #if defined _ALS_Kick
- #define fwrite fwrite_utf8
- #undef Kick
- #else
- #define _ALS_Kick
- #endif
- forward public KickP2(playerid);public KickP2(playerid) return Kick(playerid);
- #define Kick Kick2_Kick
- #define strcpy(%0,%1,%2) strcat((%0[0] = EOS, %0), %1, %2)
- forward LoadPlayerData(playerid);
- #define FILTERSCRIPT
- public OnFilterScriptInit()
- {
- Connection = mysql_connect(DB_IP, DB_USER, DB_DATABASE, DB_PASSWORD);
- if(mysql_errno(Connection))
- {
- printf("[MySQL ERROR] failed to connect, please check your database login details.");
- }
- else
- {
- printf("[MySQL] Connected successfully to database.");
- }
- return 1;
- }
- public OnFilterScriptExit()
- {
- mysql_close(Connection);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- GetPlayerName(playerid, Name(playerid), MAX_PLAYER_NAME + 1);
- PInfo[playerid][pLogged] = false;
- mysql_format(Connection, gString, sizeof gString, "SELECT * FROM `Users` WHERE `Username`='%s'", Name(playerid));
- mysql_query(Connection, gString);
- cache_get_data(gRows, gFields, Connection);
- if(!gRows)
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "הרשמה", ",ברוך הבא לשרת\n.אנא בחר סיסמה שבה תרצה להשתמש בעתיד", "אישור", "יציאה");
- }
- else
- {
- mysql_format(Connection, gString, sizeof gString, "SELECT * FROM `Users` WHERE `Username`='%s'", Name(playerid));
- mysql_tquery(Connection, gString, "LoadPlayerData", "d", playerid);
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "התחברות", ",ברוך שובך לשרת\n.אנא התחבר לשרת על מנת לשחק", "אישור", "יציאה");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- mysql_format(Connection, gString, sizeof gString, "UPDATE `Users` SET `Password`='%s',`Kills`='%d',`Deaths`='%d' WHERE `Username`='%s'", PInfo[playerid][pPassword], PInfo[playerid][pKills], PInfo[playerid][pDeaths], Name(playerid));
- mysql_query(Connection, gString);
- PInfo[playerid][pName][0] = 0;
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- if(!PInfo[playerid][pLogged])
- {
- return SendClientMessage(playerid, 0xFF0000AA, ".אתה חייב להתחבר / להירשם על מנת להשתגר"), 0;
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(killerid != INVALID_PLAYER_ID)
- {
- SendDeathMessage(killerid, playerid, reason);
- PInfo[playerid][pDeaths]++;
- PInfo[killerid][pKills]++;
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_REGISTER)
- {
- if(!response)
- {
- return SendClientMessage(playerid, 0xFF0000AA, ".בחרת לצאת מהשרת, ולכן קיבלת קיק"), Kick(playerid);
- }
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "הרשמה", "!אתה חייב להקיש סיסמה", "אישור", "יציאה");
- if(strlen(inputtext) < MINIMUM_PASSWORD_LENGTH || strlen(inputtext) > MAXIMUM_PASSWORD_LENGTH) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "הרשמה", ".אורך הסיסמה חייב להיות 6-32 תווים", "אישור", "יציאה");
- strcpy(PInfo[playerid][pPassword], inputtext, 32);
- PInfo[playerid][pLogged] = true;
- mysql_format(Connection, gString, sizeof gString, "INSERT INTO `Users` (`Username`,`Password`,`Kills`,`Deaths`) VALUES ('%s','%s','%d','%d')", Name(playerid), PInfo[playerid][pPassword], PInfo[playerid][pKills], PInfo[playerid][pDeaths], Name(playerid));
- mysql_query(Connection, gString);
- format(gString, sizeof gString, "!נרשמת בהצלחה לשרת\n%s :סיסמתך היא", PInfo[playerid][pPassword]);
- ShowPlayerDialog(playerid, DIALOG_REGISTER_DETAILS, DIALOG_STYLE_MSGBOX, "פרטי ההרשמה", gString, "אישור", "");
- }
- if(dialogid == DIALOG_LOGIN)
- {
- if(!response)
- {
- return SendClientMessage(playerid, 0xFF0000AA, ".בחרת לצאת מהשרת, ולכן קיבלת קיק"), Kick(playerid);
- }
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "התחברות", "!אתה חייב להקיש סיסמה", "אישור", "יציאה");
- if(strcmp(PInfo[playerid][pPassword], inputtext, true) != 0)
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "התחברות", ".הסיסמה שהקשת אינה נכונה, אנא נסה מחדש", "אישור", "יציאה");
- }
- else
- {
- PInfo[playerid][pLogged] = true;
- SendClientMessage(playerid, 0xFF0000AA, "!הצלחת להתחבר לשרת בהצלחה");
- }
- }
- return 1;
- }
- public LoadPlayerData(playerid)
- {
- cache_get_data(gRows, gFields, Connection);
- for(new i, j = gRows; i < j; i++)
- {
- cache_get_field_content(i, "Password", PInfo[playerid][pPassword], Connection, 32);
- PInfo[playerid][pKills] = cache_get_field_content_int(i, "Kills", Connection);
- PInfo[playerid][pDeaths] = cache_get_field_content_int(i, "Deaths", Connection);
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement