po61 | Дата: Воскресенье, 23.09.2012, 09:09 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 9
| И так, я сразу говорю что ДМ, ТДМ и Стант серверами я заниматься не буду, возможно когда-нибудь будет РПГ, но мы будем делать РП мод, Первым делом мы напишем регистрацию...
Сначала после добавим
Потом добавляем после и в pInfo после открытой скобки пишем Должно получится вот так:
Code enum pInfo { pPass[32], pReg, };
После закрытой скобки с ;, отступаем одну строку, и добавляем Code new Player[MAX_PLAYERS][pInfo]; new Log[MAX_PLAYERS]; new PlayerInfo[MAX_PLAYERS][pInfo];
После NEW, надо добавить это: Code forward OnPlayerLogin(playerid,password[]); forward OnPlayerRegister(playerid, password[]);
После ищем Code OnPlayerRequestClass(playerid, classid)
и после открывающей скобочки отступаем одну строку, и добавляем это Code if(Log[playerid] == 1) { ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Добро пожаловать на наш сервер\n Ваш ник уже зарегестрирован\nВведите пароль...","Ввод",""); } else { ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Добро пожаловать на наш сервер \nПожалуйста.\nЗарегистрируйтесь введя пароль в окошко","Ввод",""); }
После ищем Code public OnPlayerConnect(playerid) и после открывающей скобочки отступаем одну строку, и добавляем это Code new playername[MAX_PLAYER_NAME]; new string[128]; GetPlayerName(playerid,playername,sizeof(playername)); format(string,sizeof(string),"acc/%s.ini", playername); if(fexist(string)) { Log[playerid] = 1; } else { Log[playerid] = 0; } PlayerInfo[playerid][pReg] = 0; } Ищем Code public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
и после октрывающей скобки, одну строку отступаем и вставляем это Code if(dialogid == 1) { if(response) { if(!strlen(inputtext)) { ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод",""); return 1; } new pass[64]; strmid(pass,inputtext,0,strlen(inputtext),64); OnPlayerLogin(playerid,pass); } else { ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод",""); } } if(dialogid == 2) { if(response) { if(!strlen(inputtext)) { ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод",""); return 1; } new pass[64]; strmid(pass,inputtext,0,strlen(inputtext),64); OnPlayerRegister(playerid,pass); } else { ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод",""); } } После идем в конец мода, и создаем данные паблики ( копируйте )...
Code public OnPlayerLogin(playerid,password[]) { if(IsPlayerConnected(playerid)) { new string[64]; new pass[64]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string,sizeof(string), "acc/%s.ini", playername); new iniFile = ini_openFile(string); ini_getString(iniFile,"Pass",pass,64); if(strcmp(pass,password,true) == 0) { ini_getString(iniFile,"Pass",Player[playerid][pPass],64); ini_closeFile(iniFile); } else { ini_closeFile(iniFile); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод",""); return 1; } SendClientMessage(playerid,0xFF00000,"Добро пожаловать в Next City"); SpawnPlayer(playerid); } return 1; }
public OnPlayerRegister(playerid, password[]) { if(IsPlayerConnected(playerid)) { new string[64]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string,sizeof(string), "acc/%s.ini", playername); new iniFile = ini_createFile(string); if(iniFile < 0) { iniFile = ini_openFile(string); } if(iniFile >= 0) { strmid(Player[playerid][pPass],password,0,strlen(password),255); ini_setString(iniFile,"Pass",Player[playerid][pPass]); ini_closeFile(iniFile); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод",""); } } return 1; }
stock SavePlayer(playerid) { new string[64]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string, sizeof(string), "acc/%s.ini", playername); new iniFile = ini_openFile(string); ini_setString(iniFile,"Pass",Player[playerid][pPass]); ini_closeFile(iniFile); }
И теперь конец, ищем Code OnPlayerDisconnect(playerid, reason) И вставляем после скобочки Code SavePlayer(playerid);
|
|
| |
po61 | Дата: Пятница, 28.09.2012, 21:29 | Сообщение # 2 |
Рядовой
Группа: Пользователи
Сообщений: 9
| Кстати, после компилирования, возникает вопрос, что-же за ошибка 217... Эта ошибка показывает на то, что мод не табулирован, а как это легко сделать, описано в данной статье (не реклама )
КЛИК(кликабельно)
|
|
| |
po61 | Дата: Воскресенье, 30.09.2012, 17:48 | Сообщение # 5 |
Рядовой
Группа: Пользователи
Сообщений: 9
| BaZuKa, не вариант, я в павно давно не захожу, вот система lvl пока и лежит в корзинке я месяца два назад писал, сейчас уже не помню :{
|
|
| |