From a2ccf2ad11a06ece4f51157b3e00a30bb6cd08b8 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 15 Apr 2026 22:50:01 +0200 Subject: [PATCH] Auto-sync 2026-04-15 22:50 --- mercyv-bike/client/main.lua | 13 +++++++++++++ mercyv-bike/nui/index.html | 24 +++++++++++++++++++++--- mercyv-bike/server/main.lua | 10 ++++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/mercyv-bike/client/main.lua b/mercyv-bike/client/main.lua index fcbec01..016ba77 100644 --- a/mercyv-bike/client/main.lua +++ b/mercyv-bike/client/main.lua @@ -70,6 +70,14 @@ end RegisterNetEvent('mercyv-bike:syncNPC', function(data) NPCData = data + if not data then + -- NPC löschen + if NPCEntity and DoesEntityExist(NPCEntity) then + DeleteEntity(NPCEntity) + NPCEntity = nil + end + return + end SpawnNPC(data) end) @@ -284,3 +292,8 @@ RegisterCommand('bikeadmin', function() Citizen.Wait(200) SendNUIMessage({ action = "OPEN_ADMIN", isAdmin = true }) end, false) + +RegisterNUICallback('deleteNPC', function(data, cb) + TriggerServerEvent('mercyv-bike:deleteNPC') + cb({}) +end) diff --git a/mercyv-bike/nui/index.html b/mercyv-bike/nui/index.html index e5d5868..fbc1658 100644 --- a/mercyv-bike/nui/index.html +++ b/mercyv-bike/nui/index.html @@ -178,6 +178,15 @@ body { .mb-save-btn:hover { background: var(--accent-hover); } .mb-save-btn:active { transform: scale(0.98); } +.mb-delete-btn { + padding: 12px 16px; border-radius: 8px; + background: rgba(220,50,50,0.15); + border: 1px solid rgba(220,50,50,0.3); + color: #e05555; font-size: 14px; font-family: "GilroyBold", sans-serif; + cursor: pointer; transition: background 0.15s; +} +.mb-delete-btn:hover { background: rgba(220,50,50,0.28); } + .mb-admin-hint { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; @@ -298,9 +307,14 @@ body { - +
+ + +
@@ -376,6 +390,10 @@ var app = new Vue({ captureSpawn: function() { postNUI('capturePos', { field: 'spawn' }); }, + deleteNPC: function() { + postNUI('deleteNPC', {}); + this.closeAdmin(); + }, saveNPC: function() { postNUI('saveNPC', { model: this.npc.model, diff --git a/mercyv-bike/server/main.lua b/mercyv-bike/server/main.lua index 223f88a..38f9e6f 100644 --- a/mercyv-bike/server/main.lua +++ b/mercyv-bike/server/main.lua @@ -199,3 +199,13 @@ RegisterCommand('bikereset', function(src, args) Config.ServerNotification(src, 'Claim von Spieler ' .. targetId .. ' zurückgesetzt.', 'success') Config.ServerNotification(targetId, 'Dein Fahrrad-Claim wurde zurückgesetzt.', 'info') end, false) + +RegisterNetEvent('mercyv-bike:deleteNPC', function() + local src = source + if not IsAdmin(src) then return end + MySQL.update('DELETE FROM mercyv_bike_npc') + NPCData = nil + SpawnData = nil + TriggerClientEvent('mercyv-bike:syncNPC', -1, nil) + Config.ServerNotification(src, "NPC gelöscht.", "success") +end)