ReHLDS/HLDS Level System by CSStats [1.5.9]

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.522
Симпатии
525
Пол
Мужской
#1
Автор: Radius
Версия: 1.5.9
Доверие к автору 100%
, но плагины распространяются без исходного кода, поэтому используйте на свой страх и риск.
Внимание: Описание плагина от версии 1.4.9 , поэтому функционал может отличаться.

Описание:

Плагин представляет собой систему с практически неограниченным количеством уровней, которая дает возможность игрокам сервера накапливать опыт, повышать уровень и получать за это бонусы. Бонусы выдаются навсегда, тем самым поощряя игрока за время проведенное на сервере.

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

  • New: плагин самостоятельно сохраняет очки опыта и можно не бояться переполнения/обнуления общей или личной статистики
  • New: возможность компиляции плагина в режиме интеграции с плагином Admin Loader версии 1.5 и выше от neygomon и admin_loader от mazdan (kanagava) с целью получения флагов доступа через предоставляемое API (#define ADMIN_LOADER_INTEGRATION)
  • возможность самостоятельного добавления уровней по мере необходимости (см. level_system.ini)
  • возможность задавать собственные названия для каждого, только для определенных уровней или не указывать вовсе (см. level_system.ini)
  • возможность настройки необходимого количества очков для достижения уровня (см. level_system.ini)
  • возможность настройки бонусов для каждого или только для определенных уровней (см. level_system.ini)
  • возможность задать ограничение на использование чата и микрофона в зависимости от уровня игрока (квары ls_voice_access_start_level и ls_chat_access_start_level)
  • возможность задать звук, который будет проигрываться всем при достижении нового уровня
  • возможность отключения отображения информеров с помощью команды чата /level, с сохранением выбора и восстановлением при следующем подключении игрока
  • все квары и команды для удобства настраиваются в конфигурационном файле level_system.cfg
  • поддержка многоязычности ("addons/amxmodx/data/lang/level_system.txt")
  • совместим с VoiceTranscoder v2.0RC1 и VoiceTranscoder AMXX API Provider

Требования:
  • AMXX 1.8.2 или выше (CSX или CSX Extended).
Установка:
  • Залить содержимое архива на сервер.
  • Прописать level_system.amxx в plugins.ini
  • Перезагрузить сервер
  • Настроить level_system.cfg (папка cstrike/addons/amxmodx/configs)
  • Перезапустить сервер
Команды
  • add_rank_points "<steam_id | ALL>" [<количество очков>] - консольная команда, которая добавляет rank points по steamid игрока
steam_id | ALL - обязательный параметр, отвечающий за идентификатор по которому будут добавляться очки. Значение 'ALL', означает что нужно добавить очки всем присутсвующим на сервере игрокам
количество очков - необязательный параметр, отвечающий за количество добавляемых очков. Если не указывать, то можно узнать текущее количество очков у игрока

  • set_rank_points "<steam_id>" <количество очков> - консольная команда, которая устанавливет игроку rank points по steamid
steam_id - обязательный параметр, отвечающий за идентификатор по которому будут устанавливаться очки
количество очков - обязательный параметр, отвечающий за количество добавляемых очков

Информация:
  • level_system.cfg, level_system.ini и level_system.txt создаются автоматически после первого перезапуска сервера
Настройки в level_system.cfg
C++:
// Уровень дебаг-логов. 0 - отключено
ls_debug_level "0"

// Минимальное количество очков, с которого становится доступен микрофон
ls_min_voice_access_points "25"

// Минимальное количество очков, с которого становится доступен чат
ls_min_chat_access_points "25"

// Путь к файлу звука, который будет проигрываться всем при достижении нового уровня
ls_level_up_sound "level_system/smb_powerup.wav"

// Путь к файлу звука (wav или mp3), который будет проигрываться игроку если у него нет доступа к микрофону или чату.
// Если квар пустой, то звук не проигрывается
ls_no_access_sound "buttons/button2.wav"

// Количество дополнительных очков, которые будут выдаваться игроку за убийство в голову
ls_headshot_bonus "1"

// Выдавать (1) или нет (0) бонусы. Пригодится для отключения на определенных картах
ls_give_bonus "1"

// Номер раунда, с которого начнут выдаваться бонусы
ls_give_bonus_start_round "3"

// RGB цвет и XY координаты HUD сообщения, который отвечает за верхний информер
ls_upper_informer_hud_msg "127 127 127 | 0.02 0.26"

// RGB цвет и XY координаты HUD сообщения, который отвечает за нижний информер
ls_bottom_informer_hud_msg "127 127 127 | -1.0 0.75"

// RGB цвет и XY координаты HUD сообщения, которое показывается при наведении на игрока
// Данная функция учитывает в работе значение квара mp_playerid
ls_player_info_hud_msg "127 127 127 | -1.0 0.55"

// Максимальная дистанция, на которой будет отображаться информация при наведении на игрока
// Если значение 0, то отображается стандартная информация
ls_player_info_distance "500"

// Флаги иммунитета от ограничения использования чата по уровням
// Если флаги перечислены через запятую, то для доступа необходим любой из них, иначе необходимы все
ls_chat_access_immunity_flags "a"

// Флаги иммунитета от ограничения использования микрофона по уровням
// Если флаги перечислены через запятую, то для доступа необходим любой из них, иначе необходимы все
ls_voice_access_immunity_flags "a"

// Флаги доступ к бонусам, пригодится чтобы не выдавать бонус игрокам у которых и так много привилегий
// Если флаги перечислены через запятую, то для доступа необходим любой из них, иначе необходимы все
ls_bonus_access_flags "all"

// Флаги доступ к консольным командам, изменяющим очки опыта
// Если флаги перечислены через запятую, то для доступа необходим любой из них, иначе необходимы все
ls_points_cmd_access_flags "l"

// Минимальное количество очков, которое должен набрать игрок для их сохранения
ls_min_save_points "10"

// Максимальное количество денег у игрока, которые не будут превышены бонусом 'add_money'
ls_max_money "16000"

// Показывать верхний информер только живым игрокам (1) или всем (0)
ls_show_upper_hud_informer_alive_only "0"

// Команда, которая включает/отключает отображение верхнего и нижнего информеров (+ сообщение и звук повышения уровня)
ls_toggle_informer_visibility_cmd "say /level"

// Время хранения данных игрока (в секундах) с момента последнего посещения (по умолчанию месяц)
// Обнуляются очки опыта и статус отображения информеров
ls_data_storage_time "2592000"
native get_user_rank_data(id); native функция которая получает все данные о ранге игрока (кол-во очков, индекс ранга, название ранга).

C++:
/*
* Получает информацию о ранге игрока
*
* @ param index      индекс игрока
* @ param rank_index индекс ранга игрока, который будет записан в переданную переменную по ссылке
* @ param rank_name  массив под строку, в которую будет записано название ранга игрока
* @ param size       количество символов, которые будут записаны в rank_name
*
* @return           количество rank points игрока, -1 если игрок не подключен
*/

native get_user_rank_data(index, &rank_index, rank_name[], size);
Список изменений:

## 1.5.9 (05 апр 2018г):
### Добавлено
- добавлена native функция ls_toggle_informer_visibility, с помощью которой можно добавить игроку очки опыта.
Прототип функции: native ls_toggle_informer_visibility(index);
Функция возвращает текущее состояние информера (0 - выкл, 1 - вкл)

- добавлена native функция ls_add_rank_points, с помощью которой можно добавить игроку очки опыта.
Прототип функции: native ls_add_rank_points(index, rank_points);
Функция возвращает результирующие очки опыта (с учетом тех что добавлялись)

- добавлен квар ls_headshot_bonus, отвечающий за количество дополнительных очков, которые будут выдаваться игроку за убийство в голову
- автоматическое определение наличия главного плагина сборки Пушки Лазеры и загрузка очков опыта из rank_points.vault (по стандарту из level_system.vault)
- автоматическое определение наличия главного плагина сборки Пушки Лазеры и создание level_system.ini для него (отличается кардинально от стандартного)
- добавлен квр ls_player_info_hud_msg, отвечающий за RGB цвет и XY координаты HUD сообщения, которое показывается при наведении на игрока

- в дополнение к именам функций в качестве бонуса, добавлена возможность указывать 2 целочисленных аргумента
Пример: func 'set_knife_kill_award 1 100' (вызов функции из другого плагина и передача минимального и максимального значения)

- добавлена возможность в level_system.ini указывать имена функций в качестве бонуса. Пригодится для интеграции с другими плагинами.
Пример: func имя функции без аргументов. Вызываемая функция должна быть public и принимать id игрока в качестве аргумента.

- добавлена возможность в level_system.ini указывать имена команд в качестве бонуса. Пригодится для интеграции с другими плагинами.
Пример: cmd 'имя команды'. Одинарные кавычки нужны если команда имеет аргументы.

- добавлена поддержка плагина Admin Loader версии 3.2.6 и выше, для того чтобы корректно работала выдача бонусных флагов доступа
- реклама в консоли игрока при подключении

### Изменено
- бонусы здоровья и брони теперь выдаются без задержки, так как раньше видно было изначальные цифры при возрождении (теперь как в сборке Пушки Лазеры)
- квары отвечающие за настройку HUD сообщений (оканчивающиеся на _pos и _color), объединены в один квар где значение цвета и координат разделяется символом '|'

Версия 1.5.0 (03 ноя 2017г):
[MISC] добавлен звук повышения уровня из Gungame, но в лучшем качестве. В связи с этим изменено значение квара ls_level_up_sound с 'level_system/clapping.wav' на 'level_system/smb_powerup.wav' (старый звук присутствует в архиве)
[USABILITY] изменен путь к файлам звуков плагина с 'sound/misc/level_system' на 'sound/level_system'
[USABILITY] в верхнем информере добавлено отображение количества полученных очков с момента последнего обновления
[ADD CVAR] добавлен квар ls_reset_ranks, который при значении 1 обнуляет все очки опыта и статус отображения информеров, после возвращает значение в 0 (но не обнуляет csstats.dat, данные по прежнему могут быть загружены из него)
[ADD CVAR] добавлен квар ls_data_storage_time, отвечающий за время хранения данных игрока (в секундах) с момента последнего посещения (по умолчанию месяц)

[ADD CVAR] добавлен квар ls_toggle_informer_visibility_cmd, отвечающий за команду, которая включает/отключает отображение верхнего и нижнего информеров (+ сообщение и звук повышения уровня)
[ADD CVAR] добавлен квар ls_show_upper_hud_informer_alive_only, который задает отображение верхнего информера только живым игрокам (1) или всем (0)
[MISC] максимальное значение очков в информере при его достижении становится равным текущему значению очков игрока
(раньше 10 001/10 000, теперь 10 001/ 10 001, при условии что 10000 максимальное значение очков опыта)

[ADD CVAR] добавлен квар ls_no_access_sound, отвечающий за путь к файлу звука (wav или mp3), который будет проигрываться игроку если у него нет доступа к микрофону, чату
[USABILITY] игроку, который отключил отображение информеров, не проигрывается звук и не показываются сообщения о получении игроками новых уровней. Сделано для тех кто хочет играть без лишней информации (предложено Bullseye)
[IMPORTANT INFO] требуется обновление (резервная копия + удаление) 'addons\amxmodx\configs\level_system.cfg' и 'addons\amxmodx\data\lang\level_system.txt'
[MISC] плагин теперь работает в режиме интеграции с плагином Gag Me и блокирует голос и чат через его API (тем самым уменьшая нагрузку). Плагин Level System не требует наличие плагина Gag Me, все будет работать и без него
[ADD CVAR] добавлен квар ls_min_voice_access_points, отвечающий за минимальное количество очков, с которого становится доступен микрофон
[ADD CVAR] добавлен квар ls_min_chat_access_points, отвечающий за минимальное количество очков, с которого становится доступен чат
[REMOVE CVAR] удалены квары ls_voice_access_start_level и ls_chat_access_start_level, так как их заменили более функциональные квары ls_min_voice_access_points и ls_min_chat_access_points

Версия 1.4.0 (29 июл 2017г):
[ADD CVAR] добавлен квар ls_points_cmd_access_flags, отвечающий за флаги доступа к консольным командам, изменяющим очки опыта
[ADD COMMAND] добавлена консольная команда add_rank_points, с помощью которой можно добавлять rank points по steamid игрока. Поодерживается работа как с игроками на сервере так и с отключенными игрокам
[ADD COMMAND] добавлена консольная команда set_rank_points, с помощью которой можно устанавливать игроку rank points по steamid. Поодерживается работа как с игроками на сервере так и с отключенными игрокам
[BUG FIX] исправлен недочет: после переноса кода из более продвинутого level system (из сборки пушки лазеры), сообщение о повышении ранга игрока оказывало значение на единицу меньше

[BUG FIX] исправлен недочет: из-за инструмента 'Заменить все' редактора кода команда чата '/level', стала командой '/rank'
[MISC] максимальное число уровней увеличено с 50 до 512
[BUG FIX] исправлен недочет: после автоматического создания level_system.ini, загрузка уровней не производилась (нужна была смена карты)
[ADD NATIVE] добавлена native функция get_user_rank_data, с помощью которой можно получить все данные о ранге игрока (кол-во очков, индекс ранга, название ранга)
* Получает информацию о ранге игрока
*
* @ param index индекс игрока
* @ param rank_index индекс ранга игрока, который будет записан в переданную переменную по ссылке
* @ param rank_name массив под строку, в которую будет записано название ранга игрока
* @ param size количество символов, которые будут записаны в rank_name
*
* @return количество rank points игрока, -1 если игрок не подключен

native get_user_rank_data(index, &rank_index, rank_name[], size);

[MISC] удален код блокирующий запуск плагина на ReHLDS серверах, но не проверялась работоспособность

[USABILITY] добавлено автоматическое создание конфигурационного файла level_system.ini
[MISC] добавлен новый бонус 'add_flags', с помощью которого можно добавлять игрокам флаги доступа в зависимости от уровня

[ADD CVAR] добавлен квар ls_max_money, отвечающий за максимальное количество денег у игрока, которые не будутт превышены бонусом 'add_money'
[MISC] добавлен новый бонус 'add_money', с помощью которого можно добавлять игрокам деньги в зависимости от уровня
[USABILITY] бонусы связанные с основным оружием (винтовки, дробовики, пулеметы, пистолеты-пулеметы), теперь выдаются только если у игрока нет хотя бы одного из них
[ADD CVAR] добавлен квар ls_min_save_points, отвечающий за минимальное количество очков, которое должен набрать игрок для их сохранения
[USABILITY] расширена функциональность квара ls_level_up_sound, теперь звук может быть двух форматов: wav и mp3

Версия 1.2.5 (05 дек 2016г):
- [USABILITY] отключена автоматическая подгрузка VoiceTranscoderApiProvider
- [USABILITY] появилась возможность отключения любых сообщений с помощью комментирования в level_system.txt (// или ;)
- расширена функциональность кваров отвечающих за флаги доступа (см описание кваров)
- исправлен недочет с количеством единиц бонуса flash
- добавлена поддержка CSstatsX SQL от serfreeman1337

Версия 1.2.0 (15 июня 2016г):
- добавлен квар ls_bonus_access_flags, отвечающий за флаги доступа, которые должен иметь игрок чтобы получать бонус
- добавлен новый бонус add_hp, который позволяет выдавать указанное через пробел количество единиц здоровья (Пример: add_hp 50)
- добавлена возможность указывать число единиц для следующих бонусов: vest, vesthelm, hegren, flash, sgren, add_hp (см. level_system.ini)
- добавлена возможность компиляции плагина в режиме интеграции (#define ADMIN_LOADER_INTEGRATION) с плагином admin_loader от mazdan (kanagava) с целью получения флагов доступа через предоставляемое API
- плагин теперь самостоятельно сохраняет очки опыта и теперь можно не бояться переполнения/обнуления общей или личной статистики
- плагин больше не нуждается в перекомпиляции под модуль CSX Extended
- данные о состоянии информеров, теперь сохраняются только если информеры отключены (включены по умолчанию)
- добавлено автоматическое создание конфигурационного файла level_system.cfg, если он не существует
- добавлен квар ls_give_bonus_start_round, отвечающий за номер раунда, с которого начнут выдаваться бонусы
- добавлен квар ls_give_bonus, который определяет будут ли выдаваться бонусы

Версия 1.1.0 (19 апреля 2016г):
- добавлена возможность настраивать бонусы для каждого уровня в конфигурационном файле level_system.ini
- добавлена возможность компиляции плагина в режиме интеграции (#define ADMIN_LOADER_INTEGRATION) с плагином Admin Loader версии 1.5 и выше от neygomon с целью получения флагов доступа через предоставляемое API
- добавлена поддержка многоязычности ("addons/amxmodx/data/lang/level_system.txt")
- добавлен квар ls_hud_informer_color, который отвечает за цвет информеров
- квар ls_level_up_sound теперь содержит путь к файлу звука, который будет проигрываться всем при достижении нового уровня
- добавлена возможность компиляции плагина в режиме совместимости с модулем CSX Extended (проблема несинхронного обнуления и записи статистики за раунд)
- добавлено информационное сообщение, которое показывается игроку не набравшему необходимый уровень при попытке использовать микрофон (требуется VoiceTranscoder AMXX API Provider)

Версия 1.0.5 (24 января 2016г):
- добавлен третий бонус (Броня + Шлем) начинающийся с 40-го уровня
- добавлен звук аваций при получении нового уровня
- добавлен квар ls_level_up_sound, который включает и отключает проигрывание звука при достижении нового уровня
- изменен порядок проверок, чтобы игрок которому запрещено писать в чат все-таки мог отключить отображение уровней
 

Вложения

Bars

Пользователь
Регистрация
10 Июн 2017
Сообщения
62
Симпатии
4
Пол
Мужской
#2
звании в чат ни как не вывести?
 

CannibaL86

Пользователь
Регистрация
10 Июн 2017
Сообщения
156
Симпатии
55
Пол
Мужской
#5
RED, Согласен ! тут не глядя ляпнул
 

RED

Пользователь
Регистрация
25 Мар 2018
Сообщения
24
Симпатии
6
#6
RED, Согласен ! тут не глядя ляпнул
Код:
/*
* Получает информацию о ранге игрока
*
* @ param index      индекс игрока
* @ param rank_index индекс ранга игрока, который будет записан в переданную переменную по ссылке
* @ param rank_name  массив под строку, в которую будет записано название ранга игрока
* @ param size       количество символов, которые будут записаны в rank_name
*
* @return           количество rank points игрока, -1 если игрок не подключен
*/

native get_user_rank_data(index, &rank_index, rank_name[], size);
 

CannibaL86

Пользователь
Регистрация
10 Июн 2017
Сообщения
156
Симпатии
55
Пол
Мужской
#9
А реально звания вывести в чат для этого плагина ?
 

Вложения

vete13

Пользователь
Регистрация
7 Янв 2018
Сообщения
1
Симпатии
0
#10
Было бы неплохо сделать тег звания, в чате для этого плагина?
 

Fagor

Пользователь
Регистрация
16 Мар 2018
Сообщения
43
Симпатии
9
Пол
Мужской
#11
Будет работать вместе с плагинам CStats_Mysql от Скальпеля?*
 

serega1903

Пользователь
Регистрация
13 Ноя 2017
Сообщения
4
Симпатии
0
#14
Привет ! такие вопросы как я понимаю все плагины данного автора с рекламой ? Может сейчас что то изменилось но данный автор не делал плагины под ReHLDS. И если есть реклама то какая ( P S случайно не реклама магазина вообще другого автора ?) И у данного автора помойку был свой сайт с плагинами ? Могу ошибаться или путать с другим авторам - просто нужна информация - для дальнейшего использования плагинов !
 

ganja_dypb

Пользователь
Регистрация
27 Июн 2017
Сообщения
16
Симпатии
1
Пол
Мужской
#15
Версия: 1.6.0
L 08/04/2018 - 21:40:07: Start of error session.
L 08/04/2018 - 21:40:07: Info (map "$2000$") (file "addons/amxmodx/logs/error_20180804.log")
L 08/04/2018 - 21:40:07: [ENGINE] Invalid player 2 (not in-game)
L 08/04/2018 - 21:40:07: [AMXX] Run time error 10 (plugin "level_system.amxx") (native "entity_range") - debug not enabled!
L 08/04/2018 - 21:40:07: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
Что это может быть? Крашит сервер!
P.S.> Как закрылся блог Радиуса с его плагинами, так сразу появилась реклама...
Может это и есть автор этой рекламы/сайта, скорее это всё было для пиара/рекламы для покупки плагинов, но я не против рекламы в консоли клиента т.к. всё таки это "бесплатный плагин".
 

Radius

Пользователь
Регистрация
10 Июн 2017
Сообщения
103
Симпатии
118
Пол
Мужской
#16
ganja_dypb, будет исправлено, правда исправленная версия будет только на хостинге csserv.ru
 

D1m0n41k

Пользователь
Регистрация
18 Дек 2017
Сообщения
48
Симпатии
5
#17
Radius, здравствуйте.
Подскажите пожалуйста, сохраняется опыт по SteamID?
И еще такой вопрос, как сбрасывать опыт?
 

Radius

Пользователь
Регистрация
10 Июн 2017
Сообщения
103
Симпатии
118
Пол
Мужской
#18
D1m0n41k, ls_reset_ranks 1 в консоли сервера. Если используется совместно с CSX или CSX Extended, то дополнительно в консоли csstats_reset 1

Эти значения кваров, сами вернутся в значение 0, после обнуления.
 

D1m0n41k

Пользователь
Регистрация
18 Дек 2017
Сообщения
48
Симпатии
5
#20
Radius, извиняюсь снова за беспокойство, а куда идет сохранение статистики?
Данные от БД берутся из sql.cfg?