Desmond
Новичок
Ко всем инклудам:
Ко всем #define:
Создаем enum, можно после всех "new":
Дальше ищем: public OnPlayerConnect(playerid) и вставляем.
Далее создаем диалоги, ищем: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) и вставляем.
Далее создаем стоки сохранения, авторизации и регистрации.
Инклуд:
Ошибки писать сюда.
PHP:
#include <mxINI>
PHP:
#define DIALOG_LOGIN 1
#define DIALOG_REGISTER 2
PHP:
enum pInfo{
pSpawn,
pMoney
};
new PlayerInfo[MAX_PLAYERS][pInfo];
PHP:
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, "Ок", "Выход");
}
PHP:
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);
}
}
PHP:
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;
}
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
.Ошибки писать сюда.
Последнее редактирование:
