AI Core
Мир и инструментыai-exitsleeping

ai-exitsleeping

Игрок, который выходит из игры, остаётся в мире спящим телом, которое другие могут нести и сажать в транспорт.

ai-exitsleeping оставляет вышедших персонажей в мире. Когда игрок выходит с сервера или возвращается на экран персонажей, его персонаж ложится спящим телом там, где стоял. Другие игроки могут нести его, посадить в транспорт и снова вынуть, а владелец просыпается там, где в итоге оказалось тело.

Что он делает в игре

  • Спящие тела. У тела внешность персонажа (через слой внешности AI Core, поэтому работает любой поддерживаемый скрипт одежды) и одна из поз лёжа из панели. Каждый игрок видит одну и ту же позу.
  • Переноска. Подойдите к телу и нажмите клавишу взаимодействия у Carry Sleeping Player. X (или Stop Carrying) кладёт его там, где вы стоите. Нести нельзя, находясь в транспорте, без сознания или в наручниках.
  • Транспорт. Во время переноски Put in Vehicle у транспорта сажает тело на пассажирское сиденье. Take Out Sleeping Player у транспорта с телом внутри вынимает его (тогда вы его несёте).
  • Пробуждение. Следующее появление владельца происходит там, где сейчас тело: на земле, на плече того, кто несёт, или на сиденье транспорта, куда его посадили.
  • Истечение. Тела игроков, которые вышли раньше, чем количество дней из панели, удаляются.
  • Скрытые области и отдельные миры. Внутри скрытой области (панель) тело не остаётся, а тела, положенные там, скрываются. При включённом Ignore private worlds игроки внутри интерьера дома или мотеля не оставляют тело и не видят тел.

Установка

Устанавливается рецептом AI Core. Вручную: ensure ai-exitsleeping после ai-core. Таблица ai_exitsleeping_sleepers создаётся при первом запуске.

Если ваш скрипт появления сам размещает игрока после появления через ai-core, установите Wake up on в PlayerLoaded export (spawn script) и вызывайте из него exports['ai-exitsleeping']:PlayerLoaded() (см. страницу разработчика).

Настройки панели

Админ-панель > Exit Sleeping.

Вкладка General

Сколько хранятся спящие тела, на каком расстоянии они рисуются и что с ними могут делать игроки.

Sleeping bodies (спящие тела): игрок, который выходит, остаётся в мире спящим телом там, где вышел, и просыпается там, где в итоге оказалось тело.

НастройкаЧто меняетЕдиницаПо умолчанию
Keep bodies forТела игроков, которые вышли раньше этого срока, удаляются. 1-365.дни3
Draw distanceСпящие тела появляются, когда игрок подходит на это расстояние, и исчезают дальше него. 5-60, с шагом 0.5.м25
Ignore private worldsИгроки внутри отдельного мира (интерьер дома или номера мотеля) не оставляют тело при выходе и не видят тел, пока находятся внутри.вкл. / выкл.вкл.
Wake up onCharacter spawn (ai-core) или PlayerLoaded export (spawn script). Оставьте значение по умолчанию, если только скрипт появления не вызывает exports['ai-exitsleeping']:PlayerLoaded() после своего собственного появления.Character spawn (ai-core)

Carrying and vehicles (переноска и транспорт): игроки могут нести спящее тело, посадить его на сиденье транспорта и снова вынуть.

НастройкаЧто меняетЕдиницаПо умолчанию
Interaction distanceНасколько близко должен стоять игрок, чтобы нести тело или дотянуться до транспорта. 1-10, с шагом 0.5.м2.5
Server distance checkСервер отклоняет переноску или действие с транспортом с большего расстояния (против читов). 2-30, с шагом 0.5.м6
Position checkКак часто сервер обновляет, где находятся несомые тела и тела в транспорте, чтобы владелец проснулся в нужном месте. 1-60.с5
Debug messagesПечатает действия скрипта в консоли сервера и клиента.вкл. / выкл.выкл.

Вкладка Animations

Позы лёжа спящих тел и анимация переноски. Каждая анимация задаётся Animation dictionary, Animation name и Animation flags (флаги анимаций GTA, 0-65535: 1 по кругу, 49 по кругу на верхней части тела во время ходьбы, 33 по кругу, пока прикреплено).

КарточкаЧто меняетПо умолчанию
Lying posesКаждое тело случайно выбирает одну из них; каждый игрок видит одну и ту же позу. До 20.amb@world_human_bum_slumped@male@laying_on_left_side@idle_a / idle_b, флаги 1
Carrying playerАнимация игрока, который несёт тело.missfinale_c2mcs_1 / fin_c2_mcs_1_camman, флаги 49
Carried bodyАнимация тела на плече того, кто несёт.nm / firemans_carry, флаги 33

Carry position (положение при переноске): где несомое тело находится на том, кто несёт.

НастройкаЧто меняетЕдиницаПо умолчанию
Bone indexИндекс кости того, кто несёт, к которой прикрепляется тело (0 = корень педа).0
Offset rightОт -5 до 5, с шагом 0.01.м0.2
Offset forwardОт -5 до 5.м0.15
Offset upОт -5 до 5.м0.63
Rotation XОт -360 до 360, с шагом 0.5.°0.5
Rotation YОт -360 до 360.°0.5
Rotation ZОт -360 до 360.°5

Вкладка Hidden areas

Места, где спящие тела не показываются, например интерьеры или безопасные зоны. Одна запись на область (New area / Delete area). Удаление области снова делает видимыми спящие тела внутри. Готовых областей нет.

Area (область): игроки, которые выходят внутри, не оставляют тело; тела, положенные внутри, скрываются (владелец всё равно просыпается там).

НастройкаЧто меняетЕдиницаПо умолчанию для новых
NameНазвание области.
ShapeBall, Cylinder или Polygon: шар или цилиндр вокруг центральной точки или многоугольник из угловых точек.Ball
CentreСередина области (шар и цилиндр).точка
RadiusМетры от центра до края (шар и цилиндр). 1-2000.м25
HeightНа сколько метров вверх и вниз простирается область (цилиндр: от центра; многоугольник: за пределы его самого низкого и самого высокого угла). 0.5-1000.м10

Polygon corners (углы многоугольника, только для многоугольника): добавляйте угол на каждом повороте границы по порядку (свободной камерой или своей позицией); многоугольнику нужно не меньше трёх, до 64. Пока это поле на экране, форма рисуется в мире.

Команды

КомандаАргументыКтоЧто делает
/exitsleeptestнетАдминистраторы (ai.admin)Переключить своё собственное спящее тело (тест): создаёт тело там, где вы стоите, или убирает его.

Привязки клавиш

Клавиша по умолчаниюЧто делает
XПоложить спящего игрока, которого вы несёте

Известные ограничения

  • Тела существуют только в общем мире: внутри инстанс-интерьера несомое тело кладётся в его последней позиции снаружи.
  • После перезапуска сервера каждое тело лежит на земле в своей последней сохранённой позиции (состояния «несут» и «сидит» не сохраняются).
  • Игрок, который просыпается в течение нескольких секунд после исчезновения того, кто его нёс, или транспорта, может появиться в последней сохранённой точке (интервал Position check).

На этой странице