В теме 2 сообщения

Добрый день, уважаемый читатель! Сегодня я представлю твоему вниманию систему выдачи ранга НЕ по номеру ранга, а по названию. Пример: /giverank [id] [Врач СМП]. 

Итак, думаю можно уже начинать. 

ВНИМАНИЕ! Пишу команды на zcmd / dc_cmd + sscanf. 

Ко всем #define:

//settings 
#define RANK(%0)	/*своя переменная ранга игрока из енума, например: PlayerInfo[%0][pRank] */
#define MEMBER(%0)	/*своя переменная фракции игрока из енума, например: PlayerInfo[%0][pMember] */

Ко всем командам:
 

CMD:giverank(playerid, params[])
{
    //ваша проверка на фракцию, ранг и прочее
    if(sscanf(params, "us[32]", params[0], params[1])) return SendClientMessage(playerid, -1, "Используйте: /giverank [id/часть ника/ник] [Название ранга (до 32 символов)");
    if(strlen(params[1]) == 0 || strlen(params[1]) > 32) return SendClientMessage(playerid, -1, "Разрешенное название от 0 до 32 символов и не более!");
    if(MEMBER[playerid] != MEMBER[params[0]]) return SendClientMessage(playerid, -1, "Игрок не состоит в вашей фракции!");
    new name[MAX_PLAYER_NAME];
    GetPlayerName(params[0], name, sizeof(name));
    static const fmt_str[] = "Игроку %s изменен ранг с %s на %s";
    new str[sizeof(fmt_str) + (-2+24) + (-2+32) + (-2+32)];
    format(str, sizeof(str), fmt_str, name, RANK[params[0]], params[1]);
    strmid(RANK[params[0]], params[1], 0, strlen(params[1]), sizeof(RANK[params[0]]);
    SendClientMessage(playerid, -1, str);
    SendClientMessage(params[0], -1, str);
    return true;
}

Переменную в енуме поменять необходимо из целочисленного типа, в тип строчный. 

Например, было так:
 

pRank,

Изменить нужно на это:
 

pRank[32],

Если у вас на файлах, в сохранении поменяйте ini_GetInteger на ini_GetString. 

Если в бд, поменяйте тип с INT на VARCHAR, длину укажите 32. 

Ну и в запросах аналогично смените. Или создайте новую переменную с уже всем измененным. 

Автор: @vlad

Если у вас возникнут какие-либо вопросы, не стесняйтесь, задавайте их в эту тему, <ИЛИ> создавайте новую. 

 

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


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

Система хорошая в общем, но следует добавить, что если у вас в моде команды, например, по рангу доступны (номеру), то придется все переделывать, или же просто создать новую переменную под название и в рации уже использовать ее. Лично мое предложение. 

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


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

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

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

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

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


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

Войти

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


Войти

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

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

  • Похожий контент

    • Adam_Mafia
      От Adam_Mafia
      Здраствуйте, у меня такая проблема скачал я мап едитор начал делать мапинг удалив обьекты а они не отображаются в Shoe Code. Можно ли как то сделать чтоб там отоброались удаленые обькты. Просто помню раньше было а тут скачал и нет
       

    • deltaSpeed
      От deltaSpeed
      Нужен готовый или кастомный лаунчер SAMP Mobile для Android.
      Поддержка автообновления, загрузки ресурсов, и входа на мой сервер.
      Пишите в ЛС или в Discord: @ndp3042