forked from Simnation/Main
ed
This commit is contained in:
parent
3d2776f33f
commit
d81178fb10
5 changed files with 378 additions and 377 deletions
140
resources/[carscripts]/mh_kart_verleih/server/server.lua
Normal file
140
resources/[carscripts]/mh_kart_verleih/server/server.lua
Normal file
|
@ -0,0 +1,140 @@
|
|||
local QBCore = exports['qb-core']:GetCoreObject()
|
||||
local aktiveMieten = {}
|
||||
|
||||
RegisterServerEvent("kartverleih:startMiete", function(model, preisProTick, max, methode)
|
||||
local src = source
|
||||
local xPlayer = QBCore.Functions.GetPlayer(src)
|
||||
|
||||
if not xPlayer then return end
|
||||
|
||||
local konto = methode == "bank" and "bank" or "cash"
|
||||
|
||||
if max < preisProTick then
|
||||
TriggerClientEvent('ox_lib:notify', src, {
|
||||
type = 'inform',
|
||||
description = 'Der Mindestpreis liegt bei: '..preisProTick..'$',
|
||||
position = 'top'
|
||||
})
|
||||
return
|
||||
end
|
||||
|
||||
if xPlayer.Functions.GetMoney(konto) < max then
|
||||
TriggerClientEvent('ox_lib:notify', src, {
|
||||
type = 'error',
|
||||
description = 'Nicht genug Geld auf deinem ' .. konto .. '-Konto.',
|
||||
position = 'top'
|
||||
})
|
||||
return
|
||||
end
|
||||
|
||||
xPlayer.Functions.RemoveMoney(konto, max)
|
||||
|
||||
aktiveMieten[src] = {
|
||||
preis = preisProTick,
|
||||
geld = max,
|
||||
bezahlt = 0,
|
||||
methode = konto
|
||||
}
|
||||
|
||||
TriggerClientEvent("kartverleih:spawnVeh", src, model)
|
||||
|
||||
TriggerClientEvent('ox_lib:notify', src, {
|
||||
type = 'success',
|
||||
description = 'Miete gestartet. Kart wurde bereitgestellt.',
|
||||
position = 'top'
|
||||
})
|
||||
end)
|
||||
|
||||
RegisterServerEvent("kartverleih:stopMiete", function()
|
||||
local src = source
|
||||
local data = aktiveMieten[src]
|
||||
if not data then return end
|
||||
|
||||
local rueckgabe = data.geld - data.bezahlt
|
||||
if rueckgabe > 0 then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(src)
|
||||
if xPlayer then
|
||||
TriggerClientEvent("kartverleih:stopClientMiete", src)
|
||||
xPlayer.Functions.AddMoney(data.methode, rueckgabe, "Kart-Rückgabe")
|
||||
TriggerClientEvent('ox_lib:notify', src, {
|
||||
type = 'info',
|
||||
description = 'Du erhältst $' .. rueckgabe .. ' zurück.',
|
||||
position = 'top'
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
aktiveMieten[src] = nil
|
||||
end)
|
||||
|
||||
-- Alle 3 Minuten Preis abziehen
|
||||
CreateThread(function()
|
||||
while true do
|
||||
Wait(180000)
|
||||
for src, data in pairs(aktiveMieten) do
|
||||
local xPlayer = QBCore.Functions.GetPlayer(src)
|
||||
if xPlayer then
|
||||
data.bezahlt = data.bezahlt + data.preis
|
||||
if data.bezahlt >= data.geld then
|
||||
TriggerClientEvent('ox_lib:notify', src, {
|
||||
type = 'error',
|
||||
description = 'Dein Guthaben ist aufgebraucht. Kart wird eingezogen.',
|
||||
position = 'top'
|
||||
})
|
||||
TriggerClientEvent("kartverleih:despawnVeh", src)
|
||||
aktiveMieten[src] = nil
|
||||
end
|
||||
else
|
||||
-- Spieler offline: bleibt bestehen für Logging
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent("kartverleih:versucheRueckgabe", function()
|
||||
local src = source
|
||||
local data = aktiveMieten[src]
|
||||
if not data then return end
|
||||
|
||||
local xPlayer = QBCore.Functions.GetPlayer(src)
|
||||
if not xPlayer then return end
|
||||
|
||||
local rest = data.geld - data.bezahlt
|
||||
if rest > 0 then
|
||||
xPlayer.Functions.AddMoney(data.konto, rest, "Kart Rückgabe Erstattung")
|
||||
TriggerClientEvent('ox_lib:notify', src, {
|
||||
type = 'success',
|
||||
description = ("Du hast dein Kart zurückgegeben. Erstattung: $%d"):format(rest),
|
||||
position = 'top'
|
||||
})
|
||||
else
|
||||
TriggerClientEvent('ox_lib:notify', src, {
|
||||
type = 'inform',
|
||||
description = "Dein Kart wurde ohne Rückerstattung zurückgegeben.",
|
||||
position = 'top'
|
||||
})
|
||||
end
|
||||
|
||||
-- Fahrzeug entfernen
|
||||
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)
|
Loading…
Add table
Add a link
Reference in a new issue