• Уважаемые пользователи!
    За решением проблем с работой плагинов, компиляцией, падением сервера и прочими обращайтесь в раздел Помощи!
    Данная тема предназначена для обсуждения плагина, его функционала, принципа работы и предложений.
Иконка ресурса

Плагин АМХХ CMSStats Ranks 2.1.4

Нет прав для скачивания
zhorzh78, добрый день, подскажите пожалуйста, как будет правильно сделать вывод сообщения когда игрок достиг определенного Звания.
Например игрок достигает звания (Капитан, или уровень 5), чтобы вывелось в чат Вы достигли %d уровня (звания) проверте Меню
 
zhorzh78, ну например я хочу сделать вывод сообщения игроку в чат
Правильно будет ли так
Код:
if(cmsranks_get_user_level(id) == 5) {
    new cmslvl = cmsranks_get_user_level(id);
    client_print_color(id, print_team_default, "^1[^4Info^1] ^3Вы достигли звания: ^1%d, ^3проверте меню бонусов", cmslvl)
}
Для того чтобы игрок имел инфу если есть запрет для пуктов меню под определенные звания
 
pollfank, Вам же ниже того поста пример показан
C++:
public OnCMSRanksNewLevel(id, Level, LevelName[])
{
    
}
Добавлено:

pollfank, Вам будет проще в словаре изменить
C++:
CMS_NEWLEVEL_ID = ^4Поздравляем! ^1Вы получили новое звание - ^4%L
 
zhorzh78,
Код:
public OnCMSRanksNewLevel(id, Level, LevelName[])
{
    
}
На сколько я понимаю данная ф-ция будет вызываться при любом изменении ранга (уровня) ?
И за чат я тоже думал, но мне нужно чтобы сообщение выводилось именно в тот момент когда игрок достиг допустим 4 или 6 уровня (звания)
 
На сколько я понимаю данная ф-ция будет вызываться при любом изменении ранга (уровня) ?
При любом. В ней и сравнивайте свои уровни. Для этого все есть.
Еще раз внимательнее свой же пост или инклуд..
Форматирование (BB-код):
Вызывается при получении нового уровня.
*    @id - индекс игрока
*    @Level - номер уровня
*    @LevelName - название уровня
 
C++:
public OnCMSRanksNewLevel(id, Level, LevelName[])
{
    проверка на уровень
    client_print_color(id, print_team_default, "^1[^4Info^1] ^3Вы достигли звания: ^1%d, ^3проверте меню бонусов", Level)
}
zhorzh78, то есть если я хочу вывести в чат на определенном уровне сообщение
 
zhorzh78 обновил(а) ресурс CMSStats Ranks новой записью:

Обновление до версии 2.0.0

SQL:
2.0.0
    * адаптация для работы с плагином CMSStats_MySQL 2.х.х
    * плагин самостоятельно добавляет пункты дополнительной статистики для записи в таблицу `csstats_extra_stats` плагином CMSStats_MySQL
   
    + добавлена функция: если плагина статистики нет или учет статистики остановлен, пишет в информере- Стата не учитывается
    + добавлен квар `cmsranks_addxp_into_exp`...

Узнать больше об этом обновлении...
 
можно бы ещё реализовать отключение /anew меню на картах

"aim_*"
"awp_*"
"$*"

полное название карты указывать это не оч, особенно если из 100 карт на сервере 50% aim_ awp_
 
iPlague, Отключение использования поинтов и их начисления можно кваром
C++:
// Бонусы /anew (меню)
// Разрешить использование бонусов (меню /anew)
// Если больше нуля, то с какого раунда будут производиться начисления за Действия
// За получение нового уровня выдается в любом раунде
cmsanew_enable "2"
Как ответили выше, можно создать конфиг для префикса карты (configs/maps/prefix_aim.cfg) и в него прописать cmsanew_enable "0"
 
Это всё хорошо и замечательно, спасибо за экскурс в возможности амх.
Но смысл от сего действия?
Получается, нужно создавать папку, создавать файл, вместо того, что бы в конфиге плагина прописать пару префиксов?
Такая себе оптимизация процесса ?
 
Это всё хорошо и замечательно
Вот и хорошо, что мы нашли обоюдное решение. Если задача решается стандартными средствами, то это решение будет оптимальным во всех случаях.
Получается, нужно создавать папку, создавать файл
Я тоже считаю действия лишними в данном случае) Мне не нужно открывать папку, исходник, вносить правки в код, компилировать, заливать на форум и писать о выходе обновления. Да и вам не нужно скачивать новый файл и заливать на сервер, открывать конфиг и вносить префиксы в него.
 
Вот и хорошо, что мы нашли обоюдное решение. Если задача решается стандартными средствами, то это решение будет оптимальным во всех случаях.

Я тоже считаю действия лишними в данном случае) Мне не нужно открывать папку, исходник, вносить правки в код, компилировать, заливать на форум и писать о выходе обновления. Да и вам не нужно скачивать новый файл и заливать на сервер, открывать конфиг и вносить префиксы в него.
лень двигатель прогресса, но не всегда)
 
zhorzh78 обновил(а) ресурс CMSStats Ranks новой записью:

Обновление до версии 2.1.0

PHP:
2.0.2
    + добавлена поддержка квара игнорирования ботов cmsstats_ignore_bots от CMSStats_MySQL.
    
2.1.0
    + добавлена поддержка натива cmsstats_is_user_write от CMSStats_MySQL.
        Если статистика для игрока не учитывается, данная информация будет указана в информере

Узнать больше об этом обновлении...
 
zhorzh78 обновил(а) ресурс CMSStats Ranks новой записью:

Обновление до версии 1.1.2



Узнать больше об этом обновлении...

Добавлено:


C++:
#include <amxmodx>
#include <cmsstats_ranks>

new aPlayerRest[MAX_PLAYERS + 1][eStandartBonusItems];

public plugin_init()
{
    register_plugin("CMSRanks Bonus Restrict", "1.0.0", "cs-games.club");
}

public OnCMSRanksBonusMenuAction(eBonusMenuAction:iAction, iClient, iMenu, iItem, iBonusId)
{
    if(BONUS_MENU_ITEM_MONEY <= iBonusId <= BONUS_MENU_ITEM_HP)        //если это стандартный бонус, зарегистрированный в конфиге bonus.cfg
    {
        new iRound = cmsranks_get_gameround();        //получим номер текущего раунда
      
        switch(iAction)
        {
            case BONUS_MENU_ITEM_STATUS:        //отловим функцию получения статуса пункта, чтобы сделать его неактивным
            {
                if(aPlayerRest[iClient][iBonusId] == iRound)    //если игрок уже использовал пункт в текущем раунде
                    return ITEM_DISABLED;                        //то сделаем пункт неактивным
          
                return ITEM_IGNORE;                        //иначе, проигнорируем
            }
            case BONUS_MENU_CHOOSE_ITEM:        //отловим функцию выбора игроком пункта меню бонусов
            {
                aPlayerRest[iClient][iBonusId] = iRound;    //запишем номер текущего раунда, в котором пункт был использован последний раз
            }
        }
    }
  
    return PLUGIN_CONTINUE;
}
Пытался скомпилировать плагин что бы можно было тот или иной пункт взять всего один раз за раунд и получил ошибку при компиляции

Код:
AMX Mod X Compiler 1.10.0.5435
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2013 AMX Mod X Team

CMSRanks_Bonus_Restrict.sma(11) : error 025: function heading differs from prototype

1 Error.
Could not locate output file CMSRanks_Bonus_Restrict.amx (compile failed).
 
Mister_X, Дальше что?
Во-первых, это проблема возникла с пользовательскими изменениями. Соответственно автор плагина к ним не имеет никакого отношения.
Во-вторых, в шапке форума русским языком сказано куда требуется обращаться за решением проблем.1631903158783.png
 
Во-первых, это проблема возникла с пользовательскими изменениями
Прошу прощения, НО что Вы имеете виду под пользовательскими изменениями?
Соответственно автор плагина к ним не имеет никакого отношения.
Как это автор плагина не имеет никакого отношения? Это плагин выложил именно автор, а не какой то пользователь. И если Вы по прежнему будете утверждать что автор не имеет к этому никакого отношения то скажите тогда кто же как не автор?
Во-вторых, в шапке форума русским языком сказано куда требуется обращаться за решением проблем.Посмотреть вложение 2448
А сюда я написал, а не в раздел помощи из-за того что плагин ругается конкретно вот на это
Код:
public OnCMSRanksBonusMenuAction(eBonusMenuAction:iAction, iClient, iMenu, iItem, iBonusId)
А эта общая проблема, а не только моя личная - это раз
Во вторых я думал что возможно проблема из-за amxx версии так как у меня сейчас стоит 1.10.0 ... так я скачал 1.9.0, но увы и тут всё без изменений к моему великому сожалению.
И теперь вывод:
Плагин в этой теме для решения вопроса предложил именно автор основного плагина, данная ошибка будет у всех по этому я написал именно сюда не для помощи конкретно мне, а для того что бы автор пофиксил данную ошибку в своем же коде.

P.S. Зайдя в раздел помощь я не обнаружил там где оставлять так сказать заявки для помощи решения данного вопроса. Безымянный.png

А то что там написано про Смайлы, ВВ-коды, Трофеи и т.д. мне не интересно за исключением конечно двух последних пунктов и то там нет ссылки на составление обращения по помощи, а бегать по всем ссылкам и искать заветное тайное место тоже не хочется так как нет на это времени. Это еще одна причина почему написал именно тут, а не там.
И вообще на мой взгляд это вообще раздел не помощи, а информационный раздел.
 
Последнее редактирование:
Назад
Сверху