Перейти к основному содержимому

RPG Core

Характеристики, бонусы экипировки, профессии, предметы, рюкзак, аукцион, обмен и передвижение.

Приватныеv0.1.1RPG и прогресс
ТребуетсяTypeWriter0.9.0-beta-177 (BTC build)GUIVaultUiCoreнеобязательноBTCMobsнеобязательноProfilesнеобязательноPartyнеобязательно

Создано для сети BornToCraft. Это расширение описано для справки и не распространяется.

Обзор​

RPG Core — это слой прогрессии сервера BTC. Это одно большое расширение (собираемое под названием RPGBundle), объединяющее систему характеристик, каталог пользовательских предметов с наборами и самоцветами, профессии с уровнями, глобальный уровень, рюкзаки и гардероб, аукцион, безопасный обмен между игроками, пользовательские станции крафта, пользовательскую рыбалку, способности перемещения (ползание, перепрыгивание, лазание) и зоны коррупции Эфира.

Почти всё настраивается в одной записи, RPG Core Configuration, в которой для каждой системы есть свой раздел. Остальные записи — это небольшие строительные блоки: действия для выдачи предметов или изменения характеристик, факты для их чтения, меню для открытия и артефакты для хранения данных игроков.

Главная идея — модель характеристик, описанная ниже: у каждого игрока есть числовые характеристики (сила, здоровье, шанс крита, скорость...), экипировка прибавляет к ним, а результат управляет боем, добычей и ванильными атрибутами.

Возможности​

  • Модель характеристик — 77 характеристик с базовым значением для каждого игрока, бонусами от надетых предметов и именованными ограничениями.
  • Каталог предметов — категории пользовательских предметов с характеристиками, редкостью, требованиями к уровню и наборами экипировки с бонусами набора.
  • Профессии — уровни, кривые опыта, награды за уровень (постоянные характеристики и триггеры), бусты, соревнования и меню профессий.
  • Глобальный уровень — взвешенный уровень, вычисляемый по профессиям и квестам, используемый для ограничения способностей перемещения и не только.
  • Хранилище — личные рюкзаки и гардероб (аксессуары и элитры), сохраняемые в артефактах.
  • Экономика — аукцион и безопасный обмен между игроками со скользящим 24-часовым лимитом валюты.
  • Крафт — пользовательские рецепты, наковальня, точило, ткацкий станок, алхимия, компостер, картография и рабочие станции с ограничениями по уровню.
  • Перемещение — ползание двойным приседанием, автоматическое перепрыгивание и лазание по стенам с необязательными анимациями BetterModel.
  • Коррупция — зоны коррупции Эфира, которые распространяются, могут быть очищены и порождают заражённых мобов.
  • Команды — инструменты администратора для характеристик, профессий, предметов, бустов и инвентарей, а также команды игрока для аукциона, обмена, переработки и освобождения из застревания.

Установка​

  1. Установите расширение GUI: меню (профессии, рюкзак, гардероб, аукцион, обмен) отрисовываются с его помощью.
  2. Установите плагин экономики, совместимый с Vault (Vault), если используете аукцион или обмен с экономикой по умолчанию.
  3. По желанию установите UiCore (меню и HUD прогрессии), BTCMobs (заражённые мобы, группы мобов), Profiles, Party и BTC Sky для интеграций, которые их читают.
  4. Поместите JAR-файл RPG Core в plugins/Typewriter/extensions/ и перезапустите сервер.

Начало работы​

  1. В веб-панели TypeWriter откройте страницу static и добавьте артефакт Player State: он хранит базовые характеристики и эффекты каждого игрока.
  2. Добавьте артефакт Profession Data, если используете профессии.
  3. Добавьте запись RPG Core Configuration. В stats задайте artifact равным артефакту Player State. Оставьте stats.stats пустым, чтобы загрузить встроенные значения по умолчанию, или добавьте элементы, чтобы переопределить отображаемое название, значение по умолчанию, minValue, maxValue или displayFormat характеристики. В professions задайте artifact равным артефакту Profession Data и добавьте профессию.
  4. В items добавьте категорию и предмет каталога с stats, такими как STRENGTH и HEALTH, и rarity.
  5. Опубликуйте. Выдайте себе предмет командой /rpgitem give, наденьте его и проверьте значение командой /rpgstat info <player> STRENGTH.
  6. Запускайте действия, такие как Give BTC Item, Add Stat или Profession Grant XP, из квестов и от NPC.
Одна запись конфигурации

Создайте единственную запись RPG Core Configuration и сохраняйте один источник истины для всех разделов.

Как это работает​

У модели характеристик четыре слоя.

  1. Определение. Каждая характеристика — это фиксированный идентификатор (STRENGTH, HEALTH, CRIT_CHANCE, SPEED, MINING_EFFICIENCY...). У каждой есть область (PLAYER: может хранить только базовая характеристика игрока; ITEM: только бонусы экипировки; BOTH) и единица, определяющая способ хранения: абсолютные ванильные единицы (очки здоровья, броня), процент от ванильной базы (скорость, 100 = ваниль), доля от 0 до 1 (шанс крита, сопротивления), множитель, где 1 нейтрален, аддитивные процентные пункты или простые очки. Единица присуща самой характеристике; конфигурация не может её изменить.
  2. Базовое значение. У каждого игрока есть постоянное базовое значение каждой характеристики, начинающееся с defaultValue характеристики и сохраняемое в артефакте Player State. Оно меняется через Add Stat, Remove Stat, награды за уровни профессий (stats) и /rpgstat. Оно округляется до 2 знаков после запятой (до целых для характеристик INTEGER) и ограничивается между minValue и maxValue.
  3. Бонусы экипировки. Всякий раз, когда экипировка меняется, расширение пересчитывает бонусы шлема, нагрудника, поножей, ботинок, основной руки, второй руки и активной страницы гардероба. Для каждого надетого предмета оно добавляет характеристики из его определения в каталоге, компонент характеристик, хранящийся на предмете, и ванильные зачарования, сопоставленные с характеристиками. Предметы, требования к уровню профессии которых не выполнены, ничего не дают. Характеристики с областью PLAYER игнорируют экипировку. Эти бонусы временные и никогда не сохраняются.
  4. Ограничения. Constrain Stat удерживает характеристику между min и max под именованным source, пока Release Stat Constraint не снимет его: арена дуэлей, ограничивающая атаку, проклятый зал, снижающий защиту. Несколько ограничений ужесточают друг друга (наивысший минимум, наименьший максимум; при конфликте побеждает максимум).

Итоговое значение — это base + equipment, ограниченное, затем с применением ограничений. Характеристики, соответствующие ванильному атрибуту (здоровье, броня, скорость, урон атаки, сила прыжка, дальность...), передаются этому атрибуту с преобразованием единиц; остальные читаются кодом, которому они нужны: шанс и урон крита, кража жизни, уклонение, блок, двойной дроп, эффективность добычи и рубки, сила рыбалки, буст опыта профессий и так далее.

Temporary Stat добавляет характеристику на время (зелья, баффы). Считывайте характеристику в условии с помощью Player Stat, который возвращает значение, умноженное на scale и округлённое.

Конфигурация​

Всё ниже — это разделы RPG Core Configuration.

РазделЧто настраивает
itemsКаталог предметов (категории, предметы, редкость, требования), наборы экипировки и самоцветы.
statsАртефакт Player State, переопределения по характеристикам, глобальные параметры (регенерация, крит, кража жизни, эффективность, группы мобов, бонусная добыча) и сообщения команд.
professionsСписок профессий, уровни, кривая опыта и награды, меню профессий и сообщения.
inventoryРаскладки и хранение рюкзака и гардероба.
auctionНалоги аукциона, длительности, экономика и меню.
tradeБезопасный обмен: расстояние, время жизни запроса, лимит стопки, 24-часовой лимит валюты, артефакт реестра, экономика и меню.
movementУровни ползания, перепрыгивания и лазания, ограничения по глобальному уровню, анимации BetterModel.
crafting, specialRecipes, anvil, enchantment, alchemy, grindstone, loom, cartography, cartographyCrafting, composter, workstations, industrialРецепты и пользовательские рабочие станции, каждая с ограничениями по уровням или задержкам.
fishing, gathering, mobTrapПользовательская рыбалка (включая лаву и пустоту), единая добыча ресурсов (опыт, добыча, ограничения) и поимка мобов.
boosts, globalLevel, respawn, recycling, divers, beaconВременные бусты, формула глобального уровня, условное возрождение, переработка, смола и маяк острова.
etherCorruptionЗоны коррупции Эфира.
combatFeedback, vanillaTooltipЧисла урона, полосы здоровья и скрытые ванильные подсказки.

Команды​

Все команды регистрируются при запуске вместе со своими псевдонимами. Для админ-команд нужно borntocraft.rpg.admin.

Команда (псевдонимы)ПравоОписание
/rpgstat (statadmin, btcstat)borntocraft.rpg.adminlist, info <player> <stat>, set, add, remove <player> <stat> <value>, reset <player> <stat>. Характеристики с областью ITEM нельзя изменять напрямую.
/rpgadmin (rpgadm)borntocraft.rpg.adminstat <player> <stat> <get|set|reset> [value], profession <player> <profession> <get|setlevel|reset> [value], boost <player> <stat> <amount> <seconds>, corruption <create|remove|list>, mana <player> <set|give|get>, reload (повторно применяет характеристики игроков в сети), debug <player>.
/rpgprofession (profes, prof)borntocraft.rpg.adminaddxp, removexp, setxp, addlevel, setlevel, reset, info, list, menu.
/rpgitem (btcitem, customitem)borntocraft.rpg.admingive, remove, list, info, menu.
/rpgcraft (craftadmin, btccraft)borntocraft.rpg.adminlist, inspect, preview, menu для рецептов.
/rpginventory (btcinv, inventoryadmin)borntocraft.rpg.adminbackpack <list|open|reset>, wardrobe <open|info>, list.
/rpgboost (boost, xpboost)borntocraft.rpg.admingive, clear, list для бустов опыта профессий.
/questrewardreset (qrr, resetquestreward)btc.admin.questrewardreset<menuId> <player|all>: сбрасывает получения наград из Quest Reward Menu.
/rpgauction (ah, auction)нетbrowse, management, sellmenu, collection, list <price> <minutes> [buyout], bid <id> <amount>, buy <id>, cancel <id>, claim, finalize (админ).
/rpgtrade (trade, p2ptrade)нет<player> открывает запрос; accept <id>, deny <id>, money <amount>, confirm, cancel.
/rpgrecycling (recycling, recycle)нетОткрывает меню переработки.
/unstick (rollback)нетЗапускает запись с идентификатором action:system_unstick; если такой записи нет, отвечает ошибкой.

Права​

ПравоЧто даёт
borntocraft.rpg.adminВсе перечисленные выше админ-команды.
btc.admin.questrewardreset/questrewardreset.

Плейсхолдеры​

RPG Core регистрирует расширение MiniPlaceholders btc. Полный список см. в разделе Плейсхолдеры.

Записи​

Записей: 42, сгенерированы из исходного кода расширения.

Действия24
События4
Факты6
Аудитории1
Артефакты6
Манифесты1
  • BTC Rpgcore ConfigurationConfigure BornToCraft RPG core systems (Items, Stats, Professions, Inventory, Crafting, Commands, Fishing, Auction, Movement, Trade)

Устранение неполадок​

No btc_rpgcore_configuration entry found! Create one in TypeWriter UI. Без записи конфигурации ничего не загружается. Добавьте её и опубликуйте.

Характеристики сбрасываются или не сохраняются. stats.artifact пуст или указывает на отсутствующий артефакт: тогда базовые характеристики хранятся только в памяти. Свяжите артефакт Player State. То же относится к professions.artifact для прогресса профессий.

Предмет не даёт характеристик. Проверьте идентификатор характеристики (псевдонимы вроде ATTACK_DAMAGE или MAX_HEALTH принимаются), что предмет надет в слот брони, руки или активный слот гардероба, что игрок выполняет его requirements по профессиям и что область характеристики не PLAYER. Характеристика, перечисленная в конфигурации с displayFormat, должна содержать {value}, а minValue не должен превышать maxValue, иначе конфигурация не загрузится.

percentageMultiplier must be ... при загрузке. Для характеристик с фиксированной единицей (например, доли и множители используют 100, характеристики «процент от ванили» используют 1) проверяется множитель отображения. Уберите переопределение или используйте значение из ошибки.

/rpgstat set отказывает для характеристики. Сообщается, что характеристика только для предметов: её область ITEM, поэтому хранить её может только экипировка. Используйте предмет или временную характеристику.

/unstick сообщает, что действие не настроено. Создайте запускаемую запись с идентификатором action:system_unstick.

Аукцион или обмен не могут переместить деньги. Экономика по умолчанию — Vault: установите Vault и провайдер экономики или настройте адаптер экономики раздела.

Связанные расширения​

  • UiCore — отрисовывает панели прогрессии, гардероба и хранилища.
  • Profiles и Party — переключение профилей и разделение опыта группы.
  • BTC Sky — механики, учитывающие острова.