1
0
Fork 0
forked from Simnation/Main
Main/resources/[voice]/saltychat/client/models/PlayerPed.lua

78 lines
2.1 KiB
Lua
Raw Normal View History

2025-06-07 08:51:21 +02:00
---@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