Перейти к содержанию
Dresis

Мод CR-MP с нуля [ Урок №2 ]

Рекомендуемые сообщения

Dresis

Всем снова здравствуйте с вами DreSiS!

сегодня мы будем делать регистрацию на инклуде mxINI.
Заранее благодарю вас за просмотр моего урока!

 

 

1.Масив и сохранение
 

Спойлер

 



 

прошу смотреть и читать внимательно, конечно же можете скопровать),
и так, пишем:

 


#include <mxINI> // загружаем функцию mxINI ссылка в 1-ом уроке на все файлы

загружаемую функцию вписываем ко всем инклудам!
можете сделать красиво как постарался я:

image.png.36e1ad4573e024c225af28f993c892fc.png

 

итак давайте теперь перейдем ниже.

и пишем следующее:

 


enum pInfo //название enum`а
{
	pPass[32], // масив для с сохроненным паролем. 32 - макс. количество цыфр/букв 
}
//Сразу создаем переменную player для будущих использований   (new - переменная хронящая в себе информацию)
new Player[MAX_PALEYRS][pInfo]//Создав переменную мы исполуем enum pInfo!

 

Эта функция нам необходима для сохранения аккаунта, куда информация будет сохранятся сделаем позже!
а сейчас сделаем регистрацию( так как я не хочу 3 часа подключать это все к базе данных, я сделаю регистрацию без mysql )
и так переходим в самый низ вашего мода!

image.thumb.png.de28482fb6a0e18b69fd9700e2a835b2.png

 

и пишем следующие:
 


stock SavePlayer(playerid) // stock-(знаю только то что для создание диологов)playerid( для показа того для кого он активирован)
{
	new string[32]; //локальная переменная( можно искользовать только в пределах скобок)([32]- у меня стоит pPass[32] поэтому я тут поставил 32 цел-ое число)
  		new playername[MAX_PLAYERS_NAME];// лок. переменная и масив для получении имени игрока которое стоит у всех в клиенте.
		GetPlayerName(playerid,playername, sizeof(playername));// Получаем имя игрока (нечего объяснять я думаю)
		format(string, sizeof(string), players/%s.ini,playername);//format- формат.строк sizeof(string)-неогр. строки, players/%s-путь где сохраняються.
		iniFile = iniopenFile(string);// Открываем файл по пути которое указали.    (players/%s.ini)
		ini_setString(iniFile,"Pass",Player[playerid][pPass]);// записываем пароль указанный при регистрации
		ini_closeFile(iniFile); // Закрываем файл (нечего объяснять я думаю) 
}

(все раставленно ровно,при изминени получите варнинг от павно.)

 

следующий пункт.

 


 

 

Спойлер

 

2.Создание регистрации и авторизации

 

система регистрации не токая простая как вам кажется с игры, любой разработчик Pawno вам скажет что регистрация это только начало работы.

ищем public OnPlayerConnect; - (когда игроки подключаются проискходит. (и то что вы там прописали, там текстдравы ставится и всякая лабуда которую мы будем делать))


у вас будет так:

Вписываем новую переменную ко всем невам.

 


new PAccount[MAX_PLAYERS];// Есть аккаунт, или нет

 

потом у вас будет так:

image.png.687320fbec7412ab7778d521ab75eae2.png

 

как я написал уже , нужно писать в OnPlayerConnect.
 

вписываем это

 


public OnPlayerConnect(playerid)
{
	new playername[MAX_PLAYER_NAME];// Масив имени игрока, для регистрации его ника
	new string[128];// Путь до папки с именем игрока ( мы указывали в пункте Масивы и сохранения)(желательно поставить 128 масив в переменной string)
	GetPlayerName(playerid,playername,sizeof(playername));// Узнаём имя игрока с папки players.
	format(string,sizeof(string),"players/%s.ini", playername);// Путь к файлу с аккаунтом
	if(fexist(string))// Проверка на файл, если он есть то выполняется следующее действие.
	{
		PAccount[playerid] = 1;// Если аккаунт присутствует то будет 1, т.е авторизация.
	}
	else
	{
		PAccount[playerid] = 0;// если аккаунта нету то выполняется регистрация.
	}
	return 1;
}

 

Получится так:

 

image.thumb.png.dc2846884dad8d0c57c978c977397424.png

 

фухх как я устал писать))

вообщем не отстаем писать.

переходим к public OnPlayerRequestClass ( OnPlayerRequestClass - паблик для хранений диологов (не путайте со сток).

и пишем далее:

 


	if(PAccount[playerid] == 1)// Если аккаунт есть
        {
            ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте!\nВаш аккаунт уже зарегестрирован на сервере!\nВведите свой настаящий пароль в окно","Ввод","");// Показываем диалог входа в игру. Стиль диалога выставляем на ввод текста.
        }
        else// Если аккаунта нет
        {
            ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте!\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации. Стиль диалога выставляем на ввод текста.
        }

вы сами сможете стамбулировать или скачать любой тамбулятор(не реклама) в интернете

я много чего объяснял и тут вы уже поймете что к чему в надписях выше

а какие существуют диалоги, короче вся инфа снизу!

теперь впишите это в конец мода(писать долго будет но попытайтесь написать, так лучше поймете язык павно)
 


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);// Создаём файл с именем игрока в папке players
                if(iniFile < 0)// Если Файла нет
                {
                        iniFile = ini_openFile(string);// Открываем
                }
                if(iniFile >= 0)// Если файл есть
                {
                        strmid(Player[playerid][pPass],password,0,strlen(password),255);// Присваиваем масиву pPass, значение password[]
                        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,"Добро пожаловать на наш сервер");// Выводим игрок сообщение
		SpawnPlayer(playerid);// Спавним игрока
	}
return 1;
}



и так переходим в последний на сегодня пункт, переходим в OnDialogResponse

и пишем:

 


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// Если игрок нажал Esc, вернём ему диалог
            {
                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// Если игрок нажал Esc, вернём ему диалог
            {
            ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации.
            }
        }


на этом все запускаем сервер и наслаждаемся новой регистрацией!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 


Все что вам нужно узнать с этого урока:

mxINI - библиотека функций (используют вместо mysql, типо база данных только находятся в файлах а не в сети)
new - переменная сохраняющийся в себе информацию,
------ new ------
str - string ( целое ) %s -строки цыфры, число или слово
float - (вещественное) %d - 0.0, числа, к примеру целое равно 3, вы его перевели на флоат и получилось 3.0 или 3.00000
все что покачто знаю я и мне это помогает.
--------------------
Диалоги

DIALOG_STYLE_INPUT
DIALOG_STYLE_LIST

DIALOG_STYLE_WEAPON

DIALOG_STYLE_REG 
как я помню) 
----------------------------------------------------------------------
Спасибо тем кто поддержал меня и так же писали в коментарии что так что не так, ценю всех особенно EgasVegas  
выкладывать пытаюсь каждый день так что до завтра,ожидайте новый урок!

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Ilya_Turchenko

Что делать?

Снимок.PNG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
failed

Не вижу смысла этого поста, так как в ютубе есть видео, которые более понятны

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Yarik_Criminalovski

Почему столько ошибок? 

Спойлер

C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(28) : error 001: expected token: ";", but found "new"
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(30) : error 001: expected token: ";", but found "public"
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(57) : warning 217: loose indentation
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(60) : warning 217: loose indentation
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(60) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(60) : error 004: function "Itter_OnPlayerConnect" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(77) : warning 225: unreachable code
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(77) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(77) : error 004: function "Itter_OnPlayerDisconnect" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(82) : warning 225: unreachable code
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(82) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(82) : error 004: function "OnPlayerSpawn" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(87) : warning 225: unreachable code
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(87) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(87) : error 004: function "OnPlayerDeath" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(92) : warning 225: unreachable code
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(92) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(92) : error 004: function "OnVehicleSpawn" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(97) : warning 225: unreachable code
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(97) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(97) : error 004: function "OnVehicleDeath" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(102) : warning 225: unreachable code
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(102) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(102) : error 004: function "OnPlayerText" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(107) : warning 225: unreachable code
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(107) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(107) : error 004: function "dc_cmd_OnPlayerCommandText" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(112) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(112) : error 004: function "OnPlayerEnterVehicle" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(117) : warning 225: unreachable code
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(117) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(117) : error 004: function "OnPlayerExitVehicle" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(122) : warning 225: unreachable code
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(122) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(122) : error 004: function "OnPlayerStateChange" is not implemented
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(127) : warning 225: unreachable code
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(127) : error 029: invalid expression, assumed zero
C:\Users\Yaroslav\Desktop\Новая папка\gamemodes\Smoutch.pwn(127) : error 004: function "OnPlayerEnterCheckpoint" is not implemented

Код:

//-------------------------Includes--------------------------//
#include <a_samp>
#include <mxINI>
#include <a_mysql>
#include <streamer>
#include <sscanf2>
#include <crp>
#include <dc_cmd>
#include <foreach>
//-------------------------Define---------------------------//
main()
{
    print("\n----------------------------------");
    print(" Smoutch RolePlay ");
    print("----------------------------------\n");
}
#define SERVER_NAME                 "Smoutch RolePlay"
#define SERVER_MODE                 "Smoutch"
#define SERVER_MAP                  "Russian"
#define SERVER_SITE                 "test"

enum pInfo //Название
{
    pPass[64], // Сохранение пароля. 64 Символа
}
//----------------------------{New}------------------//
new Player[MAX_PLAYERS][pInfo]
new PAccount[MAX_PLAYERS]

public OnGameModeInit()
{
    SetGameModeText(SERVER_MODE);
    SendRconCommand("hostname "SERVER_NAME);
    SendRconCommand("mapname "SERVER_MAP);
    SendRconCommand("weburl "SERVER_NAME);
    SetGameModeText("Smoutch RolePlay");
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 93.5223,1337.2987,29.4460);
    SetPlayerCameraLookAt(playerid, 93.5223,1337.2987,29.4460);
    if(PAccount[playerid] == 1)// ???? ??????? ????
        {
            ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Вход","Здравствуйте!\nВаш аккаунт зарегистрирован на сервере!\nВведите ваш пароль ниже","Ввод","");// ?????????? ?????? ????? ? ????. ????? ??????? ?????????? ?? ???? ??????.
        }
        else
        {
            ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация","Здравствуйте!\nВаш аккаунт не зарегестрирован на сервере.\nЗарегестрируйтесь введя пароль в поле ниже","Далее","");// ?????????? ?????? ???????????. ????? ??????? ?????????? ?? ???? ??????.
    return 1;
}

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;
    }
    else
    {
        PAccount[playerid] = 0;
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}

stock SavePlayer(playerid) 
{
    new string[32];
          new playername[MAX_PLAYERS_NAME];
        GetPlayerName(playerid,playername, sizeof(playername));
        format(string,? sizeof(string), players/%s.ini,playername);
        iniFile = iniopenFile(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,"Вас приветствует Smoutch RP!");
        SpawnPlayer(playerid);
    }
return 1;
}
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// ???? ????? ????? Esc, ?????? ??? ??????
            {
                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// ???? ????? ????? Esc, ?????? ??? ??????
            {
            ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация","Здравствуйте!\nВаш аккаунт не зарегестрирован на сервере.\nЗарегестрируйтесь введя пароль в поле ниже","Далее","");// ?????????? ?????? ???????????.
            }
        }

 

Изменено пользователем mikilov
Добавил спойлер (код)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.