72 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| --[[
 | |
|     https://github.com/overextended/ox_lib
 | |
| 
 | |
|     This file is licensed under LGPL-3.0 or higher <https://www.gnu.org/licenses/lgpl-3.0.en.html>
 | |
| 
 | |
|     Copyright © 2025 Linden <https://github.com/thelindat>
 | |
| ]]
 | |
| 
 | |
| local cache = _ENV.cache
 | |
| cache.playerId = PlayerId()
 | |
| cache.serverId = GetPlayerServerId(cache.playerId)
 | |
| 
 | |
| function cache:set(key, value)
 | |
| 	if value ~= self[key] then
 | |
| 		TriggerEvent(('ox_lib:cache:%s'):format(key), value, self[key])
 | |
| 		self[key] = value
 | |
| 
 | |
| 		return true
 | |
| 	end
 | |
| end
 | |
| 
 | |
| local GetVehiclePedIsIn = GetVehiclePedIsIn
 | |
| local GetPedInVehicleSeat = GetPedInVehicleSeat
 | |
| local GetVehicleMaxNumberOfPassengers = GetVehicleMaxNumberOfPassengers
 | |
| local GetMount = GetMount
 | |
| local IsPedOnMount = IsPedOnMount
 | |
| local GetCurrentPedWeapon = GetCurrentPedWeapon
 | |
| 
 | |
| CreateThread(function()
 | |
| 	while true do
 | |
| 		local ped = PlayerPedId()
 | |
| 		cache:set('ped', ped)
 | |
| 
 | |
| 		local vehicle = GetVehiclePedIsIn(ped, false)
 | |
| 
 | |
| 		if vehicle > 0 then
 | |
| 			if vehicle ~= cache.vehicle then
 | |
| 				cache:set('seat', false)
 | |
| 			end
 | |
| 
 | |
| 			cache:set('vehicle', vehicle)
 | |
| 
 | |
| 			if not cache.seat or GetPedInVehicleSeat(vehicle, cache.seat) ~= ped then
 | |
| 				for i = -1, GetVehicleMaxNumberOfPassengers(vehicle) - 1 do
 | |
| 					if GetPedInVehicleSeat(vehicle, i) == ped then
 | |
| 						cache:set('seat', i)
 | |
| 						break
 | |
| 					end
 | |
| 				end
 | |
| 			end
 | |
| 		else
 | |
| 			cache:set('vehicle', false)
 | |
| 			cache:set('seat', false)
 | |
| 		end
 | |
| 
 | |
| 		if cache.game == 'redm' then
 | |
| 			local mount = GetMount(ped)
 | |
| 			local onMount = IsPedOnMount(ped)
 | |
| 			cache:set('mount', onMount and mount or false)
 | |
| 		end
 | |
| 
 | |
| 		local hasWeapon, currentWeapon = GetCurrentPedWeapon(ped, true)
 | |
| 
 | |
| 		cache:set('weapon', hasWeapon and currentWeapon or false)
 | |
| 
 | |
| 		Wait(100)
 | |
| 	end
 | |
| end)
 | |
| 
 | |
| function lib.cache(key)
 | |
| 	return cache[key]
 | |
| end
 | 
