ESX = nil Citizen.CreateThread(function() while ESX == nil do TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) Citizen.Wait(0) end end) -- ############################################# -- # KONFIGURATION -- ############################################# local Config = {} -- Hier kannst du einstellen, wie die Nachricht angezeigt wird. -- Funktioniert so mit jedem HUD, wenn du den Export unten anpasst. Config.ShowNotification = function(msg, type) -- BEISPIEL: Standard ESX -- ESX.ShowNotification(msg) -- BEISPIEL: Hex HUD -- TriggerEvent('hex_hud:notify', 'Killfeed', msg, type, 3000) -- BEISPIEL: Okok Notify -- exports['okokNotify']:Alert("Killfeed", msg, 3000, type) -- Aktuell aktiv (pass dies an dein HUD an): if type == 'success' then TriggerEvent('hex_4_hud:notify', 'Killfeed', msg, 'success', 3000) elseif type == 'error' then TriggerEvent('hex_4_hud:notify', 'Killfeed', msg, 'error', 3000) else ESX.ShowNotification(msg) end end -- Hier trägst du alle FFA Checks ein. -- Return true = Killfeed ist AUS. Return false = Killfeed ist AN. Config.IsPlayerInFFA = function() local playerPed = PlayerPedId() local coords = GetEntityCoords(playerPed) -- CHECK 1: Dein ursprünglicher Export (falls vorhanden) if GetResourceState("ov_ffa") == "started" then if exports["ov_ffa"]:isInFFA() then return true end end -- CHECK 2: Beispiel für eine andere FFA Resource (z.B. absolute_ffa) -- if GetResourceState("absolute_ffa") == "started" then -- if exports["absolute_ffa"]:isPlayerInFFA() then return true end -- end -- CHECK 3: Über Dimensionen (Routing Bucket) -- Viele FFAs nutzen andere Dimensionen (nicht 0). -- if GetEntityRoutingBucket(playerPed) ~= 0 then return true end -- Wenn kein FFA erkannt wurde: return false end Config.WeaponNames = { -- Nahkampfwaffen (Melee) [`WEAPON_UNARMED`] = "Unbewaffnet", [`WEAPON_KNIFE`] = "Messer", [`WEAPON_NIGHTSTICK`] = "Schlagstock", [`WEAPON_HAMMER`] = "Hammer", [`WEAPON_BAT`] = "Baseballschläger", [`WEAPON_GOLFCLUB`] = "Golfschläger", [`WEAPON_CROWBAR`] = "Brecheisen", [`WEAPON_BOTTLE`] = "Flasche", [`WEAPON_DAGGER`] = "Antiker Dolch", [`WEAPON_HATCHET`] = "Kriegsbeil", [`WEAPON_KNUCKLE`] = "Schlagring", [`WEAPON_MACHETE`] = "Machete", [`WEAPON_FLASHLIGHT`] = "Taschenlampe", [`WEAPON_SWITCHBLADE`] = "Springmesser", [`WEAPON_POOLCUE`] = "Billardqueue", [`WEAPON_PIPEWRENCH`] = "Rohrzange", [`WEAPON_BATTLEAXE`] = "Streitaxt", [`WEAPON_STONE_HATCHET`] = "Stein-Kriegsbeil", [`WEAPON_CANDYCANE`] = "Zuckerstange", -- Pistolen (Handguns) [`WEAPON_PISTOL`] = "Pistole", [`WEAPON_PISTOL_MK2`] = "Pistole MK2", [`WEAPON_COMBATPISTOL`] = "Kampfpistole", [`WEAPON_APPISTOL`] = "AP-Pistole", [`WEAPON_STUNGUN`] = "Betäubungspistole", [`WEAPON_STUNGUN_MP`] = "Taser (Multiplayer)", [`WEAPON_PISTOL50`] = "Pistole .50", [`WEAPON_SNSPISTOL`] = "Billigknarre", [`WEAPON_SNSPISTOL_MK2`] = "Billigknarre MK2", [`WEAPON_HEAVYPISTOL`] = "Schwere Pistole", [`WEAPON_VINTAGEPISTOL`] = "Vintage-Pistole", [`WEAPON_FLAREGUN`] = "Leuchtpistole", [`WEAPON_MARKSMANPISTOL`] = "Marksman-Pistole", [`WEAPON_REVOLVER`] = "Revolver", [`WEAPON_REVOLVER_MK2`] = "Revolver MK2", [`WEAPON_DOUBLEACTION`] = "Double-Action Revolver", [`WEAPON_RAYPISTOL`] = "Up-n-Atomizer", [`WEAPON_CERAMICPISTOL`] = "Keramik-Pistole", [`WEAPON_NAVYREVOLVER`] = "Navy-Revolver", [`WEAPON_GADGETPISTOL`] = "Perico-Pistole", [`WEAPON_PISTOLXM3`] = "WM 29-Pistole", -- Maschinenpistolen (SMGs) [`WEAPON_MICROSMG`] = "Micro-SMG", [`WEAPON_SMG`] = "SMG", [`WEAPON_SMG_MK2`] = "SMG MK2", [`WEAPON_ASSAULTSMG`] = "Sturm-SMG", [`WEAPON_COMBATPDW`] = "Kampf-PDW", [`WEAPON_MACHINEPISTOL`] = "Maschinenpistole", [`WEAPON_MINISMG`] = "Mini-SMG", [`WEAPON_RAYCARBINE`] = "Unholy Hellbringer", [`WEAPON_TACTICALSMG`] = "Taktische SMG", -- Schrotflinten (Shotguns) [`WEAPON_PUMPSHOTGUN`] = "Pumpgun", [`WEAPON_PUMPSHOTGUN_MK2`] = "Pumpgun MK2", [`WEAPON_SAWNOFFSHOTGUN`] = "Abgesägte Schrotflinte", [`WEAPON_ASSAULTSHOTGUN`] = "Sturm-Schrotflinte", [`WEAPON_BULLPUPSHOTGUN`] = "Bullpup-Schrotflinte", [`WEAPON_MUSKET`] = "Muskete", [`WEAPON_HEAVYSHOTGUN`] = "Schwere Schrotflinte", [`WEAPON_DBSHOTGUN`] = "Doppelläufige Schrotflinte", [`WEAPON_AUTOSHOTGUN`] = "Sweeper-Schrotflinte", [`WEAPON_COMBATSHOTGUN`] = "Kampfschrotflinte", -- Sturmgewehre (Assault Rifles) [`WEAPON_ASSAULTRIFLE`] = "Sturmgewehr", [`WEAPON_ASSAULTRIFLE_MK2`] = "Sturmgewehr MK2", [`WEAPON_CARBINERIFLE`] = "Karabinergewehr", [`WEAPON_CARBINERIFLE_MK2`] = "Karabinergewehr MK2", [`WEAPON_ADVANCEDRIFLE`] = "Erweitertes Gewehr", [`WEAPON_SPECIALCARBINE`] = "Spezialkarabiner", [`WEAPON_SPECIALCARBINE_MK2`] = "Spezialkarabiner MK2", [`WEAPON_BULLPUPRIFLE`] = "Bullpup-Gewehr", [`WEAPON_BULLPUPRIFLE_MK2`] = "Bullpup-Gewehr MK2", [`WEAPON_COMPACTRIFLE`] = "Kompaktes Gewehr", [`WEAPON_MILITARYRIFLE`] = "Militärgewehr", [`WEAPON_HEAVYRIFLE`] = "Schweres Gewehr", [`WEAPON_TACTICALRIFLE`] = "Taktisches Gewehr", [`WEAPON_BATTLERIFLE`] = "Kampfgewehr", -- Maschinengewehre (LMGs) [`WEAPON_MG`] = "MG", [`WEAPON_COMBATMG`] = "Kampf-MG", [`WEAPON_COMBATMG_MK2`] = "Kampf-MG MK2", [`WEAPON_GUSENBERG`] = "Gusenberg-Bleispritze", -- Scharfschützengewehre (Sniper Rifles) [`WEAPON_SNIPERRIFLE`] = "Scharfschützengewehr", [`WEAPON_HEAVYSNIPER`] = "Schweres Scharfschützengewehr", [`WEAPON_HEAVYSNIPER_MK2`] = "Schweres Scharfschützengewehr MK2", [`WEAPON_MARKSMANRIFLE`] = "Marksman-Gewehr", [`WEAPON_MARKSMANRIFLE_MK2`] = "Marksman-Gewehr MK2", [`WEAPON_PRECISIONRIFLE`] = "Präzisionsgewehr", -- Schwere Waffen (Heavy Weapons) [`WEAPON_RPG`] = "Raketenwerfer", [`WEAPON_GRENADELAUNCHER`] = "Granatwerfer", [`WEAPON_GRENADELAUNCHER_SMOKE`] = "Tränengas-Werfer", [`WEAPON_MINIGUN`] = "Minigun", [`WEAPON_FIREWORK`] = "Feuerwerk-Werfer", [`WEAPON_RAILGUN`] = "Railgun", [`WEAPON_HOMINGLAUNCHER`] = "Lenkraketenwerfer", [`WEAPON_COMPACTLAUNCHER`] = "Kompakter Granatwerfer", [`WEAPON_RAYMINIGUN`] = "Witwenmacher", [`WEAPON_EMPLAUNCHER`] = "EMP-Werfer", -- Wurfwaffen (Throwables) [`WEAPON_GRENADE`] = "Granate", [`WEAPON_BZGAS`] = "BZ-Gas", [`WEAPON_MOLOTOV`] = "Molotowcocktail", [`WEAPON_STICKYBOMB`] = "Haftbombe", [`WEAPON_PROXMINE`] = "Annäherungsmine", [`WEAPON_SNOWBALL`] = "Schneeball", [`WEAPON_PIPEBOMB`] = "Rohrbombe", [`WEAPON_BALL`] = "Baseball", [`WEAPON_SMOKEGRENADE`] = "Rauchgranate", [`WEAPON_FLARE`] = "Leuchtfackel", [`WEAPON_ACIDPACKAGE`] = "Säurepaket", -- Sonstiges (Miscellaneous) [`WEAPON_PETROLCAN`] = "Benzinkanister", [`WEAPON_HAZARDCAN`] = "Gefahrgutkanister", [`WEAPON_FERTILIZERCAN`] = "Düngerkanister", [`WEAPON_FIREEXTINGUISHER`] = "Feuerlöscher", [`GADGET_PARACHUTE`] = "Fallschirm", } -- ############################################# -- # LOGIK -- ############################################# AddEventHandler('gameEventTriggered', function(eventName, eventData) if eventName == 'CEventNetworkEntityDamage' then local victimPed = eventData[1] local attackerPed = eventData[2] -- Validierung: Sind beide echte Spieler? if not IsPedAPlayer(victimPed) or not IsPedAPlayer(attackerPed) then return end -- Check ob Spieler tot ist local health = GetEntityHealth(victimPed) if health <= 0 then -- GLOBALER FFA CHECK if Config.IsPlayerInFFA() then return end local victimId = GetPlayerServerId(NetworkGetPlayerIndexFromPed(victimPed)) local attackerId = GetPlayerServerId(NetworkGetPlayerIndexFromPed(attackerPed)) -- Waffe ermitteln local weaponHash = GetSelectedPedWeapon(attackerPed) local weaponName = Config.WeaponNames[weaponHash] or "Unbekannte Waffe" local myPed = PlayerPedId() -- Wenn ich gestorben bin if myPed == victimPed then Config.ShowNotification('Du wurdest von ID: ' .. attackerId .. ' mit ' .. weaponName .. ' getötet.', 'error') end -- Wenn ich getötet habe if myPed == attackerPed and victimPed ~= attackerPed then Config.ShowNotification('Du hast ID: ' .. victimId .. ' mit ' .. weaponName .. ' getötet.', 'success') end end end end) -- Test Command (optional, zum Debuggen) RegisterCommand("testkill", function() Config.ShowNotification('Du hast ID: 99 mit Pistole getötet.', 'success') end)