В теме 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 пользователей онлайн

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

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

    • Jasper231
      От Jasper231
      Идет набор в команду для создания CRMP MOBILE проекта. Нам нужны
      1) Кодеры
      2) Мапперы
      3) Люди которые вообще разбираются в создании серверов
       
      об зарпалте договоримся и об остальном поговорим в вк: @haslyyyim
    • otec
      От otec
      Копия радмира
      ║☑️Название CORVUS CRMP
      ║☑️Сервер у которого есть будущее и будет
      ║☑️Адекватная администрация
      ║☑️Идут наборы в Лидеры, Админы.
      ║☑️Вступайте в Telegram: t.me/corvusgta « Вступай!
      ║☑️Вступайте в ВКонтакте: vk.com/corvus_crmp « Вступай!
      ║☑️Постоянные ПРИЗЫ - МП | Интересный Мод
      ║☑️Все новости - обновления в Telegram и ВКонтакте
      ║☑️Сайт - corvus-crmp.ru
      ║☑️Форум - forum.corvus-crmp.ru
      ║☑️Скачать лаунчер - corvus-crmp.ru
      ║☑️Заходи мы ждем тебя
      ║☑️В случае возможных ошибок пишите сюда:@corvus_help_bot
    • vicegame
      От vicegame
      Доброго времени суток уважаемые форумчане
      Хочу представить наши услуги и цены:
      GTA SAMP от 75руб
      GTA CRMP от 75 руб
      GTA MTA от 120 руб
      Для каждого тарифа неограниченные слоты, оплата только за ресурсы 
      Удобная панель управления и широкий функционал 
      Работаем с 2023 года!
       
      Также имеются БЕСПЛАТНЫЕ тарифы для (ознакомительных целей)
       
      Мощные процессоры Ryzen 5950X (Германия)
       
      Платежная система YooKassa на борту:
      Банковские карты
      SberPay
      TinkoffPay
      Yoomoney

      Ссылка на хостинг: ТЫК