- Регистрация
- 13 Июн 2011
- Сообщения
- 54
- Лучшие ответы
- 0
- Репутация
- 4
Здраствуйте решил помочь сайту\форуму
Всем известно что на всех серверах есть рега (регистрация - сохранения даных игрока)
в етом уроке мы разсмотрим регу для дм\тдм модов
Итак нам нужен инклуд
теперь откроем наш мод\скрипт\new.pwn
В самый верх добавим
Все инклуд подключен теперь создадим переменые я использую кострукцию enum
теперь создадим паблики
но сначала их "зарегестрируем"
для проверки есть ли акк возможно зделать в стандартном
здесь мы создаем окно регистрации или логина (логин - анг(loggin) параметр входа для востановления параметров)
Здесь используетса if(fexist(se)) тоесть проверка есть-ли фаил с именем заданый в переменой se(у нас ето фаил с именем игрока с разшерениям .ini(например:Roman.ini))
возможны и другие способы например
в тойже
здесь мы создали диалог окно с информацией о сервере
Примечание:ИДЫ ДИАЛОГ ОКОН ИЗМЕНЯМ НА СВОИ!
Далле какой бы мы сбособ невыбрали нам нужно зделать ответы на диагол окно
Для 2 способа делаем так
У меня если нажать во время регги на кик вас кикнет, если вы хотите зделать чтобь возможно было без реги то уберите Kick(playerid);
Для 1 способа делаем менее
теперь делаем сами паблики,начнем с InPlayerReg
Теперь делаем InPlayerLogin
Также делаем InPlayerUpade
Далле для сохранения в паблик
Все теперь наша рега сохраняет
Всем спасибо
---------- Сообщение добавлено в 22:01 ---------- Предыдущее сообщение размещено в 20:20 ----------
прошу коментариев =)
Всем известно что на всех серверах есть рега (регистрация - сохранения даных игрока)
в етом уроке мы разсмотрим регу для дм\тдм модов
Итак нам нужен инклуд
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
(нажмите на название для скачки)теперь откроем наш мод\скрипт\new.pwn
В самый верх добавим
PHP:
#include <mxINI>
PHP:
enum dPl
{
pAdmin,
pMoney,
}
new DInfo[MAX_PLAYERS][dPl];
но сначала их "зарегестрируем"
PHP:
forward InPlayerLogin(playerid);
forward InPlayerUpade(playerid);
forward InPlayerReg(playerid,password[]);
PHP:
public OnPlayerConnect(playerid)
{
new Plname[256];
new se[256];
GetPlayerName(playerid,Plname,256);
format(se,256,"%s.ini",Plname);
if(fexist(se))
{
format(se,256,"{c0c0c0}Уважаемый %s ваш аккуант {00ff00}зарегестрирован {c0c0c0}\nВы можете войти используя свой пароль\nДля продолжения введите пароль",Plname);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Авторизация на Test",se,"Отправить","Кик");
}
else
{
format(se,256,"{c0c0c0}Уважаемый %s ваш аккуант {ff0000}не зарегестрирован {c0c0c0}\nВы можете зарегестрироваться используя свой пароль\nДля продолжения введите пароль",Plname);
ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Регистрация на Test",se,"Отправить","Кик");
}
}
Здесь используетса if(fexist(se)) тоесть проверка есть-ли фаил с именем заданый в переменой se(у нас ето фаил с именем игрока с разшерениям .ini(например:Roman.ini))
возможны и другие способы например
в тойже
PHP:
public OnPlayerConnect(playerid)
{
new se[256] , plname[256]);
GetPlayerName(playerid, plname, 256);
format(se,256, "Здраствуйте %s на нашем рп сервере \n {ff0033}Сёйчас сервер в стадии розроботки !", plname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Информация о серве",se,"Зайти","Кик");
}
Примечание:ИДЫ ДИАЛОГ ОКОН ИЗМЕНЯМ НА СВОИ!
Далле какой бы мы сбособ невыбрали нам нужно зделать ответы на диагол окно
PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
PHP:
if(dialogid == 1)
{
if(response)
{
new Plname[256];
new se[256];
GetPlayerName(playerid,Plname,256);
format(se,256,"%s.ini",Plname);
if(fexist(se))
{
format(se,256,"{c0c0c0}Уважаемый %s ваш аккуант {00ff00}зарегестрирован {c0c0c0}\nВы можете войти используя свой пароль\nДля продолжения введите пароль",Plname);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Авторизация на Test",se,"Отправить","Кик");
}
else
{
format(se,256,"{c0c0c0}Уважаемый %s ваш аккуант {ff0000}не зарегестрирован {c0c0c0}\nВы можете зарегестрироваться используя свой пароль\nДля продолжения введите пароль",Plname);
ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Регистрация на Test",se,"Отправить","Кик");
}
}
else
{
Kick(playerid);
}
}
if(dialogid == 2)
{
if(response)
{
new se[256];
new Plname[256];
if(!strlen(inputtext))
{
GetPlayerName(playerid,Plname,256);
format(se,256,"{c0c0c0}Уважаемый %s ваш аккуант {00ff00}зарегестрирован {c0c0c0}\nВведите пожалуста пароль а не просто нажав на \"Отправить\"",Plname);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Авторизация на Test",se,"Отправить","Кик");
}
GetPlayerName(playerid,Plname,256);
format(se,256,"%s.ini",Plname);
new File = iniOpen(se);
ini_getString(File,"Key", pass);
iniClose(File);
if(!strcmp(inputtext,pass,true))
{
InPlayerLogin(playerid,inputtext);
}
else
{
format(se,256,"{c0c0c0}Уважаемый %s ваш аккуант {00ff00}зарегестрирован {c0c0c0}\nНо вы ввели неправильно пароль",Plname);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Авторизация на Test",se,"Отправить","Кик");
}
}
else
{
Kick(playerid);
}
}
if(dialogid == 3)
{
if(response)
{
new se[256];
new Plname[256];
if(!strlen(inputtext))
{
format(se,256,"{c0c0c0}Уважаемый %s ваш аккуант {ff0000}не зарегестрирован {c0c0c0}\nВведите пожалуста пароль а не просто нажав на \"Отправить\"",Plname);
ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Регистрация на Test",se,"Отправить","Кик");
}
InPlayerReg(playerid,inputtext);
}
else
{
Kick(playerid);
}
}
Для 1 способа делаем менее
PHP:
if(dialogid == 2)
{
if(response)
{
new se[256];
new Plname[256];
if(!strlen(inputtext))
{
GetPlayerName(playerid,Plname,256);
format(se,256,"{c0c0c0}Уважаемый %s ваш аккуант {00ff00}зарегестрирован {c0c0c0}\nВведите пожалуста пароль а не просто нажав на \"Отправить\"",Plname);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Авторизация на Test",se,"Отправить","Кик");
}
GetPlayerName(playerid,Plname,256);
format(se,256,"%s.ini",Plname);
new File = iniOpen(se);
ini_getString(File,"Key", pass);
iniClose(File);
if(!strcmp(inputtext,pass,true))
{
InPlayerLogin(playerid);
}
else
{
format(se,256,"{c0c0c0}Уважаемый %s ваш аккуант {00ff00}зарегестрирован {c0c0c0}\nНо вы ввели неправильно пароль",Plname);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Авторизация на Test",se,"Отправить","Кик");
}
}
else
{
Kick(playerid);
}
}
if(dialogid == 3)
{
if(response)
{
new se[256];
new Plname[256];
if(!strlen(inputtext))
{
format(se,256,"{c0c0c0}Уважаемый %s ваш аккуант {ff0000}не зарегестрирован {c0c0c0}\nВведите пожалуста пароль а не просто нажав на \"Отправить\"",Plname);
ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Регистрация на Test",se,"Отправить","Кик");
}
InPlayerReg(playerid,inputtext);
}
else
{
Kick(playerid);
}
}
PHP:
InPlayerReg(playerid,password[])
{
new se[256] , Plname[256];
GetPlayerName(playerid, Plname, 256);
format(se, 256, "%s.ini",Plname);
new File = ini_createFile(se); /* Создаём файл */
if(File < 0)
File = ini_openFile(se); /* Открываем файл */
ini_setString(File,"Пароль",password);
ini_setInteger(File,"Админка",0);
ini_setInteger(File,"Деньги",500);
GivePlayerMoney(playerid,500);
ini_closeFile(File);
InPlayerLogin(playerid);
return 1;
}
PHP:
InPlayerLogin(playerid)
{
new se[256],Plname[256];
GetPlayerName(playerid, Plname, 256);
format(se, 256, "%s.ini",Plname);
new File = iniOpen(se);
if(!File)
{
ini_getInteger(File,"Админка",DInfo[playerid][dAdmin]);
ini_getInteger(File,"Деньги",DInfo[playerid][dMoney]);
ini_closeFile(File);
}
return 1;
}
PHP:
InPlayerUpade(playerid)
{
new se[256],Plname[256];
GetPlayerName(playerid, Plname, 256);
format(se, 256, "%s.ini",Plname);
new File = iniOpen(se);
ini_getInteger(File,"Админка",DInfo[playerid][dAdmin]);
ini_getInteger(File,"Деньги",DInfo[playerid][dMoney]);
ini_closeFile(File);
}
PHP:
public OnPlayerDisconnect(playerid)
{
InPlayerUpade(playerid);
}
Всем спасибо
PHP:
#define Создатель_Урока Ermakl
---------- Сообщение добавлено в 22:01 ---------- Предыдущее сообщение размещено в 20:20 ----------
прошу коментариев =)