Сергей|DEMON91052
Компетентный
Всем привет дорогие друзья. Я знаю что уже много уроков по майскулу и переводу реги, но я хотел бы помочь обладателям великолепного мода РЛС в регистрации и загрузке аккаунта. Я долго думал какой префикс поставить вот решился мануал но на мануал это не тянет. И так начнем.
Для начала мы переведем регу:
Внимание! Здесь уже готовый код, его нужно заменить на свой код и переписать переменые:
И так когда мы вводим свой пароль при реге вызывается функция:
этим вызовом создается запись в базе данных. Свойственно Ваш аккаунт уже находится в базе данных но полностью он не зареган дальше вы уже сами (я про сохранения аккаунта).
Авторизация! Здесь принцип такой же только когда вы вводите свой пароль идет запрос в базу данных:
Сам же запрос:
Зарос на существование записи в БД в столбцах как Name and Pass
Здесь обойдемся без коментов так как они уже есть в коде даже с примером.
в моде РЛС case 1: это авторизация а case:2 это рега.
Кому интересно от куда берутся диалоги
Здесь идет запрос на то что есть ли ник в базе данных
Если есть авторизация, если нет то регистрация. Надо было начать с этого ну да ладно
получиться перевести мод под базу даных только у тех кто дочитал эту тему.
Надеюсь хоть кому это пригодиться!
Скачать сам плагин и инклуид
Если будут проблемы то

В написании этой темы мне помогали:
Фильм: Полицейская акадения
Музыка:
Styles Of Beyond - Nine Thou
Tom Morello & Prodigy - One Man Army
Т9 - Вдох-выдох
Eminem - Without Me
Pitbull - Форсаж 2
2 Chainz ft. Wiz Khalifa - We Own It
The Black eyed peas - Let's get it started
Алкоголь: Вино - не помню название
Для начала мы переведем регу:
Внимание! Здесь уже готовый код, его нужно заменить на свой код и переписать переменые:
PHP:
case 2:
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"{FFFFFF}Регистрация","{FFFFFF}\n*\tДобро пожаловать на сервер {FF4500}"NameServer"{FFFFFF}\n*\tРегистрация нового персонажа\n*\tМы рады видеть вас на сервере\n*\tВведите пароль для регистрации:","Готово","Отмена");
OnPlayerRegister(playerid,inputtext);
ShowPlayerDialog(playerid,7815,DIALOG_STYLE_INPUT,"E-Mail","Пожалуйста введите действующий адрес электронной почты,\nесли вы забудите пароль на него будет выслан новый","Готово","Пропуск"); //следующий диалог
return true;
}
else Kick(playerid);
}
PHP:
stock OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new MySqlStr[256];
mysql_format(mysql, MySqlStr, sizeof(MySqlStr), "INSERT INTO accounts (Name,Pass) VALUES('%s','%s')", PlayerName(playerid), password);//PlayerName узнаем ник игрока
mysql_function_query(mysql, MySqlStr, true, "AffectUpdate", "i", playerid);
}
return true;
}
Авторизация! Здесь принцип такой же только когда вы вводите свой пароль идет запрос в базу данных:
PHP:
case 1:
{
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Авторизация","\n*\t{FFFFFF}Добро пожаловать на сервер \n*\tЭтот аккаунт зарегестрирован на нашем сервере\n*\tЖелаем вам приятной игры на сервере\nВведите ваш пароль для входа:","Войти","Отмена");
return true;
}
new MySqlStr[256];
mysql_format(mysql, MySqlStr, sizeof(MySqlStr), "SELECT * FROM accounts WHERE `Name` LIKE '%s' AND `Pass` LIKE '%s'", PlayerName(playerid),(inputtext));
mysql_function_query(mysql, MySqlStr, true, "OnPlayerLogin", "is", playerid, (inputtext));
return true;
}
else Kick(playerid);
}
PHP:
mysql_format(mysql, MySqlStr, sizeof(MySqlStr), "SELECT * FROM accounts WHERE `Name` LIKE '%s' AND `Pass` LIKE '%s'", PlayerName(playerid),(inputtext));
mysql_function_query(mysql, MySqlStr, true, "OnPlayerLogin", "is", playerid, (inputtext));
PHP:
public OnPlayerLogin(playerid,password[])
{
new rows, fields;
cache_get_data(rows, fields);
if(!rows)
{
//Действие если пароль не верный
return true;
}
else
{
//действие если пароль верный обычно это сама загрузка аккаунта
PlayerInfo[playerid][pLevel] = cache_get_field_content_int(0,"Level", mysql);
}
//Действие с аккаунтом
SpawnPlayer(playerid);
return true;
}
в моде РЛС case 1: это авторизация а case:2 это рега.
Кому интересно от куда берутся диалоги
PHP:
public OnPlayerRequestClass(playerid, classid)
{
mysql_format(mysql, MySqlStr, sizeof(MySqlStr), "SELECT * FROM accounts WHERE `Name` LIKE '%s'", PlayerName(playerid));
mysql_function_query(mysql, MySqlStr, true, "CheckUser", "i", playerid);
return true;
}
PHP:
forward CheckUser(playerid);
public CheckUser(playerid)
{
new rows, fields;
cache_get_data(rows, fields);
if(rows==1)//авторизация
{
ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Авторизация","\n*\t{FFFFFF}Добро пожаловать на сервер \n*\tЭтот аккаунт зарегестрирован на нашем сервере\n*\tЖелаем вам приятной игры на сервере\nВведите ваш пароль для входа:","Войти","Отмена");
return true;
}
if(rows==0)//рега
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"{FFFFFF}Регистрация","{FFFFFF}\n*\tДобро пожаловать на сервер {FF4500}"NameServer"{FFFFFF}\n*\tРегистрация нового персонажа\n*\tМы рады видеть вас на сервере\n*\tВведите пароль для регистрации:","Готово","Отмена");
return true;
}
return true;
}
Надеюсь хоть кому это пригодиться!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Скачать сам плагин и инклуид
Если будут проблемы то

В написании этой темы мне помогали:
Фильм: Полицейская акадения
Музыка:
Styles Of Beyond - Nine Thou
Tom Morello & Prodigy - One Man Army
Т9 - Вдох-выдох
Eminem - Without Me
Pitbull - Форсаж 2
2 Chainz ft. Wiz Khalifa - We Own It
The Black eyed peas - Let's get it started
Алкоголь: Вино - не помню название
Последнее редактирование:
