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
	
	 Nordi98
						Nordi98