if Config.Framework == "qb" then QBCore = exports['qb-core']:GetCoreObject() elseif Config.Framework == "oldqb" then QBCore = nil elseif Config.Framework == "esx" then ESX = exports["es_extended"]:getSharedObject() elseif Config.Framework == "oldesx" then ESX = nil end -- ==LOCAL== local cam = nil local started = false local obj local oldObject = nil local markerCoords_x, markerCoords_y, markerCoords_z local markerColorR, markerColorG, markerColorB local firstOpacityInfo = false local pLastCoords = nil local pLastData = {} -- ====== THREAD Citizen.CreateThread(function() while true do if started then DrawMarker(1, tonumber(markerCoords_x), tonumber(markerCoords_y), tonumber(markerCoords_z) - 2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 50.0, 50.0, 10.0, markerColorR, markerColorG, markerColorB, 100, false, true, 2, false, false, false, false) DrawLightWithRange(tonumber(markerCoords_x), tonumber(markerCoords_y), tonumber(markerCoords_z), markerColorR, markerColorG, markerColorB, 50.0, 50.0) end Wait(0) end end) Citizen.CreateThread(function() while true do local pldist = GetEntityCoords(GetPlayerPed(-1)) sleep = 1000 if started then local areaDistance = GetEntityCoords(obj) local dist = GetDistanceBetweenCoords(pldist.x,pldist.y,pldist.z,areaDistance.x,areaDistance.y,areaDistance.z,true) local onScreen, coordX, coordY = GetCurrentEntityCoords(NetworkGetNetworkIdFromEntity(obj)) if dist >= 15 then SendNUIMessage({ action = "SHOW_INFO", coordX = coordX, coordY = coordY, }) sleep = 0 end end Wait(sleep) end end) -- ====== COMMANDS RegisterCommand('setup', function() TriggerEvent('0r-spawnselector:client:openScreen', "normal") end) RegisterCommand(Config.adminCommands, function() TriggerServerEvent('0r-spawnselector:server:checkSides', "admin") end) -- ====== EVENTS AND FUNCTIONS RegisterNetEvent('0r-spawnselector:client:openScreen', function (status) DoScreenFadeIn(1000) if status == "normal" then FreezeEntityPosition(PlayerPedId(), true) end Wait(1250) cam = CreateCamWithParams("DEFAULT_SCRIPTED_CAMERA", Config.DefaultCamera.x, Config.DefaultCamera.y, Config.DefaultCamera.z, 0.00, 0.00, 0.00, 100.00, false, 0) SetCamActive(cam, true) SetCamFov(cam, 100) RenderScriptCams(true, false, 1, true, true) Wait(500) TriggerServerEvent('0r-spawnselector:server:checkSides', status) end) RegisterNetEvent('0r-spawnselector:client:checkSides', function(data, status) -- Server'dan gelen veriyi javascript'e yönlendirip kısımları dolduracak if cam ~= nil then SetCamParams(cam, Config.DefaultCamera2.x, Config.DefaultCamera2.y, Config.DefaultCamera2.z, 0.00, 0.00, 0.00, 50.0, 3000, 1, 3, 1) end if Config.Framework == "qb" then QBCore.Functions.GetPlayerData(function(PlayerData) pLastCoords = PlayerData.position end) end if pLastCoords ~= nil then pLastData = { areaName = Locales.LastCoordsHeader, areaLabel = Locales.LastCoordsLabel, areaCoords_x = pLastCoords.x, areaCoords_y = pLastCoords.y, areaCoords_z = pLastCoords.z + 1.5, areaCameraRotation = 0.0, areaCameraCoords_x = Config.DefaultCamera2.x, areaCameraCoords_y = Config.DefaultCamera2.y, areaCameraCoords_z = Config.DefaultCamera2.z, areaMarkerCoords_x = pLastCoords.x, areaMarkerCoords_y = pLastCoords.y, areaMarkerCoords_z = pLastCoords.z + 1.05, areaImage = Config.DefaultAreaImage } table.insert(data, pLastData) end SendNUIMessage({ action = "RESTORE_SCREEN", data = data, status = status, Lang = Locales, defaultAreaImage = Config.DefaultAreaImage, serverImage = Config.ServerLogo }) SetNuiFocus(true, true) end) RegisterNetEvent('0r-spawnselector:client:getCountPlayersNearby', function (count) SendNUIMessage({ action = "UPDATE_PLAYER_COUNT", count = count, }) end) RegisterNetEvent('0r-spawnselector:client:visibleObject', function (obj) SetEntityVisible(obj, false, false) end) RegisterNetEvent('0r-spawnselector:client:deleteObject', function (obj) DeleteEntity(obj) DeleteObject(obj) end) RegisterNetEvent('esx:playerLoaded', function(playerData, newCharacter, skin) DoScreenFadeIn(1000) if not newCharacter then pLastCoords = playerData.coords end TriggerEvent('0r-spawnselector:client:openScreen', "normal") end) GetCurrentEntityCoords = function (entity) local eID = NetworkGetEntityFromNetworkId(entity) local entityCoord = GetEntityCoords(eID) local min, max = GetModelDimensions(GetEntityModel(eID)) local height = (max.y + min.y) / 2 local onScreen, coordX, coordY = GetHudScreenPositionFromWorldPosition(entityCoord.x, entityCoord.y + height, entityCoord.z) return onScreen, coordX, coordY end -- ====== NUI CALLBAKCS RegisterNUICallback('closeScreen', function (data,cb) SetNuiFocus(false, false) if cam ~= nil then RenderScriptCams(false, false, 0, true, false) DestroyCam(cam, false) cam = nil end end) RegisterNUICallback('deleteCamera', function (data,cb) if cam ~= nil then RenderScriptCams(false, false, 0, true, false) DestroyCam(cam, false) cam = nil end end) RegisterNUICallback('spawnPlayer', function (data,cb) TriggerServerEvent('0r-spawnselector:server:deleteObject', obj) TriggerServerEvent('0r-spawnselector:server:deleteObject', oldObject) SetNuiFocus(false, false) SetEntityAlpha(PlayerPedId(), 255, false) SetEntityVisible(PlayerPedId(), true) FreezeEntityPosition(PlayerPedId(), false) SetEntityCoords(PlayerPedId(), tonumber(data.lastSelectedAreaCoords_x), tonumber(data.lastSelectedAreaCoords_y), tonumber(data.lastSelectedAreaCoords_z)) RenderScriptCams(false, false, 0, true, false) DestroyCam(cam, false) cam = nil started = false firstOpacityInfo = false if Config.Framework == "qb" then TriggerServerEvent('QBCore:Server:OnPlayerLoaded') TriggerEvent('QBCore:Client:OnPlayerLoaded') TriggerEvent('qb-ambulancejob:check-death') end if Config.Framework == "esx" then -- unkown end FreezeEntityPosition(PlayerPedId(), false) end) RegisterNUICallback('setCamera', function (data,cb) TriggerServerEvent('0r-spawnselector:server:getCountPlayersNearby', data.areaMarkerCoords_x, data.areaMarkerCoords_y, data.areaMarkerCoords_z, 800.0) markerColorR, markerColorG, markerColorB = tonumber(data.markerColorR), tonumber(data.markerColorG), tonumber(data.markerColorB) markerCoords_x, markerCoords_y, markerCoords_z = tonumber(data.areaMarkerCoords_x), tonumber(data.areaMarkerCoords_y), tonumber(data.areaMarkerCoords_z) local modelHash = `prop_tool_box_06` SetEntityCoords(PlayerPedId(), tonumber(data.areaCameraCoords_x)+300, tonumber(data.areaCameraCoords_y), tonumber(data.areaCameraCoords_z)) SetCamParams(cam, tonumber(data.areaCameraCoords_x), tonumber(data.areaCameraCoords_y), tonumber(data.areaCameraCoords_z), 0.00, 0.00, 0.00, 100.0, 3000, 1, 3, 1) SetCamRot(cam, 0.0, 0.0, tonumber(data.areaCameraRotation)) FreezeEntityPosition(PlayerPedId(), true) SetEntityAlpha(PlayerPedId(), 0, false) if not HasModelLoaded(modelHash) then RequestModel(modelHash) while not HasModelLoaded(modelHash) do Citizen.Wait(1) end end obj = CreateObject(modelHash, vector3(tonumber(data.areaMarkerCoords_x), tonumber(data.areaMarkerCoords_y), tonumber(data.areaMarkerCoords_z)), true, false, false) TriggerServerEvent('0r-spawnselector:server:visibleObject', obj) SetModelAsNoLongerNeeded(obj) SetEntityAsMissionEntity(obj) SetEntityAlpha(obj, 0, false) SetEntityVisible(obj, false, 0) NetworkSetEntityInvisibleToNetwork(obj, true) FreezeEntityPosition(obj, true) if oldObject ~= nil then TriggerServerEvent('0r-spawnselector:server:deleteObject', oldObject) oldObject = nil started = false end if oldObject ~= obj then oldObject = obj end started = true if firstOpacityInfo ~= true then firstOpacityInfo = true SendNUIMessage({ action = "SHOW_OPACITY_INFO", }) end end) -- ADMIN SIDE RegisterNUICallback('createNewSide', function (data,cb) TriggerServerEvent('0r-spawnselector:server:createSpawnPoint', data) end) RegisterNUICallback('deleteElement', function (data,cb) TriggerServerEvent('0r-spawnselector:server:deleteSpawnPoint', data.boxUnqID) end) RegisterNUICallback('getPlayerCoords', function (data,cb) local player = PlayerPedId() local pCoords = GetEntityCoords(player) resultCoords = {x = pCoords.x , y = pCoords.y, z = pCoords.z} cb(json.encode(resultCoords)) end) RegisterNUICallback('changeOfBoxSettings', function (data,cb) -- boxUnqID, areaOfName, areaOfLabel, areaOfImage, areaOfCoords, areaOfCameraCoords, areaOfCameraRotation, areaOfMarkerCoords,areaOfMarkerColor TriggerServerEvent('0r-spawnselector:server:changeBoxSettings', data.boxUnqID, data.areaOfName, data.areaOfLabel, data.areaOfImage, data.areaOfCoords, data.areaOfCameraCoords, data.areaOfCameraRotation, data.areaOfMarkerCoords, data.areaOfMarkerColor) end) RegisterNUICallback('setCameraRotation', function (data,cb) -- data.areaOfCameraCoords, data.areaOfCameraRotation if cam ~= nil then RenderScriptCams(false, false, 0, true, false) DestroyCam(cam, false) cam = nil end local cameraCoords = data.areaOfCameraCoords cam = CreateCamWithParams("DEFAULT_SCRIPTED_CAMERA", tonumber(cameraCoords.x), tonumber(cameraCoords.y), tonumber(cameraCoords.z), 0.00, 0.00, 0.00, 100.00, false, 0) SetCamActive(cam, true) -- SetCamFov(cam, 100.0) RenderScriptCams(true, false, 1, true, true) SetCamRot(cam, 0.0, 0.0, tonumber(data.areaOfCameraRotation) + 0.0) -- TriggerServerEvent('0r-spawnselector:server:changeBoxSettings', data.boxUnqID, data.areaOfName, data.areaOfLabel, data.areaOfImage, data.areaOfCoords, data.areaOfCameraCoords, data.areaOfCameraRotation, data.areaOfMarkerCoords, data.areaOfMarkerColor) end)