Игровой Портал State Texas RolePlay and Drift 4 You
Игровой Портал State Texas RolePlay and Drift 4 You
Игровой Портал State Texas RolePlay and Drift 4 You


 

Поделиться
 

 Полноценная регистрацию на mxINI.inc

Предыдущая тема Следующая тема Перейти вниз 
АвторСообщение
Felave
Пользователь
Пользователь
Felave

Сообщения : 125
Город : Нижний Новгород
Репутация : 44

Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2012-07-04, 13:15

Я решил научить делать полноценную регистрацию на mxINI.inc в диалоговых окнах.
Для начала скачиваем инклюд mxINI, если у вас его нету Скачать mxINI.inc
Как скачали заходим в папку с сервом и заливаем в pawno/include.

Теперь приступим к уроку...

Прописываем в начале мода:
Код:
#include <mxINI>
Теперь к enum добавляем
Код:
enum pInfo {
    pMoney, // Сохраняет кол-во денег.
    Float:pHeal, // Сохраняет кол-во жизней.
    Float:pArmour, // Сохраняет кол-во брони.
    Kills,//сохраняет убийства
    Deaths//сохраняет смерти
};
new PlayerInfo[MAX_PLAYERS][pInfo];// создадим массив со статистикой
Теперь в public OnPlayerConnect:
Код:
logged[playerid] = 0;       
new PlayerName[MAX_PLAYER_NAME];
                GetPlayerName(playerid,PlayerName,sizeof(PlayerName)); // Получаем имя игрока
                new account[128];
                format(account,sizeof(account),"users/%s.ini",PlayerName); //Создадим аккаунт
                {
                if(!fexist(account)) //Если такого аккаунта нет,то...
                {
                ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT, "Регистрация", "Зарегистрируйся \nПароль ниже:", "Регистр", ""); //Выдаем диалог с регой
                }
                else
                {
                ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Авторизация", "Авторизуйся \nПароль нижу:", "Логин", ""); //Если аккаунт существует, то выдаем авторизацию
                }
                }
Ищем public OnDialogResponse
Код:
if(dialogid == 1) //Регистрация
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Регистрация", "Ну зарегистрируйся ты уже! \nПароль ниже:", "Ок", "");
        if(response)
        {
            new PlayerName[MAX_PLAYER_NAME];
            GetPlayerName(playerid,PlayerName,sizeof(PlayerName)); //Узнаем имя игрока
            new account[128];
            format(account,sizeof(account),"users/%s.ini",PlayerName);//проверяем. Есть ли этот акк в папке users
            if(fexist(account)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Авторизация", "Авторизуйся! \n Пароль ниже:", "Логин", ""); //авторизуем его, если есть акк
            new iniFile = ini_createFile(account); //создаем акк
            if(iniFile < 0) ini_openFile (account); //если файл пустой, то
            {
                ini_setString(iniFile,"Пароль",inputtext); //Пароль
                ini_setInteger(iniFile, "Money", 5000); // Создаем файл аккаунта с кол-вом денег 5000
                ini_setFloat(iniFile, "Heal", 100.0); // Создаем файл аккаунта с кол-вом Здоровья
                ini_setFloat(iniFile, "Armour", 100.0); // Создаем файл аккаунта с кол-вом Брони
                ini_setInteger(iniFile, "Kills", 0); // Ну тут убийства
                ini_setInteger(iniFile, "Deaths", 0); // Смерти
                ini_closeFile(iniFile); //закроем файл
                ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Авторизация", "Авторизуйся:", "Логин", "");
            }
        }
        else //Если этот вася захочет обойти регу и нажмет на Esc, то даем ему опять диалог
        {
            ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Регистрация", "Регистрируйся, червь:", "Ок", "");
        }
    }
    if(dialogid == 2)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Авторизация", "Авторизуйся! \nПароль ниже:", "Логин", "");
        if(response)
        {
            new PlayerName[MAX_PLAYER_NAME], password[64];
            GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
            new account[128];
            format(account,sizeof(account),"users/%s.ini",PlayerName);
            if(IsPlayerNPC(playerid))return 1;
            new iniFile = ini_openFile(account);
            ini_getString(iniFile, "Пароль",password); // Узнаём пароль аккаунта.
            if(!strcmp(inputtext, password, true))
            {
                ini_getInteger(iniFile, "Money", PlayerInfo[playerid][pMoney]); // Записываем данные в переменную
                ini_getFloat(iniFile, "Heal", PlayerInfo[playerid][pHeal]);
                ini_getFloat(iniFile, "Armour", PlayerInfo[playerid][pArmour]);
                ini_getInteger(iniFile,"Kills", PlayerInfo[playerid][Kills]);
                ini_getInteger(iniFile,"Deaths", PlayerInfo[playerid][Deaths]);
        SetPlayerHealth(playerid, PlayerInfo[playerid][pHeal]);
        SetPlayerArmour(playerid, PlayerInfo[playerid][pArmour]);
                GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
                ini_closeFile(iniFile);
                SpawnPlayer(playerid);
                return 1;
            }
            else
            {
                SendClientMessage(playerid, COLOR_RED, "Сервер: Пароль неверный");
                ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Авторизация", "Авторизуйся ты наконец:", "Ок", "");
                return 1;
            }
        }
        else //Клавиша Esc
        {
            ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Авторизация", "Авторизовывайся,рачок:", "Ок", ""); // выдаем диалог, если нажмет на кнопку Esc
        }
    }
Далее добавляем в public OnPlayerDeath
Код:
PlayerInfo[killerid][Kills]++;// добавляем килл убийце
PlayerInfo[playerid][Deaths]++; //добавляем смерть убитому
В начало добавляем
Код:
forward SaveAccounts(playerid);//ко всем форвардам, сохранение акков
new saveacctimer;// ко всем массивам, созздадим таймер для сохранения акков
Теперь идем в publicOnGameModeInit():
Код:
saveacctimer = SetTimer("SaveAccounts", 200000, 1);// делаем таймер для сохранения акков
И еще в public OnGameModeExit()
Код:
KillTimer(saveacctimer);
Ну и теперь создаем раздел для сохранения акков:
Код:
public SaveAccounts(playerid)
{
    for(new i=0; i<MAX_PLAYERS; i++)
    {
        new PlayerName[MAX_PLAYER_NAME], account[128];
        GetPlayerName(i,PlayerName,sizeof(PlayerName));
        format(account,sizeof(account), "users/%s.ini", PlayerName);
        new iniFile = ini_openFile(account);
        ini_setInteger(iniFile, "Money", GetPlayerMoney(i));
        ini_setInteger(iniFile,"Kills", PlayerInfo[i][Kills]);
        ini_setInteger(iniFile,"Deaths", PlayerInfo[i][Deaths]);
        GetPlayerHealth(i,PlayerInfo[i][pHeal]);
        ini_setFloat(iniFile, "Heal", PlayerInfo[i][pHeal]);
        GetPlayerArmour(i,PlayerInfo[i][pArmour]);
        ini_setFloat(iniFile, "Armour", PlayerInfo[i][pArmour]);
        ini_closeFile(iniFile);
        SendClientMessage(i, COLOR_WHITE, "Аккаунт сохранен");// для теста добавим
    }
    return 1;
}
Теперь создадим проверку на логин, чтобы игрок не смог писать в чат.
Ко всем news
Код:
new logged[MAX_PLAYERS];// массив залогинности игрока=)
Далее вставляем в public OnPlayerDisconnect
Код:
logged[playerid]=0;
И в public OnPlayerSpawn
Код:
logged[playerid] = 1;
И наконец добавляем в public OnPlayerText
Код:
if(logged[playerid] == 0)
{
    SendClientMessage(playerid, COLOR_RED, "Система:чтобы писать в чат авторизуйся!");
    return 0;
}
Автор урока:HaWk69
Редактор и оформитель:Felave
Вернуться к началу Перейти вниз
Medium
Создатель
Создатель
Medium

Сообщения : 1612
Город : State Texas
Репутация : 165

Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Re: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2012-07-04, 13:23

Никита красава, по твоим урокам реально уже можно делать готовый новый уникальный мод спасибо +
Вернуться к началу Перейти вниз
Laskoviy
Пользователь
Пользователь
Laskoviy

Сообщения : 270
Репутация : 9

Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Re: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2012-07-04, 13:23

и мне нравится как он создает публикации, хороший человек тоже + Mad
Вернуться к началу Перейти вниз
Felave
Пользователь
Пользователь
Felave

Сообщения : 125
Город : Нижний Новгород
Репутация : 44

Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Re: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2012-07-04, 13:26

Вы меня прям засмущали Very Happy
Вернуться к началу Перейти вниз
Laskoviy
Пользователь
Пользователь
Laskoviy

Сообщения : 270
Репутация : 9

Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Re: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2012-07-04, 13:26

ахахах Very Happy Very Happy Полноценная регистрацию на mxINI.inc  845015606 Полноценная регистрацию на mxINI.inc  845015606
Вернуться к началу Перейти вниз
Felave
Пользователь
Пользователь
Felave

Сообщения : 125
Город : Нижний Новгород
Репутация : 44

Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Re: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2012-07-04, 13:27

Surprised
Вернуться к началу Перейти вниз
Medium
Создатель
Создатель
Medium

Сообщения : 1612
Город : State Texas
Репутация : 165

Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Re: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2012-07-04, 13:29

Cool Реально парень крут, мне сразу понравился ) ну не в том смысле ) просто как человек )
Вернуться к началу Перейти вниз
Laskoviy
Пользователь
Пользователь
Laskoviy

Сообщения : 270
Репутация : 9

Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Re: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2012-07-04, 13:30

[G4Y]Makc пишет:
Cool Реально парень крут, мне сразу понравился ) ну не в том смысле ) просто как человек )

аха я думал в том смысле) шучу Very Happy
Вернуться к началу Перейти вниз
Felave
Пользователь
Пользователь
Felave

Сообщения : 125
Город : Нижний Новгород
Репутация : 44

Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Re: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2012-07-04, 13:30

Very Happy
Вернуться к началу Перейти вниз
Laskoviy
Пользователь
Пользователь
Laskoviy

Сообщения : 270
Репутация : 9

Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Re: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2012-07-04, 13:31

Полноценная регистрацию на mxINI.inc  845015606
Вернуться к началу Перейти вниз
????????
Гость
Anonymous


Полноценная регистрацию на mxINI.inc  Empty
СообщениеТема: Re: Полноценная регистрацию на mxINI.inc    Полноценная регистрацию на mxINI.inc  Empty2013-02-20, 17:24

Только это делал Romzes !!!!!!!!!! Laughing
Вернуться к началу Перейти вниз
 

Полноценная регистрацию на mxINI.inc

Предыдущая тема Следующая тема Вернуться к началу 
Страница 1 из 1

Права доступа к этому форуму:Вы не можете отвечать на сообщения
Игровой Портал State Texas RolePlay and Drift 4 You :: Корзина :: Архив тем, которые разрешены для просмотра всем пользователям :: Уроки Pawno-
Игровой портал | www.portal-games.com
Рейтинг серверов mmotop
State Texas | YouTube