1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/harvey-husky-fz-survival-datapack

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
DEVDOC.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.04.2025 08:39 ded01cb

Разработочная документация

Правила

  • Функция, это файлы с расширением .mcfunction в директории <namespace>/functions
  • Тег, это файлы с расширением .json в директории <namespace>/tags
    • При перезаписи тега и добавлении функции, replace должно быть true
      {
          "replace": true,
          "values": .  .  .
      }
    • При регистрации функции в теге, replace должно быть false
      {
          "replace": false,
          "values": .  .  .
      }
  • Успех перезаписи функций и тегов зависит от порядка загрузки пакетов, используйте команду /datapack enable <xxx> after <xxx> для загрузки вашего расширения после пакета FZ's Survival Datapack

Основные требования

  • Если функция вызывается более чем двумя функциями или вызывается из функций других пакетов, или должна быть открыта как интерфейс для пакетов-наследников, то следует использовать теги вместо функций!
  • При вызове функций, избегайте использования команды function, вместо этого используйте теги для последовательного вызова функций!

Системные модули

Часто используемые вычислительные блоки

  • Теги с префиксом #fzsd:calculation/* обычно используются для выполнения простых повторяющихся вычислений

Модуль событий

  • Обычно события вызываются по достижении определенного progress, после чего вызывается тег события с тем же именем
  • Для регистрации функций, вызываемых при событии, используйте теги в директории #fzsd:game_event/(<. . . >/)on_<событие> ### Модуль логирования
  • В репозитории доступны фрагменты кода для логирования, расположенные в файле .vscode/settings.json
  • На данный момент нет способа выводить логи в консоль сервера, но они будут записаны в клиенте

Подробный лог Fine

  • Уровень: 300
  • Способ использования: execute if score fzsd.logger.level fzsd.variable.integer matches . . 300 run tellraw @a [{"nbt": "fzsd.level.fine", "interpret": true, "storage": "fzsd:logger"}, {"text": "ваш лог"}]

Лог отладки Debug

  • Уровень: 400
  • Способ использования: execute if score fzsd.logger.level fzsd.variable.integer matches . . 400 run tellraw @a [{"nbt": "fzsd.level.debug", "interpret": true, "storage": "fzsd:logger"}, {"text": "ваш лог"}]

Информационный лог Info

  • Уровень: 500
  • Способ использования: execute if score fzsd.logger.level fzsd.variable.integer matches . . 500 run tellraw @a [{"nbt": "fzsd.level.info", "interpret": true, "storage": "fzsd:logger"}, {"text": "ваш лог"}]

Предупреждающий лог Alert

  • Уровень: 600
  • Способ использования: execute if score fzsd.logger.level fzsd.variable.integer matches . . 600 run tellraw @a [{"nbt": "fzsd.level.alert", "interpret": true, "storage": "fzsd:logger"}, {"text": "ваш лог"}]

Исключение Exception

  • Не предоставляется

Ошибка Error

  • Уровень: 800
  • Метод использования: execute if score fzsd.logger.level fzsd.variable.integer matches . . 800 run tellraw @a [{"nbt": "fzsd.level.error", "interpret": true, "storage": "fzsd:logger"}, {"text": "ваш лог"}]

Функциональные модули

Модуль интерактора

Операции с кнопками

1.Определите функцию, которая будет выполнена при отображении кнопки, используя команду вида tellraw @s {"text": "[кнопка]", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set <триггерный_балл>"}}. - Положительный триггерный балл перезапустит отправку кнопки игроку, если не хотите перезапуск, используйте отрицательное значение - В большинстве случаев триггерный балл должен быть уникальным - Рекомендуется использовать случайное число больше 10000 в качестве триггерного балла для пользовательских кнопок 2. Зарегистрируйте вышеупомянутую функцию в теге #fzsd:module/interactor/event/on_display 3. Определите функцию, которая будет выполнена при нажатии кнопки, используя команду вида execute if score @s fzsd.module.interactor.trigger matches <min>..<max> run . . . для проверки триггерного балла игрока и выполнения ваших действий 4. Зарегистрируйте вышеупомянутую функцию в теге #fzsd:module/interactor/event/on_click

Другие теги

Модуль счетчиков

Пользовательские цвета счетчиков

Пользовательские имена счетчиков

  1. Определите функцию, которая установит цвет и текст счетчика, используя структуру, аналогичную функциям fzsd:module/scoreboard/display/set_text/general/*. Замените тег #fzsd:module/scoreboard/display/set_text/<название_счетчика> на указанный функционал.

Расширение собственного счетчика

  1. Определите функцию установки, используя за основу функцию fzsd:module/scoreboard/install.
  2. Зарегистрируйте эту функцию в теге #fzsd:module/scoreboard/install.
  3. Следуя инструкциям по "персонализации цвета счетчика" и "персонализации названия счетчика", определите цвет и название вашего счетчика.
  4. Определите функцию для генерации временного идентификатора счетчика, используя за основу функцию fzsd:module/scoreboard/display/register_id.
  5. Зарегистрируйте эту функцию в теге #fzsd:module/scoreboard/display/register_id. 6.Определите функцию для отображения вашего счетчика при ротации, используя за основу функцию fzsd:module/scoreboard/display/carousel/set_display/*
  6. Определите функцию для проверки, пришла ли очередь вашего счетчика при ротации, и вызовите предыдущую функцию после проверки, используя за основу функцию fzsd:module/scoreboard/display/carousel/try_display/*
  7. Зарегистрируйте эту функцию в теге #fzsd:module/scoreboard/display/try_display

Персонализированный модуль

Исключение фальшивых игроков

  • Если вы не хотите выполнять команды для фальшивых игроков, добавьте следующую команду перед командами, которые вы хотите выполнить:
    execute if predicate fzsd:is_real_player

Регистрация функций установки, удаления и загрузки

Регистрация кнопок интерактора

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/harvey-husky-fz-survival-datapack.git
git@api.gitlife.ru:oschina-mirror/harvey-husky-fz-survival-datapack.git
oschina-mirror
harvey-husky-fz-survival-datapack
harvey-husky-fz-survival-datapack
dev/3.1