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

Vehicle

Управляемые транспортные средства с топливом, здоровьем, боем на выносливости, способностями, уровнями, скинами и гаражом.

Приватныеv0.1Сущности и модели
ТребуетсяTypeWriter0.9.0-beta-177 (BTC build)BasicBTCMobsPacketEventsGUIнеобязательноBetterModelнеобязательно

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

Обзор​

Vehicle позволяет игрокам владеть пользовательским транспортом, вызывать его и управлять им: автомобили, лодки, летающие скакуны. Вы определяете тип транспорта один раз (его внешний вид, скорость, здоровье, топливо, бой и прогрессию), а у каждого игрока есть экземпляры этого типа с собственным уровнем, топливом, здоровьем, щитом и скином, сохраняемые в артефакте. Игрок вызывает транспорт из меню гаража или действием, едет на нём клавишами перемещения и убирает его обратно.

Транспорт состоит из двух частей. Невидимая сущность-носитель несёт физику и пассажира. К ней прикреплена визуальная часть: отображаемый предмет, ванильный моб, модель BetterModel или моб BTCMobs. Поэтому вы можете использовать простой предмет для недорогого транспорта или анимированную модель для флагманского.

Вождение, топливо, урон, способности и повышение уровня — всё это доступно TypeWriter: они запускают события, предоставляют факты, а способности выполняют любой список действий TypeWriter. Расширение работает на сборке BTC для TypeWriter и требует возможностей BTC Core.

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

  • Четыре типа перемещения — GROUND, WATER, AMPHIBIOUS и AIR, у каждого свой носитель.
  • Четыре визуальных варианта — display (предмет), vanilla (моб), bettermodel и btcmobs, с моделью, определяемой для каждого игрока.
  • Топливо — бак, расход в секунду, принимаемые виды топлива и действие заправки.
  • Здоровье и щит — удары сначала поглощаются щитом; при 0 здоровья транспорт уничтожается и должен быть отремонтирован.
  • Уровни и характеристики — настраиваемая кривая опыта и бонус к характеристикам за уровень.
  • Бой — атака левым кликом с дальностью, перезарядкой и затратой выносливости, заряд при удержании клавиши прыжка и необязательный урон от столкновений.
  • Способности — активируемые способности с перезарядкой и затратой выносливости, выполняющие любые действия TypeWriter.
  • Меню гаража — меню с пагинацией для транспорта игрока, построенное на раскладке GUI.
  • Лимит владения — базовый лимит, повышаемый правом.
  • События и факты — столкновение, пустой бак, повышение уровня, атака, попадание зарядом, уничтожение и исчерпание выносливости.

Установка​

  1. Установите расширения BTCMobs и Basic (оба объявлены зависимостями), а также расширение GUI для меню гаража. См. BTCMobs.
  2. Установите PacketEvents. Без него управление отключено, а в логе пишется PacketEvents not found! WASD steering will be disabled.
  3. По желанию установите BetterModel, чтобы использовать визуальный вариант bettermodel.
  4. Поместите JAR-файл Vehicle в plugins/Typewriter/extensions/ и перезапустите сервер.

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

  1. В веб-панели TypeWriter откройте страницу static и добавьте артефакт Vehicle Storage.
  2. Добавьте одну запись Vehicle Config и задайте storage равным артефакту. Без него данные транспорта не загружаются и не сохраняются, а в логе пишется Aucun stockage designe.
  3. Добавьте Vehicle Definition: выберите movement (GROUND), visual (display с материалом, например MINECART) и настройте stats, fuel (добавьте предмет в allowedFuels) и combat.
  4. Добавьте действие Spawn Vehicle, ссылающееся на определение, и запускайте его командой, от NPC или события. Первый вызов выдаёт игроку новый транспорт этого типа, заправленный и с полным здоровьем, и сажает игрока на него.
  5. Для гаража добавьте Vehicle Garage Menu, построенное с помощью layoutPool, затем запустите Open Vehicle Garage.
  6. Добавьте Refill Vehicle Fuel и Repair Vehicle на заправке или у NPC гаража. Опубликуйте и проверьте.
Нет команд

Vehicle не регистрирует собственных команд. Вызывайте, убирайте и ремонтируйте через действия, меню гаража или записи команд TypeWriter.

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

Носитель зависит от movement: GROUND использует стойку для брони, перемещаемую сервером, WATER и AMPHIBIOUS используют лодку, которую клиент симулирует сам, а AIR использует счастливого гаста. Для лодок сервер не управляет: он проверяет каждый тик и возвращает транспорт назад, когда тот превышает maxSpeed, когда бак пуст или (для GROUND) когда он входит в жидкость.

Управление использует пакеты ввода игрока: вперёд, назад, влево, вправо, прыжок и приседание. Спешивание убирает транспорт (он исчезает, а данные сохраняются).

У экземпляра транспорта есть уровень, опыт, здоровье, щит, топливо и скин. Характеристики умножаются на 1 + statBonusPerLevel * (level - 1) (кроме гравитации). Опыт, необходимый для выхода с уровня, равен baseXp * level ^ xpGrowth. На maxLevel опыт перестаёт накапливаться.

Меню​

Vehicle Garage Menu строится как любое меню GUI: layoutPool, mainLayoutId, необязательные views и baseMenuId для наследования общего шасси. Размещайте предметы со следующими типами кнопок (buttonType предмета):

Тип кнопкиПоведение
vehicle_button:VEHICLE_SLOT#<n>Показывает n-й транспорт игрока (отсортированный по идентификатору экземпляра); клик вызывает его. Пусто, если у игрока их меньше.
vehicle_button:VEHICLE_SPAWNВызывает активный транспорт.
vehicle_button:VEHICLE_DESPAWNУбирает транспорт, на котором игрок едет, и закрывает меню.
vehicle_button:VEHICLE_INFOВыводит в чат уровень, топливо и здоровье активного транспорта.
vehicle_button:NAV_BACKВозвращает в предыдущее меню.
vehicle_button:NAV_CLOSEЗакрывает меню.

vehicleDisplay задаёт вид слота транспорта: item, nameFormat и lore с токенами %name%, %level%, %max_level%, %fuel%, %max_fuel%, %health%, %max_health% и %shield%. Предмет, который вы размещаете для кнопки, сохраняет собственное название и описание, если их определяет страница.

Права​

ПравоЧто даёт
typewriter.vehicle.limit.<n>Повышает лимит владения на <n>, когда его считывает запись Vehicle Ownership Limit (учитывается наибольшее значение).

Других прав расширение не определяет.

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

Два факта можно считывать как плейсхолдеры через TypeWriter: Vehicle Ownership Limit и Vehicles Owned Count, каждый возвращает число. Расширение не регистрирует собственных плейсхолдеров.

Записи​

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

Действия9
События7
Факты4
Артефакты1
Манифесты4

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

После перезапуска ничего не сохраняется. У vehicle_config нет storage или он указывает на отсутствующий артефакт. В логе сообщается Aucun stockage designe dans 'vehicle_config'. Задайте артефакт в storage.

Транспорт не двигается по WASD. Отсутствует PacketEvents, поэтому управление отключено. Установите его и перезапустите.

Транспорт откатывается назад или не двигается. Сервер откатывает, когда транспорт движется быстрее stats.maxSpeed (блоков за тик), когда fuel равно 0 (и запускает On Vehicle Fuel Empty) или, для GROUND, когда он входит в воду или лаву. Увеличьте maxSpeed, заправьте транспорт или переключитесь на AMPHIBIOUS.

Ce vehicule n'est pas disponible pour le moment. Не удалось создать визуальную часть: идентификатор модели, которого нет в BetterModel, неизвестный mobId BTCMobs или материал display, не являющийся предметом. Проверьте в логе non spawne или visuel.

Вызов отклоняется сообщением о лимите. У игрока уже есть baseOwnershipLimit единиц транспорта (по умолчанию 1). Лимит учитывает права, только если вы создали запись Vehicle Ownership Limit; иначе действует только baseOwnershipLimit.

This vehicle is destroyed — repair it before summoning it again. Здоровье достигло 0. Выполните Repair Vehicle: оно расходует repair.amount предмета repair.item и восстанавливает healthPerRepair здоровья активного транспорта.

Способность ничего не делает. Она должна быть перечислена в abilities определения транспорта, а игрок должен управлять транспортом, иметь достаточно выносливости и не быть на перезарядке; каждый сбой отправляет сообщение из vehicle_config.

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

  • BTCMobs — предоставляет визуальный вариант btcmobs.
  • GUI — отрисовывает меню гаража.