forked from Simnation/Main
78 lines
2.1 KiB
Lua
78 lines
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
|