mirror of
https://github.com/ND-Framework/ND_Core.git
synced 2026-08-19 06:46:03 +01:00
Update main.lua
This commit is contained in:
@@ -128,34 +128,6 @@ AddEventHandler("editCharacter", function(newCharacter)
|
|||||||
exports.oxmysql:query("UPDATE characters SET first_name = ?, last_name = ?, dob = ?, gender = ?, twt = ?, department = ? WHERE license = ? AND character_id = ?", {newCharacter.firstName, newCharacter.lastName, newCharacter.dateOfBirth, newCharacter.gender, newCharacter.twtName, newCharacter.department, GetPlayerIdentifierFromType("license", player), newCharacter.id})
|
exports.oxmysql:query("UPDATE characters SET first_name = ?, last_name = ?, dob = ?, gender = ?, twt = ?, department = ? WHERE license = ? AND character_id = ?", {newCharacter.firstName, newCharacter.lastName, newCharacter.dateOfBirth, newCharacter.gender, newCharacter.twtName, newCharacter.department, GetPlayerIdentifierFromType("license", player), newCharacter.id})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Planning on moving everything money related to server.
|
|
||||||
RegisterNetEvent("bankPay")
|
|
||||||
AddEventHandler("bankPay", function(characterid, playerid, amount, playerSending, name)
|
|
||||||
local player = source
|
|
||||||
exports.oxmysql:query("UPDATE characters SET bank = bank - ? WHERE license = ? AND character_id = ?", {amount, GetPlayerIdentifierFromType("license", player), characterid})
|
|
||||||
TriggerClientEvent("receiveBank", playerid, amount, playerSending, name)
|
|
||||||
TriggerClientEvent("updateMoney", player)
|
|
||||||
end)
|
|
||||||
RegisterNetEvent("addBank")
|
|
||||||
AddEventHandler("addBank", function(amount, characterid)
|
|
||||||
local player = source
|
|
||||||
exports.oxmysql:query("UPDATE characters SET bank = bank + ? WHERE license = ? AND character_id = ?", {amount, GetPlayerIdentifierFromType("license", player), characterid})
|
|
||||||
TriggerClientEvent("updateMoney", player)
|
|
||||||
end)
|
|
||||||
RegisterNetEvent("cashPay")
|
|
||||||
AddEventHandler("cashPay", function(characterid, playerid, amount, playerSending, name)
|
|
||||||
local player = source
|
|
||||||
exports.oxmysql:query("UPDATE characters SET cash = cash - ? WHERE license = ? AND character_id = ?", {amount, GetPlayerIdentifierFromType("license", player), characterid})
|
|
||||||
TriggerClientEvent("receiveCash", playerid, amount, playerSending, name)
|
|
||||||
TriggerClientEvent("updateMoney", player)
|
|
||||||
end)
|
|
||||||
RegisterNetEvent("addCash")
|
|
||||||
AddEventHandler("addCash", function(amount, characterid)
|
|
||||||
local player = source
|
|
||||||
exports.oxmysql:query("UPDATE characters SET cash = cash + ? WHERE license = ? AND character_id = ?", {amount, GetPlayerIdentifierFromType("license", player), characterid})
|
|
||||||
TriggerClientEvent("updateMoney", player)
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- This is used to find out how much money the player has and use it in the client to show it on the ui.
|
-- This is used to find out how much money the player has and use it in the client to show it on the ui.
|
||||||
RegisterNetEvent("getMoney")
|
RegisterNetEvent("getMoney")
|
||||||
AddEventHandler("getMoney", function(characterid)
|
AddEventHandler("getMoney", function(characterid)
|
||||||
@@ -164,7 +136,154 @@ AddEventHandler("getMoney", function(characterid)
|
|||||||
if result then
|
if result then
|
||||||
cash = result[1].cash
|
cash = result[1].cash
|
||||||
bank = result[1].bank
|
bank = result[1].bank
|
||||||
|
onlinePlayers[player].cash = cash
|
||||||
|
onlinePlayers[player].bank = bank
|
||||||
TriggerClientEvent("returnMoney", player, cash, bank)
|
TriggerClientEvent("returnMoney", player, cash, bank)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
-- onlinePlayers table.
|
||||||
|
onlinePlayers = {}
|
||||||
|
|
||||||
|
-- add a player to the table.
|
||||||
|
RegisterNetEvent("characterOnline")
|
||||||
|
AddEventHandler("characterOnline", function(id)
|
||||||
|
local player = source
|
||||||
|
local license = GetPlayerIdentifierFromType("license", player)
|
||||||
|
exports.oxmysql:query("SELECT * FROM characters WHERE license = ? AND character_id = ?", {GetPlayerIdentifierFromType("license", player), id}, function(result)
|
||||||
|
if result then
|
||||||
|
local i = result[1]
|
||||||
|
onlinePlayers[player] = {
|
||||||
|
characterId = id,
|
||||||
|
firstName = i.first_name,
|
||||||
|
lastName = i.last_name,
|
||||||
|
dob = i.dob,
|
||||||
|
gender = i.gender,
|
||||||
|
twt = i.twt,
|
||||||
|
dept = i.department,
|
||||||
|
cash = i.cash,
|
||||||
|
bank = i.bank
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- paying command.
|
||||||
|
RegisterCommand(config.payCommand, function(source, args, raw)
|
||||||
|
local player = source
|
||||||
|
local target = tonumber(args[1])
|
||||||
|
local amount = tonumber(args[2])
|
||||||
|
|
||||||
|
exports.oxmysql:query("SELECT bank FROM characters WHERE license = ? AND character_id = ?", {GetPlayerIdentifierFromType("license", player), onlinePlayers[player].characterId}, function(result)
|
||||||
|
if result then
|
||||||
|
if player == target then
|
||||||
|
TriggerClientEvent("chat:addMessage", player, {
|
||||||
|
color = {255, 0, 0},
|
||||||
|
args = {"Error", "You can't send money to yourself."}
|
||||||
|
})
|
||||||
|
elseif GetPlayerPing(target) == 0 then
|
||||||
|
TriggerClientEvent("chat:addMessage", player, {
|
||||||
|
color = {255, 0, 0},
|
||||||
|
args = {"Error", "That player does not exist."}
|
||||||
|
})
|
||||||
|
elseif result[1].bank < amount then
|
||||||
|
TriggerClientEvent("chat:addMessage", player, {
|
||||||
|
color = {255, 0, 0},
|
||||||
|
args = {"Error", "You don't have enough money."}
|
||||||
|
})
|
||||||
|
else
|
||||||
|
exports.oxmysql:query("UPDATE characters SET bank = bank - ? WHERE license = ? AND character_id = ?", {amount, GetPlayerIdentifierFromType("license", player), onlinePlayers[player].characterId})
|
||||||
|
TriggerClientEvent("updateMoney", player)
|
||||||
|
exports.oxmysql:query("UPDATE characters SET bank = bank + ? WHERE license = ? AND character_id = ?", {amount, GetPlayerIdentifierFromType("license", target), onlinePlayers[target].characterId})
|
||||||
|
TriggerClientEvent("updateMoney", target)
|
||||||
|
|
||||||
|
exports.oxmysql:query("SELECT first_name, last_name FROM characters WHERE license = ? AND character_id = ?", {GetPlayerIdentifierFromType("license", target), onlinePlayers[target].characterId}, function(result)
|
||||||
|
if result then
|
||||||
|
TriggerClientEvent("chat:addMessage", player, {
|
||||||
|
color = {0, 255, 0},
|
||||||
|
args = {"Success", "You paid " .. result[1].first_name .. " " .. result[1].last_name .. " $" .. amount .. "."}
|
||||||
|
})
|
||||||
|
exports.oxmysql:query("SELECT first_name, last_name FROM characters WHERE license = ? AND character_id = ?", {GetPlayerIdentifierFromType("license", player), onlinePlayers[player].characterId}, function(result)
|
||||||
|
if result then
|
||||||
|
TriggerClientEvent("receiveBank", target, amount, result[1].first_name .. " " .. result[1].last_name, player)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Give money command.
|
||||||
|
RegisterCommand(config.giveCommand, function(source, args, raw)
|
||||||
|
local player = source
|
||||||
|
local amount = tonumber(args[1])
|
||||||
|
|
||||||
|
exports.oxmysql:query("SELECT cash FROM characters WHERE license = ? AND character_id = ?", {GetPlayerIdentifierFromType("license", player), onlinePlayers[player].characterId}, function(result)
|
||||||
|
if result then
|
||||||
|
local playerFound = false
|
||||||
|
local playerCoords = GetEntityCoords(GetPlayerPed(player))
|
||||||
|
if result[1].cash < amount then
|
||||||
|
TriggerClientEvent("chat:addMessage", player, {
|
||||||
|
color = {255, 0, 0},
|
||||||
|
args = {"Error", "You don't have enough money."}
|
||||||
|
})
|
||||||
|
else
|
||||||
|
for k, v in pairs(onlinePlayers) do
|
||||||
|
local targetCoords = GetEntityCoords(GetPlayerPed(k))
|
||||||
|
if (#(playerCoords - targetCoords) < 2.0) and (k ~= player) and not playerFound then
|
||||||
|
exports.oxmysql:query("UPDATE characters SET cash = cash - ? WHERE license = ? AND character_id = ?", {amount, GetPlayerIdentifierFromType("license", player), onlinePlayers[player].characterId})
|
||||||
|
TriggerClientEvent("updateMoney", player)
|
||||||
|
exports.oxmysql:query("UPDATE characters SET cash = cash + ? WHERE license = ? AND character_id = ?", {amount, GetPlayerIdentifierFromType("license", k), tonumber(v.characterId)})
|
||||||
|
TriggerClientEvent("updateMoney", k)
|
||||||
|
playerFound = true
|
||||||
|
exports.oxmysql:query("SELECT first_name, last_name FROM characters WHERE license = ? AND character_id = ?", {GetPlayerIdentifierFromType("license", k), tonumber(v.characterId)}, function(result)
|
||||||
|
if result then
|
||||||
|
TriggerClientEvent("chat:addMessage", player, {
|
||||||
|
color = {0, 255, 0},
|
||||||
|
args = {"Success", "You gave " .. result[1].first_name .. " " .. result[1].last_name .. " $" .. amount .. "."}
|
||||||
|
})
|
||||||
|
exports.oxmysql:query("SELECT first_name, last_name FROM characters WHERE license = ? AND character_id = ?", {GetPlayerIdentifierFromType("license", player), onlinePlayers[player].characterId}, function(result)
|
||||||
|
if result then
|
||||||
|
TriggerClientEvent("receiveCash", k, amount, result[1].first_name .. " " .. result[1].last_name, player)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not playerFound then
|
||||||
|
TriggerClientEvent("chat:addMessage", player, {
|
||||||
|
color = {255, 0, 0},
|
||||||
|
args = {"Error", "No players nearby."}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
playerFound = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Salary.
|
||||||
|
local salaryInterval = config.salaryInterval * 60000
|
||||||
|
Citizen.CreateThread(function()
|
||||||
|
while true do
|
||||||
|
Citizen.Wait(salaryInterval)
|
||||||
|
for k, v in pairs(onlinePlayers) do
|
||||||
|
exports.oxmysql:query("UPDATE characters SET bank = bank + ? WHERE license = ? AND character_id = ?", {config.salaryAmount, GetPlayerIdentifierFromType("license", k), v.characterId})
|
||||||
|
TriggerClientEvent("receiveSalary", k, config.salaryAmount)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Remove player from onlinePlayers table when they leave.
|
||||||
|
AddEventHandler("playerDropped", function(reason)
|
||||||
|
local player = source
|
||||||
|
onlinePlayers[player] = nil
|
||||||
|
end)
|
||||||
|
|
||||||
|
function getCharacterTable()
|
||||||
|
return onlinePlayers
|
||||||
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user