Дмитрий |
Дата: Понедельник, 06.08.2012, 22:37 | Сообщение # 1 | Сообщить о нерабочей теме
|
Регистрация: | 03.12.2011
|
Страна: | Российская Федерация |
Репутация: |
14
|
Сообщений: | 1421 |
Награды: |
4
+
|
Статус: |
|
| Я бы хотел Вам рассказать как создать регистрацию с помощью include mxINI. В место звездочек пробелы Добавим в начало мода( ко всем #include)
Добавим ко всем #define:
Code #define DIALOG_LOGIN 1 #define DIALOG_REGISTER 2
После переменных(после всех new;")
Code enum pInfo{ ****pSpawn, ****pMoney }; new PlayerInfo[MAX_PLAYERS][pInfo];
Теперь найдём
Code public OnPlayerConnect(playerid)
и сразу после
Code public OnPlayerConnect(playerid) {
добавляем:
Code new string[128],stringer[512]; ********new NamePlayer[40]; ********GetPlayerName(playerid, NamePlayer, 40); ********format(string, sizeof(string), "%s.ini", NamePlayer); ********if(fexist(string)) ********{ ************format(stringer, 512, "{ffffff}Привет, %s.\n\ **************************************** Вы зашли на сервер ИМЯСЕРВЕРА.\n\ **************************************** Этот ник уже зарегистрирован на сервере..\n\ ****************************************Приятной игры.", NamePlayer); ************ShowPlayerDialog(playerid, DIALOG_LOGIN , DIALOG_STYLE_PASSWORD, "Авторизация.", stringer, "Ок", "Выход"); ********} ********else ********{ ************format(stringer, 512, "{ffffff}Привет, %s.\n\ **************************************** Вы зашли на сервер ИМЯСЕРВЕРА.\n\ **************************************** Этот ник еще не зарегистрирован на сервере..\n\ ****************************************Приятной игры.", NamePlayer); ************ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Регистрация.", stringer, "Ок", "Выход"); ********}
Всё основное мы создали,теперь ответственная часть,мы должны создать сам диалог,ищем:
Code public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
если его нет,то создаём,и вставляем:
Code new stringer[256]; ****new NamePlayer[40]; ****GetPlayerName(playerid, NamePlayer, 40); ****if(dialogid == DIALOG_REGISTER) ****{ ********if(response) ********{ ************if(!strlen(inputtext)) ************{ ****************format(stringer, 512, "{ffffff}Привет, %s.\n\ **************************************** Вы зашли на сервер ИМЯСЕРВЕРА.\n\ **************************************** Этот ник еще не зарегистрирован на сервере..\n\ ****************************************Приятной игры.", NamePlayer); ****************ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Регистрация.", stringer, "Ок", "Выход"); ****************return 1; ************} ************OnPlayerRegister(playerid, inputtext); ************return 1; ********} ********else ********{ ************SendClientMessage(playerid, COLOR_WHITE, "Вы не зарегистрировались, и были кикнуты."); ************Kick(playerid);
********} ********return 1; ****} ****if(dialogid == DIALOG_LOGIN) ****{ ********if(response) ********{ ************if(!strlen(inputtext)) ************{ ****************format(stringer, 512, "{ffffff}Привет, %s.\n\ **************************************** Вы зашли на сервер ИМЯСЕРВЕРА.\n\ **************************************** Этот ник уже зарегистрирован на сервере..\n\ ****************************************Приятной игры.", NamePlayer); ****************ShowPlayerDialog(playerid, DIALOG_LOGIN , DIALOG_STYLE_PASSWORD, "Авторизация.", stringer, "Ок", "Выход"); ****************return 1; ************} ************OnPlayerLogin(playerid, inputtext); ************return 1; ********} ********else ********{ ************SendClientMessage(playerid, COLOR_WHITE, "Вы не авторизовались, и были кикнуты."); ************Kick(playerid);
********} ****}
Чтобы аккаунт не слетал,мы должны создать стоки авторизации,и регистрации,создаём:
Code stock OnPlayerRegister(playerid, password[]) { ****new string[255], PlayerName[40]; ****GetPlayerName(playerid, PlayerName, 40); ****format(string, 64, "%s.ini", PlayerName); ****new iniFile = ini_createFile(string); ****if(iniFile < 0) iniFile = ini_openFile(string); ****ini_setString(iniFile, "Password", password); ****ini_setInteger(iniFile, "Money",0); ****ini_closeFile(iniFile); ****OnPlayerLogin(playerid, password); ****return 1; } stock OnPlayerLogin(playerid, password[]) { ****new string[512], NamePlayer[40], Password[32]; ****GetPlayerName(playerid, NamePlayer, 40); ****format(string, 64, "%s.ini", NamePlayer); ****if(fexist(string)) ****{ ********new iniFile = ini_openFile (string); ********ini_getString(iniFile, "Password", Password); ********if(!strcmp(Password, password, true)) ********{ ************ini_getInteger(iniFile, "Spawn", PlayerInfo[playerid][pSpawn]); ************ini_getInteger(iniFile, "Money", PlayerInfo[playerid][pMoney]); ************ini_closeFile(iniFile); ************GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); ************SpawnPlayer(playerid); ************return 1; ********} ********else ********{ ************SendClientMessage(playerid,COLOR_WHITE,"Вы ввели неверный пароль."); ************format(string, 512, "{ffffff}Привет, %s.\n\ **************************************** Вы зашли на сервер ИМЯСЕРВЕРА.\n\ **************************************** Этот ник уже зарегистрирован на сервере..\n\ ****************************************Приятной игры.", NamePlayer); ************ShowPlayerDialog(playerid, DIALOG_LOGIN , DIALOG_STYLE_PASSWORD, "Авторизация.", string, "Ок", "Выход"); ************return 1; ********} ****} ****return 1; }
stock OnPlayerSave(playerid) { ****PlayerInfo[playerid][pMoney] = GetPlayerMoney(playerid); ****new string[128], PlayerName[40]; ****GetPlayerName(playerid, PlayerName, 40); ****format(string, sizeof(string), "%s.ini", PlayerName); ****new iniFile = ini_openFile (string); ****ini_setInteger(iniFile, "Spawn",PlayerInfo[playerid][pSpawn]); ****ini_setInteger(iniFile, "Money",PlayerInfo[playerid][pMoney]); ****ini_closeFile(iniFile); ****return 1; }
Автор: не знаю Чтобы компилировалось без ошибок(error`ов),скачиваем include mxINI: Тык
From Russia With Love!
|
|
|
|