73 lines
2.8 KiB
Lua
73 lines
2.8 KiB
Lua
-- Keine manuelle ESX-Initialisierung nötig, da wir die imports.lua in der fxmanifest haben!
|
|
|
|
local Config = {}
|
|
Config.GiveCash = 100
|
|
Config.GiveBank = 500
|
|
Config.GiveOffline = true
|
|
Config.Debug = 'TOP-SERVEURS'
|
|
Config.DebugCommand = true
|
|
|
|
local debug = function(msg)
|
|
if Config.Debug then print('^7[^5'..Config.Debug..'^7] '..msg..'^7') end
|
|
end
|
|
|
|
-- Test-Command (bleibt gleich)
|
|
if Config.DebugCommand then
|
|
RegisterCommand('testvote', function(source, args)
|
|
if source == 0 then
|
|
if args[1] and args[2] then
|
|
local playername = args[1]..' '..args[2]
|
|
debug('Simulated vote for: ^5'..playername)
|
|
TriggerEvent('onPlayerVote', playername)
|
|
else
|
|
print("Nutze: testvote Vorname Nachname")
|
|
end
|
|
end
|
|
end, false)
|
|
end
|
|
|
|
AddEventHandler('onPlayerVote', function (playername, date)
|
|
-- 1. Versuch: Spieler Online finden
|
|
local xPlayer = nil
|
|
local players = ESX.GetExtendedPlayers() -- ESX ist durch imports.lua bereits global verfügbar
|
|
|
|
for _, p in pairs(players) do
|
|
if string.lower(p.getName()) == string.lower(playername) then
|
|
xPlayer = p
|
|
break
|
|
end
|
|
end
|
|
|
|
if xPlayer then
|
|
if Config.GiveCash > 0 then xPlayer.addAccountMoney('money', Config.GiveCash) end
|
|
if Config.GiveBank > 0 then xPlayer.addAccountMoney('bank', Config.GiveBank) end
|
|
|
|
-- NUTZUNG VON HEX_4_HUD NOTIFY
|
|
-- Syntax: exports['hex_4_hud']:Notify(title, message, type, timeout)
|
|
TriggerClientEvent('hex_4_hud:Notify', xPlayer.source, 'VOTE', 'Danke fürs Voten! Du hast deine Belohnung erhalten.', 'success', 5000)
|
|
|
|
debug('Belohnung an Online-Spieler gesendet: '..xPlayer.getName())
|
|
|
|
elseif Config.GiveOffline then
|
|
-- 2. Versuch: Offline (Datenbank)
|
|
local fName, lName = playername:match("^(%S+)%s+(%S+)$")
|
|
if not fName or not lName then return end
|
|
|
|
exports.oxmysql:execute('SELECT identifier, accounts FROM users WHERE firstname = ? AND lastname = ?', {fName, lName}, function(result)
|
|
if result and result[1] then
|
|
local accounts = json.decode(result[1].accounts)
|
|
|
|
if accounts then
|
|
accounts.money = (accounts.money or 0) + Config.GiveCash
|
|
accounts.bank = (accounts.bank or 0) + Config.GiveBank
|
|
|
|
exports.oxmysql:execute('UPDATE users SET accounts = ? WHERE identifier = ?', {
|
|
json.encode(accounts),
|
|
result[1].identifier
|
|
})
|
|
debug('Offline-Belohnung für '..fName..' '..lName..' in DB gespeichert.')
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
end) |