Przejdź do głównej zawartości

Personalizacja

Zachowanie jest w config.lua. Wszystko, co dotyka twojego frameworka, powiadomień lub tego, co faktycznie robi dany efekt, znajduje się w folderze bridge/, który jest otwarty właśnie z tego powodu.


Plik lub folderZa co odpowiadaOtwarty?
config.luaKażde ustawienie z tej strony oraz lista vape’ówOtwarty
locales/*.luaTeksty powiadomień, jeden plik na językOtwarty
bridge/client_bridge.luaWykrywanie frameworka po stronie klienta, powiadomienia, pasek postępu i to, co robi każdy efektOtwarty
bridge/server_bridge.luaWykrywanie frameworka po stronie serwera, usuwanie pustego vape’a, sprawdzanie ekwipunku oraz hak stresu OnVapePuffOtwarty
bridge/stress.luaStarsza kopia haka stresu. Manifest jej nie wczytuje; edytuj zamiast niej server_bridge.luaOtwarty
client/client.luaWyjmowanie vape’a, zaciągnięcie, dym i jego synchronizacjaZaszyfrowany (Escrow)
server.luaRejestruje każdy vape jako używalny przedmiot i przekazuje dymZaszyfrowany (Escrow)
html/Pasek postępu: index.html, style.css, script.jsZwykłe pliki
stream/Dziesięć modeli vape’ów i def_props.ytypZasoby
inventory_items/Gotowe definicje przedmiotów dla ESX, ox_inventory i QBCoreMateriały pomocnicze
inventory_images/Po jednej ikonie dla każdego przedmiotuZasoby

OpcjaCo robiDomyślnie
Config.LocaleJęzyk powiadomieńen
Config.ShowNotificationsCzy w ogóle pokazywać powiadomienia. Wyłączone oznacza brak komunikatów “took out”, “on cooldown”, “empty” i o mocachfalse
Config.EnableMaxPuffsVape’y wyczerpują się po swojej liczbie puffstrue
Config.RemoveVapeCommandKomenda czatu, która chowa vape’avape
Config.PuffKeyDomyślny klawisz zaciągnięciaE
Config.DisableCombatButtonsBlokuje przyciski walki (atak i celowanie), gdy wydobywa się dymtrue
Config.StressWywołuje hak stresu przy każdym zaciągnięciu (zobacz Stres)true

Config.PuffKey to wartość domyślna. Zaciągnięcie to przypisanie klawisza FiveM o nazwie “Vape Puff”, więc każdy gracz może je zmienić w Ustawienia › Key Bindings › FiveM, a gdy gracz ma już zapisane przypisanie, zmiana Config.PuffKey nie wpływa już na niego.


OpcjaCo robiDomyślnie
Config.SpeedVapeInfiniteStaminaWytrzymałość nie spada podczas efektu szybkościtrue
Config.StaticHealthfalse: każde zaciągnięcie zdrowia dodaje Config.Health. true: zaciągnięcie podnosi zdrowie do Config.Health, jeśli jest niższefalse
Config.HealthDodawana ilość albo poziom, do którego podnosimy. Przy ustawieniu statycznym użyj 101–200, czyli skali zdrowia w grze10
Config.StaticArmorTo samo dla pancerza: dodawanie lub podnoszenie do poziomufalse
Config.ArmorDodawana ilość albo poziom, do którego podnosimy (maksymalnie 100)10

Zdrowie jest zawsze utrzymywane w przedziale od 100 do 200, a pancerz na poziomie 100 lub niższym.


OpcjaCo robiDomyślnie
Config.VapeExhaleRozmiar cząsteczki dymu0.4
Config.SmokeOpacityJak gęsty jest dym, od 0.0 do 1.01.0
Config.SmokeDelaySekundy między animacją zaciągnięcia a pojawieniem się dymu1.5
Config.ParticleUżywana cząsteczka: dict i name. Domyślnie dym z palenia gumy ze scr_recartheftscr_recartheft / scr_wheel_burnout
Config.SmokeOffsetSkąd dym się zaczyna względem głowy: PosX, PosY, PosZ, RotX, RotY, RotZ0.05, 0.0, 0.5, 0, 0, 0

Każda chmura utrzymuje się 1,5 sekundy i jest widoczna dla graczy w promieniu 30 metrów.


Każdy wpis to nazwa przedmiotu → ustawienia. Pełna dołączona lista znajduje się w 🎒 Przedmioty.

PoleCo robi
propKtóry model jest trzymany: mic_black, mic_blue, mic_green, mic_lightblue, mic_orange, mic_pink, mic_purple, mic_red, mic_white, mic_yellow
LabelNazwa używana na pasku postępu
SmokeColorKolor R, G, B albo słowo Rainbow dla zmieniających się kolorów
CooldownSekundy, zanim ten vape będzie można znowu zaciągnąć
puffsLiczba zaciągnięć, zanim się wyczerpie i jedna sztuka zostanie zabrana z ekwipunku
EffectDurationSekundy, przez które trwa moc. 0 dla smaków
ShowProgressPokaż pasek postępu, dopóki trwa moc. Wyłączone w każdym dołączonym vape’ie
SpeedMultiplierTylko dla speed_vape (sprint) i carspeed_vape (silnik)
powerOpcjonalne. Lista efektów uruchamianych razem, każdy z własną liczbą (zobacz niżej)

O efekcie decyduje nazwa przedmiotu. invisibility_vape czyni cię niewidzialnym, bo nazywa się invisibility_vape; każda inna nazwa bez listy power to smak.

Nazwy efektów, które rozumie bridge: invisibility_vape, speed_vape, superjump_vape, teleport_vape, invincibility_vape, health_vape (lub health), armor_vape (lub armor), carspeed_vape, freeze_vape, gravity_vape — oraz random_vape, który wybiera jeden z pozostałych.

Daj vape’owi listę power, a przy każdym zaciągnięciu uruchomi każdy efekt z niej, niezależnie od tego, jak się nazywa. Liczba obok każdego efektu to jego czas trwania w sekundach, z wyjątkiem health i armor, gdzie jest to ilość. vape_custom w configu to działający przykład: zdrowie 10, pancerz 10, szybkość przez 10 sekund.

  1. Skopiuj istniejący wpis w Config.Vapes i nadaj mu nową nazwę przedmiotu.
  2. Wybierz prop, SmokeColor, puffs i Cooldown. Dla mocy użyj jednej z powyższych nazw efektów jako nazwy przedmiotu albo dodaj listę power.
  3. Dodaj przedmiot do swojego ekwipunku tak samo jak pozostałe, wraz z ikoną.
  4. Wpisz refresh, a potem restart mic_vape.

freeze_vape (nie możesz się ruszać) i gravity_vape (niska grawitacja, wolniejszy ruch) są obsługiwane w bridge/client_bridge.lua, a ich definicje przedmiotów są już w inventory_items/, ale nie mają wpisu w Config.Vapes. Dodaj wpis dla każdego — skopiuj superjump_vape i zmień nazwę — a będą działać.

transform_vape też jest w plikach przedmiotów, ale wymaga listy Config.TransformAnimals, której dołączony config nie ma. Pomiń go, chyba że jesteś gotowy napisać tę listę i ją przetestować.


Przy Config.Stress = true każde zaciągnięcie wywołuje OnVapePuff w bridge/server_bridge.lua z serwerowym ID gracza. Domyślnie ta funkcja tylko wypisuje linię w konsoli serwera. W środku znajdują się zakomentowane przykłady dla metadanych QBCore i esx_status: odkomentuj ten, który pasuje, albo wywołaj tam własny HUD lub zasób od stresu.

Jeśli nie używasz stresu, ustaw Config.Stress = false, a konsola będzie milczeć.


W locales/ znajduje się dziewięć plików: en, de, es, fr, it, pl, pt, ru, tr. Wybierz jeden przez Config.Locale.

Linia car_speed — pokazywana, gdy zadziała vape z prędkością auta — brzmi w dołączonych plikach “No waypoint set!”. Przeredaguj ją w pliku swojego języka.

Aby dodać język: skopiuj locales/en.lua, zmień klucz na górze na swój kod, przetłumacz i dodaj plik do obu list client_scripts i server_scripts w fxmanifest.lua. Ustaw Config.Locale, wpisz refresh i zrestartuj.


Wszystko, co zależy od twojego serwera, znajduje się w bridge/.

PlikCo tam zmienić
bridge/client_bridge.luaShowNotification — kieruje komunikaty do twojego zasobu powiadomień. Kod efektów — zmienia działanie mocy lub dodaje nową nazwę efektu. ShowProgressBar / HideProgressBar dla paska
bridge/server_bridge.luaOnVapePuff dla stresu. Usuwanie pustego vape’a i sprawdzanie, czy gracz nadal go ma — dostosuj te dwie funkcje do ekwipunku, który nie korzysta z własnych funkcji przedmiotów ESX ani QBCore

Oba pliki znajdują framework w ten sam sposób: es_extended, jeśli jest uruchomiony, w przeciwnym razie qb-core — tak samo wykrywany jest QBox, przez swoją zgodność z QBCore. Dla innego frameworka dodaj gałąź tam oraz w dwóch funkcjach przedmiotów obok.


Komenda lub klawiszCo robiUstawiane w
Użycie przedmiotuWyjmuje vape’a; ponowne użycie go chowaEkwipunek
E (“Vape Puff”)Zaciąga sięConfig.PuffKey, potem przypisania klawiszy każdego gracza
/vapeChowa vape’aConfig.RemoveVapeCommand

Vape jest też chowany, gdy gracz nie ma już przy sobie przedmiotu; zasób sprawdza to co 2,5 sekundy.