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

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

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

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

[Мануал] Создание простой регистрации для new.pwn

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

BuTaMuH

Изучающий
Пользователь
Регистрация
15 Мар 2012
Сообщения
128
Лучшие ответы
0
Репутация
32
Для начала качаем инклуд mxINI, вот ссылочка: .
создадим в папке scriptfiles папочку с названием "players" (без ковычек)
Открываем new.pwn, и понеслась!
В начало мода:
PHP:
#include <mxINI>
Отступаем одну строчку и вписываем:
PHP:
enum pInfo
{
    pPass[64],
}
new Player[MAX_PLAYERS][pInfo];

new PAccount[MAX_PLAYERS];
Далее идём в
PHP:
public OnPlayerRequestClass(playerid, classid)
После строчки
PHP:
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
Вписываем:
PHP:
    if(PAccount[playerid] == 1)
    {
        ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Вход","Добро пожаловать\nВаш логин зарегистрирован у нас\nВведите свой пароль в окошко","Ввод","");
    }

    else 
    {
        ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация","Добро пожаловать\nВы новый человек на нашем сервере.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");
    }
	return 1;
}
В
PHP:
Public OnPlayerConnect
PHP:
    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;
    }
	return 1;
}
В
PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
PHP:
	if(dialogid == 1)
	{
	    if(response)
	    {
			if(!strlen(inputtext))
    		{
    		    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
    		    return 1;
    		}
	        new pass[64];// Масив с паролем
	        strmid(pass,inputtext,0,strlen(inputtext),64);
    		OnPlayerLogin(playerid,pass);
	    }
	    else
	    {
	        ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
	    }
	}
	if(dialogid == 2)
	{
	    if(response)
	    {
	        if(!strlen(inputtext))
    		{
                ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации.
    		    return 1;
    		}
         	new pass[64];
    		strmid(pass,inputtext,0,strlen(inputtext),64);
    		OnPlayerRegister(playerid,pass);
	    }
	    else
	    {
            ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации.
	    }
	}
	return 1;
}
И в конец мода:
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);
    iniFile = ini_openFile(string);.
    ini_setString(iniFile,"Pass",Player[playerid][pPass]);
    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);
        if(iniFile < 0)
        {
            iniFile = ini_openFile(string);
        }
        if(iniFile >= 0)
        {
            strmid(Player[playerid][pPass],password,0,strlen(password),255);
            ini_setString(iniFile,"Pass",Player[playerid][pPass]);
            ini_closeFile(iniFile);
            ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Вход","Добро пожаловать\nВаш логин зарегистрирован у нас на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
        }
    }
    return 1;
}

forward OnPlayerLogin(playerid,password[]);
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);
            ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру.
            return 1;
        }
        SendClientMessage(playerid,0xFF00000,"Добро пожаловать на сервер new");
        SetPlayerPos(playerid,1729.424072,-1949.681274,14.117187);
        SpawnPlayer(playerid);
    }
    return 1;
}
Ув. пользователи и администрация pawno-info.ru, не судите пожалуйста строго, это мой первый мануал.
Если есть какие-нибудь ошибки пишите ниже.
Кому помог, ставьте +.

---------- Post added at 00:42 ---------- Previous post was at 00:23 ----------

Я знаю, регистрация для new.pwn - сейчас это очень актуальная тема. В этой регистрации пока-что сохраняет только пароль. Потом может-быть сделаю и с деньгами, фрагами и т.д. Кому понравилось, не забудьте поставить +.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу