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

Настройка

Поведение задаётся в config.lua. Всё, что затрагивает ваш фреймворк, ваши уведомления или то, что на самом деле делает эффект, находится в папке bridge/, которая оставлена открытой именно для этого.


Файл или папкаЗа что отвечаетОткрыт?
config.luaВсе настройки с этой страницы и список вейповОткрыт
locales/*.luaТексты уведомлений, по одному файлу на языкОткрыт
bridge/client_bridge.luaОпределение фреймворка на клиенте, уведомления, индикатор выполнения и что делает каждый эффектОткрыт
bridge/server_bridge.luaОпределение фреймворка на сервере, удаление закончившегося вейпа, проверка инвентаря и хук стресса OnVapePuffОткрыт
bridge/stress.luaСтарая копия хука стресса. Манифест её не загружает; вместо этого правьте server_bridge.luaОткрыт
client/client.luaДоставание вейпа, затяжка, дым и его синхронизацияEscrow
server.luaРегистрирует каждый вейп как используемый предмет и передаёт дым другим игрокамEscrow
html/Индикатор выполнения: index.html, style.css, script.jsОбычные файлы
stream/Десять моделей вейпов и def_props.ytypАссеты
inventory_items/Готовые определения предметов для ESX, ox_inventory и QBCoreСправочные
inventory_images/Одна иконка на каждый предметАссеты

ПараметрЧто делаетПо умолчанию
Config.LocaleЯзык уведомленийen
Config.ShowNotificationsПоказывать ли уведомления вообще. Выключено — значит никаких сообщений «достал», «кулдаун», «пусто» и о способностяхfalse
Config.EnableMaxPuffsВейпы заканчиваются после количества затяжек puffstrue
Config.RemoveVapeCommandКоманда чата, которая убирает вейпvape
Config.PuffKeyКлавиша затяжки по умолчаниюE
Config.DisableCombatButtonsБлокирует боевые кнопки (атака и прицеливание), пока выходит дымtrue
Config.StressВызывает хук стресса при каждой затяжке (см. Стресс)true

Config.PuffKey — это значение по умолчанию. Затяжка — это привязка клавиши FiveM с названием «Vape Puff», поэтому каждый игрок может изменить её в Settings › Key Bindings › FiveM, а когда у игрока привязка уже сохранена, изменение Config.PuffKey на неё больше не влияет.


ПараметрЧто делаетПо умолчанию
Config.SpeedVapeInfiniteStaminaВыносливость не расходуется во время эффекта скоростиtrue
Config.StaticHealthfalse: каждая затяжка здоровья добавляет Config.Health. true: затяжка поднимает здоровье до Config.Health, если оно нижеfalse
Config.HealthДобавляемое значение или уровень, до которого поднимается здоровье. При статической настройке используйте 101–200 — шкала здоровья в игре10
Config.StaticArmorТа же идея для брони: добавить или поднять доfalse
Config.ArmorДобавляемое значение или уровень, до которого поднимается броня (до 100)10

Здоровье всегда удерживается в пределах от 100 до 200, броня — не выше 100.


ПараметрЧто делаетПо умолчанию
Config.VapeExhaleРазмер частицы дыма0.4
Config.SmokeOpacityНасколько плотен дым, от 0.0 до 1.01.0
Config.SmokeDelayСекунды между анимацией затяжки и появлением дыма1.5
Config.ParticleКакая частица используется: dict и name. По умолчанию — дым от пробуксовки из scr_recartheftscr_recartheft / scr_wheel_burnout
Config.SmokeOffsetОткуда начинается дым относительно головы: PosX, PosY, PosZ, RotX, RotY, RotZ0.05, 0.0, 0.5, 0, 0, 0

Каждое облако держится 1,5 секунды и показывается игрокам в радиусе 30 метров.


Каждая запись — это название предмета → настройки. Полный список поставляемых вейпов — на странице 🎒 Предметы.

ПолеЧто делает
propКакая модель в руке: mic_black, mic_blue, mic_green, mic_lightblue, mic_orange, mic_pink, mic_purple, mic_red, mic_white, mic_yellow
LabelНазвание, используемое на индикаторе выполнения
SmokeColorЦвет R, G, B либо слово Rainbow для переливающихся цветов
CooldownСекунды до того, как этим вейпом снова можно будет затянуться
puffsКоличество затяжек, после которых вейп заканчивается, а один экземпляр удаляется из инвентаря
EffectDurationСколько секунд действует способность. 0 для вкусов
ShowProgressПоказывать индикатор выполнения, пока действует способность. Выключено у всех поставляемых вейпов
SpeedMultiplierТолько для speed_vape (бег) и carspeed_vape (двигатель)
powerНеобязательно. Список эффектов, которые выполняются вместе, у каждого своё число (см. ниже)

Эффект определяется названием предмета. invisibility_vape делает вас невидимым, потому что он называется invisibility_vape; любое другое название без списка power — это вкус.

Названия эффектов, которые понимает bridge: invisibility_vape, speed_vape, superjump_vape, teleport_vape, invincibility_vape, health_vape (или health), armor_vape (или armor), carspeed_vape, freeze_vape, gravity_vape — а также random_vape, который выбирает один из остальных.

Задайте вейпу список power, и при каждой затяжке он выполнит все эффекты из него, как бы ни назывался вейп. Число рядом с каждым эффектом — это его длительность в секундах, кроме health и armor, где это значение. vape_custom в конфиге — рабочий пример: здоровье 10, броня 10, скорость на 10 секунд.

  1. Скопируйте существующую запись в Config.Vapes и дайте ей новое название предмета.
  2. Выберите prop, SmokeColor, puffs и Cooldown. Для способности либо используйте одно из названий эффектов выше как название предмета, либо добавьте список power.
  3. Добавьте предмет в инвентарь так же, как остальные, вместе с иконкой.
  4. Выполните refresh, затем restart mic_vape.

Дополнительные эффекты, которые понимает bridge

Заголовок раздела «Дополнительные эффекты, которые понимает bridge»

freeze_vape (вы не можете двигаться) и gravity_vape (низкая гравитация, медленное движение) обрабатываются в bridge/client_bridge.lua, а их определения предметов уже лежат в inventory_items/, но записей в Config.Vapes у них нет. Добавьте запись для каждого — скопируйте superjump_vape и переименуйте — и они заработают.

transform_vape тоже есть в файлах предметов, но ему нужен список Config.TransformAnimals, которого в поставляемом конфиге нет. Не трогайте его, пока не будете готовы написать этот список и проверить его.


При Config.Stress = true каждая затяжка вызывает OnVapePuff в bridge/server_bridge.lua с серверным ID игрока. «Из коробки» эта функция лишь выводит строку в консоль сервера. Внутри неё лежат закомментированные примеры для метаданных QBCore и esx_status: раскомментируйте подходящий или вызовите здесь собственный HUD или ресурс стресса.

Если вы не используете стресс, задайте Config.Stress = false, и консоль останется тихой.


В locales/ лежат девять файлов: en, de, es, fr, it, pl, pt, ru, tr. Выберите один через Config.Locale.

Строка car_speed — она показывается, когда срабатывает вейп скорости машины — в поставляемых файлах читается как «No waypoint set!». Перепишите её в вашем языковом файле.

Чтобы добавить язык: скопируйте locales/en.lua, измените ключ в начале на ваш код, переведите и добавьте файл и в client_scripts, и в server_scripts в fxmanifest.lua. Укажите Config.Locale, выполните refresh и перезапустите ресурс.


Всё, что зависит от вашего сервера, находится в bridge/.

ФайлЧто менять там
bridge/client_bridge.luaShowNotification — направьте сообщения в ваш собственный ресурс уведомлений. Код эффектов — измените, что делает способность, или добавьте новое название эффекта. ShowProgressBar / HideProgressBar — для индикатора
bridge/server_bridge.luaOnVapePuff для стресса. Удаление закончившегося вейпа и проверка, остался ли предмет у игрока, — адаптируйте эти две функции для инвентаря, который не использует собственные функции предметов ESX или QBCore

Оба файла находят фреймворк одинаково: es_extended, если он запущен, иначе qb-core — именно так определяется и QBox, через совместимость с QBCore. Для другого фреймворка добавьте ветку там и в двух функциях предметов рядом.


Команда или клавишаЧто делаетГде задаётся
Использовать предметДостаёт вейп; повторное использование убирает егоИнвентарь
E («Vape Puff»)Делает затяжкуConfig.PuffKey, затем настройки клавиш каждого игрока
/vapeУбирает вейпConfig.RemoveVapeCommand

Вейп также убирается, если предмета больше нет у игрока; ресурс проверяет это каждые 2,5 секунды.