mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-31 14:01:35 +00:00
Adding files
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
local GUI = {}
|
||||
local hasAlreadyEnteredMarker = false
|
||||
GUI.MenuIsShowed = false
|
||||
|
||||
ESX = nil
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while ESX == nil do
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
end)
|
||||
|
||||
TriggerEvent('es:setDefaultSettings', {
|
||||
nativeMoneySystem = false,
|
||||
})
|
||||
|
||||
RegisterNetEvent('esx_atm:closeATM')
|
||||
AddEventHandler('esx_atm:closeATM', function()
|
||||
SetNuiFocus(false)
|
||||
GUI.MenuIsShowed = false
|
||||
SendNUIMessage({
|
||||
hideAll = true
|
||||
})
|
||||
end)
|
||||
|
||||
RegisterNUICallback('escape', function(data, cb)
|
||||
TriggerEvent('esx_atm:closeATM')
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
RegisterNUICallback('deposit', function(data, cb)
|
||||
TriggerServerEvent('esx_atm:deposit', data.amount)
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
RegisterNUICallback('withdraw', function(data, cb)
|
||||
TriggerServerEvent('esx_atm:withdraw', data.amount)
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
-- Create blips
|
||||
Citizen.CreateThread(function()
|
||||
for i=1, #Config.ATMS, 1 do
|
||||
local blip = AddBlipForCoord(Config.ATMS[i].x, Config.ATMS[i].y, Config.ATMS[i].z - Config.ZDiff)
|
||||
SetBlipSprite (blip, Config.BlipSprite)
|
||||
SetBlipDisplay(blip, 4)
|
||||
SetBlipScale (blip, 0.9)
|
||||
SetBlipColour (blip, 2)
|
||||
SetBlipAsShortRange(blip, true)
|
||||
BeginTextCommandSetBlipName("STRING")
|
||||
AddTextComponentString("ATM")
|
||||
EndTextCommandSetBlipName(blip)
|
||||
end
|
||||
end)
|
||||
|
||||
-- Render markers
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
Wait(0)
|
||||
local coords = GetEntityCoords(GetPlayerPed(-1))
|
||||
for i=1, #Config.ATMS, 1 do
|
||||
if(GetDistanceBetweenCoords(coords, Config.ATMS[i].x, Config.ATMS[i].y, Config.ATMS[i].z, true) < Config.DrawDistance) then
|
||||
DrawMarker(Config.MarkerType, Config.ATMS[i].x, Config.ATMS[i].y, Config.ATMS[i].z - Config.ZDiff, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.ZoneSize.x, Config.ZoneSize.y, Config.ZoneSize.z, Config.MarkerColor.r, Config.MarkerColor.g, Config.MarkerColor.b, 100, false, true, 2, false, false, false, false)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- Activate menu when player is inside marker
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
Wait(0)
|
||||
local coords = GetEntityCoords(GetPlayerPed(-1))
|
||||
local isInMarker = false
|
||||
for i=1, #Config.ATMS, 1 do
|
||||
if(GetDistanceBetweenCoords(coords, Config.ATMS[i].x, Config.ATMS[i].y, Config.ATMS[i].z, true) < Config.ZoneSize.x / 2) then
|
||||
isInMarker = true
|
||||
SetTextComponentFormat('STRING')
|
||||
AddTextComponentString('Appuyez sur ~INPUT_PICKUP~ pour déposer ou retirer du ~g~cash~s~.')
|
||||
DisplayHelpTextFromStringLabel(0, 0, 1, -1)
|
||||
end
|
||||
end
|
||||
if isInMarker and not hasAlreadyEnteredMarker then
|
||||
hasAlreadyEnteredMarker = true
|
||||
--TriggerEvent('esx_atm:hasEnteredMarker')
|
||||
end
|
||||
if not isInMarker and hasAlreadyEnteredMarker then
|
||||
hasAlreadyEnteredMarker = false
|
||||
SetNuiFocus(false)
|
||||
GUI.MenuIsShowed = false
|
||||
SendNUIMessage({
|
||||
hideAll = true
|
||||
})
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- Menu interactions
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
Wait(0)
|
||||
if GUI.MenuIsShowed then
|
||||
DisableControlAction(0, 1, true) -- LookLeftRight
|
||||
DisableControlAction(0, 2, true) -- LookUpDown
|
||||
DisableControlAction(0, 142, true) -- MeleeAttackAlternate
|
||||
DisableControlAction(0, 106, true) -- VehicleMouseControlOverride
|
||||
if IsDisabledControlJustReleased(0, 142) then -- MeleeAttackAlternate
|
||||
SendNUIMessage({
|
||||
click = true
|
||||
})
|
||||
end
|
||||
else
|
||||
if IsControlJustReleased(0, 38) then
|
||||
GUI.MenuIsShowed = true
|
||||
ESX.TriggerServerCallback('esx:getPlayerData', function(data)
|
||||
SendNUIMessage({
|
||||
showMenu = true,
|
||||
player = {
|
||||
money = data.money,
|
||||
accounts = data.accounts
|
||||
}
|
||||
})
|
||||
end)
|
||||
SetNuiFocus(true)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
Reference in New Issue
Block a user