#include <mxINI>
#define DIALOG_REGISTER 0 #define DIALOG_LOGIN 1 #define DIALOG_SEX 2
Ко всем Forward
forward GiveMoney(playerid,money); forward ServerGivePlayerHealth(playerid, Float:health); forward ServerSetPlayerPos(playerid, Float:x, Float:y, Float:z);
ко все new
new MoneyTime[MAX_PLAYERS]; new Logged[MAX_PLAYERS]; new HealthTime[MAX_PLAYERS]; new Float:PlayerHealth[MAX_PLAYERS];
Добавим OnPlayerConnect
public OnPlayerConnect(playerid)
{
PlayerInfo[playerid][pLevel] = 0;
PlayerInfo[playerid][pAdmin] = 0;
PlayerInfo[playerid][pReg] = 0;
PlayerInfo[playerid][pSex] = 0;
PlayerInfo[playerid][pOrigin] = 0;
PlayerInfo[playerid][pExp] = 0;
PlayerInfo[playerid][pMoney] = 0;
PlayerInfo[playerid][pModel] = 0;
PlayerInfo[playerid][pChar] = 0;
PlayerInfo[playerid][pWanted] = 0;
Logged[playerid] = 0;
SendClientMessage(playerid,COLOR_LIGHTRED,"{ff3300}[RPG] {FFFFFF}..:: Please Wait ::..");
SetPlayerColor(playerid,COLOR_WHITE);
return 1;
}
enum pInfo{
//---------------------------
pKey[128],
pLevel,
pAdmin,
pReg,
pSex,
pOrigin,
pExp,
pMoney,
pModel,
pChar,
pInt,
pMember,
pLeader,
pWanted,
};
new PlayerInfo[MAX_PLAYERS][pInfo];
в конец мода
public ServerSetPlayerPos(playerid, Float:x, Float:y, Float:z)
{
SetPlayerPos(playerid, x, y, z);
return 1;
}
public ServerGivePlayerHealth(playerid,Float:health)
{
HealthTime[playerid] = 5;
PlayerHealth[playerid] = health;
SetPlayerHealth(playerid,health);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
HealthTime[playerid] = 10;
return 1;
}
public GiveMoney(playerid,money)
{
new string[20];
MoneyTime[playerid] = 5;
if(money > 0)
{
PlayerInfo[playerid][pMoney] += money;
GivePlayerMoney(playerid,money);
format(string, sizeof(string), "~g~$+%d", money);
GameTextForPlayer(playerid, string, 2500, 1);
}
else if(money < 0)
{
GivePlayerMoney(playerid,money);
PlayerInfo[playerid][pMoney] += money;
format(string, sizeof(string), "~r~$%d", money);
GameTextForPlayer(playerid, string, 2500, 1);
}
return 1;
}
stock bigstr(const string[], &idx)
{
new length = strlen(string);
while ((idx < length) && (string[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = string[idx];
idx++;
}
result[idx - offset] = EOS;
return result;
}
в конец мода
public OnPlayerSpawn(playerid)
{
ServerGivePlayerHealth(playerid,100);
ResetPlayerWeapons(playerid);
SetPlayerWantedLevel(playerid,PlayerInfo[playerid][pWanted]);
SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
if(Logged[playerid] == 1)
{
if(PlayerInfo[playerid][pReg] == 0)
{
TogglePlayerControllable(playerid, 0);
ServerSetPlayerPos(playerid,2268.6890,1633.8104,1084.2344);
SetPlayerFacingAngle(playerid, 1.0000);
SetPlayerInterior(playerid,1);
SetPlayerVirtualWorld(playerid, 1);
new listitems[] = "Мужчина\nЖенщина";
ShowPlayerDialog(playerid,DIALOG_SEX,DIALOG_STYLE_LIST,"Вы кто ?",listitems,"Играть","Отмена");
GiveMoney(playerid,5000);
return 1;
}
else if (PlayerInfo[playerid][pOrigin] == 0)// LS
{
ServerSetPlayerPos(playerid,2268.6890,1633.8104,1084.2344);
SetPlayerFacingAngle(playerid, 1.0000);
SetPlayerInterior(playerid,1);
SetPlayerVirtualWorld(playerid, 1);
SetCameraBehindPlayer(playerid);
return 1;
}
else if (PlayerInfo[playerid][pOrigin] == 1)// SF
{
ServerSetPlayerPos(playerid,-1971.7006,137.9194,27.6875);
SetPlayerFacingAngle(playerid, 90.0);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid, 0);
SetCameraBehindPlayer(playerid);
return 1;
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(Logged[playerid] == 0)return 1;
OnPlayerSave(playerid);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
if(Logged[playerid] == 0)
{
new string[128],string1[512];
new PlayerName[40];
GetPlayerName(playerid, PlayerName, 40);
format(string, sizeof(string), "accounts/%s.ini", PlayerName);
SetPlayerCameraPos(playerid,1489.5111,-901.3726,81.8154);
SetPlayerCameraLookAt(playerid,1415.6288,-818.8901,81.9115);
SendClientMessage(playerid,COLOR_GREEN,"Загрузка данных успешно завершена.");
if(fexist(string))
{
format(string1, 512, "{33CCFF}_________________________________________{ffffff}\n\
Здравствуйте, %s!\n\
Ты зашёл на игровойсервер {33CCFF}SA:RPG{ffffff}\n\
Сайт нашего сервера {33CCFF}www.sa-rpg.ru{ffffff}\n\
Этот аккаунт зарегисирован!\n\
Введите пароль в окошке!\n\
{33CCFF}_________________________________________", PlayerName);
ShowPlayerDialog(playerid, DIALOG_LOGIN , DIALOG_STYLE_INPUT, "Авторизация", string1, "Войти", "Выйти");
}
else
{
new idx;
new result[256];
result = bigstr(PlayerName, idx);
if(!strlen(result))return 0;
if(result[0] == '[' && result[1] == 'L' && result[2] == 'X' && result[3] == ']')
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Ники, начинающиеся на [LX] доступны только для администрации.");
Kick(playerid);
return 1;
}
format(string1, 512, "{33CCFF}_________________________________________{ffffff}\n\
Здравствуйте, %s!\n\
Ты зашёл на игровойсервер {33CCFF}SA:RPG{ffffff}\n\
Сайт нашего сервера {33CCFF}www.sa-rpg.ru{ffffff}\n\
Этот аккаунт не зарегисирован!\n\
Введите пароль в окошке!\n\
Придумайте пароль и нажмите {33CCFF}'Далее'\n\
{33CCFF}_________________________________________", PlayerName);
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Регистрация", string1, "Далее", "Отмена");
}
return 1;
}
return 1;
}
public OnPlayerSave(playerid)
{
PlayerInfo[playerid][pMoney] = GetPlayerMoney(playerid);
PlayerInfo[playerid][pWanted] = GetPlayerWantedLevel(playerid);
//------------------------------------------------------------------------------
new string[128], PlayerName[40];
GetPlayerName(playerid, PlayerName, 40);
format(string, sizeof(string), "accounts/%s.ini", PlayerName);
new iniFile = ini_openFile (string);
ini_setInteger(iniFile, "Левел", PlayerInfo[playerid][pLevel]);
ini_setInteger(iniFile, "Админка", PlayerInfo[playerid][pAdmin]);
ini_setInteger(iniFile, "Рега", PlayerInfo[playerid][pReg]);
ini_setInteger(iniFile, "Пол", PlayerInfo[playerid][pSex]);
ini_setInteger(iniFile, "Прописка", PlayerInfo[playerid][pOrigin]);
ini_setInteger(iniFile, "Экспа", PlayerInfo[playerid][pExp]);
ini_setInteger(iniFile, "Деньги", PlayerInfo[playerid][pMoney]);
ini_setInteger(iniFile, "Скин", PlayerInfo[playerid][pModel]);
ini_setInteger(iniFile, "Скин2", PlayerInfo[playerid][pChar]);
ini_setInteger(iniFile, "Интерьер", PlayerInfo[playerid][pInt]);
ini_setInteger(iniFile, "Розыск", PlayerInfo[playerid][pWanted]);
ini_closeFile(iniFile);
return 1;
}
public OnPlayerLogin(playerid, password[])
{
new string[512], PlayerName[40], Password[32];
GetPlayerName(playerid, PlayerName, 40);
format(string, 64, "accounts/%s.ini", PlayerName);
if(fexist(string))
{
new iniFile = ini_openFile (string);
ini_getString(iniFile, "Пароль", Password);
if(!strcmp(Password, password, true))
{
HealthTime[playerid] = 10;
ini_getInteger(iniFile, "Левел", PlayerInfo[playerid][pLevel]);
ini_getInteger(iniFile, "Админка", PlayerInfo[playerid][pAdmin]);
ini_getInteger(iniFile, "Рега", PlayerInfo[playerid][pReg]);
ini_getInteger(iniFile, "Пол", PlayerInfo[playerid][pSex]);
SetPVarInt(playerid,"Пол", PlayerInfo[playerid][pSex]);
ini_getInteger(iniFile, "Прописка", PlayerInfo[playerid][pOrigin]);
ini_getInteger(iniFile, "Экспа", PlayerInfo[playerid][pExp]);
ini_getInteger(iniFile, "Деньги", PlayerInfo[playerid][pMoney]);
ini_getInteger(iniFile, "Скин", PlayerInfo[playerid][pModel]);
ini_getInteger(iniFile, "Скин2", PlayerInfo[playerid][pChar]);
ini_getInteger(iniFile, "Интерьер", PlayerInfo[playerid][pInt]);
ini_getInteger(iniFile, "Розыск", PlayerInfo[playerid][pWanted]);
ini_closeFile(iniFile);
//==================================================================
SendClientMessage(playerid,COLOR_GREEN,"{ffffff}Добро пожаловать на сервер SA:RPG");
SendClientMessage(playerid,COLOR_GREEN,"Аккаунт успешно загружен.");
if(PlayerInfo[playerid][pWanted] > 0)
{
format(string,sizeof(string),"Ты вошел в игру с %d уровнем розыска.",PlayerInfo[playerid][pWanted]);
SendClientMessage(playerid,COLOR_YELLOW,string);
}
GiveMoney(playerid, PlayerInfo[playerid][pMoney]);
SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
Logged[playerid] = 1;
SpawnPlayer(playerid);
DateProp(playerid);
return 1;
}
else
{
ini_closeFile(iniFile);
SendClientMessage(playerid,COLOR_WHITE,"Сервер: Неверный пароль");
format(string, 512, "{33CCFF}_________________________________________{ffffff}\n\
Здравствуйте, %s!\n\
Ты зашёл на игровойсервер {33CCFF}SA:RPG{ffffff}\n\
Сайт нашего сервера {33CCFF}www.sa-rpg.ru{ffffff}\n\
Этот аккаунт зарегисирован!\n\
Введите пароль в окошке!\n\
{33CCFF}_________________________________________", PlayerName);
ShowPlayerDialog(playerid, DIALOG_LOGIN , DIALOG_STYLE_INPUT, "Авторизация", string, "Войти", "Выйти");
Logged[playerid] = 0;
return 1;
}
}
else
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Аккаунт не найден!");
}
return 1;
}
public OnPlayerRegister(playerid, password[])
{
new string[255], PlayerName[40];
GetPlayerName(playerid, PlayerName, 40);
format(string, 64, "accounts/%s.ini", PlayerName);
new iniFile = ini_createFile(string);
if(iniFile < 0) iniFile = ini_openFile(string);
ini_setString(iniFile, "Пароль", password);
ini_setInteger(iniFile, "Левел", 0);
ini_setInteger(iniFile, "Админка", 0);
ini_setInteger(iniFile, "Рега", 0);
ini_setInteger(iniFile, "Пол", 0);
ini_setInteger(iniFile, "Возраст", 0);
ini_setInteger(iniFile, "Прописка", 0);
ini_setInteger(iniFile, "Экспа", 0);
ini_setInteger(iniFile, "Деньги",0);
ini_setInteger(iniFile, "Скин", 0);
ini_setInteger(iniFile, "Скин2", 0);
ini_setInteger(iniFile, "Интерьер", 0);
ini_setInteger(iniFile, "Розыск", 0);
ini_closeFile(iniFile);
OnPlayerLogin(playerid, password);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string1[512],PlayerName[40];
GetPlayerName(playerid, PlayerName, 40);
if(dialogid == DIALOG_REGISTER) //
{
if(response)
{
if(!strlen(inputtext))
{
format(string1, 512, "{33CCFF}_________________________________________{ffffff}\n\
Здравствуйте, %s!\n\
Ты зашёл на игровойсервер {33CCFF}SA:RPG{ffffff}\n\
Сайт нашего сервера {33CCFF}www.sa-rpg.ru{ffffff}\n\
Этот аккаунт не зарегисирован!\n\
Введите пароль в окошке!\n\
Придумайте пароль и нажмите {33CCFF}'Далее'\n\
{33CCFF}_________________________________________", PlayerName);
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Регистрация", string1, "Далее", "Отмена");
return 1;
}
OnPlayerRegister(playerid, inputtext);
return 1;
}
else
{
format(string1, 512, "{33CCFF}_________________________________________{ffffff}\n\
Здравствуйте, %s!\n\
Ты зашёл на игровойсервер {33CCFF}SA:RPG{ffffff}\n\
Сайт нашего сервера {33CCFF}www.sa-rpg.ru{ffffff}\n\
Этот аккаунт не зарегисирован!\n\
Введите пароль в окошке!\n\
Придумайте пароль и нажмите {33CCFF}'Далее'\n\
{33CCFF}_________________________________________", PlayerName);
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Регистрация", string1, "Далее", "Отмена");
}
return 1;
}
//------------------------------------------------------------------------------
if(dialogid == DIALOG_LOGIN)
{
if(response)
{
if(!strlen(inputtext))
{
format(string1, 512, "{33CCFF}_________________________________________{ffffff}\n\
Здравствуйте, %s!\n\
Ты зашёл на игровойсервер {33CCFF}SA:RPG{ffffff}\n\
Сайт нашего сервера {33CCFF}www.sa-rpg.ru{ffffff}\n\
Этот аккаунт зарегисирован!\n\
Введите пароль в окошке!\n\
{33CCFF}_________________________________________", PlayerName);
ShowPlayerDialog(playerid, DIALOG_LOGIN , DIALOG_STYLE_INPUT, "Авторизация", string1, "Войти", "Выйти");
return 1;
}
OnPlayerLogin(playerid, inputtext);
return 1;
}
else
{
format(string1, 512, "{33CCFF}_________________________________________{ffffff}\n\
Здравствуйте, %s!\n\
Ты зашёл на игровойсервер {33CCFF}SA:RPG{ffffff}\n\
Сайт нашего сервера {33CCFF}www.sa-rpg.ru{ffffff}\n\
Этот аккаунт зарегисирован!\n\
Введите пароль в окошке!\n\
{33CCFF}_________________________________________", PlayerName);
ShowPlayerDialog(playerid, DIALOG_LOGIN , DIALOG_STYLE_INPUT, "Авторизация", string1, "Войти", "Выйти");
return 1;
}
}
//------------------------------------------------------------------------------
else if(dialogid == DIALOG_SEX)// Выбор пола
{
if(response)
{
PlayerInfo[playerid][pReg] = 1;
PlayerInfo[playerid][pChar] = PlayerInfo[playerid][pModel];
TogglePlayerControllable(playerid, 1);
OnPlayerSave(playerid);
PlayerInfo[playerid][pModel] = 50;
SetPlayerSkin(playerid, 50);
PlayerInfo[playerid][pSex] = 1;
SendClientMessage(playerid, COLOR_WHITE, "Отлично, вы мужчина, Приятной игры!");
return 1;
}
else
{
PlayerInfo[playerid][pReg] = 1;
PlayerInfo[playerid][pChar] = PlayerInfo[playerid][pModel];
TogglePlayerControllable(playerid, 1);
OnPlayerSave(playerid);
PlayerInfo[playerid][pSex] = 2;
PlayerInfo[playerid][pModel] = 192;
SetPlayerSkin(playerid, 192);
SendClientMessage(playerid, COLOR_WHITE, "Отлично, вы женщина, Приятной игры!");
return 1;
}
}
return 1;
}
Ну вот и урок окончен Не хотелось всё расписывать, Думаю если руки не из Жопы то сможите Вписаить!
Автор: Jeff_Hardy
Кому понравился урок стаивм +!
Вход
Регистрация
Помощь














