ai-prison
Тюремные сроки, которые считает сервер. Предметы забираются у ворот, работа в тюрьме, столовая и побеги с дополнительным сроком.
ai-prison отвечает за тюремные сроки. Полиция отправляет закованного игрока в тюрьму из своего меню, администраторы командой, а другие скрипты через AI Core. Минуты считает сервер, поэтому игрок не может их изменить. Работа в тюрьме сокращает срок, столовая раздаёт бесплатную еду, а выход за пределы тюрьмы возвращает игрока с дополнительным сроком.
Что он делает в игре
- Заключение. Игрок перемещается в случайную точку камеры и получает уведомление с минутами. Когда включено Take items at the gate, весь инвентарь забирается и хранится в персонаже.
- Часы. Одна минута срока проходит за минуту в игре. Когда включено Count time offline, время вне сервера тоже считается. Игрок получает уведомление с оставшимся временем при заключении, каждые 10 минут и каждую минуту последних 5. Пока игрок в заключении, радиальное меню показывает Sentence.
- Работа в тюрьме. Рабочие места (по умолчанию электрощитки) показываются только заключённым. Работа запускает полосу прогресса; в конце срок сокращается на минуты этого места. У каждого места своё ожидание, прежде чем тот же персонаж сможет снова там работать.
- Столовая. Стойка, где заключённые бесплатно получают предмет еды, раз в Wait between meals.
- Побеги. Каждые 10 секунд сервер проверяет, где находится каждый заключённый. За пределами тюрьмы игрок отправляется обратно в камеру с дополнительными минутами, а полиция получает вызов, когда включено Alert the police.
- Освобождение. Когда срок отбыт (или полиция или администратор освобождают игрока), игрок перемещается в точку освобождения и получает обратно забранные предметы.
- Записи. Каждое заключение пишет запись
jailв полицейский MDT, если он запущен.
Установка
Устанавливается рецептом AI Core. Вручную: ensure ai-prison после ensure ai-core. Нужны ai-core и OneSync. Собственной таблицы в базе данных он не использует: срок хранится в персонаже.
Тюрьма по умолчанию Bolingbroke Penitentiary, с 11 точками камер, областью из 16 углов, 7 рабочими местами у электрощитков и столовой, которая раздаёт burger. Убедитесь, что предмет еды есть в вашем инвентаре, или измените его.
Настройки панели
Админ-панель > Prison. Значения по умолчанию берутся из data/settings.json и data/tasks.json.
Вкладка Prison
Cells and release (камеры и освобождение): заключённый начинает в случайной точке камеры и выходит в точке освобождения, когда срок отбыт.
| Настройка | Что меняет | По умолчанию |
|---|---|---|
| Cell points | До 30 точек (позиция и направление), где появляются заключённые. | 11 камер в Bolingbroke |
| Release point | Где стоит игрок после окончания срока (за воротами). | 1848.13, 2586.05, 44.67 |
Prison area (территория тюрьмы): заключённый за пределами этой области считается сбежавшим.
| Настройка | Что меняет | Единица | По умолчанию |
|---|---|---|---|
| Area corners | Обойдите стены тюрьмы и добавляйте угол на каждом повороте (не меньше 3, не больше 32). | 16 углов | |
| Area height | Метры над и под углами, которые всё ещё считаются внутри. 5-200. | м | 200 |
Canteen (столовая): стойка, где заключённые бесплатно получают еду.
| Настройка | Что меняет | Единица | По умолчанию |
|---|---|---|---|
| Canteen counter | Где находится точка столовой. | 1777.59, 2560.52, 44.62 | |
| Meal item | Выдаваемый предмет; пусто закрывает столовую. | burger | |
| Items per meal | Сколько штук предмета даёт одна еда. 1-10. | 1 | |
| Wait between meals | Минуты, прежде чем тот же персонаж получит следующую еду. 0-240. | мин | 10 |
Вкладка Rules
Sentence (срок): минуты считает сервер; игроки не могут их изменить.
| Настройка | Что меняет | Единица | По умолчанию |
|---|---|---|---|
| Longest sentence | Более длинные сроки от полиции или администраторов обрезаются до этого. 1-10,000. | мин | 120 |
| Count time offline | Вкл.: минуты идут и пока игрок отсутствует. Выкл.: считается только время в игре. | выкл. | |
| Take items at the gate | Вкл.: инвентарь забирается при заключении и возвращается при освобождении. | вкл. |
Escapes (побеги)
| Настройка | Что меняет | Единица | По умолчанию |
|---|---|---|---|
| Extra time for an escape | Минуты, которые добавляются каждый раз, когда заключённого находят за пределами области. 0-600. | мин | 5 |
| Alert the police | Отправляет вызов полиции с позицией побега. | вкл. |
Вкладка Prison work
Одна запись на рабочее место. Удаление места означает, что игроки больше не могут там работать.
| Настройка | Что меняет | Единица | По умолчанию |
|---|---|---|---|
| Name | Название места, показывается в его подсказке ("Work: Fuse box 1"). | пусто | |
| Place | Где работает игрок. Встаньте там и используйте свою позицию. | 0, 0, 0 | |
| Work time | Сколько идёт полоса прогресса. 3-120. | с | 10 |
| Minutes served | На сколько сокращается срок каждый раз. 0-60. | мин | 1 |
| Wait before working here again | Секунды, прежде чем тот же персонаж сможет снова работать на этом месте. 0-3600. | с | 120 |
Команды
| Команда | Аргументы | Кто может использовать | Что делает |
|---|---|---|---|
/jail | id (серверный id игрока), minutes (число) | администраторы ai-core (ACE ai.admin), консоль сервера или любой, кому разрешено command.jail | Отправляет игрока в тюрьму. Минуты обрезаются до Longest sentence. |
/unjail | id (серверный id игрока) | администраторы ai-core, консоль или command.unjail | Сразу освобождает игрока вместе с его предметами. |
Полицейские сажают в тюрьму из меню ai-police (Send to prison); команда им не нужна.
Привязки клавиш
Нет. Рабочие места и столовая являются точками взаимодействия (подсказка с E или опция target, по Interaction style из ai-core).
Что он заменяет
Нет fxProvide. Он хранит срок в ключе метаданных персонажа injail, который использует QBCore, поэтому скрипты QB, которые читают или пишут injail, работают с ним. Полицейский скрипт QB, который выставляет injail через мост, начинает срок в ai-prison; выставление 0 освобождает.
Другие скрипты тюрьмы
Слой тюрьмы AI Core также поддерживает qb-prison, rcore_prison, xt-prison и tgiann-policejob. Остановите ai-prison и запустите один из них: ai-police и каждый другой скрипт продолжат сажать в тюрьму через AI Core. См. Совместимость.
Известные ограничения
- При выключенном Count time offline игрок, который выходит, сохраняет оставшиеся минуты до возвращения.
- Заключение игрока, который уже сидит, устанавливает новый срок; предметы, сохранённые при первом заключении, остаются сохранёнными.
- Полный инвентарь при освобождении не может принять все предметы обратно; то, что не поместилось, записывается в лог сервера.
- Канал логов:
prison.
ai-policealert для разработчиков
Как отправить вызов полиции, который дойдёт до ai-policealert (или любого другого скрипта оповещений), поля DispatchAlert и собственный экспорт ai-policealert.
ai-prison для разработчиков
Заключение, освобождение и оставшийся срок через слой тюрьмы AI Core, серверные экспорты ai-prison и метаданные персонажа, которые он хранит.