Revert "a lot of changes"

This reverts commit bf9604e851.
This commit is contained in:
Andyyy7666
2023-07-10 02:37:54 +02:00
parent bf9604e851
commit 9a9fa03e8a
8 changed files with 146 additions and 172 deletions

View File

@@ -17,9 +17,3 @@ function NDCore.GetPlayersFromCoords(distance, coords)
end end
return closePlayers return closePlayers
end end
for name, func in pairs(NDCore) do
if type(func) == "function" then
exports(name, func)
end
end

View File

@@ -1,5 +1,3 @@
NDCore = {}
CreateThread(function() CreateThread(function()
SetDiscordAppId(Config.discordAppId) SetDiscordAppId(Config.discordAppId)
SetDiscordRichPresenceAsset(Config.discordAsset) SetDiscordRichPresenceAsset(Config.discordAsset)

View File

@@ -8,19 +8,18 @@ fx_version "cerulean"
game "gta5" game "gta5"
lua54 "yes" lua54 "yes"
shared_scripts {
"init.lua"
}
client_scripts { client_scripts {
"client/main.lua",
"client/functions.lua", "client/functions.lua",
"client/events.lua", "client/events.lua",
"client/main.lua"
} }
server_scripts { server_scripts {
"@oxmysql/lib/MySQL.lua", "@oxmysql/lib/MySQL.lua",
"server/main.lua", "server/main.lua",
"server/functions.lua",
"server/player.lua" "server/player.lua"
} }
shared_scripts {
"init.lua"
}
dependency "oxmysql" dependency "oxmysql"

View File

@@ -8,16 +8,9 @@ Config = {
discordActionLink = GetConvar("discordActionLink", "https://discord.gg/Z9Mxu72zZ6"), discordActionLink = GetConvar("discordActionLink", "https://discord.gg/Z9Mxu72zZ6"),
discordActionText2 = GetConvar("core:discordActionText2", "STORE"), discordActionText2 = GetConvar("core:discordActionText2", "STORE"),
discordActionLink2 = GetConvar("core:discordActionLink2", "https://andyyy.tebex.io/category/fivem-scripts"), discordActionLink2 = GetConvar("core:discordActionLink2", "https://andyyy.tebex.io/category/fivem-scripts"),
} }
local nd_core = exports["ND_Core"] NDCore = {
config = Config
NDCore = setmetatable({}, { }
__index = function(self, index)
self[index] = function(...)
return nd_core[index](nil, ...)
end
return self[index]
end
})

View File

@@ -1,20 +0,0 @@
function NDCore.getPlayer(src)
return ActivePlayers[src]
end
function NDCore.getPlayers(metadata, data)
if not metadata or not data then return ActivePlayers end
local players = {}
for src, info in pairs(ActivePlayers) do
if info.metadata[metadata] == data then
players[src] = info
end
end
return players
end
for name, func in pairs(NDCore) do
if type(func) == "function" then
exports(name, func)
end
end

View File

@@ -1,6 +1,20 @@
NDCore = {}
ActivePlayers = {} ActivePlayers = {}
function NDCore.getPlayer(src)
return ActivePlayers[src]
end
function NDCore.getPlayers(metadata, data)
if not metadata or not data then return ActivePlayers end
local players = {}
for src, info in pairs(ActivePlayers) do
if info.metadata[metadata] == data then
players[src] = info
end
end
return players
end
AddEventHandler("playerDropped", function() AddEventHandler("playerDropped", function()
local src = source local src = source
local char = ActivePlayers[src] local char = ActivePlayers[src]

View File

@@ -1,27 +1,12 @@
local function createCharacterTable(info) local function charDelete(self)
local self = {
source = info.source,
name = info.name,
firstname = info.firstname,
lastname = info.lastname,
dob = info.dob,
gender = info.gender,
cash = info.cash,
bank = info.bank,
license = info.license,
metadata = info.metadata,
inventory = info.inventory
}
function self.delete()
local result = MySQL.query.await("DELETE FROM nd_characters WHERE charid = ?", {self.id}) local result = MySQL.query.await("DELETE FROM nd_characters WHERE charid = ?", {self.id})
if result and self.source then if result and self.source then
ActivePlayers[self.source] = nil ActivePlayers[self.source] = nil
end end
return result return result
end end
function self.deductMoney(account, amount, reason) local function charDeductMoney(self, account, amount, reason)
local amount = tonumber(amount) local amount = tonumber(amount)
if not amount or account ~= "bank" and account ~= "cash" then return end if not amount or account ~= "bank" and account ~= "cash" then return end
self[account] -= amount self[account] -= amount
@@ -30,9 +15,9 @@ local function createCharacterTable(info)
ActivePlayers[self.source] = self ActivePlayers[self.source] = self
end end
return true return true
end end
function self.addMoney(account, amount, reason) local function charAddMoney(self, account, amount, reason)
local amount = tonumber(amount) local amount = tonumber(amount)
if not amount or account ~= "bank" and account ~= "cash" then return end if not amount or account ~= "bank" and account ~= "cash" then return end
self[account] += amount self[account] += amount
@@ -41,39 +26,39 @@ local function createCharacterTable(info)
ActivePlayers[self.source] = self ActivePlayers[self.source] = self
end end
return true return true
end end
function self.depositMoney(amount) local function charDepositMoney(self, amount)
local amount = tonumber(amount) local amount = tonumber(amount)
if not amount or self.cash < amount or amount <= 0 then return end if not amount or self.cash < amount or amount <= 0 then return end
return self:deductMoney("cash", amount, "Deposit") and self:AddMoney("bank", amount, "Deposit") return self:deductMoney("cash", amount, "Deposit") and self:AddMoney("bank", amount, "Deposit")
end end
function self.withdrawMoney(amount) local function charWithdrawMoney(self, amount)
local amount = tonumber(amount) local amount = tonumber(amount)
if not amount or self.bank < amount or amount <= 0 then return end if not amount or self.bank < amount or amount <= 0 then return end
return self:deductMoney("bank", amount, "Withdraw") and self:AddMoney("cash", amount, "Withdraw") return self:deductMoney("bank", amount, "Withdraw") and self:AddMoney("cash", amount, "Withdraw")
end end
function self.setMetadata(key, value) local function charSetMetadata(self, key, value)
self.metadata[key] = value self.metadata[key] = value
if self.source then if self.source then
ActivePlayers[self.source] = self ActivePlayers[self.source] = self
return ActivePlayers[self.source].metadata return ActivePlayers[self.source].metadata
end end
return self.metadata return self.metadata
end end
function self.unload(self) local function charUnload(self)
TriggerEvent("ND:characterUnloaded", self.source, self) TriggerEvent("ND:characterUnloaded", self.source, self)
local ped = GetPlayerPed(self.source) local ped = GetPlayerPed(self.source)
self:setMetadata("location", GetEntityCoords(ped)) self:setMetadata("location", GetEntityCoords(ped))
self:save() self:save()
if not self.source then return end if not self.source then return end
ActivePlayers[self.source] = nil ActivePlayers[self.source] = nil
end end
function self.save(self) local function charSave(self)
MySQL.update.await("UPDATE nd_characters SET name = ?, firstname = ?, lastname = ?, dob = ?, gender = ?, cash = ?, bank = ?, metadata = ?, inventory = ? WHERE charid = ?", { MySQL.update.await("UPDATE nd_characters SET name = ?, firstname = ?, lastname = ?, dob = ?, gender = ?, cash = ?, bank = ?, metadata = ?, inventory = ? WHERE charid = ?", {
self.name, self.name,
self.firstname, self.firstname,
@@ -86,9 +71,9 @@ local function createCharacterTable(info)
json.encode(self.inventory), json.encode(self.inventory),
self.id, self.id,
}) })
end end
function self.createLicense(licenseType, expire) local function charCreateLicense(self, licenseType, expire)
local expireIn = tonumber(expire) or 2592000 local expireIn = tonumber(expire) or 2592000
local time = os.time() local time = os.time()
local licenses = self.metadata.licenses local licenses = self.metadata.licenses
@@ -114,24 +99,35 @@ local function createCharacterTable(info)
if not self.source then return end if not self.source then return end
ActivePlayers[self.source] = self ActivePlayers[self.source] = self
end end
function self.setCoords(coords) local function charSetCoords(self, coords)
if not self.source or not coords then return end if not self.source or not coords then return end
local ped = GetPlayerPed(self.source) local ped = GetPlayerPed(self.source)
if not DoesEntityExist(ped) then return end if not DoesEntityExist(ped) then return end
SetEntityCoords(ped, coords.x, coords.y, coords.z) SetEntityCoords(ped, coords.x, coords.y, coords.z)
return true return true
end end
return self local function initPlayerTable(playerTable)
playerTable.delete = charDelete,
playerTable.deductMoney = charDeductMoney,
playerTable.addMoney = charAddMoney
playerTable.depositMoney = charDepositMoney,
playerTable.withdrawMoney = charWithdrawMoney,
playerTable.setMetadata = charSetMetadata,
playerTable.save = charSave,
playerTable.unload = charUnload,
playerTable.createLicense = charCreateLicense
playerTable.setCoords = charSetCoords
return playerTable
end end
function NDCore.newCharacter(src, info) function NDCore.newCharacter(src, info)
local license = GetPlayerIdentifierByType(src, "license") local license = GetPlayerIdentifierByType(src, "license")
if not license then return end if not license then return end
local charInfo = createCharacterTable({ local charInfo = initPlayerTable({
source = src, source = src,
name = GetPlayerName(src) or "", name = GetPlayerName(src) or "",
firstname = info.firstname or "", firstname = info.firstname or "",
@@ -155,7 +151,7 @@ function NDCore.newCharacter(src, info)
charInfo.cash, charInfo.cash,
charInfo.bank, charInfo.bank,
charInfo.metadata charInfo.metadata
}) )
return charInfo return charInfo
end end
@@ -165,7 +161,7 @@ function NDCore.fetchCharacter(id)
if not result then return end if not result then return end
local info = result[1] local info = result[1]
return createCharacterTable({ return initPlayerTable({
id = id, id = id,
name = info.name, name = info.name,
firstname = info.firstname, firstname = info.firstname,
@@ -187,7 +183,7 @@ function NDCore.getPlayerCharacters(src)
for i=1, amount do for i=1, amount do
local info = result[i] local info = result[i]
characters[info.charid] = createCharacterTable({ characters[info.charid] = initPlayerTable({
id = info.charid, id = info.charid,
name = info.name, name = info.name,
firstname = info.firstname, firstname = info.firstname,
@@ -209,7 +205,7 @@ function NDCore.setActiveCharacter(src, id)
if char then char:unload() end if char then char:unload() end
local character = NDCore.fetchCharacter(id) local character = NDCore.fetchCharacter(id)
character.source = src character.source = src,
character.name = GetPlayerName(src) character.name = GetPlayerName(src)
ActivePlayers[src] = character ActivePlayers[src] = character