2026-04-14 15:54:53 +02:00

70 lines
2.5 KiB
Lua

RegisterNetEvent('armor:addArmor')
AddEventHandler('armor:addArmor', function(amount)
local playerPed = PlayerPedId()
-- Überprüfung: Sitzt der Spieler in einem Fahrzeug? (Optional, aber empfohlen)
if IsPedInAnyVehicle(playerPed, false) then
exports.hex_4_hud:Notify("Fehler", "Du kannst keine Weste im Auto anziehen!", 5000, "error")
-- Falls du dem Spieler das Item zurückgeben willst, müsste man hier ein Event an den Server senden.
return
end
-- 1. Animation starten
-- Wir laden das Animations-Wörterbuch (Dict)
local animDict = "clothingtie" -- Ein passendes Dict für "Weste richten"
local animName = "try_tie_negative_a" -- Die spezifische Animation
RequestAnimDict(animDict)
-- Warten, bis das Wörterbuch geladen ist
while not HasAnimDictLoaded(animDict) do
Citizen.Wait(100)
end
-- Die Animation abspielen
-- Parameter: Ped, Dict, Name, Einblendzeit, Ausblendzeit, Dauer (-1 = unendlich), Flag, Startphase, IKKram
TaskPlayAnim(playerPed, animDict, animName, 8.0, 1.0, -1, 49, 0, false, false, false)
-- hex_4_hud Benachrichtigung: Startet das Anlegen
exports.hex_4_hud:Notify("Info", "Du ziehst die Weste an...", 3000, "info")
-- 2. Wartezeit (während die Animation läuft)
-- Hier warten wir 3 Sekunden (3000 Millisekunden)
Citizen.Wait(3000)
-- 3. Rüstung berechnen und setzen
local currentArmor = GetPedArmour(playerPed)
local newArmor = currentArmor + amount
-- Verhindert, dass man über 100 Rüstung kommt
if newArmor > 100 then
newArmor = 100
end
-- Rüstung setzen
SetPedArmour(playerPed, newArmor)
-- 4. Animation stoppen
ClearPedTasks(playerPed)
-- Optional: Das geladene Dict wieder entladen, um Speicher zu sparen
RemoveAnimDict(animDict)
-- hex_4_hud Benachrichtigung: Erfolg
exports.hex_4_hud:Notify("Ausrüstung", "Schutzweste erfolgreich angelegt", 5000, "success")
end)
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
local playerPed = PlayerPedId()
-- Wenn bewaffnet (Typ 4 = Fernkampfwaffen)
if IsPedArmed(playerPed, 4) then
-- Deaktiviert die Nahkampftasten
DisableControlAction(0, 140, true) -- R / Schlag leicht
DisableControlAction(0, 141, true) -- Q / Schlag schwer
DisableControlAction(0, 142, true) -- Linksklick / Schlag alternativ
end
end
end)