RPG Core
Обзор
RPG Core — это слой прогрессии сервера BTC. Это одно большое расширение (собираемое под названием RPGBundle), объединяющее систему характеристик, каталог пользовательских предметов с наборами и самоцветами, профессии с уровнями, глобальный уровень, рюкзаки и гардероб, аукцион, безопасный обмен между игроками, пользовательские станции крафта, пользовательскую рыбалку, способности перемещения (ползание, перепрыгивание, лазание) и зоны коррупции Эфира.
Почти всё настраивается в одной записи, RPG Core Configuration, в которой для каждой системы есть свой раздел. Остальные записи — это небольшие строительные блоки: действия для выдачи предметов или изменения характеристик, факты для их чтения, меню для открытия и артефакты для хранения данных игроков.
Главная идея — модель характеристик, описанная ниже: у каждого игрока есть числовые характеристики (сила, здоровье, шанс крита, скорость...), экипировка прибавляет к ним, а результат управляет боем, добычей и ванильными атрибутами.
Возможности
- Модель характеристик — 77 характеристик с базовым значением для каждого игрока, бонусами от надетых предметов и именованными ограничениями.
- Каталог предметов — категории пользовательских предметов с характеристиками, редкостью, требованиями к уровню и наборами экипировки с бонусами набора.
- Профессии — уровни, кривые опыта, награды за уровень (постоянные характеристики и триггеры), бусты, соревнования и меню профессий.
- Глобальный уровень — взвешенный уровень, вычисляемый по профессиям и квестам, используемый для ограничения способностей перемещения и не только.
- Хранилище — личные рюкзаки и гардероб (аксессуары и элитры), сохраняемые в артефактах.
- Экономика — аукцион и безопасный обмен между игроками со скользящим 24-часовым лимитом валюты.
- Крафт — пользовательские рецепты, наковальня, точило, ткацкий станок, алхимия, компостер, картография и рабочие станции с ограничениями по уровню.
- Перемещение — ползание двойным приседанием, автоматическое перепрыгивание и лазание по стенам с необязательными анимациями BetterModel.
- Коррупция — зоны коррупции Эфира, которые распространяются, могут быть очищены и порождают заражённых мобов.
- Команды — инструменты администратора для характеристик, профессий, предметов, бустов и инвентарей, а также команды игрока для аукциона, обмена, переработки и освобождения из застревания.
Установка
- Установите расширение GUI: меню (профессии, рюкзак, гардероб, аукцион, обмен) отрисовываются с его помощью.
- Установите плагин экономики, совместимый с Vault (Vault), если используете аукцион или обмен с экономикой по умолчанию.
- По желанию установите UiCore (меню и HUD прогрессии), BTCMobs (заражённые мобы, группы мобов), Profiles, Party и BTC Sky для интеграций, которые их читают.
- Поместите JAR-файл RPG Core в
plugins/Typewriter/extensions/и перезапустите сервер.
Начало работы
- В веб-панели TypeWriter откройте страницу static и добавьте артефакт Player State: он хранит базовые характеристики и эффекты каждого игрока.
- Добавьте артефакт Profession Data, если используете профессии.
- Добавьте запись RPG Core Configuration. В
statsзадайтеartifactравным артефакту Player State. Оставьтеstats.statsпустым, чтобы загрузить встроенные значения по умолчанию, или добавьте элементы, чтобы переопределить отображаемое название, значение по умолчанию,minValue,maxValueилиdisplayFormatхарактеристики. Вprofessionsзадайтеartifactравным артефакту Profession Data и добавьте профессию. - В
itemsдобавьте категорию и предмет каталога сstats, такими какSTRENGTHиHEALTH, иrarity. - Опубликуйте. Выдайте себе предмет командой
/rpgitem give, наденьте его и проверьте значение командой/rpgstat info <player> STRENGTH. - Запускайте действия, такие как Give BTC Item, Add Stat или Profession Grant XP, из квестов и от NPC.
Создайте единственную запись RPG Core Configuration и сохраняйте один источник истины для всех разделов.
Как это работает
У модели характеристик четыре слоя.
- Определение. Каждая характеристика — это фиксированный идентификатор (
STRENGTH,HEALTH,CRIT_CHANCE,SPEED,MINING_EFFICIENCY...). У каждой есть область (PLAYER: может хранить только базовая характеристика игрока;ITEM: только бонусы экипировки;BOTH) и единица, определяющая способ хранения: абсолютные ванильные единицы (очки здоровья, броня), процент от ванильной базы (скорость,100= ваниль), доля от 0 до 1 (шанс крита, сопротивления), множитель, где 1 нейтрален, аддитивные процентные пункты или простые очки. Единица присуща самой характеристике; конфигурация не может её изменить. - Базовое значение. У каждого игрока есть постоянное базовое значение каждой характеристики, начинающееся с
defaultValueхарактеристики и сохраняемое в артефакте Player State. Оно меняется через Add Stat, Remove Stat, награды за уровни профессий (stats) и/rpgstat. Оно округляется до 2 знаков после запятой (до целых для характеристикINTEGER) и ограничивается междуminValueиmaxValue. - Бонусы экипировки. Всякий раз, когда экипировка меняется, расширение пересчитывает бонусы шлема, нагрудника, поножей, ботинок, основной руки, второй руки и активной страницы гардероба. Для каждого надетого предмета оно добавляет характеристики из его определения в каталоге, компонент характеристик, хранящийся на предмете, и ванильные зачарования, сопоставленные с характеристиками. Предметы, требования к уровню профессии которых не выполнены, ничего не дают. Характеристики с областью
PLAYERигнорируют экипировку. Эти бонусы временные и никогда не сохраняются. - Ограничения. 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.admin | list, info <player> <stat>, set, add, remove <player> <stat> <value>, reset <player> <stat>. Характеристики с областью ITEM нельзя изменять напрямую. |
/rpgadmin (rpgadm) | borntocraft.rpg.admin | stat <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.admin | addxp, removexp, setxp, addlevel, setlevel, reset, info, list, menu. |
/rpgitem (btcitem, customitem) | borntocraft.rpg.admin | give, remove, list, info, menu. |
/rpgcraft (craftadmin, btccraft) | borntocraft.rpg.admin | list, inspect, preview, menu для рецептов. |
/rpginventory (btcinv, inventoryadmin) | borntocraft.rpg.admin | backpack <list|open|reset>, wardrobe <open|info>, list. |
/rpgboost (boost, xpboost) | borntocraft.rpg.admin | give, 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
- BTC Backpack MenuBTC Backpack Menu
- BTC Effect ImmunityRend immunisé à des effets vanilla pendant une durée
- BTC Give Item ActionGive a BTC custom item to the player
- BTC Keep ExperienceConserve une part de l'expérience à la mort
- BTC Movement ActionTrigger an RPG Core movement action
- BTC Profession Grant XPGrant experience to a profession
- BTC Profession XP PotionAccélère l'expérience d'un métier pendant une durée
- BTC Remove Item ActionRemove a BTC custom item from the player
- BTC Reveal CreaturesFait luire les créatures proches d'une nature donnée
- BTC Slow RegenerationRend de la vie lentement pendant une durée
- BTC Stat Add ActionIncrease a player's BTC stat by the configured amount
- BTC Stat Remove ActionDecrease a player's BTC stat by the configured amount
- BTC Temporary StatApplique une statistique RPGCore pendant une durée, puis la retire
- BTC Wardrobe MenuBTC Wardrobe Menu
- Constrain Player StatHold a player statistic between bounds while they are somewhere
- Create Corruption ZoneCreate Corruption Zone
- Purify Corruption ZonePurify Corruption Zone
- Quest Reward MenuPersistent reward menu where players can claim items once
- Release Player Stat ConstraintLift a constraint held on a player statistic
- RPG Profession MenuRPG Core Profession Menu
- Spawn Corrupted MobSpawn Corrupted Mob
- Start Profession CompetitionDémarrer un concours de métier
- Stop Profession CompetitionArrêter un concours de métier
- Unlock RecipeUnlocks a specific crafting recipe for the player by its NamespacedKey
События4
- On Corrupted Mob SpawnOn Corrupted Mob Spawn
- On Corruption PurifiedOn Corruption Purified
- On Corruption SpreadOn Corruption Spread
- On Player Corruption ExposureOn Player Corruption Exposure
Факты6
- BTC Item Count FactCount custom BTC items in a player's inventory
- BTC Player Stat FactThe value of an RPGCore statistic for the player
- Corruption Level FactCorruption Level
- Corruption Zone Count FactCorruption Zone Count
- Profession Currency FactRevenus d'un métier
- Purification Progress FactPurification Progress
Аудитории1
- BTC Quest Item AudienceForces players to keep an item in their inventory with full control
Артефакты6
- Backpack Storage ArtifactEtat persistant des backpacks BornToCraft
- BTC Auction House ArtifactBTC Auction House
- BTC Player State ArtifactArtefact pour stocker l'état complet des joueurs (stats + effets)
- BTC Player Trade ArtifactBTC Player Trade Ledger
- Profession Data ArtifactArtifact unifié stockant les données de TOUTES les professions d'un joueur (niveaux, XP, boosts, etc.)
- Wardrobe Storage ArtifactEtat persistant de la wardrobe BornToCraft
Манифесты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 и провайдер экономики или настройте адаптер экономики раздела.