Merge pull request #700 from Rav3n95/main

Fix of the fix in TextUi, Banking ped refactor
This commit is contained in:
Benzo
2022-11-24 23:02:21 +01:00
committed by GitHub
7 changed files with 75 additions and 103 deletions
+4 -4
View File
@@ -1,12 +1,12 @@
Debug = ESX.GetConfig().EnableDebug
---@param message any
---@param type string
local function TextUI(message, type)
---@param message string
---@param typ string
local function TextUI(message, typ)
SendNUIMessage({
action = 'show',
message = message and message or 'ESX-TextUI',
type = type ~= 0 and type or 'info'
type = type(typ) == "string" and typ or 'info'
})
end
+1 -1
View File
@@ -1,5 +1,5 @@
Locales['en'] = {
['allowlist_check'] = 'Checking you are Allowlisted.',
['allowlist_check'] = 'Checking if you are Allowlisted.',
['not_allowlisted'] = 'You Must be Allowlisted to join this server!',
['allowlist_empty'] = 'There Are no allowlists saved for this server.',
['license_missing'] = 'Error: Your Identifier is missing!',
+5 -5
View File
@@ -1,8 +1,8 @@
Locales['hu'] = {
['allowlist_check'] = 'Ellenőrzi, hogy fent vagy-e az engedélyezett listára.',
['allowlist_check'] = 'Ellenőrizzük fent vagy-e a menők listáján.',
['not_allowlisted'] = 'Engedélyezettnek kell lenned ahhoz, hogy csatlakozz ehhez a szerverhez!',
['allowlist_empty'] = 'Ehhez a szerverhez nincsenek mentett engedélyezési listák.',
['license_missing'] = 'Hiba: Te Identifier-ed hiányzik!',
['help_allowlist_add'] = 'jétékos felvéltele a allowlist-re',
['help_allowlist_load'] = 'allowlist újratöltése',
['allowlist_empty'] = 'Ehhez a szerverhez nincsenek mentett engedélyezési lista.',
['license_missing'] = 'Hiba: Te azonosítód hiányzik!',
['help_allowlist_add'] = 'játékos felvétele az engedélyezettek listájára',
['help_allowlist_load'] = 'engedélyezési lista újratöltése',
}
+24 -76
View File
@@ -1,9 +1,10 @@
local PlayerData, ActivateBlips, Peds = {}, {}, {}
local ActivateBlips = {}
local PlayerLoaded = true
local isInMarker, isInAtmMarker, isInMenu, isMarkerShowed = false, false, false, false
local _GetEntityCoords, _PlayerPedId
-- Functions
-- Listen for keypress while player inside the marker
local function Listen4Key()
CreateThread(function()
@@ -46,57 +47,6 @@ local function RemoveBlips()
ActivateBlips = {}
end
-- Ped Handler
local function PedHandler(ids)
local tmpPeds = {}
for _, id in pairs(ids) do
if not Peds[id] then
if not HasModelLoaded(Config.Peds[id].Model) then
RequestModel(Config.Peds[id].Model)
Wait(100)
while not HasModelLoaded(Config.Peds[id].Model) do
Wait(10)
end
end
local npc = CreatePed(6, Config.Peds[id].Model, Config.Peds[id].Position + vector4(0, 0, -1, 0), false,
false)
TaskStartScenarioInPlace(npc, Config.Peds[id].Scenario, 0, true)
SetEntityInvincible(npc, true)
SetEntityProofs(npc, true, true, true, true, true, true, 1, true)
SetBlockingOfNonTemporaryEvents(npc, true)
FreezeEntityPosition(npc, true)
SetPedDiesWhenInjured(npc, false)
SetEntityCanBeDamaged(npc, false)
SetPedCanRagdollFromPlayerImpact(npc, false)
SetPedCanRagdoll(npc, false)
SetEntityAsMissionEntity(npc, true, true)
SetEntityDynamic(npc, false)
Peds[id] = npc
end
end
for id, handle in pairs(Peds) do
local del = true
for i = 1, #ids do
if ids[i] == id then
del = false
tmpPeds[id] = handle
end
end
if del then
DeletePed(handle)
end
end
Peds = tmpPeds
end
function OpenUi(atm)
atm = atm or false
isInMenu = true
@@ -129,7 +79,7 @@ function OpenUi(atm)
end
local function CloseUi()
SetNuiFocus(false)
SetNuiFocus(false, false)
isInMenu = false
SendNUIMessage({
showMenu = false
@@ -144,8 +94,7 @@ end
local function ShowMarker(coord)
CreateThread(function()
while isMarkerShowed do
DrawMarker(20, coord.x, coord.y, coord.z, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.2, 0.2, 187, 255, 0, 255,
false, true, 2, nil, nil, false)
DrawMarker(20, coord.x, coord.y, coord.z, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.2, 0.2, 187, 255, 0, 255, false, true, 2, false, nil, nil, false)
Wait(0)
end
end)
@@ -159,19 +108,6 @@ local function StartThread()
_PlayerPedId = PlayerPedId()
_GetEntityCoords = GetEntityCoords(_PlayerPedId)
if Config.EnablePeds then
local closestPed = {}
for i = 1, #Config.Peds do
local distance = #(_GetEntityCoords - Config.Peds[i].Position.xyz)
if distance <= Config.DrawMarker then
closestPed[#closestPed + 1] = i
end
end
PedHandler(closestPed)
end
if IsPedOnFoot(PlayerPedId()) then
local closestBank = {}
@@ -261,6 +197,21 @@ RegisterNetEvent('esx_banking:closebanking', function()
CloseUi()
end)
RegisterNetEvent('esx_banking:PedHandler', function(netIdTable)
local npc
for i = 1, #netIdTable do
npc = NetworkGetEntityFromNetworkId(netIdTable[i])
TaskStartScenarioInPlace(npc, Config.Peds[i].Scenario, 0, true)
SetEntityProofs(npc, true, true, true, true, true, true, true, true)
SetBlockingOfNonTemporaryEvents(npc, true)
FreezeEntityPosition(npc, true)
SetPedCanRagdollFromPlayerImpact(npc, false)
SetPedCanRagdoll(npc, false)
SetEntityAsMissionEntity(npc, true, true)
SetEntityDynamic(npc, false)
end
end)
RegisterNetEvent('esx_banking:updateMoneyInUI')
AddEventHandler('esx_banking:updateMoneyInUI', function(doingType, bankMoney, money)
SendNUIMessage({
@@ -275,23 +226,20 @@ end)
-- Resource starting
AddEventHandler('onResourceStart', function(resource)
if resource ~= GetCurrentResourceName() then
return
end
if resource ~= GetCurrentResourceName() then return end
StartThread()
end)
-- Enables it on player loaded
RegisterNetEvent('esx:playerLoaded', function()
StartThread()
end)
end)
-- Resource stopping
AddEventHandler('onResourceStop', function(resource)
if resource ~= GetCurrentResourceName() then
return
end
if resource ~= GetCurrentResourceName() then return end
RemoveBlips()
if isInMenu then
CloseUi()
end
end)
end)
+1 -1
View File
@@ -2,7 +2,7 @@ Config = {
Debug = false,
DrawMarker = 10,
Locale = GetConvar('esx:locale', 'en'),
EnablePeds = true,
EnablePeds = true,
AtmModels = {`prop_fleeca_atm`, `prop_atm_01`, `prop_atm_02`, `prop_atm_03`},
Banks = {
{
+1 -1
View File
@@ -4,7 +4,7 @@ game 'gta5'
description 'ESX banking'
lua54 'yes'
version '1.8.5'
version '1.8.6'
shared_scripts {
'@es_extended/imports.lua',
+39 -15
View File
@@ -1,3 +1,5 @@
local spawnedPeds, netIdTable = {}, {}
-- get keys utils
local function get_key(t)
local key
@@ -9,28 +11,34 @@ end
-- Resource starting
AddEventHandler('onResourceStart', function(resourceName)
if (GetCurrentResourceName() ~= resourceName) then
return
end
if (GetCurrentResourceName() ~= resourceName) then return end
if Config.EnablePeds then BANK.CreatePeds() end
local twoMonthMs = (os.time() - 5259487) * 1000
MySQL.Sync.fetchScalar('DELETE FROM banking WHERE time < ? ', {twoMonthMs})
end)
AddEventHandler('onResourceStop', function(resourceName)
if (GetCurrentResourceName() ~= resourceName) then return end
if Config.EnablePeds then BANK.DeletePeds() end
end)
AddEventHandler('esx:playerLoaded', function(playerId, xPlayer)
if not Config.EnablePeds then return end
TriggerClientEvent('esx_banking:PedHandler', playerId, netIdTable)
end)
-- event
RegisterServerEvent('esx_banking:doingType')
AddEventHandler('esx_banking:doingType', function(typeData)
if source == nil then
return
end
if (typeData == nil) then
return
end
if source == nil then return end
if (typeData == nil) then return end
local source = source
local xPlayer = ESX.GetPlayerFromId(source)
local identifier = xPlayer.getIdentifier()
local money = xPlayer.getAccount('money').money
local bankMoney = xPlayer.getAccount('bank').money
local amount
local key = get_key(typeData)
if typeData.deposit then
@@ -43,9 +51,7 @@ AddEventHandler('esx_banking:doingType', function(typeData)
amount = tonumber(typeData.pincode)
end
if not tonumber(amount) then
return
end
if not tonumber(amount) then return end
amount = ESX.Math.Round(amount)
if amount == nil or (not typeData.pincode and amount <= 0) then
@@ -116,6 +122,24 @@ end)
-- bank functions
BANK = {
CreatePeds = function()
for i = 1, #Config.Peds do
local model = Config.Peds[i].Model
local coords = Config.Peds[i].Position
spawnedPeds[i] = CreatePed(0, model, coords.x, coords.y, coords.z, coords.w, true, true)
netIdTable[i] = NetworkGetNetworkIdFromEntity(spawnedPeds[i])
while not DoesEntityExist(spawnedPeds[i]) do Wait(50) end
end
Wait(100)
TriggerClientEvent('esx_banking:PedHandler', -1, netIdTable)
end,
DeletePeds = function()
for i = 1, #spawnedPeds do
DeleteEntity(spawnedPeds[i])
spawnedPeds[i] = nil
end
end,
Withdraw = function(amount, xPlayer)
xPlayer.addAccountMoney('money', amount)
xPlayer.removeAccountMoney('bank', amount)
@@ -132,7 +156,7 @@ BANK = {
xPlayer.removeAccountMoney('bank', amount)
xTarget.addAccountMoney('bank', amount)
bankMoney = xTarget.getAccount('bank').money
local bankMoney = xTarget.getAccount('bank').money
BANK.LogTransaction(xTarget.source, "TRANSFER_RECEIVE", amount, bankMoney)
TriggerClientEvent("esx:showNotification", xTarget.source, TranslateCap('receive_transfer', amount, xPlayer.source),
"success")
@@ -151,5 +175,5 @@ BANK = {
MySQL.insert('INSERT INTO banking (identifier, type, amount, time, balance) VALUES (?, ?, ?, ?, ?)',
{identifier, logType, amount, os.time() * 1000, bankMoney})
end
}
end
}