rAlchemist - Скрещивание зелий [1.21.4-26.X]

Плагин rAlchemist - Скрещивание зелий [1.21.4-26.X] 1.1

Создайте и подтвердите аккаунт для скачивания
Поддерживаемые версии
  1. 1.21
  2. 26.1
  3. 26.2
  4. 26.3
  5. 26.4
Ядра и Прокси
  1. Spigot
  2. Paper
  3. Folia
Минимальная версия Java
21
Исходный код
https://github.com/Rulhot/rAlchemist
rVisualBoards — Update Banner (4).png


Твои игроки кладут до 15 зелий в меню алхимика и получают одно со всеми эффектами. Ты задаёшь цену, шанс неудачи и лимиты.

Paper 1.21.4+ • Folia • Java 21​


Как это работает
  1. Игрок открывает меню командой /alchemist.
  2. Кладёт от 2 до 15 положительных зелий одного вида: обычные, взрывные или туманные.
  3. Видит готовое зелье, цену и шанс неудачи до оплаты.
  4. Нажимает «Скрестить зелья» и забирает результат.


Возможности

Скрещивание

  • До 15 зелий в одном. Минимум задаёшь сам, по умолчанию 2.
  • Предпросмотр: игрок видит зелье, цену и шанс неудачи до оплаты.
  • Запрет одинаковых эффектов в одном зелье.
  • Группы несовместимых эффектов, например сила и сопротивление.
  • Повторное скрещивание готового зелья включается одной строкой.
  • Своё название, описание и CustomModelData готового зелья.

Цена
  • Формула: база, доплата за каждое зелье и доплата за каждый эффект. По умолчанию 3000 и 250 за эффект.
  • Плата через Vault, BVault, CoinsEngine или PlayerPoints.
  • Несколько валют за одно скрещивание, например монеты и донат-валюта.
  • Скидка по праву ralchemist.discount.20 складывается со скидкой уровня.
  • Если плата не списалась, зелья остаются у игрока.

Шанс неудачи
  • Базовый шанс и 5% за каждый эффект, потолок 50%.
  • Режим BURN: зелья сгорают.
  • Режим SPOIL: игрок получает испорченное зелье.
  • Эффекты испорченного зелья задаёшь сам. По умолчанию отравление на 15 секунд и тошнота на 10.
  • Все значения 0: скрещивание без неудач.

Уровни алхимика
  • 10 очков за каждое успешное скрещивание.
  • 5 уровней по умолчанию, список меняешь в levels.yml.
  • Уровень открывает слоты: 5 на первом, 15 на пятом.
  • На 5 уровне скидка 20% и минус 25% к шансу неудачи.
  • Закрытый слот показывает уровень, на котором он откроется.
  • Очки и уровни ты выдаёшь командой /alchemist points.

Лимиты
  • Пауза между скрещиваниями в секундах.
  • Лимит скрещиваний в сутки.
  • Свои значения для групп по праву ralchemist.limits.vip. При нескольких правах игрок получает лучшее.
  • Права обхода паузы и лимита для персонала.

Меню и оформление

  • Размер меню, слоты для зелий, слот результата и предпросмотра.
  • Свои кнопки: материал, название, описание и действие.
  • Готовое зелье ложится в слот меню или сразу в инвентарь.
  • 11 цветов зелья в палитре, свой цвет командой /alchemist #FF8800 и сброс.
  • MiniMessage во всех текстах: градиенты, тени, HEX.
  • Звуки клика, успеха и неудачи.


Эссенции

Игрок накладывает эссенцию на зелье в наковальне за уровни опыта. Одна эссенция уходит на одно зелье. В верстаке, печи и варочной стойке эссенция не тратится.



ЭссенцияЧто делаетЦена
ВремяПродлевает эффекты до 5 минут1 уровень
СилаПовышает уровень эффектов на 1, максимум II3 уровня
СкрытностьУбирает частицы зелья невидимости3 уровня
ТайнаМаскирует зелье под бутылёк воды и скрывает эффекты, пока игрок его не выпьет1 уровень
ВечностьПоложительные эффекты держатся до смерти или молока30 уровней

Материал, название, CustomModelData, цену и силу каждой эссенции ты меняешь в items.yml. Эссенции на скрещенных зельях включаются в mixing.yml.

YAML:
settings:
  debug: false # подробные сообщения в консоль для поиска ошибок
  metrics: true # анонимная статистика bStats
  update-check: true # сообщение в консоль о новой версии плагина

command:
  main: alchemist # название основной команды
  aliases: [ alchemy ] # дополнительные названия команды

# Плата за скрещивание.
# Каждый блок "- provider" добавляет ещё одну валюту. Игрок платит все валюты сразу.
# Итог: (base + per-potion x зелья + per-effect x эффекты) минус скидка игрока.
price:
  costs:
    - provider: VAULT # плагин экономики: VAULT, BVAULT, COINSENGINE, PLAYERPOINTS
      currency: money # COINSENGINE: ID валюты. BVAULT: название счёта. VAULT и PLAYERPOINTS это поле не читают
      base: 3000 # базовая цена скрещивания
      per-potion: 0 # доплата за каждое зелье в слотах
      per-effect: 250 # доплата за каждый эффект в готовом зелье

# Звуки меню. Пустой key отключает звук.
sounds:
  click: # клик по кнопке
    key: "minecraft:ui.button.click" # ID звука
    volume: 0.5 # громкость от 0.0 до 1.0
    pitch: 1.0 # высота от 0.5 до 2.0
  mix-success: # успешное скрещивание
    key: "minecraft:block.brewing_stand.brew"
    volume: 1.0
    pitch: 1.0
  mix-fail: # неудача или ошибка
    key: "minecraft:block.note_block.bass"
    volume: 1.0
    pitch: 1.0

config-version: 2 # служебное поле, не меняй

YAML:
min-potions: 2 # минимум зелий для скрещивания
allow-crossed: false # true: скрещенное зелье участвует в новом скрещивании
allow-duplicates: false # true: разрешены зелья с одинаковым эффектом
combine-essences: false # true: эссенции работают на скрещенных зельях, а зелья с эссенцией идут в скрещивание

# Эффекты из одной группы не попадают в одно зелье.
# Названия как в команде /effect. В группе минимум два эффекта.
incompatible:
  - [strength, resistance]
  - [regeneration, instant_health]

# Шанс неудачи в процентах:
# base-chance + chance-per-effect x число эффектов, минус бонус уровня, не выше max-chance.
failure:
  mode: SPOIL # BURN: зелья сгорают. SPOIL: игрок получает испорченное зелье из items.yml
  base-chance: 0 # шанс неудачи без учёта эффектов
  chance-per-effect: 5 # прибавка за каждый эффект
  max-chance: 50 # потолок шанса

limits:
  cooldown-seconds: 0 # пауза между скрещиваниями, 0 отключает паузу
  daily-mixes: 0 # скрещиваний в сутки, 0 отключает лимит
  # Свои лимиты по праву ralchemist.limits.<имя>.
  # При нескольких правах игрок получает меньшую паузу и больший лимит.
  groups:
    vip: # право ralchemist.limits.vip
      cooldown-seconds: 0
      daily-mixes: 0

config-version: 1 # служебное поле, не меняй

YAML:
points-per-mix: 10 # очки за одно успешное скрещивание

# Список уровней. Номер уровня: ключ секции. Добавляй и удаляй уровни свободно.
list:
  1:
    points: 0 # очки для получения уровня
    slots: 5 # открытые слоты под зелья
    discount: 0 # скидка на скрещивание в процентах
    fail-reduction: 0 # сколько процентов вычитается из шанса неудачи
  2:
    points: 50
    slots: 8
    discount: 5
    fail-reduction: 5
  3:
    points: 150
    slots: 10
    discount: 10
    fail-reduction: 10
  4:
    points: 400
    slots: 12
    discount: 15
    fail-reduction: 15
  5:
    points: 1000
    slots: 15
    discount: 20
    fail-reduction: 25

config-version: 1 # служебное поле, не меняй

YAML:
# Готовое зелье после скрещивания.
crossed-potion:
  model-data: 0 # CustomModelData для ресурспака
  name: "<white>Скрещенное зелье" # название, формат MiniMessage
  lore: [] # описание под названием

# Зелье при неудаче в режиме SPOIL.
spoiled-potion:
  model-data: 0
  name: "<white>Испорченное зелье"
  lore:
    - ""
    - " <#D7706C>▌ <white>Что-то пошло не так..."
    - ""
  effects: # формат: эффект:уровень:секунды
    - poison:1:15
    - nausea:1:10

# Эссенция времени.
essence:
  material: AMETHYST_SHARD # предмет эссенции
  glow: false # блеск зачарования
  model-data: 0 # CustomModelData для ресурспака
  duration-minutes: 5 # до скольких минут продлевает эффекты, максимум 1440
  level-cost: 1 # цена в наковальне в уровнях опыта, от 1 до 39
  name: "<white>Эссенция времени"
  lore: # {minutes} подставляет duration-minutes
    - ""
    - " <#7FC4B8>Эссенция <white>- увеличивает время"
    - " <white>эффектов любого зелья."
    - ""
    - " <#7FC4B8><u>▌</u> <white>Время эффектов: до <#7FC4B8>{minutes} мин."
    - " <#7FC4B8>▌ <white>Скрещивание в наковальне."
    - ""

# Эссенция силы.
power-essence:
  material: BLAZE_POWDER
  glow: true
  model-data: 0
  max-level: 2 # потолок уровня эффекта
  ignored-effects: [night_vision, invisibility, fire_resistance, water_breathing, slow_falling, glowing] # эти эффекты не усиливаются
  level-cost: 3
  name: "<white>Эссенция силы"
  lore: # {max} подставляет max-level
    - ""
    - " <#D9A26B>Эссенция <white>- усиливает эффекты"
    - " <white>любого зелья на один уровень."
    - ""
    - " <#D9A26B><u>▌</u> <white>Максимальный уровень: <#D9A26B>{max}"
    - " <#D9A26B>▌ <white>Скрещивание в наковальне."
    - ""

# Эссенция скрытности: убирает частицы эффектов.
stealth-essence:
  material: PHANTOM_MEMBRANE
  glow: true
  model-data: 0
  required-effects: [invisibility] # зелья, на которые действует. Пустой список []: любые зелья
  level-cost: 3
  name: "<white>Эссенция скрытности"
  lore:
    - ""
    - " <#8FB8DE>Эссенция <white>- полностью скрывает"
    - " <white>частицы зелья невидимости."
    - ""
    - " <#8FB8DE>▌ <white>Скрещивание в наковальне."
    - ""

# Эссенция тайны: маскирует зелье под бутылёк воды.
mystery-essence:
  material: INK_SAC
  glow: true
  model-data: 0
  level-cost: 1
  name: "<white>Эссенция тайны"
  lore:
    - ""
    - " <#9FA8DA>Эссенция <white>- скрывает эффекты зелья"
    - " <white>в описании, пока его не выпьют."
    - ""
    - " <#9FA8DA>▌ <white>Скрещивание в наковальне."
    - ""

# Эссенция вечности: положительные эффекты держатся до смерти или молока.
eternity-essence:
  material: NETHER_STAR
  glow: true
  model-data: 0
  level-cost: 30
  name: "<white>Эссенция вечности"
  lore:
    - ""
    - " <#FF6B35>Эссенция <white>- делает положительные"
    - " <white>эффекты зелья бесконечными."
    - ""
    - " <#FF6B35><u>▌</u> <white>Эффект пропадёт после смерти или молока."
    - " <#FF6B35>▌ <white>Скрещивание в наковальне."
    - ""

config-version: 1 # служебное поле, не меняй

YAML:
# Все тексты в формате MiniMessage. {prefix} подставляет строку prefix, {command} название команды.
prefix: "<b><gradient:#FF6B35:#FF9A6C>rAlchemist</gradient></b> <dark_gray>»</dark_gray>"

no-permission: "..." # у игрока нет права
player-only: "..." # команду ввели из консоли
player-not-found: "..." # игрок не в сети. {player}: ник
unknown: "..." # неизвестная подкоманда
data-not-loaded: "..." # данные игрока ещё грузятся из базы
help: [] # строки справки /alchemist help
invalid-number: "..." # неверное число. {value}: ввод, {max}: максимум

give: # команда /alchemist give
  usage: [] # подсказка по использованию
  sender: "..." # сообщение администратору. {player}, {essence}, {amount}
  target: "..." # сообщение получателю. {essence}, {amount}
  unavailable: "..." # эссенция отключена в items.yml

points: # команда /alchemist points
  usage: [] # подсказка по использованию
  add-points: "..." # выданы очки. {amount}, {player}
  add-levels: "..." # выданы уровни
  take-points: "..." # очки забраны, отрицательное число в add
  take-levels: "..." # уровни забраны
  set-points: "..." # очки установлены
  set-levels: "..." # уровень установлен
  query-points: "..." # очки игрока
  query-levels: "..." # уровень игрока
  unknown-level: "..." # уровня нет в levels.yml. {level}

reload: # команда /alchemist reload
  usage: "..."
  done: "..." # конфиги перечитаны
  economy-failed: "..." # новая экономика не подключилась, работает прежняя

mix: # сообщения меню алхимика
  success: "..." # зелья скрещены. {price}: цена
  burned: "..." # неудача в режиме BURN
  spoiled: "..." # неудача в режиме SPOIL
  too-few: "..." # мало зелий. {required}: минимум
  not-potion: "..." # в слоте лежит не зелье
  not-positive: "..." # в слоте отрицательное зелье или зелье без эффектов
  already-crossed: "..." # скрещенное зелье при allow-crossed: false
  essence-potion: "..." # зелье с эссенцией при combine-essences: false
  different-types: "..." # смешаны обычные, взрывные и туманные зелья
  duplicate-effect: "..." # одинаковый эффект. {effect}
  incompatible: "..." # несовместимые эффекты. {first}, {second}
  result-busy: "..." # в слоте результата лежит прошлое зелье
  cooldown: "..." # пауза не прошла. {seconds}
  daily-limit: "..." # суточный лимит исчерпан. {limit}
  not-enough-money: "..." # не хватает средств. {price}
  economy-error: "..." # плата не списалась, зелья остались у игрока

price: # как выглядит цена в меню и сообщениях. {amount}: сумма, {currency}: валюта
  free: "<#8CC77E>бесплатно"
  vault: "<#E6C15A>{amount} ⛃"
  bvault: "<#E6C15A>{amount} ⛃"
  coinsengine: "<#E6C15A>{amount} {currency}"
  playerpoints: "<#8FB8DE>{amount} валюта."

level:
  up: "..." # игрок получил новый уровень. {level}
  max: "<gray>макс." # текст вместо порога очков на последнем уровне
  never: "<gray>-" # текст для слота, который не открывает ни один уровень

limits:
  unlimited: "<gray>без лимита" # текст {left} при выключенном лимите

color:
  default: "<gray>по умолчанию" # название цвета, когда игрок его не выбирал
  input: "..." # подсказка с командой /alchemist #RRGGBB
  invalid: "..." # неверный формат цвета

config-version: 2 # служебное поле, не меняй

YAML:
storage: sqlite # где хранятся очки, уровни и цвет игроков: sqlite или mysql

# Читается только при storage: mysql
mysql:
  host: localhost # адрес сервера базы
  port: 3306 # порт
  database: ralchemist # название базы
  user: "root" # пользователь
  password: "" # пароль

config-version: 1 # служебное поле, не меняй
Зависимости
Vault, BVault, CoinsEngine, PlayerPoints
Команды и права
КомандаЧто делаетПраво
/alchemistОткрывает меню алхимикаralchemist.use
/alchemist #RRGGBBЗадаёт свой цвет зельяralchemist.use
/alchemist give <игрок> <тип> [количество]Выдаёт эссенцию: time, power, stealth, mystery, eternityralchemist.admin
/alchemist points add <игрок> <количество> [points|levels]Добавляет очки или уровни алхимикаralchemist.admin
/alchemist points set <игрок> <количество> [points|levels]Устанавливает очки или уровень алхимикаralchemist.admin
/alchemist points query <игрок> [points|levels]Показывает очки или уровень игрокаralchemist.admin
/alchemist reloadПеречитывает конфигиralchemist.admin
/alchemist helpПоказывает список командralchemist.admin

Алиас: /alchemy. Право ralchemist.use выдано всем игрокам, ralchemist.admin выдано операторам.

ПравоЧто даёт
ralchemist.bypass.cooldownСкрещивание без паузы
ralchemist.bypass.limitСкрещивание без суточного лимита
ralchemist.discount.<число>Скидка в процентах, складывается со скидкой уровня
ralchemist.limits.<имя>Лимиты группы из mixing.yml
  • Мне нравится (+1)
  • Печально (0)
Реакции: nekoswordik и BrickX
Автор
Rulhot
Скачивания
9
Просмотры
233
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Rulhot

Поделиться ресурсом

Последние обновления

  1. 1.1

    Добавлено Плагин сам проверяет, вышла ли новая версия, и пишет об этом в консоль при запуске...
Назад
Сверху Снизу