1
0
Fork 0
forked from Simnation/Main
This commit is contained in:
Nordi98 2025-08-10 16:24:33 +02:00
parent f8e8411e7e
commit 19a5a1d158
4 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,53 @@
local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent("kennzeichen:useTool", function()
local playerPed = PlayerPedId()
local veh = QBCore.Functions.GetClosestVehicle(GetEntityCoords(playerPed))
if veh and veh ~= 0 then
local input = lib.inputDialog("Kennzeichen ändern", {
{type = "input", label = "Neues Kennzeichen", required = true}
})
if input and input[1] then
local plate = input[1]
TriggerServerEvent("kennzeichen:updatePlate", VehToNet(veh), plate)
end
else
QBCore.Functions.Notify("Kein Fahrzeug in der Nähe", "error")
end
end)
local plateBackup = {}
RegisterNetEvent("kennzeichen:useTuch", function()
local playerPed = PlayerPedId()
local veh = QBCore.Functions.GetClosestVehicle(GetEntityCoords(playerPed))
if veh and veh ~= 0 then
local covered = plateBackup[veh] ~= nil
if covered then
SetVehicleNumberPlateText(veh, plateBackup[veh])
plateBackup[veh] = nil
else
plateBackup[veh] = GetVehicleNumberPlateText(veh)
SetVehicleNumberPlateText(veh, "-----")
end
TriggerServerEvent("kennzeichen:syncCover", VehToNet(veh), not covered)
end
end)
RegisterNetEvent("kennzeichen:applyPlate", function(netVeh, plate)
local veh = NetToVeh(netVeh)
if veh ~= 0 then
SetVehicleNumberPlateText(veh, plate)
end
end)
RegisterNetEvent("kennzeichen:applyCover", function(netVeh, state)
local veh = NetToVeh(netVeh)
if veh ~= 0 then
if state then
SetVehicleNumberPlateText(veh, "-----")
else
-- Wenn Enttarnung erfolgt, müsste der Spieler es neu setzen
end
end
end)

View file

@ -0,0 +1,20 @@
fx_version 'cerulean'
game 'gta5'
description 'Kennzeichen-Änderung mit Tuch-Overlay'
lua54 'yes'
shared_script '@ox_lib/init.lua'
server_scripts {
'server.lua'
}
client_scripts {
'client.lua'
}
files {
'stream/platecover.ydr'
}

View file

@ -0,0 +1,56 @@
local QBCore = exports['qb-core']:GetCoreObject()
RegisterServerEvent('kennzeichen:updatePlate', function(netVeh, newPlate)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local veh = NetworkGetEntityFromNetworkId(netVeh)
local oldPlate = GetVehicleNumberPlateText(veh)
exports.oxmysql:execute('SELECT vehicle FROM player_vehicles WHERE plate = ? AND citizenid = ?', {
oldPlate, Player.PlayerData.citizenid
}, function(result)
if result[1] then
local jsonData = result[1].vehicle
if not jsonData then
print("Fehler: Keine Fahrzeugdaten in der Datenbank.")
return
end
local vehicleData = json.decode(jsonData)
if not vehicleData then
print("Warnung: Fahrzeugdaten konnten nicht geparsed werden. Standarddaten werden verwendet.")
vehicleData = {
plate = oldPlate,
model = GetEntityModel(veh),
mods = {}
}
end
vehicleData.plate = newPlate
exports.oxmysql:update('UPDATE player_vehicles SET plate = ?, vehicle = ? WHERE plate = ? AND citizenid = ?', {
newPlate, json.encode(vehicleData), oldPlate, Player.PlayerData.citizenid
}, function(affectedRows)
if affectedRows > 0 then
print(("Kennzeichen erfolgreich aktualisiert: %s ? %s"):format(oldPlate, newPlate))
end
end)
TriggerClientEvent('kennzeichen:applyPlate', -1, netVeh, newPlate)
else
print("Fahrzeug nicht gefunden")
end
end)
end)
QBCore.Functions.CreateUseableItem("kennzeichen_tool", function(src)
TriggerClientEvent("kennzeichen:useTool", src)
end)
QBCore.Functions.CreateUseableItem("tuch", function(src)
TriggerClientEvent("kennzeichen:useTuch", src)
end)
RegisterServerEvent('kennzeichen:syncCover', function(netVeh, state)
TriggerClientEvent('kennzeichen:applyCover', -1, netVeh, state)
end)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB