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

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

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

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

Сис-ма регистрации -диалоги- используя SII

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

Sanek_M

Специалист
Сис-ма регистрации -диалоги- используя SII​


Что это?​
Это простой мануал по созданию регистрации используя SII.

Шаг 1

Скачаем инклуд Ссылка: .Закинем инклуд в Pawno > include.​

Шаг 2​
Добавим инклуд в самый верх вашего мода/скрипта​
PHP:
#include <SII>
SII инклуд содержит все нужные нам функции для создания сис-мы регистрации​

Шаг 3​
Добавим Define'ы диалогов​
PHP:
#define DIALOG_REGISTER 2000
#define DIALOG_LOGIN 2001
Шаг 4
Добавим цвета​
PHP:
#define WHITE "{FFFFFF}"
#define RED "{F81414}"
#define GREEN "{00FF22}"
#define LIGHTBLUE "{00CED1}"
Шаг 5​
Создадим new под define'ами​
PHP:
new gPlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
Шаг 6​
Добавим enum​
PHP:
enum pInfo
{
    pPass,
    pScore,
    pCash,
    pAdmin,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
Шаг 7​
​
Добавим stock​
PHP:
stock getINI(playerid)
{
  new account[64];
  format(account,30,"Users/%s.ini",gPlayerName[playerid]);
  return account;
}
stock функция загрузит файлы​

Шаг 8​
Мы будем использовать родную функцию 'fexist', чтобы искать наш файл. Параметры установлены к нашей функции запаса, которую мы создали. Если файл будет существовать, то Вы получите диалог 'Логина'. Если аккаунта не будет, то Вы получите диалог регистрации.​
​
PHP:
public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid, gPlayerName[playerid], MAX_PLAYER_NAME);
    if (fexist(getINI(playerid)))
    {
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""WHITE"Логин",""WHITE"Напишите вашь пароль.","Логин","Выйти");
    }
    else
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""WHITE"Регистрация",""WHITE"Напишите вашь пароль,чтобы создать аккаунт.","Регистрация","Выйти");
    }
    return 1;
}
Шаг 9​
Теперь идем в OnDialogResponse и добавляем следующее туда:​
PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch( dialogid )
    {
        case DIALOG_REGISTER:
        {
            if (!response) return Kick(playerid);
            if (response)
            {
                if(!strlen(inputtext)) {
                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""WHITE"Регистрация",""RED"Вы ввели неправильный пароль.\n"WHITE"Напишите ниже вашь пароль для регистрации.","Регистрация","Выйти");
                }

                if(INI_Open(getINI(playerid))) {
                INI_WriteString("Password",inputtext);
                INI_WriteInt("Score",1);
                INI_WriteInt("Cash",5000);
                INI_WriteInt("Admin",0);

                INI_Save();
                INI_Close();

                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""WHITE"Логин",""WHITE"Напишите ниже вашь пароль.","Логин","Выйти");
            }
        }
    }
        case DIALOG_LOGIN:
        {
            if ( !response ) return Kick ( playerid );
            if( response )
            {
                if(!strlen(inputtext)) {
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, ""WHITE"Логин",""RED"Вы ввели неправильный пароль.\n"WHITE"Напишите вашь пароль,чтобы войти.","Логин","Выйти");
                }

                if(INI_Open(getINI(playerid))) {
                INI_ReadString(PlayerInfo[playerid][pPass],"Password",20);

                if(strcmp(inputtext,PlayerInfo[playerid][pPass],false)) {
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, ""WHITE"Логин",""RED"Вы ввели неправильный пароль.\n"WHITE"Напишите вашь пароль,чтобы войти.","Логин","Выйти");
                }

                SetPlayerScore( playerid, INI_ReadInt("Score" ) );
                ResetPlayerMoney( playerid );
                GivePlayerMoney( playerid, INI_ReadInt( "Cash" ) );
                PlayerInfo[playerid][pAdmin] = INI_ReadInt("Admin");
                INI_Close();
                }
            }
        }
    }
    return 1;
}
Шаг 10​
Итак,наконец надо сделать сохранение статистики,когда игрок выходит с сервера.​
PHP:
public OnPlayerDisconnect(playerid, reason)
{
    if(INI_Open(getINI(playerid))) {
    
    INI_WriteInt("Score",PlayerInfo[playerid][pScore]);
    INI_WriteInt("Cash",PlayerInfo[playerid][pCash]);
    INI_WriteInt("Admin",PlayerInfo[playerid][pAdmin]);

    INI_Save();
    INI_Close();
    }
    return 1;
}
На этом все)


Ссылка:
Статистика:
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу