Zum Inhalt springen

Anpassung

Alles, was du anpassen kannst, befindet sich an zwei Orten: in config.lua für das Verhalten und im Ordner bridge/ für die Anbindung an Framework, Target und Text-UI. Beide sind offen einsehbar (in escrow_ignore gelistet); client/client.lua und server.lua sind escrow-geschützt.


DateiWas sie entscheidet
config.luaFramework, Item-Name, Interaktionssystem, Labels, Tasten, Distanzen, Seillänge und -physik, Marker, Cooldown, Zeitlimit
bridge/server_bridge.luaFramework-Abruf, Registrierung des rope-Items als nutzbar, Prüfung ob der Spieler das Seil besitzt
bridge/client_bridge.lua3D-Text und Marker im drawtext-Modus, sowie das Client-Event zum Ausrüsten und Wegstecken des Seils
bridge/target.luaOptionen für ox_target und qb-target, sowie der automatische Fallback auf drawtext
bridge/README.mdKurze Hinweise zur Bridge (auf Spanisch)
inventory/Fertige Item-Definitionen für ox_inventory, QBCore und ESX
stream/Prop-Modell und Textur des Seils

Es gibt keinen locales/-Ordner. Der einzige Text, den Spieler sehen, sind die Labels in Config.Labels.


OptionWas sie machtStandard
Config.Frameworkesx oder qbcore. Nutze bei QBox qbcore — QBox führt QBCore-Ressourcen über seine Kompatibilität aus. Jeder andere Wert stoppt die Ressource beim Startesx
Config.ItemDas Inventar-Item, welches das Seil darstelltrope
OptionWas sie machtStandard
Config.InteractionSystemox_target, qb-target oder drawtext. Ein nicht gestartetes Target fällt auf drawtext zurück, bis es gestartet wirdox_target
Config.LabelsDer Text für jede Aktion: grab (Mit Seil ziehen), release (Spieler loslassen), attach (An Auto binden), detach (Von Auto lösen)Englisch
Config.KeyLabelsDie im drawtext-Modus angezeigten Tastennamen: Attach und VehicleE, Y
Config.ShowInteractionMarkersZeichnet einen Marker über dem interagierbaren Spieler oder Fahrzeug. Nur im drawtext-Modustrue

Was jede Aktion bewirkt:

AktionWer kann es ausführenWas passiert
Mit Seil ziehenDu, mit Seil in der Hand, nahe einem Spieler zu FußDieser Spieler wird an deine Hand gebunden
Spieler loslassenDie ziehende PersonDas Seil wird entfernt und der Spieler steht wieder auf
An Auto bindenDie ziehende Person, nahe einem FahrzeugDas Seil wandert von deiner Hand an das Heck des Wagens
Von Auto lösenDie Person, die es angebunden hatDas Seil kommt zurück in deine Hand, Spieler bleibt dran
Spieler loslassen (am Fahrzeug)Die Person, die es angebunden hatDer Spieler wird direkt vom Fahrzeug aus losgebunden

Die Tasten sind FiveM-Control-Nummern. Die Pfeiltasten funktionieren in jedem Modus; E und Y spielen nur im drawtext-Modus eine Rolle (bei einem Target wählst du die Aktion aus dem Menü).

OptionWas sie machtStandard
Config.AttachKeySpieler packen oder loslassen38 (E)
Config.AttachToVehicleKeyAn Fahrzeug binden oder davon lösen246 (Y)
Config.AdjustLengthUpKeyGedrückt halten, um Seil zu verlängern172 (Pfeil hoch)
Config.AdjustLengthDownKeyGedrückt halten, um Seil zu verkürzen173 (Pfeil runter)

Falls du AttachKey oder AttachToVehicleKey änderst, passe auch Config.KeyLabels an, da sonst die alte Taste in der Anzeige steht.

OptionWas sie machtStandard
Config.MaxDetectionDistanceWie nah (m) ein Spieler sein muss, um gepackt zu werden. Auch die Target-Distanz für Spieler2.0
Config.MaxVehicleAttachDistanceWie nah (m) ein Fahrzeug sein muss, um das Seil daran zu binden. Auch die Target-Distanz für Fahrzeuge5.0
Config.MarkerVisibilityDistanceSteht noch in config.lua, wird aber in der aktuellen Version nicht ausgelesen — die Aufforderung erscheint innerhalb der beiden obigen Distanzen20.0
OptionWas sie machtStandard
Config.InitialRopeLengthLänge (m) zu Beginn des Ziehens3.0
Config.MinRopeLengthKürzeste Länge über die Pfeiltasten1.0
Config.MaxRopeLengthLängste Länge über die Pfeiltasten100.0
Config.RopeTypeSeil-Typ des Spiels1
Config.RopeSlackSteht noch in config.lua, wird aber nicht ausgelesen — der Durchhang ergibt sich aus der Länge0.5
Config.RopePropModelProp in der Hand des Spielers. Das Standardmodell wird aus stream/ gestreamtprop_stag_do_rope
OptionWas sie machtStandard
Config.MarkerTypeMarker-Typ des Spiels2
Config.MarkerHeightOffsetHöhe (m) über dem Spieler, an der Prompt und Marker sitzen1.0
Config.MarkerScaleGröße des Markers0.3
Config.MarkerColorMarker-Farbe als Rot, Grün, Blau und Alpharot, Alpha 150
OptionWas sie machtStandard
Config.DragCooldownMillisekunden zwischen zwei Seilaktionen1000
Config.DisableControlsBlockiert alle Steuerungen des gezogenen Spielers. Deaktiviert, kann er sich trotz Ragdoll noch bewegentrue
Config.EnableMaxDragTimeLöst das Seil automatisch nach MaxDragTimefalse
Config.MaxDragTimeSekunden bis das Seil reißt, wenn die obige Option aktiv ist100
Config.NeedItemToReleaseZu Fuß erfordert das Loslassen das Seil in der Hand. Ein angebundenes Fahrzeug kann immer gelöst werdentrue

Der gezogene Spieler befindet sich im Ragdoll-Zustand, kann nicht schießen und ist unverwundbar, bis das Seil gelöst wird.


Es gibt keine Sprachdatei. Übersetze einfach die vier Zeichenketten in Config.Labels, sowie Config.KeyLabels, falls deine Spieler andere Tastenbezeichnungen verwenden.


Der Ordner bridge/ ist offen gestaltet, damit du das Seil an beliebige Umgebungen anpassen kannst. Die Seilphysik und die Netzwerk-Events verbleiben in den escrow-geschützten Dateien und müssen nicht verändert werden.

  • server_bridge.lua — Framework und Inventar. Ruft ESX oder QBCore ab, registriert Config.Item als nutzbares Item und beantwortet die Frage “Trägt dieser Spieler ein Seil?”, wenn ein Ziehvorgang beginnt. Für ein eigenes Framework oder ein Inventar mit eigener API überschreibst du Bridge.GetPlayer, Bridge.HasRope und Bridge.RegisterRopeItem. Registriere das Item nur an einer Stelle — zwei Registrierungen führen zu doppelter Ausführung.
  • client_bridge.lua — Text und Marker. Bridge.DrawText und Bridge.DrawMarker zeichnen die Aufforderung in jedem Frame, in dem sie sichtbar ist. Ersetze sie durch deinen eigenen 3D-Text oder eine TextUI-Ressource. Hier wird auch das Client-Event mic_drag:useRope verarbeitet, welches das Seil hervorholt oder wegsteckt — triggere dies aus dem Verwendungs-Callback deines Inventars, falls du keine Standard-Framework-Items nutzt.
  • target.lua — Target-Menüs. Fügt die globalen Spieler- und Fahrzeugoptionen für ox_target und qb-target hinzu bzw. entfernt sie und schaltet auf drawtext um, falls das Target beendet wird. Ein weiteres Target-System würde hier integriert.

Export (Client)Rückgabe
GetInteractionStateEine Tabelle: mode (aktive Interaktion), hasRope (Seil in Hand), targetServerId (wer gezogen wird), vehicle (Fahrzeug, an dem Seil hängt), beingDragged, busy

Dieser Export ist schreibgeschützt: nützlich für ein HUD oder damit andere Skripte erkennen, dass sie nicht mit einem Spieler interagieren sollen, der gerade an einem Seil hängt.