From df8115ea8ccfb4620287c948c4e2e7d993225071 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Thu, 12 May 2022 01:52:44 +1000 Subject: [PATCH] feat(player/client): player class and methods Provide a couple of helper methods (more to come). --- imports/player/client.lua | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 imports/player/client.lua diff --git a/imports/player/client.lua b/imports/player/client.lua new file mode 100644 index 0000000..ad79841 --- /dev/null +++ b/imports/player/client.lua @@ -0,0 +1,42 @@ +local CPlayer = {} +CPlayer.__index = CPlayer + +function CPlayer:getCoords() + if not self.coords then + self.coords = GetEntityCoords(self.ped) + end + + return self.coords +end + +function CPlayer:getDistance(coords) + return #(self:getCoords() - coords) +end + +function lib.addPlayerMethod(name, fn) + CPlayer[name] = fn +end + +function lib.getPlayer(id, ped, serverId) + return setmetatable({ + id = id or cache.playerId, + ped = ped or cache.ped, + serverId = serverId or cache.serverId, + }, CPlayer) +end + +function lib.getPlayerFromServerId(serverId) + local playerId = GetPlayerFromServerId(serverId) + + if playerId then + return lib.getPlayer(playerId, playerId == cache.playerId and cache.ped or NetworkGetEntityFromNetworkId(serverId), serverId) + end +end + +function lib.getPlayerFromPed(ped) + local playerId = NetworkGetPlayerIndexFromPed(ped) + + if playerId then + return lib.getPlayer(playerId, ped, playerId == cache.playerId and cache.serverId or GetPlayerServerId(playerId)) + end +end