Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Регистрация на mxINI

Статус
В этой теме нельзя размещать новые ответы.

Desmond

Новичок
Ко всем инклудам:
PHP:
#include <mxINI>
Ко всем #define:

PHP:
#define DIALOG_LOGIN 1
#define DIALOG_REGISTER 2
Создаем enum, можно после всех "new":
PHP:
enum pInfo{
	pSpawn,
	pMoney
};
new PlayerInfo[MAX_PLAYERS][pInfo];
Дальше ищем: public OnPlayerConnect(playerid) и вставляем.
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, "Ок", "Выход");
		}
Далее создаем диалоги, ищем: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) и вставляем.

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;
}
Инклуд: .
Ошибки писать сюда.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу