Artem_More
Умник
Здравствуйте, дорогие пользователи Rawno-info.
Дело вот в чем хочу поменять движение камеры при регистраации но низнаю как.
вот подобие регистрации по частям, объясните что отвечает за движение камеры
ко всем инклуд
масив
ко всем нев
Форварды
сохранение
public OnPlayerConnect(playerid) вставим
Далее нам надо сделать так чтобы при отключении игрока от сервера сохранялись его данные для этого делаем вот что
В этом паблике вставляем наши диалоги:
рега авторизация
Вот и где сдесь поменять движение камеры кто поможет закидаю +
Дело вот в чем хочу поменять движение камеры при регистраации но низнаю как.
вот подобие регистрации по частям, объясните что отвечает за движение камеры
ко всем инклуд
PHP:
#include <mxINI>
PHP:
enum pInfo
{
pPass[64],
}
PHP:
ew Player[MAX_PLAYERS][pInfo];
new PAccount[MAX_PLAYERS];
PHP:
forward OnPlayerLogin(playerid,password[]);
forward OnPlayerRegister(playerid, password[]);
forward DisconnectPlayer(playerid, bool:is_kicked, reason[]);
PHP:
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]);//pass
ini_closeFile(iniFile);//Закрываем файл
}
PHP:
public OnPlayerConnect(playerid)
{
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;// Аккаунт есть иприсваиваем ему значение 1
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация","добро пожаловать.......","Готов","Отмена");// Показываем диалог на вход в игру.Для авторизации
}
else// Если файла с именем нет, то выполняется это действие.
{
PAccount[playerid] = 0;// Аккаунта нет.Присваиваем значение 0
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация","добро пожаловать.......","Готов","Отмена");// Показываем диалог регистрации.Диалог для регистрации!!!
}
return true;
}
PHP:
public DisconnectPlayer(playerid, bool:is_kicked, reason[])
{
SavePlayer(playerid);//Вставляем сюда тем самым сохраняя данные об игроке при отключениии (disconnect)
return 1;
}
PHP:
if(dialogid == 1)// Ид диалога для логина
{
if(response)// Если игрок нажал первую кнопку входа
{
if(!strlen(inputtext))//Если окно ввода пустое выводим диалог снова
{
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Название диалога","*************Текст","Готов","Отмена");// Показываем диалог входа в игру.
return 1;
}
new pass[64];// Массив с паролем
strmid(pass,inputtext,0,strlen(inputtext),64);// Считываем текст с диалога
OnPlayerLogin(playerid,pass);// Запускаем паблик входа
}
else// Если игрок нажал Отмена кикаем его
{
Kick(playerid);
}
}
if(dialogid == 2)// Ид диалога для регистрации
{
if(response)// Если игрок нажал первую кнопку
{
if(!strlen(inputtext))// Если окно ввода пустое выводим диалог
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Название диалога","*******Текст","Готов","Отмена");// Показываем диалог регистрации.
return 1;
}
if(strlen(inputtext) < 6 || strlen(inputtext) > 16) // Если пароль меньше 6 и больше 15 букв/цифр(Говорим игроку что нельзя ввести пароль свыше 15 символов и меньше 6)
{
ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,"Название диалога","Пароль должен содержать не меньше 6 и не больше 16 ......символов","Далее","Отмена");// Показываем диалог о не верном пароле
return 1;
}
new pass[64];// Массив с паролем
strmid(pass,inputtext,0,strlen(inputtext),64);// Считываем текст с диалога
OnPlayerRegister(playerid,pass);// Запускаем паблик регистрации
}
else// Если игрок нажал Отмена кикаем его
{
Kick(playerid);
}
}
if(dialogid == 3)//Оповещании о не верном пароле
{
if(response)// Если игрок нажал первую кнопку
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Название диалога","***********Текст","Готов","Отмена");// Показываем диалог регистрации.
}
else
{
SendClientMessage(playerid,0xCC55000,"Вы были кикнуты с сервера!");// Выводим игрок сообщение
Kick(playerid);
}
}
if(dialogid == 4)//Оповещание о успешной регистрации
{
if(response)// Если игрок нажал первую кнопку
{
ShowPlayerDialog(playerid,5,DIALOG_STYLE_MSGBOX,"Название диалога","******Текст","Далее","");//Диалог допустим правила сервера
}
}
if(dialogid == 5)//Пожелание удачной игры или еще чего нибуть
{
if(response)// Если игрок нажал первую кнопку
{
SpawnPlayer(playerid);
}
}
if(dialogid == 6)//Оповещание об успешной авторизиации
{
if(response)// Если игрок нажал первую кнопку
{
SendClientMessage(playerid,0xCC55000,"Добро пожаловать!");
SpawnPlayer(playerid);
}
}
PHP:
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 (тОЕСТЬ В ФАЙЛЕ БУДЕТ ПИСАТЬСЯ password = 123456 допустим)
ini_setString(iniFile,"Pass",Player[playerid][pPass]);// Записываем пароль игрока в файл, ввели допустим 123456 и записали в текстовый файл
ini_closeFile(iniFile);// Закрываем файл
ShowPlayerDialog(playerid,4,DIALOG_STYLE_MSGBOX,"Название диалога","Вы успешно зарегистрировали этот аккаунт в базе данных.\nДля продолжения регистрации нажмите далее.","Далее","");
}
}
return 1;
}
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), "players/%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);// Закрываем файл
SendClientMessage(playerid,0xCC55000,"Вы были кикнуты с сервера по причине:Неверный пароль!");// Выводим игроку сообщение о неверном пароле
Kick(playerid);//Функция для кика игрока (отключение от сервера)
return 1;
}
ShowPlayerDialog(playerid,6,DIALOG_STYLE_MSGBOX,"Название диалога","Вы успешно авторизировались!","Далее","");
}
return 1;
}
Вот и где сдесь поменять движение камеры кто поможет закидаю +
