- 0
Sign in to follow this
Followers
0

[закрыто] Помогите добавить выбор пола на mxINI
Asked by
John_Silver
,
-
Recently Browsing 0 members
No registered users viewing this page.
Posted · Report post
Помогите пожалуйста кто сможет.
Делал свой мод на mxINI, и решил добавить выбор пола, но он не работает. Диалоговое окно есть, но смысла нету, закрыть его нельзя. Помогите плиз.
Забыл сказать, делал я диологи пополам с плагином mDialog, поэтому где-то SPD, а где-то Dialog_Open, не судите строго.
public OnPlayerRequestClass(playerid, classid)
{
//SetPlayerPos(playerid, 1463.8624,-2371.3694,40.3388);
SetPlayerCameraPos(playerid, 1463.8624,-2371.3694,40.3388);
SetPlayerCameraLookAt(playerid, 1589.9457,-2216.7305,35.3422);
if(PAccount[playerid] == 1)// Если аккаунт есть
{
SPD(playerid, 1, DSP, "{FF0000}• {FF4500}Авторизация {FF0000}•",
"\t{FFFFFF}Добро пожаловать на {FFD700}Visonfa Role-Play!{FFFFFF}\n\
Данный аккаунт уже зарегестрирован на нашем сервере\n\
Для входа в игру введите ваш пароль в поле ниже.",
"{FFFFFF}Далее","{FFFFFF}Выход");// Показываем диалог входа в игру. Стиль диалога выставляем на ввод текста.
}
else// Если аккаунта нет
{
SPD(playerid, 2, DSI,"{FF0000}• {FF4500}Регистрация {FFFFFF}|{FFFF00} Пароль {FF0000}•",
"{FFFFFF}Добро пожаловать на {FFD700}Visonfa Role-Play!{FFFFFF}\n\
Данный аккаунт не зарегестрирован на нашем сервере\n\
Для входа в игру придумайте пароль\n\
{FF0000}\tПримечание:{FFFF00}\n\
\t• Длинна пароля должна быть до 24 символов\n\
\t• Чем надёжнее пароль тем труднее его взломать\n\
\t• Админестрация сервера не несёт ответственности если вы потеряете свой пароль",
"{FFFFFF}Далее","{FFFFFF}Выход");// Показываем диалог регистрации. Стиль диалога выставляем на ввод текста.
}
return 1;
}
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, Player[playerid][pName], MAX_PLAYER_NAME);
PlayerInfo[playerid][pAdmin] = 0;
//End
new playername[MAX_PLAYER_NAME];// Массив для имени игрока
new string[128];// Путь до папки с именем игрока
GetPlayerName(playerid,playername,sizeof(playername));// Узнаём имя игрока
format(string,sizeof(string),"players/%s.ini", playername);// Путь к файлу с аккаунтом
if(fexist(string))// Проверка на файл, если он есть то выполняется следующее действие.
{
PAccount[playerid] = 1;// Аккаунт есть
}
else// Если файла с именем нет, то выполняется это действие.
{
PAccount[playerid] = 0;// Аккаунта нет
}
LoadPlayer(playerid);
PlayerPlaySound(playerid, 1097, 0.0, 0.0, 0.0);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SavePlayer(playerid);// Сохраняем игрока
return 1;
}
public OnPlayerSpawn(playerid)
{
GivePlayerMoney(playerid, Player[playerid][pMoney]);
SetPlayerScore(playerid, Player[playerid][pScore]);
SetPlayerSkin(playerid, Player[playerid][pSkin]);
SetPlayerColor(playerid, 0xFFFFFFFF); new rand1 = random(3);
switch(rand1)
{
case 0:
{
SetPlayerPos(playerid, 1642.4773,-2241.4187,13.4937);
SetPlayerFacingAngle(playerid, 178.0465);
SetCameraBehindPlayer(playerid);
}
case 1:
{
SetPlayerPos(playerid, 1640.1191,-2241.5908,13.4964);
SetPlayerFacingAngle(playerid, 178.3401);
SetCameraBehindPlayer(playerid);
}
case 2:
{
SetPlayerPos(playerid, 1645.5403,-2241.2451,13.4971);
SetPlayerFacingAngle(playerid, 179.5099);
SetCameraBehindPlayer(playerid);
}
}
PlayerPlaySound(playerid, 0, 0.0, 0.0, 0.0);
return 1;
}
DialogResponse:NoPassLogin(playerid, response, listitem, inputtext[])
{
if(response)
{
SPD(playerid, 1, DSP, "{FF0000}• {FF4500}Авторизация {FF0000}•",
"\t{FFFFFF}Добро пожаловать на {FFD700}Visonfa Role-Play!{FFFFFF}\n\
Данный аккаунт уже зарегестрирован на нашем сервере\n\
Для входа в игру введите ваш пароль в поле ниже.",
"{FFFFFF}Далее","{FFFFFF}Выход");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)// Ид диалога Для Логина
{
if(response)// Если игрок нажал первую кнопку входа
{
if(!strlen(inputtext))// Если окно ввода пустое, выводим диалог снова
{
Dialog_Open(playerid, "NoPassLogin", DSM, "{FF0000}• {FF4500}Авторизация {FF0000}•",
"{B22222}Вы ввели неверный пароль",
"{FFFFFF}Назад", "");
return 1;
}
new pass[24];// Массив с паролем
strmid(pass,inputtext,0,strlen(inputtext),24);// Считываем текст с диалога
OnPlayerLogin(playerid,pass);// Запускаем паблик входа
}
else// Если игрок нажал Esc, вернём ему диалог
{
return Kick(playerid);
}
}
if(dialogid == 2)// Ид диалога для регистрации
{
if(response)// Если игрок нажал первую кнопку
{
if(!strlen(inputtext))// Если окно ввода пустое, выводим диалог снова
{
SPD(playerid, 2, DSI,"{FF0000}• {FF4500}Регистрация {FFFFFF}|{FFFF00} Пароль {FF0000}•",
"{FFFFFF}Добро пожаловать на {FFD700}Visonfa Role-Play!{FFFFFF}\n\
Данный аккаунт не зарегестрирован на нашем сервере\n\
Для входа в игру придумайте пароль\n\
{FF0000}\tПримечание:{FFFF00}\n\
\t• Длинна пароля должна быть до 24 символов\n\
\t• Чем надёжнее пароль тем труднее его взломать\n\
\t• Админестрация сервера не несёт ответственности если вы потеряете свой пароль",
"{FFFFFF}Далее","{FFFFFF}Выход");
return 1;
}
new len = strlen(inputtext);
if(len < 6)
{
SPD(playerid, 2, DSI,"{FF0000}• {FF4500}Регистрация {FFFFFF}|{FFFF00} Пароль {FF0000}•",
"{FFFFFF}Добро пожаловать на {FFD700}Visonfa Role-Play!{FFFFFF}\n\
Данный аккаунт не зарегестрирован на нашем сервере\n\
Для входа в игру придумайте пароль\n\
{FF0000}\tПримечание:{FFFF00}\n\
\t• Длинна пароля должна быть до 24 символов\n\
\t• Чем надёжнее пароль тем труднее его взломать\n\
\t• Админестрация сервера не несёт ответственности если вы потеряете свой пароль",
"{FFFFFF}Далее","{FFFFFF}Выход");
return SCM(playerid, -1, "Длинна пароля должна быть от 6 до 24 символов!");
}
if(len > 24)
{
SPD(playerid, 2, DSI,"{FF0000}• {FF4500}Регистрация {FFFFFF}|{FFFF00} Пароль {FF0000}•",
"{FFFFFF}Добро пожаловать на {FFD700}Visonfa Role-Play!{FFFFFF}\n\
Данный аккаунт не зарегестрирован на нашем сервере\n\
Для входа в игру придумайте пароль\n\
{FF0000}\tПримечание:{FFFF00}\n\
\t• Длинна пароля должна быть до 24 символов\n\
\t• Чем надёжнее пароль тем труднее его взломать\n\
\t• Админестрация сервера не несёт ответственности если вы потеряете свой пароль",
"{FFFFFF}Далее","{FFFFFF}Выход");
return SCM(playerid, -1, "Длинна пароля должна быть от 6 до 24 символов!");
}
new pass[24];// Массив с паролем
strmid(pass,inputtext,0,strlen(inputtext),24);// Считываем текст с диалога
OnPlayerLogin(playerid,pass);// Запускаем паблик регистрации
}
else// Если игрок нажал Esc, вернём ему диалог
{
return Kick(playerid);
}
}
SPD(playerid, 3, DSL, "Регистрация выбор пола",
"Мужской\n\
Женский",
"Выбор", "Выход");
if(dialogid == 3)
{
if(!response) return Kick(playerid);
switch(listitem)
{
case 0:
{
Player[playerid][pGender] = 1;
}
case 1:
{
Player[playerid][pGender] = 2;
}
}
}
return 1;
}
stock SavePlayer(playerid)
{
new string[64];// Массив с путём для файла
new playername[MAX_PLAYER_NAME];// Массив для получения имени игрока
GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока
format(string, sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для сохранения
new iniFile = ini_openFile(string);// Открываем файл по тому пути который указали.
ini_setString(iniFile,"Pass",Player[playerid][pPass]);// Записываем пароль игрока в файл
ini_setInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Записываем уровень админа
ini_setInteger(iniFile,"Gender",Player[playerid][pGender]);
ini_setInteger(iniFile,"Money",Player[playerid][pMoney]);
ini_setInteger(iniFile,"Score",Player[playerid][pScore]);
ini_setInteger(iniFile,"EXP",Player[playerid][pEXP]);
ini_setInteger(iniFile,"Mail",Player[playerid][pMail]);
ini_setInteger(iniFile,"Ismail",Player[playerid][pIsmail]);
ini_setInteger(iniFile,"Skin",Player[playerid][pSkin]);
ini_setInteger(iniFile,"VCDonate",Player[playerid][pVCD]);
ini_setInteger(iniFile,"Zacon",Player[playerid][pZacon]);
ini_setInteger(iniFile,"UsePromo",Player[playerid][pUsePromo]);
ini_setInteger(iniFile,"OtGame",Player[playerid][pOtGame]);
ini_closeFile(iniFile);// Закрываем файл
}
stock LoadPlayer(playerid)
{
new string[64];// Массив с путём для файла
new playername[MAX_PLAYER_NAME];// Массив для получения имени игрока
GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока
format(string, sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для сохранения
new iniFile = ini_openFile(string);// Открываем файл по тому пути который указали.
ini_getString(iniFile,"Pass",Player[playerid][pPass]);// Записываем пароль игрока в файл
ini_getInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Записываем уровень админа
ini_getInteger(iniFile,"Gender",Player[playerid][pGender]);
ini_getInteger(iniFile,"Money",Player[playerid][pMoney]);
ini_getInteger(iniFile,"Score",Player[playerid][pScore]);
ini_getInteger(iniFile,"EXP",Player[playerid][pEXP]);
ini_getInteger(iniFile,"Mail",Player[playerid][pMail]);
ini_getInteger(iniFile,"Ismail",Player[playerid][pIsmail]);
ini_getInteger(iniFile,"Skin",Player[playerid][pSkin]);
ini_getInteger(iniFile,"VCDonate",Player[playerid][pVCD]);
ini_getInteger(iniFile,"Zacon",Player[playerid][pZacon]);
ini_getInteger(iniFile,"UsePromo",Player[playerid][pUsePromo]);
ini_getInteger(iniFile,"OtGame",Player[playerid][pOtGame]);
ini_closeFile(iniFile);// Закрываем файл
}
forward OnPlayerRegister(playerid, password[]);
public OnPlayerRegister(playerid, password[])// Паблик регистрации
{
if(IsPlayerConnected(playerid))// Проверка на подключение игрока
{
new string[64];// Массив с путём для файла
new playername[MAX_PLAYER_NAME];// Массив для получения имени игрока
GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока
format(string,sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для сохранения
new iniFile = ini_createFile(string);// Создаём файл с именем игрока в папке players
if(iniFile < 0)// Если Файла нет
{
iniFile = ini_openFile(string);// Открываем
}
if(iniFile >= 0)// Если файл есть
{
strmid(Player[playerid][pPass],password,0,strlen(password),255);// Присваиваем массиву pPass, значение password[]
ini_setString(iniFile,"Pass",Player[playerid][pPass]);// Записываем пароль игрока в файл
ini_closeFile(iniFile);// Закрываем файл
SPD(playerid, 1, DSP, "{FF0000}• {FF4500}Авторизация {FF0000}•",
"\t{FFFFFF}Добро пожаловать на {FFD700}Visonfa Role-Play!{FFFFFF}\n\
Данный аккаунт уже зарегестрирован на нашем сервере\n\
Для входа в игру введите ваш пароль в поле ниже.",
"{FFFFFF}Далее","{FFFFFF}Выход");
}
Player[playerid][pMoney] = 150;
Player[playerid][pScore] = 1;
Player[playerid][pEXP] = 1;
Player[playerid][pSkin] = 78;
Player[playerid][pVCD] = 0;
Player[playerid][pZacon] = 20;
Player[playerid][pIsmail] = 0;
}
return 1;
}
forward OnPlayerLogin(playerid,password[]);
public OnPlayerLogin(playerid,password[])
{
if(IsPlayerConnected(playerid))// Проверка на подключение игрока
{
new string[64];// Массив с путём для файла
new pass[24];// Массив с паролем
new playername[MAX_PLAYER_NAME];// Массив для получения имени игрока
GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока
format(string,sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для загрузки
new iniFile = ini_openFile(string);// Открываем файл
ini_getString(iniFile,"Pass",pass,24);// Загружаем пароль
if(strcmp(pass,password,true) == 0)// Если введёный пароль, соответсвует паролю при регистрации, то загружаем акк
{
ini_getString(iniFile,"Pass",Player[playerid][pPass],24);// Загружаем пароль
ini_getInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Загружаем уровень админа
ini_closeFile(iniFile);// Закрываем файл
}
else// Если пароль не верен..
{
ini_closeFile(iniFile);// Закрываем файл
Dialog_Open(playerid, "NoPassLogin", DSM, "{FF0000}• {FF4500}Авторизация {FF0000}•",
"{B22222}Вы ввели неверный пароль",
"{FFFFFF}Назад", "");
return 1;
}
SendClientMessage(playerid,0xFF00000,"Добро пожаловать на наш сервер");// Выводим игрок сообщение
SpawnPlayer(playerid);// Спавним игрока
}
return 1;
}
Share this post
Link to post