Skip to content

Latest commit

 

History

History
executable file
·
106 lines (76 loc) · 6.79 KB

File metadata and controls

executable file
·
106 lines (76 loc) · 6.79 KB

Добро пожаловать в модуль Система Гильдий от Moloko.

Этот модуль создан для улучшения взаимодействия и наград для гильдий на вашем сервере, включая настраиваемые настройки, скорости начисления опыта и уведомления.

  • Я новечок в развитии модулей для АзеротКора поэтому строго не судите. Если есть моменты где я ошибся, пожалуйста, поправьте меня чтобы впредь не делал подобные ошибки.
  • Если столкнулись с проблемой или ошибкой, просьба отписаться в дискорде или создайте обсуждение в гитхабе.
  • Спасибо большое что используете данного модуля и за фидбеки.

Обзор

mod-guild-system

Основная цель данного модуля — адаптация системы прокачки гильдий, впервые представленной в дополнении Cataclysm, для работы исключительно с дополнением Wrath of the Lich King (WoTLK). Адаптация специально разработана для серверов, использующих фреймворк AzerothCore.

Уровень гильдии взял исходя из данной статьи.


Возможности

  • ✅ Настраиваемые параметры для включения/отключения функций.
  • ✅ Режим отладки для тестирования и проверки функционала.
  • ✅ Начисление опыта за разные виды активности (PvP, убийство боссов, выполнение заданий).
  • ✅ Еженедельный лимит на количество опыта для баланса прокачки гильдий.
  • ✅ Оповещение в гильдейский чат о повышении уровня гильдии.
  • ✅ Команда для игрока чтобы отобразить информацию о гильдии .ginfo

Функции

GuildSystemBaseXP == 250 xp

1. Опыт гильдии за выполнение заданий

Рассчитывает опыт, присуждаемый гильдии за выполнение заданий:

  • Base XP: Выведено с использованием формулы:
    baseXP = GuildSystemRateXPQuest * GuildSystemBaseXP;
    
  • Разница уровней: регулирует опыт на основе разницы в уровнях между игроком и квестом:
    • Уменьшается вдвое, если уровень игрока значительно выше (levelDifference > 5).
    • Удваивается, если квест значительно сложнее (levelDifference < -5).
  • Множитель: масштабирует общий опыт, используя глобальный множитель. GuildSystemRateXP.
  • Отладка: регистрирует детали расчетов, когда GuildSystemDebug включена.

2. Опыт гильдии за убийство босса существом

Рассчитывает опыт за победу над существами, включая боссов:

  • Базовый опыт: определяется как:
    baseXP = GuildSystemRateXPKillBoss * GuildSystemBaseXP;
    
  • Проверка на босса: определяет, является ли существо боссом, используя:
    isBoss = creature->GetCreatureTemplate()->type_flags & CREATURE_TYPE_FLAG_BOSS_MOB;
  • Разница в уровнях: регулируется в зависимости от разницы в уровнях:
  • Уменьшается вдвое, если игрок значительно выше уровня.
  • Удваивается, если существо намного сложнее.
  • Множитель: применяет глобальный множитель опыта GuildSystemRateXP.
  • Отладка: регистрирует сведения о существах, расчет опыта и статус босса, если включена отладка.

3. Опыт гильдии от PvP

Рассчитывает опыт от активности PvP:

  • Базовый опыт: определяется с использованием:
    baseXP = GuildSystemRateXPPvP * GuildSystemBaseXP;
    
  • Множитель: Масштабирует общий опыт, используя GuildSystemRateXP.
  • Контекстное ведение журнала:
  • Для полей сражений регистрирует их название.
  • Для арен регистрирует общую информацию.
  • Отладка: записывает подробные журналы опыта на основе типа PvP, когда GuildSystemDebug включен.

Установка

  1. Клонируйте данный репозиторий:
    cd path/to/azerothcore/modules
    git clone https://github.com/levrules/mod-guild-system.git
  2. Повторно запустите cmake и запустите чистую сборку AzerothCore.
  3. Измените настройки в конфигурации при необходимости.
  4. Перезапустите сервер, чтобы применить изменения.

⚠ В модуле есть изменения по таблицам acore_string где идентификаторы 30098, 30099, 30100, 30101, 30102 буду изменены, если у эти идентификаторы используются, рекомендуется изменить в файле guild_system.h а также в файле acore_string.sql.


Поддержка

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


Лицензия

Проект лицензирован в соответствии с GNU Affero General Public License (AGPL-3.0). Подробнее можно узнать в файле LICENSE.