if Config.Framework == "qb" then QBCore = exports['qb-core']:GetCoreObject() elseif Config.Framework == "oldqb" then QBCore = nil TriggerEvent('QBCore:GetObject', function(obj) QBCore = obj end) elseif Config.Framework == "esx" then ESX = exports["es_extended"]:getSharedObject() elseif Config.Framework == "oldesx" then ESX = nil TriggerEvent('esx:getSharedObject', function(obj) object = obj end) end RegisterCommand('createtable', function () TriggerEvent('0r-spawnselector:server:createFirstData') end) -- ADMIN CONTROL -- Database oluşturmasını burada yapacak, otomatik paleto vs, tarzı yerleri kendisi ekleyecek RegisterNetEvent('0r-spawnselector:server:createFirstData', function() --* Paleto hastane missionrow tarzı yerleri otomatik olarak ekleyecek ExecuteSql('CREATE TABLE `devix_spawnarea` (`id` INT(11) NOT NULL AUTO_INCREMENT, `areaName` TEXT NOT NULL COLLATE utf8mb4_general_ci,`areaLabel` TEXT NOT NULL COLLATE utf8mb4_general_ci,`areaImage` TEXT NOT NULL COLLATE utf8mb4_general_ci,`areaCoords_x` TEXT NOT NULL COLLATE utf8mb4_general_ci,`areaCoords_y` TEXT NOT NULL COLLATE utf8mb4_general_ci,`areaCoords_z` TEXT NOT NULL COLLATE utf8mb4_general_ci,`areaCameraCoords_x` TEXT NOT NULL COLLATE utf8mb4_general_ci,`areaCameraCoords_y` TEXT NOT NULL COLLATE utf8mb4_general_ci,`areaCameraCoords_z` TEXT NOT NULL COLLATE utf8mb4_general_ci,`areaCameraRotation` TEXT NOT NULL COLLATE utf8mb4_general_ci,`areaMarkerCoords_x` TEXT NULL DEFAULT NULL COLLATE utf8mb4_general_ci,`areaMarkerCoords_y` TEXT NULL DEFAULT NULL COLLATE utf8mb4_general_ci,`areaMarkerCoords_z` TEXT NULL DEFAULT NULL COLLATE utf8mb4_general_ci,`markerColorR` TEXT NULL DEFAULT NULL COLLATE utf8mb4_general_ci,`markerColorG` TEXT NULL DEFAULT NULL COLLATE utf8mb4_general_ci,`markerColorB` TEXT NULL DEFAULT NULL COLLATE utf8mb4_general_ci,PRIMARY KEY (`id`) USING BTREE)') print('^4DEBUG:Created a table [ ^1 devix_spawnarea ^4]') print('^4DEBUG:Table is ready [ ^1 devix_spawnarea ^4]') ExecuteSql("INSERT INTO `devix_spawnarea` (`areaName`, `areaLabel`, `areaImage` , `areaCoords_x`, `areaCoords_y`, `areaCoords_z` , `areaCameraCoords_x`, `areaCameraCoords_y`, `areaCameraCoords_z`, `areaCameraRotation`, `areaMarkerCoords_x`, `areaMarkerCoords_y`, `areaMarkerCoords_z` , `markerColorR`, `markerColorG`, `markerColorB`) VALUES ('Default Spawn Point', 'Defualt Spawn Point Area, U can change this line', '"..Config.DefaultAreaImage.."', '-255.14028930664063', '-983.9404907226563', '31.2203254699707', '0.0', '0.0', '0.0', '0.0','-255.14028930664063', '-983.9404907226563', '31.2203254699707', '255', '255', '255')") print('^4DEBUG:Table inserting data [ ^1 devix_spawnarea ^4]') end) RegisterNetEvent('0r-spawnselector:server:inserttest', function() -- * Yeni data eklemek isterlerse buradan yararlanacaklar ExecuteSql("INSERT INTO `devix_spawnarea` (`areaName`, `areaLabel`, `areaIcon`, `areaImage`, `areaCoords_x`, `areaCoords_y`, `areaCoords_z`, `areaCameraCoords_x`, `areaCameraCoords_y`, `areaCameraCoords_z`, `areaCameraRotation`, `areaCreator`) VALUES ('Mission Row', 'label test', 'fas fa-home-alt', '', '0', '0', '0', '0', '0', '0', '0', 'ZhoNNz')") end) RegisterNetEvent('0r-spawnselector:server:createNewOne', function(data) -- * Yeni data eklemek isterlerse buradan yararlanacaklar -- ? client'ten gelen dataları oluşturup yolluyacak ExecuteSql("INSERT INTO `devix_spawnarea` (`areaName`, `areaLabel`, `areaIcon`, `areaImage`, `areaCoords_x`, `areaCoords_y`, `areaCoords_z`, `areaCameraCoords_x`, `areaCameraCoords_y`, `areaCameraCoords_z`, `areaCameraRotation`, `areaCreator`) VALUES ('"..data.areaname.."', '"..data.arealabel.."', 'fas fa-home-alt', '', '"..data.areacoords_x.."', '"..data.areacoords_y.."', '"..data.areacoords_z.."', '"..data.areacoords_x.."', '"..data.areacoords_y.."', '"..data.areacoords_z.."', '0', 'ZhoNNz')") end) RegisterNetEvent('0r-spawnselector:server:deleteSpawnPoint', function (boxID) ExecuteSql("DELETE FROM devix_spawnarea WHERE id = '"..boxID.."'") end) RegisterNetEvent('0r-spawnselector:server:createSpawnPoint', function (data) areaCoords = data.areaCoords areaCameraCoords = data.areaCameraCoords areaCameraRotation = data.areaCameraRotation + 0.0 areaMarkerCoords = data.areaMarkerCoords areaMarkerColor = data.areaMarkerColor ExecuteSql("INSERT INTO `devix_spawnarea` (`areaName`, `areaLabel`, `areaImage` , `areaCoords_x`, `areaCoords_y`, `areaCoords_z` , `areaCameraCoords_x`, `areaCameraCoords_y`, `areaCameraCoords_z`, `areaCameraRotation`, `areaMarkerCoords_x`, `areaMarkerCoords_y`, `areaMarkerCoords_z` , `markerColorR`, `markerColorG`, `markerColorB`) VALUES ('"..data.areaName.."', '"..data.areaLabel.."', '"..data.areaImage.."', '"..areaCoords.x.."', '"..areaCoords.y.."', '"..areaCoords.z.."', '"..areaCameraCoords.x.."', '"..areaCameraCoords.y.."', '"..areaCameraCoords.z.."', '"..areaCameraRotation.."','"..areaMarkerCoords.x.."', '"..areaMarkerCoords.y.."', '"..areaMarkerCoords.z.."', '"..areaMarkerColor.r.."', '"..areaMarkerColor.g.."', '"..areaMarkerColor.b.."')") end) -- Oyuncunun son konumu RegisterNetEvent('0r-spawnselector:server:checkSides', function(status) --* Database'yi kontrol edip tekrardan pushluyacak local src = source local areas = ExecuteSql("SELECT * FROM `devix_spawnarea`") if status == "normal" then TriggerClientEvent('0r-spawnselector:client:checkSides', src, areas, status) elseif status == "admin" then local ply = DEVIX.GetPlayer(src) for k, v in pairs(Config.AdminList) do if v == DEVIX.GetPlayerIdentifier(ply) then TriggerClientEvent('0r-spawnselector:client:checkSides', src, areas, status) break end end end end) RegisterNetEvent('0r-spawnselector:server:getCountPlayersNearby', function (x,y,z, distance) nearbyPlayers = CountPlayersNearby(x,y,z,distance) TriggerClientEvent('0r-spawnselector:client:getCountPlayersNearby', source, nearbyPlayers) end) RegisterNetEvent('0r-spawnselector:server:changeBoxSettings', function (boxUnqID, areaOfName, areaOfLabel, areaOfImage, areaOfCoords, areaOfCameraCoords, areaOfCameraRotation, areaOfMarkerCoords,areaOfMarkerColor) local areas = ExecuteSql("SELECT * FROM `devix_spawnarea` WHERE id = '"..boxUnqID.."'") local markerColor = areaOfMarkerColor local areaCoords = areaOfCoords local areaCameraCoords = areaOfCameraCoords local areaMarkerCoords = areaOfMarkerCoords ExecuteSql("UPDATE `devix_spawnarea` SET `areaName` = '"..areaOfName.."', `areaLabel` = '"..areaOfLabel.."', `areaImage` = '"..areaOfImage.."' , `areaCoords_x` = '"..areaCoords.x.."' , `areaCoords_y` = '"..areaCoords.y.."', `areaCoords_z` = '"..areaCoords.z.."' , `areaCameraCoords_x` = '"..areaCameraCoords.x.."' , `areaCameraCoords_y` = '"..areaCameraCoords.y.."', `areaCameraCoords_z` = '"..areaCameraCoords.z.."', `areaCameraRotation` = '"..areaOfCameraRotation.."', `areaMarkerCoords_x` = '"..areaMarkerCoords.x.."', `areaMarkerCoords_y` = '"..areaMarkerCoords.y.."', `areaMarkerCoords_z` = '"..areaMarkerCoords.z.."' , `markerColorR` = '"..markerColor.r.."', `markerColorG` = '"..markerColor.g.."', `markerColorB` = '"..markerColor.b.."' WHERE id = '"..boxUnqID.."'") end) RegisterNetEvent('0r-spawnselector:server:deleteObject', function(objname) TriggerClientEvent('0r-spawnselector:client:deleteObject', -1, objname) end) RegisterNetEvent('0r-spawnselector:server:visibleObject', function(obj) TriggerClientEvent('0r-spawnselector:client:visibleObject', -1, obj) end) function CountPlayersNearby(x, y, z, distance) local playerCount = 0 local players = GetPlayers() for _, player in ipairs(players) do local ped = GetPlayerPed(player) local playerCoords = GetEntityCoords(ped, false) local playerDistance = DistanceBetweenCoords(vector3(playerCoords.x, playerCoords.y, playerCoords.z), vector3(tonumber(x), tonumber(y), tonumber(z)), true) if playerDistance <= distance then playerCount = playerCount + 1 end end return playerCount end DistanceBetweenCoords = function(coordsA, coordsB, useZ) -- language faster equivalent: local firstVec = vector3(coordsA.x, coordsA.y, coordsA.z) local secondVec = vector3(coordsB.x, coordsB.y, coordsB.z) if useZ then return #(firstVec - secondVec) else return #(firstVec.xy - secondVec.xy) end end