forked from Simnation/Main
ed
This commit is contained in:
parent
636ffb007e
commit
4c9a54ff7b
10 changed files with 944 additions and 0 deletions
159
resources/[Developer]/[Mark]/mh_garage/server/server.lua
Normal file
159
resources/[Developer]/[Mark]/mh_garage/server/server.lua
Normal file
|
@ -0,0 +1,159 @@
|
|||
QBCore = exports['qb-core']:GetCoreObject()
|
||||
local test_vari = {}
|
||||
|
||||
RegisterServerEvent('mh_garage:setMods')
|
||||
AddEventHandler('mh_garage:setMods', function(mods)
|
||||
if test_vari[mods.plate] == true then
|
||||
return
|
||||
else
|
||||
MySQL.query("SELECT mods FROM player_vehicles WHERE plate = ?", {mods.plate}, function(rs)
|
||||
-- Prüfen ob rs überhaupt Daten enthält
|
||||
if rs and rs[1] then
|
||||
-- Wenn mods ein String ist, konvertieren wir es zu einem Table
|
||||
local modsData = type(rs[1].mods) == "string" and json.decode(rs[1].mods) or rs[1].mods
|
||||
|
||||
if not modsData or next(modsData) == nil then
|
||||
-- Hier sollten Sie wahrscheinlich auch die mods-Daten übergeben, nicht nur plate
|
||||
MySQL.query("UPDATE player_vehicles SET mods = ? WHERE plate = ?", {json.encode(mods), mods.plate})
|
||||
test_vari[mods.plate] = true
|
||||
else
|
||||
test_vari[mods.plate] = true
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
QBCore.Functions.CreateCallback('mh_garage:storedVehicle', function(source, cb, veh, zone)
|
||||
local Player = QBCore.Functions.GetPlayer(source)
|
||||
|
||||
if Player ~= nil then
|
||||
if Player.Functions.GetMoney('bank', zone.price) then
|
||||
MySQL.query("SELECT * FROM player_vehicles WHERE citizenid = ? AND plate = ?", {Player.PlayerData.citizenid, veh.plate}, function(rs)
|
||||
if rs[1] ~= nil then
|
||||
MySQL.query("UPDATE player_vehicles SET garage = ?, mods = ? WHERE plate = ?", {zone.name, json.encode(veh), veh.plate})
|
||||
DelVehParking(veh.plate)
|
||||
cb({
|
||||
status = true,
|
||||
text = "Fahrzeug erfolgreich eingeparkt!",
|
||||
type = "success",
|
||||
other = false,
|
||||
police = false
|
||||
})
|
||||
else
|
||||
MySQL.query("SELECT * FROM vehicle_keys WHERE owner = ? AND plate = ?", {Player.PlayerData.citizenid, veh.plate}, function(rs)
|
||||
if rs[1] ~= nil then
|
||||
MySQL.query("UPDATE player_vehicles SET garage = ?, mods = ? WHERE plate = ?", {zone.name, json.encode(veh), veh.plate})
|
||||
--TriggerEvent('mh_Parking:removeVehicle', source, veh.plate)
|
||||
--DelVehParking(veh.plate)
|
||||
cb({
|
||||
status = true,
|
||||
text = "Fahrzeug erfolgreich eingeparkt!",
|
||||
type = "success",
|
||||
other = true,
|
||||
police = false
|
||||
})
|
||||
else
|
||||
cb({
|
||||
status = false,
|
||||
text = "Du besitzt kein Schlüssel für dieses Fahrzeug.",
|
||||
type = "warning",
|
||||
other = false,
|
||||
police = true
|
||||
})
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
function DelVehParking(plate)
|
||||
MySQL.query("SELECT * FROM vehicle_parking WHERE plate = ?", {plate}, function(rs)
|
||||
if rs[1] ~= nil then
|
||||
MySQL.query("DELETE FROM vehicle_parking WHERE plate = ?", {plate})
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
QBCore.Functions.CreateCallback('mh_garage:retrieveOwnerVehicle', function(source, cb, zone)
|
||||
local _source = source
|
||||
local Player = QBCore.Functions.GetPlayer(_source)
|
||||
local pedid = Player.PlayerData.citizenid
|
||||
local veh = {}
|
||||
|
||||
MySQL.query("SELECT * FROM player_vehicles WHERE citizenid = ? and garage = ?", {pedid, zone}, function(rs)
|
||||
if rs ~= nil and rs[1] ~= nil then
|
||||
for k, v in pairs (rs) do
|
||||
table.insert(veh, {
|
||||
vehicle = v.vehicle,
|
||||
mods = v.mods,
|
||||
plate = v.plate,
|
||||
name = v.name
|
||||
})
|
||||
end
|
||||
Wait(100)
|
||||
cb(veh)
|
||||
else
|
||||
cb(false)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
QBCore.Functions.CreateCallback('mh_garage:retrieveKeyVehicle', function(source, cb, zone)
|
||||
local _source = source
|
||||
local Player = QBCore.Functions.GetPlayer(_source)
|
||||
local pedid = Player.PlayerData.citizenid
|
||||
local veh = {}
|
||||
|
||||
MySQL.query("SELECT pv.* FROM player_vehicles pv JOIN vehicle_keys vk ON pv.plate = vk.plate WHERE vk.owner = ? AND vk.count > 0 AND pv.garage = ?", {pedid, zone}, function(vehicles)
|
||||
if vehicles and #vehicles > 0 then
|
||||
for _, vehicle in pairs(vehicles) do
|
||||
table.insert(veh, {
|
||||
vehicle = vehicle.vehicle,
|
||||
mods = vehicle.mods,
|
||||
plate = vehicle.plate,
|
||||
name = vehicle.name
|
||||
})
|
||||
end
|
||||
Wait(100)
|
||||
cb(veh)
|
||||
else
|
||||
cb(false)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
QBCore.Functions.CreateCallback('mh_garage:verwaltung', function(source, cb)
|
||||
local Player = QBCore.Functions.GetPlayer(source)
|
||||
local vehicles = {}
|
||||
MySQL.query("SELECT * FROM player_vehicles WHERE citizenid = ?", {Player.PlayerData.citizenid}, function(rs)
|
||||
if rs and rs[1] then
|
||||
for k, v in pairs(rs) do
|
||||
table.insert(vehicles, {
|
||||
current_garage = v.garage,
|
||||
current_in_garage = v.parking,
|
||||
current_name = v.name,
|
||||
current_plate = v.plate,
|
||||
})
|
||||
end
|
||||
end
|
||||
end)
|
||||
return vehicles
|
||||
end)
|
||||
|
||||
RegisterServerEvent('mh_garage:spawnedVehicle')
|
||||
AddEventHandler('mh_garage:spawnedVehicle', function(netID, plate)
|
||||
MySQL.query("UPDATE player_vehicles SET garage = ? WHERE plate = ?", {"OUT", plate})
|
||||
end)
|
||||
|
||||
QBCore.Functions.CreateCallback('mh_garage:CheckownerVehicles', function(source, cb, plate)
|
||||
MySQL.query("SELECT * FROM player_vehicles WHERE plate = ?", {plate}, function(rs)
|
||||
if rs ~= nil and rs[1] ~= nil then
|
||||
cb(true)
|
||||
else
|
||||
cb(false)
|
||||
end
|
||||
end)
|
||||
end)
|
Loading…
Add table
Add a link
Reference in a new issue