1
0
Fork 0
forked from Simnation/Main
Main/resources/[test]/ry_shops/client/main.lua

100 lines
4.2 KiB
Lua
Raw Permalink Normal View History

2025-06-07 08:51:21 +02:00
-- Initialize the framework and set initial state
Framework = getFramework()
inMenu = false
cache = {}
-- Check if oxTarget option is disabled
if not (RY.Options.oxTarget) then
Citizen.CreateThread(function()
while true do
if inMenu then
Citizen.Wait(500)
else
local playerPed = PlayerPedId()
local playerCoords = GetEntityCoords(playerPed)
local anyNearby = false
-- Iterate over all shop locations
for k, v in pairs(RY.Locations) do
local playerJob = GetPlayerJob()
local canAccess = not v.jobRestrictions.enabled or v.jobRestrictions.jobs[playerJob]
if canAccess then
for _, coords in pairs(v.menuCoords) do
local distance = #(playerCoords - coords)
-- Check if player is close enough to open the menu
if distance < 1 then
anyNearby = true
if not inMenu then
DrawText3D(coords.x, coords.y, coords.z + 0.25, v.markersConfig.markerMenu.markerText)
-- Open menu if the designated key is released
if IsControlJustReleased(0, v.markersConfig.markerMenu.useKey) then
openMenu(k)
end
end
end
-- Draw marker if player is within 15 units
if distance <= 15 then
anyNearby = true
if not inMenu then
DrawMarker(
v.markersConfig.markerMenu.markerType,
coords.x, coords.y, coords.z,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
v.markersConfig.markerMenu.markerSize.x,
v.markersConfig.markerMenu.markerSize.y,
v.markersConfig.markerMenu.markerSize.z,
v.markersConfig.markerMenu.markerColor.r,
v.markersConfig.markerMenu.markerColor.g,
v.markersConfig.markerMenu.markerColor.b,
50, false, true, 2, false, nil, nil, false
)
end
end
end
end
end
-- Wait longer if no location is nearby
if not anyNearby then
Citizen.Wait(500)
else
Citizen.Wait(0)
end
end
end
end)
end
-- Setup targets and blips for each location
for k, v in pairs(RY.Locations) do
local playerJob = GetPlayerJob()
local canAccess = not v.jobRestrictions.enabled or v.jobRestrictions.jobs[playerJob]
if canAccess then
-- Setup targets if oxTarget or qbTarget option is enabled
if RY.Options.oxTarget or RY.Options.qbTarget then
for _, coords in pairs(v.menuCoords) do
SetupTargets(k, v, coords)
end
end
-- Setup blips if they are configured to be shown
if v.blipsConfig.blipMenu.blipShow then
for _, coords in pairs(v.menuCoords) do
local shop = AddBlipForCoord(coords.x, coords.y, coords.z)
SetBlipSprite(shop, v.blipsConfig.blipMenu.blipSprite)
SetBlipDisplay(shop, 4)
SetBlipScale(shop, v.blipsConfig.blipMenu.blipScale)
SetBlipAsShortRange(shop, true)
SetBlipColour(shop, v.blipsConfig.blipMenu.blipColor)
BeginTextCommandSetBlipName("STRING")
AddTextComponentSubstringPlayerName(v.blipsConfig.blipMenu.blipName)
EndTextCommandSetBlipName(shop)
end
end
end
end