118 lines
3.0 KiB
Markdown
118 lines
3.0 KiB
Markdown
# mercyv-stamina
|
|
|
|
Eigenes Sprint/Jog-System für FiveM RP. Ersetzt das Vanilla GTA-Ausdauersystem vollständig.
|
|
|
|
## Features
|
|
|
|
- Frei einstellbarer Schwellwert ab wann der Charakter ins Joggen wechselt
|
|
- Konfigurierbare Drain- und Regen-Werte
|
|
- Hysterese verhindert ständiges Hin- und Herschalten
|
|
- Schnellere Stamina-Regen im Fahrzeug
|
|
- Ingame-Befehl `/stamina` zum Live-Anpassen
|
|
- Export-Funktionen für andere Scripts (z.B. Essen, Trinken)
|
|
- Server-seitige Stamina-Kontrolle per Exports & Konsolenbefehl
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
1. Ordner `mercyv-stamina` in dein `resources`-Verzeichnis legen
|
|
2. In der `server.cfg` eintragen:
|
|
```
|
|
ensure mercyv-stamina
|
|
```
|
|
3. Fertig.
|
|
|
|
---
|
|
|
|
## Konfiguration (`config.lua`)
|
|
|
|
| Variable | Standard | Beschreibung |
|
|
|--------------------------|----------|-------------|
|
|
| `JogThreshold` | `20` | Ab welchem % Stamina ins Joggen gewechselt wird |
|
|
| `JogHysteresis` | `10` | Wieviel % ÜBER dem Schwellwert für Rückkehr nötig |
|
|
| `JogClipset` | `"move_m@casual@d"` | Animations-Clipset beim Joggen |
|
|
| `StaminaDrain` | `0.4` | Verbrauch pro Tick beim Sprinten |
|
|
| `StaminaRegen` | `0.15` | Regen pro Tick (außerhalb Fahrzeug) |
|
|
| `VehicleRegenMultiplier` | `2.0` | Regen-Multiplikator im Fahrzeug |
|
|
| `RegenDelay` | `2000` | Millisekunden Pause nach Sprint vor Regen |
|
|
| `StartStamina` | `100` | Stamina beim Einloggen/Spawnen |
|
|
| `TickInterval` | `100` | Loop-Interval in ms |
|
|
| `DisableVanilla` | `true` | Vanilla-System deaktivieren |
|
|
| `AllowCommand` | `true` | /stamina Befehl erlauben |
|
|
| `ShowDebug` | `false` | Debug-Logs aktivieren |
|
|
|
|
---
|
|
|
|
## Ingame-Befehl
|
|
|
|
```
|
|
/stamina → Zeigt aktuellen Schwellwert und Stamina
|
|
/stamina 30 → Setzt JogThreshold auf 30%
|
|
```
|
|
|
|
---
|
|
|
|
## Integration mit anderen Scripts
|
|
|
|
### Stamina auffüllen (Client → Client)
|
|
```lua
|
|
-- +50 Stamina geben (z.B. nach dem Essen)
|
|
TriggerEvent("mercyv-stamina:refill", 50)
|
|
```
|
|
|
|
### Stamina direkt setzen (Client → Client)
|
|
```lua
|
|
TriggerEvent("mercyv-stamina:set", 100)
|
|
```
|
|
|
|
### Stamina abrufen (Export)
|
|
```lua
|
|
local stamina = exports["mercyv-stamina"]:GetStamina()
|
|
-- Gibt aktuellen Wert als Zahl zurück (0-100)
|
|
```
|
|
|
|
### Jog-Status prüfen (Export)
|
|
```lua
|
|
local jogging = exports["mercyv-stamina"]:IsJogging()
|
|
-- Gibt true/false zurück
|
|
```
|
|
|
|
### Vom Server aus auffüllen
|
|
```lua
|
|
-- In einem anderen Server-Script:
|
|
exports["mercyv-stamina"]:RefillStamina(playerId, 50)
|
|
exports["mercyv-stamina"]:SetStamina(playerId, 100)
|
|
```
|
|
|
|
### Server-Konsole
|
|
```
|
|
staminarefill [playerid] [menge]
|
|
```
|
|
|
|
---
|
|
|
|
## Beispiel: Essen-Script Integration
|
|
|
|
```lua
|
|
-- In deinem food/drink script:
|
|
RegisterNetEvent("myfood:eat")
|
|
AddEventHandler("myfood:eat", function(amount)
|
|
TriggerEvent("mercyv-stamina:refill", amount)
|
|
end)
|
|
```
|
|
|
|
---
|
|
|
|
## Ordnerstruktur
|
|
|
|
```
|
|
mercyv-stamina/
|
|
├── fxmanifest.lua
|
|
├── config.lua
|
|
├── client/
|
|
│ └── main.lua
|
|
└── server/
|
|
└── main.lua
|
|
```
|