ed
This commit is contained in:
		
							parent
							
								
									510e3ffcf2
								
							
						
					
					
						commit
						f43cf424cf
					
				
					 305 changed files with 34683 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
ClientStateBag = {}
 | 
			
		||||
 | 
			
		||||
---Gets an entity from a statebag name
 | 
			
		||||
---@param entityId string The entity ID or statebag name
 | 
			
		||||
---@return number|nil entity The entity handle or nil if not found
 | 
			
		||||
local function getStateBagEntity(entityId)
 | 
			
		||||
    local _entity = GetEntityFromStateBagName(entityId)
 | 
			
		||||
    return _entity
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function getPlayerFromStateBagName(stateBagName)
 | 
			
		||||
    return getPlayerFromStateBagName(stateBagName)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
---Adds a handler for entity statebag changes
 | 
			
		||||
---@param keyName string The statebag key to watch for changes
 | 
			
		||||
---@param entityId string|nil The specific entity ID to watch, or nil for all entities
 | 
			
		||||
---@param callback function The callback function to handle changes (function(entityId, key, value, lastValue, replicated))
 | 
			
		||||
---@return number handler The handler ID
 | 
			
		||||
function ClientStateBag.AddEntityChangeHandler(keyName, entityId, callback)
 | 
			
		||||
    return AddStateBagChangeHandler(keyName, entityId or nil, function(bagName, key, value, lastValue, replicated)
 | 
			
		||||
        local entity = getStateBagEntity(bagName)
 | 
			
		||||
        if not DoesEntityExist(entity) then return end
 | 
			
		||||
        if entity then
 | 
			
		||||
            return callback(entity, key, value, lastValue, replicated)
 | 
			
		||||
        end
 | 
			
		||||
    end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
---Adds a handler for player statebag changes
 | 
			
		||||
---@param keyName string The statebag key to watch for changes
 | 
			
		||||
---@param filter boolean|nil If true, only watch for changes from the current player
 | 
			
		||||
---@param callback function The callback function to handle changes (function(playerId, key, value, lastValue, replicated))
 | 
			
		||||
---@return number handler The handler ID
 | 
			
		||||
function ClientStateBag.AddPlayerChangeHandler(keyName, filter, callback)
 | 
			
		||||
    return AddStateBagChangeHandler(keyName, filter and ("player:%s"):format(GetPlayerServerId(PlayerId())) or nil,
 | 
			
		||||
        function(bagName, key, value, lastValue, replicated)
 | 
			
		||||
            local actualPlayerId = getPlayerFromStateBagName(bagName)
 | 
			
		||||
            if DoesEntityExist(actualPlayerId) and (actualPlayerId ~= PlayerPedId()) then -- you cant have a statebag value if you are not the player
 | 
			
		||||
                return false
 | 
			
		||||
            end
 | 
			
		||||
            if actualPlayerId and actualPlayerId ~= 0 then
 | 
			
		||||
                return callback(tonumber(actualPlayerId), key, value, lastValue, replicated)
 | 
			
		||||
            end
 | 
			
		||||
        end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
return ClientStateBag
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue