Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- //*-- MySQL Register System
- //*-- Made by ZiGGi
- //
- #include <a_samp>
- #include <a_sampmysql>
- #define MAX_STRING 128
- #define MAX_QUERY 512
- #define MAX_RESULT 1024
- #define player_RegLog_DialogID 0
- #define MySQL_HOST "127.0.0.1"
- #define MySQL_USER "root"
- #define MySQL_DATABASE "samp-players"
- #define MySQL_PASS ""
- #define PlayerTable "players"
- #define COLOR_WHITE 0xFFFFFFAA
- new result[MAX_RESULT],query[MAX_QUERY];
- enum pInfo
- {
- pPass[MAX_STRING],
- bool:pIsLogin,
- pKills,
- pDeaths,
- pCash,
- };
- new PlayerInfo[MAX_PLAYERS][pInfo];
- public OnFilterScriptInit()
- {
- samp_mysql_connect(MySQL_HOST, MySQL_USER, MySQL_PASS);
- samp_mysql_select_db(MySQL_DATABASE);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- PlayerInfo[playerid][pIsLogin] = false;
- ShowRegLogDialog(playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- MySQL_Player_Update(playerid);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- PlayerInfo[killerid][pKills]++;
- PlayerInfo[playerid][pDeaths]++;
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new string[MAX_STRING];
- if(!strcmp(cmdtext,"/stats",true))
- {
- format(string,sizeof(string),"Убийств: %d, Смертей: %d, Денег: %d",PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pCash]);
- SendClientMessage(playerid,COLOR_WHITE,string);
- return 1;
- }
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == player_RegLog_DialogID)
- {
- if(response)
- {
- if(!MySQL_Player_Exist(playerid) || !strlen(inputtext))
- {
- SendClientMessage(playerid,COLOR_WHITE,"Этот аккаунт не зарегистрирован или вы не ввели пароль.");
- return ShowRegLogDialog(playerid);
- }
- format(query,sizeof(query), "SELECT * FROM `"PlayerTable"` WHERE `Name` = '%s' AND `Password` = '%s'", oGetPlayerName(playerid),inputtext);
- samp_mysql_query(query);
- samp_mysql_store_result();
- if(samp_mysql_fetch_row(result))
- {
- new tmp[MAX_STRING];
- format(query,sizeof(query),"SELECT * FROM `"PlayerTable"` WHERE `Name` = '%s'",oGetPlayerName(playerid));
- samp_mysql_query(query);
- samp_mysql_store_result();
- if(!samp_mysql_fetch_row(result)) return 0;
- samp_mysql_get_field("Money", tmp);
- PlayerInfo[playerid][pCash] = strval(tmp);
- oSetPlayerMoney(playerid,PlayerInfo[playerid][pCash]);
- samp_mysql_get_field("Kills", tmp);
- PlayerInfo[playerid][pKills] = strval(tmp);
- samp_mysql_get_field("Deaths", tmp);
- PlayerInfo[playerid][pDeaths] = strval(tmp);
- PlayerInfo[playerid][pIsLogin] = true;
- SendClientMessage(playerid,COLOR_WHITE,"Вы успешно вошли.");
- return 1;
- }
- else
- {
- SendClientMessage(playerid,COLOR_WHITE,"Неправильный пароль.");
- return ShowRegLogDialog(playerid);
- }
- }
- else
- {
- if(MySQL_Player_Exist(playerid) || !strlen(inputtext))
- {
- SendClientMessage(playerid,COLOR_WHITE,"Этот аккаунт уже зарегистрирован или вы не ввели пароль.");
- return ShowRegLogDialog(playerid);
- }
- format(query,sizeof(query), "INSERT INTO `"PlayerTable"` (Name, Password) VALUES ('%s', '%s')", oGetPlayerName(playerid), inputtext);
- samp_mysql_query(query);
- SendClientMessage(playerid,COLOR_WHITE,"Регистрация прошла успешно!");
- return ShowRegLogDialog(playerid);
- }
- }
- return 1;
- }
- stock ShowRegLogDialog(playerid)
- {
- return ShowPlayerDialog(playerid,player_RegLog_DialogID,DIALOG_STYLE_INPUT,"Вход в аккаунт","Введите пароль чтобы войти или зарегистрировать аккаунт.","Войти","Зарегать");
- }
- stock MySQL_Player_Exist(playerid)
- {
- format(query,sizeof(query), "SELECT * FROM `"PlayerTable"` WHERE `Name` = '%s'", oGetPlayerName(playerid));
- samp_mysql_query(query);
- samp_mysql_store_result();
- if(!samp_mysql_fetch_row(result)) return 0;
- return 1;
- }
- stock MySQL_Player_Update(playerid)
- {
- if(PlayerInfo[playerid][pIsLogin] == false) return 1;
- new src[MAX_STRING];
- format(query,sizeof(query),"UPDATE `"PlayerTable"` SET ");
- format(src,sizeof(src),"`Money`=%d,",PlayerInfo[playerid][pCash]);
- strcat(query,src,sizeof(query));
- format(src,sizeof(src),"`Kills`=%d,",PlayerInfo[playerid][pKills]);
- strcat(query,src,sizeof(query));
- format(src,sizeof(src),"`Deaths`=%d",PlayerInfo[playerid][pDeaths]);
- strcat(query,src,sizeof(query));
- format(src,sizeof(src)," WHERE `Name`='%s'",oGetPlayerName(playerid));
- strcat(query,src,sizeof(query));
- samp_mysql_query(query);
- return 1;
- }
- stock oGetPlayerName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- return name;
- }
- stock oSetPlayerMoney(playerid, money)
- {
- PlayerInfo[playerid][pCash] = money;
- ResetPlayerMoney(playerid);
- return GivePlayerMoney(playerid,money);
- }
Advertisement
Add Comment
Please, Sign In to add comment