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 |