diff --git a/resources/[test]/mh_kart_verleih/client/client.lua b/resources/[test]/mh_kart_verleih/client/client.lua index bf9082636..58bb62fc4 100644 --- a/resources/[test]/mh_kart_verleih/client/client.lua +++ b/resources/[test]/mh_kart_verleih/client/client.lua @@ -64,6 +64,7 @@ function openMietMenu() }) lib.showContext('kart_menu') end + RegisterNetEvent("kartverleih:client:openMietMenu", function() if rueckgabeMarkerActive then lib.alertDialog({ @@ -99,50 +100,64 @@ function askForBudget(fahrzeug) TriggerServerEvent("kartverleih:startMiete", fahrzeug.model, fahrzeug.price, maxAmount, method) end --- Fahrzeug spawnen +-- Fahrzeug spawnen mit MrNewbVehicleKeys Integration RegisterNetEvent("kartverleih:spawnVeh", function(model) local playerPed = PlayerPedId() local coords = GetEntityCoords(playerPed) - QBCore.Functions.SpawnVehicle(model, function(veh) + QBCore.Functions.SpawnVehicle(model, function(veh) mietFahrzeug = veh SetVehicleFuelLevel(veh, 100.0) exports['lc_fuel']:SetFuel(veh, 100.0) - SetVehicleNumberPlateText(veh, "KART" .. math.random(100, 999)) - TriggerEvent('vehiclekeys:client:SetOwner', plate) + + local plate = "KART" .. math.random(100, 999) + SetVehicleNumberPlateText(veh, plate) + + -- Add keys using MrNewbVehicleKeys + local netId = NetworkGetNetworkIdFromEntity(veh) + TriggerServerEvent("kartverleih:giveVehicleKeys", netId, plate) + TaskWarpPedIntoVehicle(playerPed, veh, -1) rueckgabeMarkerActive = true end, Config.MietStation.coords, true) - end) --- Fahrezug despawnen +-- Fahrzeug despawnen mit MrNewbVehicleKeys Integration RegisterNetEvent("kartverleih:despawnVeh", function() if mietFahrzeug and DoesEntityExist(mietFahrzeug) then - TriggerEvent('vehiclekeys:client:RemoveKeys', plate) + -- Remove keys before deleting the vehicle + local plate = GetVehicleNumberPlateText(mietFahrzeug) + TriggerServerEvent("kartverleih:removeVehicleKeys", plate) + DeleteVehicle(mietFahrzeug) mietFahrzeug = nil end end) --- Mietende +-- Mietende mit MrNewbVehicleKeys Integration AddEventHandler('baseevents:onPlayerDied', function() - TriggerServerEvent("kartverleih:stopMiete") if mietFahrzeug and DoesEntityExist(mietFahrzeug) then + -- Remove keys before deleting the vehicle + local plate = GetVehicleNumberPlateText(mietFahrzeug) + TriggerServerEvent("kartverleih:removeVehicleKeys", plate) + DeleteVehicle(mietFahrzeug) + mietFahrzeug = nil end + TriggerServerEvent("kartverleih:stopMiete") end) RegisterNetEvent("kartverleih:stopClientMiete", function() if mietFahrzeug and DoesEntityExist(mietFahrzeug) then - TriggerEvent('vehiclekeys:client:RemoveKeys', plate) + -- Remove keys before deleting the vehicle + local plate = GetVehicleNumberPlateText(mietFahrzeug) + TriggerServerEvent("kartverleih:removeVehicleKeys", plate) + DeleteVehicle(mietFahrzeug) mietFahrzeug = nil end end) - - -- NPC + Blip spawnen CreateThread(function() local npcCfg = Config.MietStation.npc diff --git a/resources/[test]/mh_kart_verleih/server/server.lua b/resources/[test]/mh_kart_verleih/server/server.lua index 7d5421240..7770d0f01 100644 --- a/resources/[test]/mh_kart_verleih/server/server.lua +++ b/resources/[test]/mh_kart_verleih/server/server.lua @@ -119,3 +119,22 @@ RegisterNetEvent("kartverleih:versucheRueckgabe", function() TriggerClientEvent("kartverleih:stopClientMiete", src) aktiveMieten[src] = nil end) + +-- MrNewbVehicleKeys Integration - Give keys +RegisterNetEvent("kartverleih:giveVehicleKeys", function(netId, plate) + local src = source + + -- Using netId method + exports.MrNewbVehicleKeys:GiveKeys(src, netId) + + -- Alternative: Using plate method + -- exports.MrNewbVehicleKeys:GiveKeysByPlate(src, plate) +end) + +-- MrNewbVehicleKeys Integration - Remove keys +RegisterNetEvent("kartverleih:removeVehicleKeys", function(plate) + local src = source + + -- Using plate method to remove keys + exports.MrNewbVehicleKeys:RemoveKeysByPlate(src, plate) +end)