78 lines
		
	
	
		
			No EOL
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			No EOL
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| ---@class PlayerPed
 | |
| ---@field Handle integer
 | |
| ---@field Position vector3
 | |
| ---@field CurrentVehicle Vehicle
 | |
| ---@field IsInPoliceVehicle boolean
 | |
| ---@field IsSwimmingUnderWater boolean
 | |
| ---@field IsSwimming boolean
 | |
| ---@field IsVisible boolean
 | |
| ---@field PlayAnimation fun(animDic: string, anim: string, blendInSpeed: number, blendOutSpeed: number, duration: integer, flag: integer)
 | |
| ---@field ClearTasks fun()
 | |
| ---@field StopAnim fun(animDic: string, anim: string, exitSpeed: number)
 | |
| PlayerPed = {}
 | |
| PlayerPed.__index = PlayerPed
 | |
| 
 | |
| function PlayerPed.new(playerIndex)
 | |
|   local self = setmetatable({}, PlayerPed)
 | |
|   local metatable = {
 | |
|       __index = function(list, key)
 | |
|         if list.ped[key] and type(list.ped[key]) == "function" then
 | |
|             return list.ped[key]()
 | |
|         else
 | |
|             return nil
 | |
|         end
 | |
|       end
 | |
|   }
 | |
|   setmetatable(self, metatable)
 | |
|  
 | |
|   self.ped = {}
 | |
|   self.ped.Handle = function ()
 | |
|     return GetPlayerPed(playerIndex)
 | |
|   end
 | |
| 
 | |
|   self.ped.Position = function ()
 | |
|     local x, y, z = table.unpack(GetEntityCoords(self.Handle))
 | |
|     return TSVector.new(x, y, z)
 | |
|   end
 | |
| 
 | |
|   self.ped.CurrentVehicle = function ()
 | |
|     local vehicleHandle = GetVehiclePedIsIn(self.Handle, false)
 | |
|     local vehicle = Vehicle.new(vehicleHandle)
 | |
|     return (vehicleHandle ~= 0 and vehicle) or nil
 | |
|   end
 | |
| 
 | |
|   self.ped.IsInPoliceVehicle = function ()
 | |
|     return IsPedInAnyPoliceVehicle(self.Handle)
 | |
|   end
 | |
| 
 | |
|   self.ped.IsSwimmingUnderWater = function ()
 | |
|     return IsPedSwimmingUnderWater(self.Handle)
 | |
|   end
 | |
| 
 | |
|   self.ped.IsSwimming = function ()
 | |
|     return IsPedSwimming(self.Handle)
 | |
|   end
 | |
| 
 | |
|   self.ped.IsVisible = function ()
 | |
|     return IsEntityVisible(self.Handle)
 | |
|   end
 | |
| 
 | |
|   self.PlayAnimation = function (animDic, anim, blendInSpeed, blendOutSpeed, duration, flag)
 | |
|     while (not HasAnimDictLoaded(animDic)) do
 | |
|       RequestAnimDict(animDic)
 | |
|       Wait(5)
 | |
|     end
 | |
| 
 | |
|     TaskPlayAnim(self.Handle, animDic, anim, blendInSpeed, blendOutSpeed, duration, flag, 0, false, false, false)
 | |
|   end
 | |
| 
 | |
|   self.ClearTasks = function ()
 | |
|     ClearPedTasks(self.Handle)
 | |
|   end
 | |
| 
 | |
|   self.StopAnim = function(animDic, anim, exitSpeed) 
 | |
|     StopAnimTask(self.Handle, animDic, anim, exitSpeed)
 | |
|   end
 | |
| 
 | |
|   return self
 | |
| end | 
