Skip to content

SirFox1337/FiveM-TireSlash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fivem_tireslash

Standalone FiveM-Resource: Spieler können Fahrzeugreifen mit konfigurierten Nahkampf-Klingenwaffen aufschlitzen.

  • Server-seitige Validierung (Distanz, Waffe, Cooldown, Jobs, Blacklist)
  • Progressbar und Animation
  • Optional: Fahrzeugalarm und Polizei-Dispatch
  • Kompatibel mit ESX, QBCore, Qbox oder komplett ohne Framework
  • ox_lib optional (wird automatisch erkannt)

Features

Feature Beschreibung
Melee-Whitelist Nur konfigurierte Klingenwaffen (Messer, Machete, …)
Reifen-Erkennung Bone-basiert (wheel_lf, wheel_rf, …)
Anti-Abuse Cooldown, Session-Lock, Mindestdauer, Distanz-Check auf dem Server
Abbruch Bei Tod, Fahrzeug betreten, Waffe wechseln oder zu weit weg
Alarm Zufällig, mit Licht/Hupe (State Bag oder Client)
Dispatch Über Event oder Export an euer Dispatch-System
Sprachen Deutsch und Englisch (Config.Locale)

Anforderungen

  • FiveM Server mit OneSync
  • Kein Pflicht-Framework
  • Optional: ox_lib (empfohlen für Notify, Progress, Help-Text)

Installation

  1. Ordner fivem_tireslash in euren resources-Ordner legen.
  2. In der server.cfg eintragen:
ensure ox_lib          # optional, aber empfohlen
ensure fivem_tireslash
  1. config.lua an euren Server anpassen.
  2. Bei Bedarf Dispatch-Integration einrichten (siehe unten).

Nutzung ingame

  1. Klingenwaffe aus der Whitelist in die Hand nehmen.
  2. Nah an einen intakten Reifen eines Fahrzeugs gehen.
  3. E drücken (Standard, änderbar über Config.InteractionKey).
  4. Progressbar abwarten — bei Erfolg platzt der gewählte Reifen.

Konfiguration

Alle Einstellungen in config.lua.

Gameplay

Option Standard Beschreibung
AllowedWeapons Messer, Dolch, … Liste der WEAPON_* Namen
SlashDuration 5 Dauer der Aktion in Sekunden
Cooldown 45 Cooldown pro Spieler in Sekunden
MaxTireDistance 1.35 Max. Abstand zum Reifen-Bone
VehicleScanDistance 7.0 Reichweite für Interaktions-Hinweis
InteractionKey 38 Taste (38 = E)
VehicleBlacklist Polizei, RTW, … Gesperrte Fahrzeugmodelle
JobWhitelist leer Wenn gesetzt: nur diese Jobs dürfen slashen
JobBlacklist Polizei, … Jobs die nicht slashen dürfen
AnimDict / AnimName Messer-Boden-Anim Animation während der Aktion

Alarm & Dispatch

Option Standard Beschreibung
EnableVehicleAlarm true Alarm ein/aus
AlarmChance 0.35 Wahrscheinlichkeit (0.0–1.0)
AlarmDuration 30 Alarmdauer in Sekunden
EnablePoliceDispatch true Dispatch ein/aus
DispatchChance 0.4 Wahrscheinlichkeit (0.0–1.0)
DispatchMessage DE-Text Nachricht für Dispatch
DispatchJobs police, … Ziel-Jobs für euren Handler

Bridge (Framework / UI)

Option Werte Beschreibung
Framework auto, esx, qb, qbox, standalone Job-Erkennung
Notify auto, ox_lib, esx, qb, native, custom Benachrichtigungen
Progress auto, ox_lib, native Progressbar
Dispatch none, event, export Polizei-Meldung
Alarm statebag, client, none Alarm-Sync
Locale de, en UI-Sprache
EventPrefix fivem_tireslash Event-Namespace
Debug false Konsolen-Logs

Polizei-Dispatch einbinden

Variante A: Event (Standard)

Config.Dispatch = 'event'
Config.DispatchEvent = 'fivem_tireslash:dispatch'

In einem beliebigen Server-Skript:

AddEventHandler('fivem_tireslash:dispatch', function(source, coords, message, jobs)
    -- source  = Spieler-ID
    -- coords  = vector3
    -- message = Config.DispatchMessage
    -- jobs    = Config.DispatchJobs
end)

HighLife / esx — Beispiel liegt in integrations/highlife_core_dispatch.lua:

AddEventHandler('fivem_tireslash:dispatch', function(source, coords, message, jobs)
    for _, job in ipairs(jobs) do
        TriggerEvent('esx:server:addDispatchAnonymous', coords, job, message)
    end
end)

Variante B: Export

Config.Dispatch = 'export'
Config.DispatchResource = 'dein_dispatch'
Config.DispatchExport = 'sendAlert'

Euer Export erhält: (source, coords, message, jobs).

Dispatch deaktivieren

Config.Dispatch = 'none'
-- oder
Config.EnablePoliceDispatch = false

Events

Prefix standardmäßig fivem_tireslash (änderbar via Config.EventPrefix).

Event Richtung Beschreibung
fivem_tireslash:requestStart Client → Server Start anfragen
fivem_tireslash:start Server → Client Freigabe, Aktion starten
fivem_tireslash:finish Client → Server Erfolgreich beenden
fivem_tireslash:cancel Client → Server Session abbrechen
fivem_tireslash:applyBurst Server → Client Reifen plat syncen
fivem_tireslash:client:notify Server → Client Notify-Bridge
fivem_tireslash:client:alarm Server → Client Alarm (bei Config.Alarm = 'client')
fivem_tireslash:dispatch Server (TriggerEvent) Dispatch-Hook

Exports (Server)

-- Kann der Spieler diesen Reifen slashen? (ohne aktive Session)
local ok, reason = exports.fivem_tireslash:CanSlashTire(source, vehicleNetId, tireIndex, weaponHash)

-- Hat der Spieler noch Cooldown?
local onCooldown = exports.fivem_tireslash:HasSlashCooldown(source)

reason bei Ablehnung: cooldown, busy, job, weapon, vehicle, blacklist, tire, burst, bone, distance.


Ordnerstruktur

fivem_tireslash/
├── fxmanifest.lua
├── config.lua
├── README.md
├── LICENSE
├── shared/
│   └── locale.lua          # de / en Texte
├── bridge/
│   ├── client.lua          # Notify, Progress, Framework
│   └── server.lua
├── client/
│   └── main.lua
├── server/
│   └── main.lua
└── integrations/
    └── highlife_core_dispatch.lua

Sicherheit

  • Reifen platzen nur nach bestätigtem Server-finish
  • Cooldown und aktive Session werden serverseitig verwaltet
  • Mindestdauer entspricht SlashDuration (Anti-Spam)
  • Position, Waffe und Fahrzeug werden beim Start und beim Abschluss erneut geprüft
  • Kein permanenter Performance-Loop — Scan nur im 1,5s-Takt, Interaktion nur in Fahrzeugnähe

Lizenz

MIT — siehe LICENSE.


Support / Credits

Entwickelt für HighLife RP.
Bei Fragen oder Bugs: Issue im GitHub-Repository oder intern im Team melden.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages