Не задается деньги и уровень на начале

Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
15 Авг 2024
Сообщения
20
Мне нужно, чтобы на сервере выдавалось после регистрации 1000 виртов и 1 уровень. Настроил Регистрацию, авторизацию выдачу ине работает.
OnDialogResponse:
Pawn:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case 0:
        {
            if(!response)return Kick(playerid);
            if(strlen(inputtext) <= 3 || strlen(inputtext) > 24) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Регистрация", "Пароль слишком длинный или короткий.", "Далее", "Выйти");
            new tmp[24];
            format(tmp, sizeof(tmp), "%s", inputtext);
            return Account(playerid, 1, tmp);
        }   
        case 1:
        {
            if(!response) return Kick(playerid);
            new tmp[24];
            format(tmp, sizeof(tmp), "%s", inputtext);
            return Account(playerid, 2, tmp);
        }
    }
    return 1;
}
#Код
Паблик регистрации и авторизации + в конце выдача денег и уровня
Pawn:
public Account(playerid, mode, pass[24])
{
    new FileName[MAX_PLAYER_NAME+5];
    GetPlayerName(playerid, FileName, sizeof(FileName));
    format(FileName,sizeof(FileName),"%s.ini", FileName);
    new INI = ini_openFile(FileName);
    if(INI == INI_OK)
    {
        switch(mode)
        {
            case 1:
            {
                ini_setString(INI, "password", pass);
                ini_closeFile(INI);
                return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Авторизация", "Введите ваш пароль еще раз для авторизации.", "Далее", "Выход");
            }
            case 2:
            {
                new tmp[24];
                ini_getString(INI, "password", tmp);
                if(strcmp(tmp, pass, false, 24) == 0)
                {
                    playerinfo[playerid][Pass] = tmp;
                    ini_getInteger(INI, "money", playerinfo[playerid][money]);
                    ini_getInteger(INI, "Score", playerinfo[playerid][score]);
                    ini_closeFile(INI);
                    return SendClientMessage(playerid, 0x9EC73DAA, "Вы успешно авторизовались, приятной игры!");
                }
                else
                {
                    return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Авторизация", "Пароль не верен.", "Далее", "Выход");
                }
            }
            case 0:
            {
                ini_closeFile(INI);
                return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Авторизация", "Введите ваш пароль для авторизации.", "Далее", "Выход");
            }
            case 3:
            {
                ini_setString(INI, "password", playerinfo[playerid][Pass]);
                ini_setInteger(INI, "money", playerinfo[playerid][money]);
                ini_setInteger(INI, "Score", playerinfo[playerid][score]);
                ini_closeFile(INI);
                return printf("Аккаунт %s успешно сохранен", FileName);
            }
        }
    }
    else
    {
        INI = ini_createFile(FileName);
        if(INI == INI_OK)
        {
            ini_setString(INI, "password", "");
            ini_setInteger(INI, "money", 500);
            ini_setInteger(INI, "Score", 1);
            ini_closeFile(INI);
            return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "Регистрация", "Добро пожаловать на наш сервер. Этот аккаунт еще не зарегистрирован, поэтому создайте для него пароль. Пароль должен состоять от 4 до 24 символов.", "Далее", "Выйти");
        }
        else return Account(playerid, 0, "");
    }
    return 1;
}
#Код
OnPlayerConnect:
Pawn:
public OnPlayerConnect(playerid)
{
    Account(playerid, 0, "");
    playerinfo[playerid][money] = GetPlayerMoney(playerid);
    GetPlayerHealth(playerid, playerinfo[playerid][health]);
    GetPlayerArmour(playerid, playerinfo[playerid][armour]);
    playerinfo[playerid][score] = GetPlayerScore(playerid);
    GivePlayerMoney(playerid, playerinfo[playerid][money]);
    return 1;
}
#Код
OnPlayerDisconnect:
Pawn:
public OnPlayerDisconnect(playerid, reason)
{
    Account(playerid, 3, "");
    playerinfo[playerid][money] = 0;
    playerinfo[playerid][score] = 0;
    return 1;
}
#Код
 
Пользователь
Регистрация
8 Янв 2025
Сообщения
48
Ну какие файлы для хранения игроков в 2025 году? Учеба, учебой... Но, это не серьезно. Надо использовать mysql

Переходим в
Код:
case 3:
            {
                ini_setString(INI, "password", playerinfo[playerid][Pass]);
                ini_setInteger(INI, "money", playerinfo[playerid][money]);
                ini_setInteger(INI, "Score", playerinfo[playerid][score]);
                ini_closeFile(INI);
                return printf("Аккаунт %s успешно сохранен", FileName);
            }
и меняем:
Код:
ini_setInteger(INI, "money", playerinfo[playerid][money]);
ini_setInteger(INI, "Score", playerinfo[playerid][score]);

на:
Код:
ini_setInteger(INI, "money", 500);
ini_setInteger(INI, "Score", 1);
 
Сверху