Это именно то, на что это похоже : рабочая тележка, загруженная драгоценным грузом, начинает случайным образом пересекать железнодорожную систему — ОНА БУДЕТ РАБОТАТЬ НА ЛЮБОЙ КАРТЕ С ПОДДЕРЖКОЙ ПОЕЗДА, ВКЛЮЧАЯ ПРОГЕНЫ И ПОЛЬЗОВАТЕЛЬСКИЕ КАРТЫ, ИЗ КОРОБКИ! Игрокам предстоит победить ученых и взять под контроль добычу до того, как грузовой поезд самоуничтожится . Жители туннелей и возможная радиация на поезде — это только одна из ваших проблем: следите за другими игроками, которые могут следить за каждым вашим шагом по камерам видеонаблюдения поезда, пока событие активно! Случайная добыча по умолчанию может включать в себя ящики Брэдли, Вертолета, Элиты и Запертые ящики . Легко настраиваемый , оптимизированный для производительности и работает на любой карте с железнодорожной системой, включая PvE и пользовательские карты ! И отлично подходит для тех, где грузовой корабль просто невозможен.
Посмотрите видео ниже.
Как только событие начнётся, если соответствующее уведомление включено в вашей конфигурации, игроки увидят сообщение в чате о происходящем событии. По умолчанию они также увидят координаты поезда и список камер видеонаблюдения в поезде (всегда в формате TRAIN000X, где 000 — число от 0 до 999, а X — буква от A до Z). После добавления этих камер на компьютерную станцию любой желающий сможет наблюдать за событием на камерах видеонаблюдения поезда, если только они не были уничтожены. Камеры видеонаблюдения, как и любую другую добычу/объект, можно перемещать, поворачивать, отключать, а также уменьшать вероятность их появления.
Поскольку это один из плагинов, которые можно установить и забыть, я, честно говоря, не смог придумать ничего другого. Если у вас есть идеи для разрешения, которое могло бы украсить ваш VIP-пакет, не стесняйтесь, дайте мне знать!
Если не указан конкретный поезд/местоположение (с помощью trainevent_now_at и/или trainevent_now_nearest ), для события будет случайным образом выбран один из простаивающих поездов (без игроков, без движения вперед, опционально только на станции), уже существующих на сервере, если только не будут найдены подходящие поезда — в этом случае вы не увидите никакого сообщения.
Для запуска любой из команд конфигурации вам понадобится идентификатор владельца или модератора (или разрешение cargotrainevent.admin ).
При первой загрузке плагина список определений по умолчанию находится в файле oxide/config/CargoTrainEvent.json . С этими определениями вы можете свободно прикрепить к Workcart практически любую создаваемую сущность (некоторые сущности, например, Recyclers, Batterys/Solar Panels, становятся невидимыми на больших расстояниях от исходной точки появления — это не ошибка плагина, а просто то, как Rust отбраковывает рендеринг модели в зависимости от расстояния). Имейте в виду, я не тестировал это на большом количестве различных типов сущностей!
Итак, если вы отредактируете JSON-файл, вы увидите список предопределённых записей. Не стесняйтесь изменять их значения, удалять записи, добавлять свои и т.д. — главное, чтобы вы понимали, что делаете! Всегда проверяйте финальный JSON-файл с помощью инструмента, например,
Посмотрите видео ниже.
Наконец, событие, которое оживит вашу железнодорожную систему
После загрузки плагина первое событие будет запланировано на случайный таймер, выбранный в зависимости от значений, указанных в конфигурации (по умолчанию: случайный таймер в диапазоне от одного до двух часов). В консоли сервера появится сообщение о времени следующего события, как только оно будет запланировано. Если вы не хотите ждать, используйте одну из консольных команд, чтобы запланировать поезд на указанное время или запустить событие немедленно, вне запланированного таймера — читайте ниже.Как только событие начнётся, если соответствующее уведомление включено в вашей конфигурации, игроки увидят сообщение в чате о происходящем событии. По умолчанию они также увидят координаты поезда и список камер видеонаблюдения в поезде (всегда в формате TRAIN000X, где 000 — число от 0 до 999, а X — буква от A до Z). После добавления этих камер на компьютерную станцию любой желающий сможет наблюдать за событием на камерах видеонаблюдения поезда, если только они не были уничтожены. Камеры видеонаблюдения, как и любую другую добычу/объект, можно перемещать, поворачивать, отключать, а также уменьшать вероятность их появления.
Единственное, что может быть интереснее, чем наблюдать за ограблением со своей базы… это участвовать в нем!
Вот большая часть того, что вашим игрокам нужно знать о грузовом поезде…
Он содержит случайную комбинацию возможных ящиков/ученых. Никогда не знаешь, что получишь, но, согласно конфигурации по умолчанию, как минимум один запертый ящик гарантирован.
Если в поезде все еще есть запертый ящик, вы можете отследить его на карте или следить за сообщениями в чате, которые сообщат вам последнюю известную позицию на сетке.
На время мероприятия сама рабочая тележка будет неуязвима. Это поможет ей прорваться сквозь эти надоедливые баррикады!
Поезд идёт с машинистом-NPC. Пока машинист жив, он будет случайным образом пересекать соединённую железнодорожную сеть на карте (без необходимости использования топлива) и останавливать поезд, если на него нападут.
Стрельба по любому NPC/сущности в грузовом поезде или нанесение ей урона также заставит машиниста NPC остановить поезд (опять же, если он жив).
Если у вас закончилось топливо и вам нужно продолжать движение, оставьте NPC-машиниста в живых, или убейте его, чтобы взять под контроль вагонетку. Убийство машиниста также может остановить поезд, если активирована функция «мертвец» (по умолчанию).
Тележка может быть радиоактивной! Вы можете указать радиус радиоактивного пузыря и его интенсивность (НЕОБЯЗАТЕЛЬНО, по умолчанию включено). Так что лучше надевай этот хаззи!
Из тележки также могут выделяться капли загадочной кислотно-зеленой жидкости (которая сама по себе не радиоактивна), которые будут задерживаться на несколько минут вдоль железнодорожных путей — по ним можно идти, как по следу из хлебных крошек!
Как и в случае с грузовым судном, время тикает. В зависимости от вашей конфигурации (30 минут до самоуничтожения + 60 секунд до финального обратного отсчёта по умолчанию), поезд в конечном итоге самоуничтожится, нанеся серьёзный урон всем и каждому в настраиваемом радиусе взрыва и нанеся заданный урон (по умолчанию 2000 единиц здоровья в радиусе 12 метров, что гарантированно убьёт всё поблизости). Собирайте добычу и ныряйте, когда время подходит к концу! Если ваша конфигурация позволяет (и это ещё не последний обратный отсчёт), взлом запертого ящика в поезде может продлить таймер (по умолчанию: выключено).
Счетчики энергии в кабине водителя (включены по умолчанию) покажут вам оставшиеся минуты/секунды до самоуничтожения/финального отсчета.
По умолчанию грузовой поезд оснащён четырьмя камерами видеонаблюдения, за которыми может следить любой желающий. Камеры видеонаблюдения можно разрушить, если участники решат, что им нужна конфиденциальность.
Грузовые поезда всегда красные, обычные поезда всегда желтые, поэтому вы можете легко отличить их друг от друга даже издалека.
Ученые будут стрелять в любого человека поблизости без разбора, включая жителей туннелей (которые, в свою очередь, не будут стрелять в ответ).
Работает на любой карте без настройки, включая пользовательские карты, такие как Last Train!
Разрешения (Oxide.Grant пользователю YourName [имя разрешения, начинающееся с cargotrainevent.])
На данный момент существует только одно разрешение — разрешение администратора:cargotrainevent.admin
Это позволит вам запускать команду /te_cfg и все команды консоли администратора, если у вас нет идентификатора владельца/модератора на сервере.Поскольку это один из плагинов, которые можно установить и забыть, я, честно говоря, не смог придумать ничего другого. Если у вас есть идеи для разрешения, которое могло бы украсить ваш VIP-пакет, не стесняйтесь, дайте мне знать!
Команды консоли администратора (необходимо разрешение ownerid/moderatorid/cargotrainevent.admin)
Их можно запускать из серверной консоли, клиентской консоли F1 или даже вызывать другими плагинами. Только игроки с правами ownerid/moderatorid/cargotrainevent.admin могут запускать их из консоли F1. Очевидно, это не относится к серверной консоли.Если не указан конкретный поезд/местоположение (с помощью trainevent_now_at и/или trainevent_now_nearest ), для события будет случайным образом выбран один из простаивающих поездов (без игроков, без движения вперед, опционально только на станции), уже существующих на сервере, если только не будут найдены подходящие поезда — в этом случае вы не увидите никакого сообщения.
Конфигурация (oxide/config/CargoTrainEvent.json)
Подавляющее большинство параметров можно настроить с помощью команды чата /te_cfg . Ввод этой команды в чат без параметров должен вывести список полей конфигурации и их значений.Для запуска любой из команд конфигурации вам понадобится идентификатор владельца или модератора (или разрешение cargotrainevent.admin ).
Расширенная конфигурация — создавайте собственные грузовые поезда с использованием случайных рабочих тележек.
Каждая камера, электрическая сущность, ящик и учёный, которых вы видите на рабочей тележке (а иногда и нет), выбираются полуслучайным образом из списка возможных определений сущностей рабочей тележки в конфигурации. Они определяют, куда поместить сущность (и как её повернуть), какой скин ей дать (если нужно), смогут ли игроки нанести урон этой сущности, вероятность появления этой сущности при каждом событии, какие сущности (если таковые имеются) должны успешно появиться первыми (чтобы учёные не стояли на месте запертого ящика — они просто не появятся, если ящик не появится) и т. д. (см. ниже)…При первой загрузке плагина список определений по умолчанию находится в файле oxide/config/CargoTrainEvent.json . С этими определениями вы можете свободно прикрепить к Workcart практически любую создаваемую сущность (некоторые сущности, например, Recyclers, Batterys/Solar Panels, становятся невидимыми на больших расстояниях от исходной точки появления — это не ошибка плагина, а просто то, как Rust отбраковывает рендеринг модели в зависимости от расстояния). Имейте в виду, я не тестировал это на большом количестве различных типов сущностей!
Итак, если вы отредактируете JSON-файл, вы увидите список предопределённых записей. Не стесняйтесь изменять их значения, удалять записи, добавлять свои и т.д. — главное, чтобы вы понимали, что делаете! Всегда проверяйте финальный JSON-файл с помощью инструмента, например,
You do not have permission to view link
Войдите или зарегистрируйтесь.
перед перезагрузкой плагина! Ниже приведён пример записи — в данном случае это первый учёный, который должен стоять на первом ящике (том, что в середине тележки):- Идентификатор (в данном случае 3) нужен для идентификации с другими префабами — оба числа в первых двух строках записи должны совпадать. Если у двух записей будет одинаковый идентификатор, это может привести к неприятностям.
- PrefabName — это полное название готового объекта, который можно создать — в данном случае это учёный-турель. Если вы можете создать его из консоли, то можете использовать его как объект Workcart… теоретически!
- SpawnChance — это вероятность появления сущности в диапазоне от 0 (никогда) до 1 (всегда). Это базовая вероятность появления сущности в поезде (она всё равно будет проверяться, если это позволяют зависимости/конфликты, если они не равны нулю).
- Неуязвимость применяется к BaseCombatEntities – то есть ко всему, что имеет здоровье, например, к игрокам, размещаемым объектам и т. д. Установите значение true, если не хотите, чтобы эти объекты получали какой-либо урон при прикреплении к поезду.
- HealthMultiplier позволит вам дать сущности больше или меньше здоровья (он умножит здоровье на это значение, то есть 2,0 — это вдвое больше обычного здоровья, 0,25 — это четверть обычного здоровья и т. д.)
- PickupEnabled по умолчанию имеет значение false, и я не вижу абсолютно никаких причин, по которым вы могли бы захотеть, чтобы ваши игроки могли поднимать предметы из поезда с помощью молотка — но как бы то ни было, он там есть, так что можете сходить с ума, если вам так нужно.
- IsLocked также по умолчанию имеет значение false. Если true, то флаг Locked сущности будет установлен в значение true — и для разных сущностей это означает разное, обычно означая, что игроки не смогут с ними взаимодействовать (по сути, это будет лишь декорацией).
- PowerUpImmediately, если установлено значение true, означает, что если объект представляет собой электроприбор (сирена, мигалка и т. д.), он будет включен при запуске события и останется под напряжением на протяжении всего события. Если значение false, он будет включен только во время финального отсчёта.
- Значение ReliesOnSpawningIDs может быть пустым, и оно будет проигнорировано. Но если оно содержит список идентификаторов, эти идентификаторы должны быть созданы первыми, прежде чем появится эта сущность. В этом примере учёный полагается на идентификатор 0 (согласно конфигурации по умолчанию, это первый запертый ящик). Если ящик не появляется (хотя в этом примере он всегда появляется), этот учёный также не появится.
- ConflictsWithSpawningIDs также может быть равен null, и он будет проигнорирован. Но если он содержит список идентификаторов, эти идентификаторы являются противоположностью ReliesOnSpawningIDs — они не должны были быть созданы изначально, чтобы данная сущность была рассмотрена. По очевидным причинам один и тот же идентификатор не может одновременно быть использованным и конфликтовать с одной и той же записью, поэтому любые подобные несоответствия будут автоматически устранены при загрузке плагина путём повторной генерации конфигурации, поэтому всегда делайте резервные копии!
- LocalPosX , LocalPosY, LocalPosZ, LocalRotX, LocalRotY, LocalRotZ определяют положение и поворот префаба относительно рабочей тележки. Как это узнать? Просто откройте пустую карту в Rust Edit, поместите объект Workcart Entity точно в точку с координатами 0,0,0 с поворотом 0,0,0 и начните размещать объекты относительно них. Запишите три координаты и три угла поворота объектов, и всё, никаких приблизительных оценок!
- В большинстве случаев SkinID будет равен 0, но если вы хотите разместить что-либо, на что можно накладывать скины (учебные мишени, ящики, холодильники и т.д.), это поле нужно изменить. Идентификатор скина можно извлечь из URL-адреса предмета в мастерской.