--// CALL GB.\\-- GB.Functions = GB.Functions or {} GB.RequestID = GB.RequestID or {} GB.ServerCallback = GB.ServerCallback or {} GB.ServerCallbacks = {} GB.CurrentRequestId = 0 GB.Functions.GetKey = function(key) local Keys = { ["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F4"] = 166, ["F5"] = 167, ["F6"] = 168, ["F7"] = 169, ["F8"] = 56, ["F9"] = 57, ["F10"] = 165, ["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 159, ["4"] = 160, ["5"] = 164, ["6"] = 161, ["7"] = 162, ["8"] = 163, ["9"] = 84, ["0"] = 83, ["-"] = 245, ["="] = 246, ["BACKSPACE"] = 177, ["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["I"] = 199, ["O"] = 39, ["P"] = 40, ["["] = 39, ["]"] = 40, ["ENTER"] = 18, ["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["J"] = 311, ["K"] = 311, ["L"] = 182, ["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81, ["RIGHTSHIFT"] = 21, ["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70, ["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178, ["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173, ["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118, ["N+"] = 96, ["N-"] = 97 } return Keys[key] end GB.Functions.GetPlayerData() = function(source) -- get all data from the database for the player return GB.GetPlayerData end --// ADMIN [BASIC] \\-- GB.Functions.DeleteVehicle = function(vehicle) SetEntityAsMissionEntity(vehicle, false, true) DeleteVehicle(vehicle) end GB.Functions.GetVehicleDirection = function() local src = PlayerPedId() local srcCoords = GetEntityCoords(src) local inDirection = GetOffsetFromEntityInWorldCoords(src, 0, 10, 0) local rayHandle = StartShapeTestRay(srcCoords, inDirection, 10, src, 0) local numRayHandle, hit, endCoords, surfaceNormal, entityHit = GetShapeTestResult(rayHandle) if hit == 1 and GetEntityType(entityHit) == 2 then return entityHit end return nil end GB.Functions.DeleteObject = function(obj) SetEntityAsMissionEntity(obj, false, true) DeleteObject(obj) end GB.Functions.GetClosestPlayer = function(coords) local players = GB.Functions.GetPlayers() local closestDistance = -1 local closestPlayer = -1 local coords = coords local usePlayerPed = false local src = PlayerPedId() local srcID = PlayerId() if coords == nil then usePlayerPed = true coords = GetEntityCoords(src) end for i = 1, #players, 1 do local target = GetPlayerPed(players[i]) if not usePlayerPed() or (usePlayerPed and players[i] ~= PlayerId) then local targetCoords = GetEntityCoords(target) local distance = GetDistanceBetweenCoords(targetCoords, coords.x, coords.y, coords.z, true) if closestDistance == -1 or closestDistance > distance then closestPlayer = players[i] closestDistance = distance end end end return closestPlayer, closestDistance end --// CALLBACKS \\-- GB.Functions.TriggerServerCallback = function(name, cb, ...) GB.ServerCallbacks[GB.CurrentRequestId] = cb TriggerServerEvent('gb-core:server:triggerServerCallback', name, GB.CurrentRequestId, ...) if GB.CurrentRequestId < 65535 then GB.CurrentRequestId = GB.CurrentRequestId + 1 else GB.CurrentRequestId = 0 end end GB.Functions.GetPlayers = function() local MaxPlayer = 120 local players = {} for i = 0, MaxPlayer, 1 do local src = GetPlayerPed(i) if DoesEntityExist(src) then table.insert(players, i) end end return players end RegisterNetEvent('gb-core:client:serverCallback') AddEventHandler('gb-core:client:serverCallback', function(requestId, ...) GB.ServerCallbacks[requestId](...) GB.ServerCallbacks[requestId] = nil end) --// OTHER \\-- RegisterNetEvent('gb-setCharacterData') AddEventHandler('gb-setCharacterData', function(Player) pData = Player end)