Advanced Experience System

amxx Advanced Experience System 0.5

Нет прав для скачивания
Установка
  • Скомпилируйте плагин (инструкция).
    • Для компиляции требуется инклюд colorchat.inc от aghl.
  • Укажите как вести учет игроков через квар aes_track_mode.
    • при работе через статистику csx (значение -1) указывать настройки базы данных не нужно.
  • Включите необходимый модуль для работы с БД в файле addons/amxmodx/configs/modules.ini.
    • mysql - для работы с БД MySQL.
    • sqlite - для работы с локальной базой данных SQLite (запись в файл на сервере).
  • Укажите данные для подключения к БД в файле addons/amxmodx/configs/aes/aes.cfg.
    • для SQLite нужно указать aes_sql_driver "sqlite"
  • Настройте систему под себя.
    • настройки addons/amxmodx/configs/aes/aes.cfg
    • бонусы addons/amxmodx/configs/aes/bonus.ini
    • названия уровней addons/amxmodx/data/lang/aes.txt
  • Расскомментируйте нужные плагины в addons/amxmodx/configs/plugins-aes.ini.
    • aes_main.amxx - основной плагин
    • aes_exp_cstrike.amxx - начисление опыта и бонусов за убийства и пр. для Counter-Strike.
    • aes_informer.amxx - HUD информер и сообщения в чат.
    • aes_exp_editor.amxx - меню для администратора.
    • aes_bonus_system.amxx - меню бонусов (/anew) и плюшки на спавне.
    • aes_bonus_cstrike.amxx - бонусы для Counter-Strike.

Плагин использует colorchat библиотеку от ConnorMcLeod для цветного чата.
В AMXX 1.8.3 уже реализован такой функционал и происходит конфликт с библиотекой цветного чата.
2 пути компиляции с новым AMXX:
  • Закомментить в amxmodx.inc строчку снизу и перекомпилить плагин.
    Код:
    native client_print_color(index, sender, const message[], any:...);
  • Закомментить и в lang файле править ключи (!n,!t,!g). на указатели (^1,^3,^4).
    Код:
    #include <colorchat>
  • Обновите конфигурацию в папке addons/amxmodx/configs/aes.
  • Обновите словари в папке addons/amxmodx/data/lang.
  • Обновите плагины.
  • Если вы использоваили сохранение в файл (aes_db_type "1"):
    • Вкючите модуль sqlite в файле addons/amxmodx/configs/modules.ini.
    • Укажите квар aes_sql_driver "sqlite".
    • Для импорта записей с файла addons/amxmodx/data/aes/stats.ini выполните команду aes_import в консоли сервера (сервера, через ркон, а не в вашей контре).
  • Если вы использвали запись в БД (aes_db_type "2"):
    • Квар aes_sql_password теперь aes_sql_pass.
    • Для обновления таблицы выполните импорт файла aes_stats_to_05_steamid.sql в БД если вы вели учет игроков по SteamID.
    • Для обновления таблицы выполните импорт файла aes_stats_to_05_name.sql в БД если вы вели учет игроков по нику.
    • Для обновления таблицы выполните импорт файла aes_stats_to_05_ip.sql в БД если вы вели учет игроков по IP.
    • Если вы меняли название таблицы (квар aes_sql_table) то отредактируйте выше перечисленные .sql файлы в соответствии.
  • Если вы использовали расчет опыта на основе статистики csx (aes_db_type "0")
    • Укажите квар aes_track_mode "-1".
  • Квар aes_bonus_firstround теперь указывается в настройках бонусов через переменную round.
  • Квар aes_bonus_time теперь указывается в настройках бонусов через переменную time.
Настройки
Все конфигурационные файлы находятся в директории addons/amxmodx/configs/aes/. Основной файл aes.cfg выполняется каждый раз при загрузке карты и содержит все стандартные квары плагинов AES.
Код:
// -- aes_main.amxx -- //

// Ключ сохранения. По какому параметру вести учет игроков?
// -1 - Расчитывать опыт на основе статистики csx (требуется плагин aes_exp_cstrike)
// 0 - Ник
// 1 - SteamID
// 2 - IP
aes_track_mode "1"

// Драйвер БД.
// mysql или sqlite.
aes_sql_driver "mysql"

// Хост для подключения.
aes_sql_host "localhost"

// Пользователь.
aes_sql_user "root"

// Пароль.
aes_sql_pass ""

// База данных. Или название файла для SQLite.
aes_sql_name "amxx"

// Таблица.
aes_sql_table "aes_stats"

// Максимальное кол-во неудачных попыток обращения к БД,
// после которых плагин перестает связываться с БД до конца карты.
aes_sql_maxfail "10"

// Автоматически отправлять запрос на создание таблицы в БД в начале карты.
aes_sql_create_db "1"

// Настройка званий.
// Какое количество опыта должен набрать игрок для определенного звания.
// Первая цифра отвечает за количество опыта для звания "Рядовой", вторая за звания "Ефрейтор" и так далее.
// Первая цифра соответственно должна быть равна НУЛЮ!
// Писать в кавычках!
// ВАЖНО! Сколько Вы здесь напишите чисел, столько званий у Вас и будет! Не забудьте отредактировать ланг файл, под Ваше количество званий!
aes_level "0.0 20.0 40.0 60.0 100.0 150.0 200.0 300.0 400.0 600.0 1000.0 1500.0 2100.0 2700.0 3400.0 4200.0 5100.0 5900.0 7000.0 10000.0"

// Приостановить учет опыта.
aes_track_pause "0"

// Считать ли опыт у ботов.
aes_track_bots "1"

// -- aes_exp_cstrike.amxx -- //

// Сколько опыта будет даваться за одно убийство
aes_xp_frag "1.0"
// Сколько опыта будет давать за убийство хедшотов
aes_xp_hs "2.0"
// Кол-во опыта за установку бомбы
aes_xp_c4_plant "1.0"
// Кол-во опыта за подрыв бомбы
aes_xp_c4_explode "3.0"
// Кол-во опыта за дефьюз бомбы
aes_xp_c4_defused "4.0"
// Опыт за вывод заложников
aes_xp_hostage_got "1.0"
// Опыт за спасение заложников
aes_xp_hostage_rescue "1.0"
// Опыт за спасение как V.I.P.
aes_xp_vip_escaped "4.0"
// Опыт за убийство V.I.P.
aes_xp_vip_killed "4.0"
// Опыт за смерть. Используйте отрицательные значения чтобы вычитать.
aes_xp_death "0.0"

// Минимальное кол-во игроков, при которых будет начисляться бонус за выполнение действий карты.
// Действии с заложниками, бомбой и VIP.
aes_xp_goal_min_players "4"

// Включен режим FFA
aes_xp_ffa "0"

// Бонусы за количество фрагов, убийств в голову и прочего.
// Формат записи: "<количествофрагов> <количествобонусазаних> <количествофрагов> <количествобонусазаних> и т.д."
// Бонусы дают доступ к меню /anew
// 0 - выключить.

// Просто за фраги
aes_anew_frags "10 1 20 2 30 3 40 5"
// За убийство в голову
aes_anew_hs "7 1 14 2 20 3 30 4"
// За убийство с ножа
aes_anew_knife "1 1 2 1 3 1 4 1"
// За убийство с гранаты
aes_anew_he "4 1 5 1 6 1 7 2"

// Когда сбрасывать кол-фрагов и т.п.
// 0 - никогда
// 1 - при смерти
aes_anew_reset "1"

// Количество выдаваемых бонусов игроку за повышению по званию.
aes_bonus_levelup "3"

// -- aes_informer.amxx -- //

// Показывает сообщение о новом уровне. 1 - показывать игроку. 2 - только всем. 0 - отключить сообщение.
aes_newlevel_chat "2"

// Через сколько секунд обновлять hud сообщения?
aes_hud_update "1.5"

// По стандарту показывать информер? (Hud сообщение с текущим званием)
aes_hud_info_default "1"

// Тип информера. 1 - Hud. 0 - выключить
aes_hud_info_type "1"

// Цвет информера(r g b). Вводить три числа в одних кавычках!
// Или укажите random для задания случайного цвета.
aes_hud_info_color "60 60 60"

// Координаты информера(x y). Вводить два числа в одних кавычках!
aes_hud_info_pos "0.01 0.13"

// Тип сообщения /aNew. 1 - Hud. 0 - выключить
aes_hud_anew_type "1"

// Цвет сообщения /aNew (r g b). Вводить три числа в одних кавычках!
aes_hud_anew_color "100 100 100"

// Координаты сообщения /aNew (x y). Вводить два числа в одних кавычках!
aes_hud_anew_pos "-1.0 0.90"

// Отображать информер наблюдателям.
aes_hud_info_deafult_d "1"

// Цвет информера для наблюдателя.
// random - случайный цвет.
aes_hud_info_color_d "40 40 40"

// Позиция информера для наблюдателя.
aes_hud_info_pos_d "0.01 0.15"

// Режим форматирования.
aes_informer_tpl "0"

// -- aes_bonus_system.amxx -- //

// Вкл/Выкл системы бонусов
aes_bonus_enable "1"

// Выдача бонусов на спавне
// 0 - нет бонусов на спавне
// 1 - выдавать всегда
// 2 - выдать только один раз за раунд
aes_bonus_spawn "1"

// Список карт, на которых не будут действовать все бонусы.
aes_lockmap "35hp"
aes_lockmap "35hp_2"
aes_lockmap "35hp_gx"
aes_lockmap "35hp_gladiators_day"
aes_lockmap "most_wanted"
aes_lockmap "35hp_xmas"
aes_lockmap "35hp_3"
aes_lockmap "aim_afl_deagle"
aes_lockmap "awp_8bit"
aes_lockmap "awp_india"
aes_lockmap "awp_india_csp"
aes_lockmap "awp_pit"
aes_lockmap "ka_100x100"
aes_lockmap "ka_wintershank"


Сборщик статистики:

CStrike (aes_exp_cstrike):

Плагин умеет считать опыт на основе статистики CSStats.
Для этого установите aes_db_type в 0. При заходе игрока на сервер произойдет расчет его опыта на основании его статистики из CSStats. Редактирование опыта в данном случае не будет работать.
Выдает опыт за:
  • Убйиство.
  • Смерть.
  • Хедшот.
  • Установку бомбу.
  • Подрыв бомбы.
  • Обезвреживание бомбы.
  • Взятие заложников.
  • Спасение заложников.
  • Спасение как V.I.P. на картах as.
  • Убийство V.I.P. на картах as.
Выдает бонус очки за:
  • Серию убийств.
  • Серию убийств хедшотом.
  • Серию убийств ножом.
  • Серию убийств с гранаты.



Информер:


Информер служит для вывода информации о текущем опыте и звании в HUD, оповещения игроков о повышении уровней через чат.
С версии 0.2 появился режим форматирования, который использует ваш шаблон для отображения сообщений. Шаблоны находятся в словаре aes.txt. Список шаблонов:
  • AES_HUD_TPL - HUD информер для игрока.
  • AES_HUD_TPL_D - HUD информер для наблюдателя (или если игрок был убит).
  • AES_NEWLEVEL_TPL - сообщение о повышении уровня игроку.
  • AES_NEWLEVEL_ALL_TPL - сообщение о повышении уровня всем.
Замена:
  • <exp> - количество текущего опыта.
  • <levelexp> - количество опыта для уровня.
  • <needexp> - разница между levelexp и exp.
  • <level> - числовое значение уровня.
  • <maxlevel> - числовое значение максимального уровня.
  • <rank> - звание игрока.
  • <name> - имя игрока.
  • <steamid> - SteamID игрока.
  • \n - символ перевода на новую строку.


Бонус система

Идея позаимствована у Army Ranks Ultimate и развита в сторону универсальности. В отличии от Army Ranks Ultimate можно задать что именно будет выдаваться, а не просто вкл/выкл простым кваром.
Вся настройка бонус системы находится в файле addons/amxmodx/configs/aes/bonus.ini.
Систему бонусов можно полностью перенастроить. Есть возможность задать что и на каком уровне будет выдаваться игроку на спавне, задать на что можно потратить бонусные очки.
Конфиг состоит из 2х блоков:
  • [spawn] - что и на каком уровне игроку будут выдываться предметы и пр.
  • [bonus_menu] - предметы в /anew меню.
Каждый новый новый предмет должен быть определен конструкцией <give> или <call>.
  • Конструкция <give> - выдача игроку предмета в определении item.
  • Конструкция <call> - вызов функции из другого плагина.
Определения:
  • item - класснейм предмета для выдачи в конструкции <give>.
  • name - название предмета в меню, вы можете указать в начале LANG_ для использования значения из словаря aes.txt.
  • levels - первая цифра отвечает за звание "Рядовой", вторая за "Ефрейтор" и так далее. Отвечает сколько предметов выдавать в конструкции <give>. Передается в функцию 2ым параметром в конструкции .
  • plugin - имя файла плагина для конструкции <call>.
  • function - имя функции плагина в конструкции <call>. Первым параметром передается id игрока, 2ым - значение из levels. Используйте -1 чтобы не вызывать функцию.
  • points - кол-во очков бонуса, которые нужны для активации предмета.
Counter-Strike бонусы реализованы плагином aes_bonus_cstrike и включают в себя бонусы Army Ranks Ultimate.
Бонусы в меню:
  • M4A1 +патроны.
  • AK47 +патроны.
  • AWP +патроны.
  • 10000$.
  • 200HP.
  • MegaGrenade (300% урона)
  • MegaDeagle (200% урона).
Бонусы в начале игры:
  • Боевая граната.
  • Световая граната.
  • Дымовая граната.
  • Набор сапера.
  • Прибор ночного видения.
  • Бесплатная броня.
  • Дополнительная жизнь.
Код:
;
; Advanced Experinece System
; by serfreeman1337
;

;
; Расположение файла: addons/amxmodx/configs/aes/bonus.ini
;

;
; [menu] - меню
; <menu> - регистрация нового меню
; title - заголовок меню, используйте приставку LANG_ для словаря
; say - команда в чате для вызова меню
; console - команда в консоли для вызова этого меню
; list - список предметов в этом меню из [items]
;
; [items] - предметы для меню
; <call> - регистрация предмета с вызовом функции другого плагина
; name - название предмета в пункте меню, используйте приставку LANG_ для словаря
; plugin - название файла плагина
; function - название функции в плагине
; points - кол-во бонусов (число)
; exp - требуемый опыт (float или число)
; levels - требуемый уровень (число)
; round - раунд, с которого будет доступен этот предмет (число)
; <give> - регистрация предмета с функцией give
; name - название предмета в пункте меню, используйте приставку LANG_ для словаря
; item - название предмета
; points - кол-во бонусов (число)
; exp - требуемый опыт (float или число)
; levels - требуемый уровень (число)
; round - раунд, с которого будет доступен этот предмет (число)
; [spawn] - бонусы на спавне
; <call> - регистрация предмета с вызовом функции другого плагина
; name - название предмета в пункте меню, используйте приставку LANG_ для словаря
; plugin - название файла плагина
; function - название функции в плагине
; points - кол-во бонусов (число)
; exp - требуемый опыт (float или число)
; levels - требуемый уровень (число)
; round - раунд, с которого будет доступен этот предмет (число)
; <give> - регистрация предмета с функцией give
; name - название предмета в пункте меню, используйте приставку LANG_ для словаря
; item - название предмета
; points - кол-во бонусов (число)
; exp - требуемый опыт (float или число)
; levels - требуемый уровень (число)
; round - раунд, с которого будет доступен этот предмет (число)

[menu]

<menu>
title = LANG_AES_BONUS_MENU
say = /anew
console = anew
list = 1 2 3 4 5 6 7

[items]

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BONUS_M4A1
function = pointBonus_GiveM4a1
points = 1

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BONUS_AK47
function = pointBonus_GiveAk47
points = 1

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BONUS_AWP
function = pointBonus_GiveAWP
points = 1

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BONUS_10000M
function = pointBonus_Give10000M
points = 1

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BONUS_200HP
function = pointBonus_Set200HP
points = 1

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BONUS_MEGAGRENADE
function = pointBonus_GiveMegaGrenade
points = 1

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BONUS_MEGADEAGLE
function = pointBonus_GiveMegaDeagle
points = 1

[spawn]

<give>
item = weapon_hegrenade
name = LANG_AES_BONUS_NADE
levels = 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

<give>
item = weapon_flashbang
name = LANG_AES_BONUS_FLASHBANG
levels = 0 0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 2

<give>
item = weapon_smokegrenade
name = LANG_AES_BONUS_SMOKENADE
levels = 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BONUS_DEFKIT
function = roundBonus_GiveDefuser
levels = -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BONUS_NV
function = roundBonus_GiveNV
levels = -1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BONUS_ARMOR
function = roundBonus_GiveArmor
levels = -1 -1 -1 -1 -1 -1 -1 2 2 2 2 2 2 2 2 2 2 2 120 150

<call>
plugin = aes_bonus_cstrike.amxx
name = LANG_AES_BOUNS_HP
function = roundBonus_GiveHP
levels = -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
Сверху Снизу