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

Настройка

Почти всё находится в одном файле — config.lua. Два файла бриджа и локали тоже открыты.


ФайлЗа что отвечаетОткрыт?
config.luaЯзык, валюта, взаимодействие, лимит установки и каждый стационарный автомат с ценойДа
locales/*.luaПодсказки, уведомления и надписи таргетаДа
bridge/client_bridge.luaОпределение фреймворка, чтение денег, уведомления, текст подсказок и зоны ox-target / qb-target / drawtextДа
bridge/server_bridge.luaСписание и выплата денег или жетонов, имена и идентификаторы персонажей, уведомления и используемые предметы-автоматыДа
items/Определения предметов для ox, qb и ESX, а также иконки в items/images/Да
ui/Меню автомата и семь игр, каждая в своей папке в ui/games/Не под escrow
client/data.luaПоложение камеры и экрана для каждой модели автоматаПод escrow
mic_arcade_props/Модели автоматов и отрисовщик экрановТолько ассеты

ПараметрЧто делаетПо умолчанию
Config.LocaleКакой файл из locales/ используется'en'
Config.PaymentTypeЧем платят за игру: cash, bank, both или item'item'
Config.PaymentItemПредмет, используемый как валюта, когда PaymentType равен item'arcade_coin'
Config.Interactionox-target (через дефис), qb-target или drawtext'ox-target'
Config.MaxArcadesPerPlayerСколько установленных автоматов может быть у одного персонажа сразу3
ЗначениеЧто происходит
cashОплата наличными (на ESX — со счёта money)
bankОплата с банковского счёта
bothСначала наличные; если их не хватает, остаток берётся из банка
itemОплата предметом Config.PaymentItem, по одному предмету за единицу цены

Та же валюта используется для ставок и выигрышей в DuoFight.


Одна запись на каждую модель автомата. В каждой записи есть Price и, по желанию, любое количество фиксированных позиций (vec4 с x, y, z и направлением) — в каждой создаётся по одному автомату.

АвтоматМодельИграЦенаСтационарный по умолчанию
DuoFightmic_arcade_duofightФайтинг на двоих или против компьютера0Нет (закомментирован)
Alienmic_arcade_alienAlien100Нет (закомментирован)
Breakoutmic_arcade_brickBreakout100Нет (закомментирован)
Pixelmic_arcade_pixelPixel100Да
Racemic_arcade_raceRace100Да
Towermic_arcade_towerTower100Да
Roadmic_arcade_roadRoad100Да
  • Чтобы добавить стационарный автомат, добавьте позицию в список под нужной моделью. Встаньте туда, где он должен стоять, возьмите свои координаты и направление и впишите их.
  • Чтобы убрать автомат, удалите или закомментируйте его позицию. Price продолжает действовать для установленных игроками автоматов этой модели.
  • Цена 0 делает автомат бесплатным.
  • Начало координат автомата Breakout расположено ниже, чем у остальных — в поставляемой позиции Breakout значение по оси z примерно на 0,7 меньше, чем у соседей. Делайте так же, когда добавляете его.

Price также определяет, сколько берёт установленный автомат этой модели.


Предмет-автомат (arcade_alien, arcade_race…) запускает установку:

КлавишаЧто делает
ОсмотретьсяПеремещает предпросмотр туда, куда вы смотрите
Колёсико мышиПоворачивает его
EУстанавливает автомат и забирает предмет
ESC / BackspaceОтменяет; предмет остаётся у вас

Только владелец получает пункт Pick Up Arcade (при drawtext — вторая клавиша, указанная в подсказке). При подъёме предмет возвращается. Автомат, которым кто-то пользуется, поднять нельзя.

Config.MaxArcadesPerPlayer считает автоматы, которые персонаж установил на данный момент.


При выборе режима для двоих в DuoFight запрашивается ставка: 1, 5, 25, 50 или 100 в вашей валюте. Организатор платит её и ждёт у автомата; следующему игроку, подошедшему к автомату, предлагается матч, и он платит столько же, чтобы присоединиться.

РезультатЧто происходит
ПобедаПобедитель получает обе ставки
НичьяКаждый игрок получает свою ставку обратно
Игрок уходит посреди матчаОн проигрывает: другой игрок получает обе ставки
Организатор уходит, пока никто не присоединилсяМатч отменяется; ставка организатора не возвращается
Игрок отключаетсяМатч отменяется, выплат нет

Каждая игра, кроме DuoFight, сохраняет лучший результат каждого персонажа в mic_arcade_leaderboard и показывает первую десятку на автомате. Имена берутся из имени персонажа в вашем фреймворке. Чтобы сбросить таблицу лидеров, очистите эту таблицу (или строки одной игры) при остановленном сервере.


В locales/ поставляются десять: en, es, fr, de, it, pt, nl, ja, ru, zh. Укажите в Config.Locale нужный код.

Чтобы добавить новый, скопируйте locales/en.lua в новый файл с названием по вашему коду, замените Locales['en'] на свой код, переведите правую часть каждой строки и задайте Config.Locale. Отсутствующий ключ отображается как Translation [xx][key] does not exist — отката на английский нет.

Файлы локалей охватывают то, что показывается в игровом мире: надписи таргета, подсказки и уведомления. Текст внутри самих игр относится к ui/games/.


ФайлЧто он охватывает
bridge/client_bridge.luaОпределение фреймворка, количество денег или жетонов, показываемое игроку, Bridge.Notify, текст подсказок и зону взаимодействия на каждом автомате для ox-target, qb-target или drawtext
bridge/server_bridge.luaОпределение фреймворка, списание и выплату денег или предметов (Bridge.RemoveMoney, Bridge.AddMoney), предметы-автоматы, имя и идентификатор персонажа, серверные уведомления и список используемых предметов-автоматов

Другой ресурс уведомлений: измените Bridge.Notify в клиентском файле и Bridge.ServerNotify в серверном. Сообщения not enough money отправляются из Bridge.RemoveMoney.

Другой ресурс таргета: Bridge.RegisterArcadeInteraction и Bridge.RemoveArcadeInteraction в клиентском файле — единственные места, где затрагиваются таргеты.

Другой инвентарь: жетоны и предметы-автоматы читаются и удаляются через собственные функции игрока во фреймворке в server_bridge.lua. Если ваш инвентарь на них не отзывается, перенаправьте Bridge.RemoveMoney, Bridge.AddMoney, Bridge.RemoveSpecificItem, Bridge.AddSpecificItem и Bridge.GetMoney на свой инвентарь.

Новый используемый предмет для автомата: таблица UsableArcades в конце server_bridge.lua сопоставляет каждый предмет с моделью автомата.