Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Автор - Печенега
- Просьба не крысить
- Специально для павно.ру
- */
- #include <a_samp> // Оффициальный инклуд сампа!
- #include <a_mysql> // Инклуд MySQL R8
- // Тут меняете на своё
- #define TABLE_ACCOUNTS "acc" // Таблица MySQL
- #define MySQL_Host "localhost" // Адрес MySQL
- #define MySQL_User "root" // Имя пользователя MySQL
- #define MySQL_DataBase "database" // Имя таблицы MySQL
- #define MySQL_Password "" // Пароль от пользователя
- // Диалоги
- #define D_NULL 0
- #define D_LOGIN 1
- #define D_REG 2
- // Форварды
- forward LoadAccountData(playerid);
- forward CheckRegistration(playerid);
- // Энум (pInfo)
- enum PlayerData
- {
- pName[MAX_PLAYER_NAME],
- pPass[64],
- pModel,
- pCash,
- pBank
- };
- // New's
- new PlayerInfo[MAX_PLAYERS][PlayerData];
- new Query[300];
- new string[300];
- new Handle;
- main()
- {
- print("\n Регистрация от Печени");
- print("\n Сделано специально для www.Pawno.Ru");
- print("\n Скайп: Kirill_Vindo\n");
- }
- public OnGameModeInit()
- {
- mysql_debug(1);
- SetGameModeText("Registration by Печеня");
- Handle = mysql_connect(MySQL_Host, MySQL_User, MySQL_DataBase, MySQL_Password);\
- mysql_set_charset("cp1251_general_ci");
- return 1;
- }
- public OnGameModeExit()
- {
- for(new i; i < GetMaxPlayers(); i++) SavePlayer(i);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);
- SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pModel],1285.0634,-1329.5110,13.5472, 108.1,0,0,0,0,0,0);
- format(Query, sizeof(Query), "SELECT * FROM `"TABLE_ACCOUNTS"` WHERE `Name` = '%e'", PlayerInfo[playerid][pName]);
- mysql_function_query(Handle, Query, true, "CheckRegistration", "u", playerid);
- return 1;
- }
- public OnPlayerConnect(playerid) return true;
- public OnPlayerDisconnect(playerid, reason)
- {
- SavePlayer(playerid);
- return true;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case D_LOGIN:
- {
- if(!response) return Kick(playerid);
- if(!strlen(inputtext))
- {
- format(string, 150, "Мы нашли вас в нашей базе данных,\n * Ваш логин: %s\nВведите ваш пароль",PlayerInfo[playerid][pName]);
- ShowPlayerDialog(playerid, D_LOGIN, 3, "{ffffff}Авторизация", string, "Принять","Отмена");
- }
- cache_get_field_content(0, "Password", PlayerInfo[playerid][pPass], Handle, 124);
- if(!strcmp(inputtext, PlayerInfo[playerid][pPass], true)) LoadAccount(playerid);
- else return Kick(playerid);
- }
- case D_REG:
- {
- if(!response) return Kick(playerid);
- if(!strlen(inputtext))
- {
- format(string, sizeof(string), "Мы не нашли вас в нашей базе данных,\n * Ваш логин: %s\nВведите ваш новый пароль", PlayerInfo[playerid][pName]);
- ShowPlayerDialog(playerid, D_LOGIN, 3, "{ffffff}Регистация", string, "Принять","Отмена");
- }
- strmid(PlayerInfo[playerid][pPass], inputtext, 0, strlen(inputtext), 32);
- CreateAccount(playerid, PlayerInfo[playerid][pPass]);
- SendClientMessage(playerid, -1, "Вы удачно зарегистрировались!");
- }
- }
- return 1;
- }
- public LoadAccountData(playerid)
- {
- new rows, fields;
- cache_get_data(rows, fields);
- if(rows)
- {
- PlayerInfo[playerid][pModel] = cache_get_field_int(0, "Skin", Handle);
- PlayerInfo[playerid][pCash] = cache_get_field_int(0, "Cash", Handle);
- PlayerInfo[playerid][pBank] = cache_get_field_int(0, "Bank", Handle);
- GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
- }
- return true;
- }
- stock SavePlayer(playerid)
- {
- format(Query, sizeof(Query), "UPDATE "TABLE_ACCOUNTS" SET `Skin` = '%d' `Cash` = '%d' `Bank` = '%d' WHERE `Name` = '%e'",
- PlayerInfo[playerid][pModel], PlayerInfo[playerid][pCash], PlayerInfo[playerid][pBank], PlayerInfo[playerid][pName]);
- mysql_function_query(Handle, Query, false, "", "");
- return true;
- }
- public CheckRegistration(playerid)
- {
- new rows, fields;
- cache_get_data(rows, fields);
- if(rows)
- {
- format(string, sizeof(string), "Мы нашли вас в нашей базе данных,\n * Ваш логин: %s\nВведите ваш пароль",PlayerInfo[playerid][pName]);
- ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "Авторизация", string, "Выбрать", "Отмена");
- SendClientMessage(playerid, 0xffffff00, "Введите ваш пароль который вы вводили в регистрации!");
- }
- else
- {
- format(string, sizeof(string), "Мы не нашли вас в нашей базе данных,\n * Ваш логин: %s\nВведите ваш новый пароль",PlayerInfo[playerid][pName]);
- ShowPlayerDialog(playerid, D_REG, DIALOG_STYLE_INPUT, "Авторизация", string, "Выбрать", "Отмена");
- SendClientMessage(playerid, 0xffffff00, "Введите пароль который вы хотите дать своему персонажу!");
- }
- return true;
- }
- stock LoadAccount(playerid)
- {
- format(Query,sizeof(Query), "SELECT * FROM "TABLE_ACCOUNTS" WHERE `name` = '%e' LIMIT 1",PlayerInfo[playerid][pName]);
- return mysql_function_query(Handle, Query, true, "LoadAccountData", "i", playerid);
- }
- stock CreateAccount(playerid, pass[])
- {
- format(Query, sizeof(Query), "INSERT INTO "TABLE_ACCOUNTS" (`Name`, `Password`, `Skin`, `Cash`, `Bank`) VALUES \
- ('%s', '%s', '%d', '%d', '%d')", PlayerInfo[playerid][pName], pass, 23, 0, 0);
- mysql_function_query(Handle, Query, false, "", "");
- SpawnPlayer(playerid);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement