Anpassung
Das Verhalten wird in config.lua festgelegt. Alles, was dein Framework, deine Benachrichtigungen oder die genaue Funktionsweise eines Effekts betrifft, befindet sich im Ordner bridge/, der genau aus diesem Grund unverschlüsselt bleibt.
Welche Datei was bestimmt
Abschnitt betitelt „Welche Datei was bestimmt“| Datei oder Ordner | Was darin bestimmt wird | Offen? |
|---|---|---|
config.lua | Alle Einstellungen auf dieser Seite und die Liste der Vapes | Offen |
locales/*.lua | Benachrichtigungstexte, eine Datei pro Sprache | Offen |
bridge/client_bridge.lua | Framework-Erkennung auf dem Client, Benachrichtigungen, der Fortschrittsbalken und was jeder Effekt bewirkt | Offen |
bridge/server_bridge.lua | Framework-Erkennung auf dem Server, Entfernen einer leeren Vape, Inventarprüfung und der Stress-Hook OnVapePuff | Offen |
bridge/stress.lua | Eine ältere Kopie des Stress-Hooks. Wird vom Manifest nicht geladen; bearbeite stattdessen server_bridge.lua | Offen |
client/client.lua | Hervorholen der Vape, der Zug, der Rauch und dessen Synchronisation | Escrowed |
server.lua | Registriert jede Vape als nutzbares Item und leitet den Rauch weiter | Escrowed |
html/ | Der Fortschrittsbalken: index.html, style.css, script.js | Unverschlüsselte Dateien |
stream/ | Die zehn Vape-Modelle und def_props.ytyp | Assets |
inventory_items/ | Vorgefertigte Item-Definitionen für ESX, ox_inventory und QBCore | Referenz |
inventory_images/ | Ein Icon pro Item | Assets |
Allgemeine Einstellungen
Abschnitt betitelt „Allgemeine Einstellungen“| Option | Was sie bewirkt | Standard |
|---|---|---|
Config.Locale | Sprache der Benachrichtigungen | en |
Config.ShowNotifications | Benachrichtigungen überhaupt anzeigen. Aus bedeutet keine Meldungen für „hervorgeholt“, „im Cooldown“, „leer“ oder Power-Effekte | false |
Config.EnableMaxPuffs | Vapes werden nach ihrer puffs-Anzahl leer | true |
Config.RemoveVapeCommand | Chat-Befehl zum Wegstecken der Vape | vape |
Config.PuffKey | Standardtaste für den Zug | E |
Config.DisableCombatButtons | Blockiert Kampftasten (Angriff und Zielen), während der Rauch austritt | true |
Config.Stress | Ruft bei jedem Zug den Stress-Hook auf (siehe Stress) | true |
Config.PuffKey ist ein Standardwert. Der Zug ist eine FiveM-Tastenbelegung namens „Vape Puff“, sodass jeder Spieler sie unter Einstellungen › Tastenbelegungen › FiveM anpassen kann. Sobald ein Spieler die Tastenbelegung gespeichert hat, ändert Config.PuffKey dies für ihn nicht mehr.
Gesundheit, Rüstung und Geschwindigkeit
Abschnitt betitelt „Gesundheit, Rüstung und Geschwindigkeit“| Option | Was sie bewirkt | Standard |
|---|---|---|
Config.SpeedVapeInfiniteStamina | Ausdauer verbraucht sich während des Geschwindigkeitseffekts nicht | true |
Config.StaticHealth | false: Jeder Gesundheitszug addiert Config.Health. true: Ein Zug erhöht die Gesundheit auf Config.Health, falls sie darunter liegt | false |
Config.Health | Hinzugefügte Menge oder Zielwert. Beim statischen Modus verwende 101–200 (die Gesundheitsskala des Spiels) | 10 |
Config.StaticArmor | Gleiches Prinzip für Rüstung: addieren oder auf den Wert setzen | false |
Config.Armor | Hinzugefügte Menge oder Zielwert (bis zu 100) | 10 |
Gesundheit wird stets zwischen 100 und 200 gehalten, Rüstung bei 100 oder darunter.
| Option | Was sie bewirkt | Standard |
|---|---|---|
Config.VapeExhale | Größe der Rauchpartikel | 0.4 |
Config.SmokeOpacity | Dichte des Rauchs, 0.0 bis 1.0 | 1.0 |
Config.SmokeDelay | Sekunden zwischen der Zug-Animation und dem Erscheinen des Rauchs | 1.5 |
Config.Particle | Welches Partikel verwendet wird: ein dict und ein name. Standardmäßig Burnout-Rauch aus scr_recartheft | scr_recartheft / scr_wheel_burnout |
Config.SmokeOffset | Startpunkt des Rauchs relativ zum Kopf: PosX, PosY, PosZ, RotX, RotY, RotZ | 0.05, 0.0, 0.5, 0, 0, 0 |
Jede Wolke hält 1,5 Sekunden an und wird Spielern im Umkreis von 30 Metern angezeigt.
Die Vapes — Config.Vapes
Abschnitt betitelt „Die Vapes — Config.Vapes“Jeder Eintrag ist Item-Name → Einstellungen. Die vollständige mitgelieferte Liste findest du unter 🎒 Items.
| Feld | Was es bewirkt |
|---|---|
prop | Welches Modell in der Hand gehalten wird: mic_black, mic_blue, mic_green, mic_lightblue, mic_orange, mic_pink, mic_purple, mic_red, mic_white, mic_yellow |
Label | Auf dem Fortschrittsbalken angezeigter Name |
SmokeColor | Eine R-, G-, B-Farbe oder das Wort Rainbow für wechselnde Farben |
Cooldown | Sekunden, bevor an dieser Vape erneut gezogen werden kann |
puffs | Züge, bevor sie leer ist und ein Exemplar aus dem Inventar entfernt wird |
EffectDuration | Sekunden, die der Effekt anhält. 0 für Geschmäcker |
ShowProgress | Fortschrittsbalken anzeigen, während der Effekt aktiv ist. Bei allen mitgelieferten Vapes deaktiviert |
SpeedMultiplier | Nur für speed_vape (Sprint) und carspeed_vape (Motor) |
power | Optional. Eine Liste von Effekten, die gemeinsam ausgeführt werden, jeweils mit eigenem Wert (siehe unten) |
Welchen Effekt eine Vape hat
Abschnitt betitelt „Welchen Effekt eine Vape hat“Der Item-Name bestimmt den Effekt. invisibility_vape macht dich unsichtbar, weil sie invisibility_vape heißt; jeder andere Name ohne power-Liste ist ein Geschmack.
Die Effektnamen, die die Bridge versteht: invisibility_vape, speed_vape, superjump_vape, teleport_vape, invincibility_vape, health_vape (oder health), armor_vape (oder armor), carspeed_vape, freeze_vape, gravity_vape — sowie random_vape, die einen der anderen zufällig auswählt.
Effekte mit power kombinieren
Abschnitt betitelt „Effekte mit power kombinieren“Gib einer Vape eine power-Liste und sie führt bei jedem Zug alle darin enthaltenen Effekte aus, egal wie die Vape heißt. Die Zahl neben jedem Effekt ist seine Dauer in Sekunden, außer bei health und armor, wo es sich um die Menge handelt. vape_custom in der Config ist ein funktionierendes Beispiel: Gesundheit 10, Rüstung 10, Geschwindigkeit für 10 Sekunden.
Eine Vape hinzufügen
Abschnitt betitelt „Eine Vape hinzufügen“- Kopiere einen bestehenden Eintrag in
Config.Vapesund gib ihm einen neuen Item-Namen. - Wähle ein
prop, eineSmokeColor,puffsundCooldown. Für eine Power verwende entweder einen der obigen Effektnamen als Item-Namen oder füge einepower-Liste hinzu. - Füge das Item wie gewohnt mit einem Icon zu deinem Inventar hinzu.
- Führe
refreshaus und starte dann mitrestart mic_vapeneu.
Zusätzliche Effekte, die die Bridge versteht
Abschnitt betitelt „Zusätzliche Effekte, die die Bridge versteht“freeze_vape (Bewegungsunfähigkeit) und gravity_vape (niedrige Schwerkraft, langsamere Bewegung) werden in bridge/client_bridge.lua behandelt, und ihre Item-Definitionen sind bereits in inventory_items/ enthalten, sie haben jedoch keinen Eintrag in Config.Vapes. Füge für jeden einen Eintrag hinzu — kopiere superjump_vape und benenne sie um — und sie funktionieren.
transform_vape ist ebenfalls in den Item-Dateien enthalten, benötigt jedoch eine Config.TransformAnimals-Liste, die in der mitgelieferten Konfiguration fehlt. Lass sie weg, es sei denn, du möchtest diese Liste erstellen und testen.
Wenn Config.Stress = true ist, ruft jeder Zug OnVapePuff in bridge/server_bridge.lua mit der Server-ID des Spielers auf. Standardmäßig gibt diese Funktion nur eine Zeile in der Serverkonsole aus. Kommentierte Beispiele für QBCore-Metadaten und esx_status sind darin enthalten: Entkommentiere die passende Variante oder binde dort dein eigenes HUD- oder Stress-System an.
Wenn du kein Stress-System nutzt, setze Config.Stress = false, damit die Konsole ruhig bleibt.
Sprachen
Abschnitt betitelt „Sprachen“Neun Dateien werden in locales/ mitgeliefert: en, de, es, fr, it, pl, pt, ru, tr. Wähle eine mit Config.Locale.
Die Zeile car_speed — die angezeigt wird, wenn die Auto-Geschwindigkeits-Vape aktiviert wird — lautet in den mitgelieferten Dateien „No waypoint set!“. Passe sie in deiner Sprachdatei an.
Um eine Sprache hinzuzufügen: Kopiere locales/en.lua, ändere den Schlüssel ganz oben auf deinen Code, übersetze und trage die Datei sowohl in client_scripts als auch in server_scripts in der fxmanifest.lua ein. Setze Config.Locale, führe refresh aus und starte neu.
Die Bridge
Abschnitt betitelt „Die Bridge“Alles, was von deinem Server abhängt, befindet sich in bridge/.
| Datei | Was dort anzupassen ist |
|---|---|
bridge/client_bridge.lua | ShowNotification — leite Nachrichten an dein eigenes Benachrichtigungs-System weiter. Der Effekt-Code — passe an, was eine Power bewirkt, oder füge einen neuen Effektnamen hinzu. ShowProgressBar / HideProgressBar für den Balken |
bridge/server_bridge.lua | OnVapePuff für Stress. Leere Vape entfernen und prüfen, ob der Spieler sie noch bei sich trägt — passe diese beiden Funktionen für Inventare an, die nicht die nativen Item-Funktionen von ESX oder QBCore nutzen |
Beide Dateien ermitteln das Framework auf dieselbe Weise: es_extended, falls gestartet, andernfalls qb-core — worüber auch QBox über seine QBCore-Kompatibilität gefunden wird. Für ein anderes Framework füge dort und in den beiden daneben liegenden Item-Funktionen eine Abzweigung hinzu.
Befehle und Tasten
Abschnitt betitelt „Befehle und Tasten“| Befehl oder Taste | Was er/sie bewirkt | Festgelegt in |
|---|---|---|
| Item benutzen | Holt die Vape hervor; erneute Benutzung steckt sie weg | Inventar |
| E („Vape Puff“) | Nimmt einen Zug | Config.PuffKey, danach Tastenbelegung jedes Spielers |
/vape | Steckt die Vape weg | Config.RemoveVapeCommand |
Eine Vape wird auch weggesteckt, sobald der Spieler das Item nicht mehr im Inventar hat; die Resource prüft dies alle 2,5 Sekunden.