mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
Upload
This commit is contained in:
129
gamemodes/darkrp/plugins/combinesuits/meta/sh_player.lua
Normal file
129
gamemodes/darkrp/plugins/combinesuits/meta/sh_player.lua
Normal file
@@ -0,0 +1,129 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
local FindMetaTable = FindMetaTable
|
||||
local string = string
|
||||
local ipairs = ipairs
|
||||
local ix = ix
|
||||
local PLUGIN = PLUGIN
|
||||
local Schema = Schema
|
||||
local pairs = pairs
|
||||
local playerMeta = FindMetaTable("Player")
|
||||
|
||||
function playerMeta:HasActiveCombineSuit()
|
||||
return self:GetActiveCombineSuit() != false
|
||||
end
|
||||
|
||||
function playerMeta:GetActiveCombineSuit()
|
||||
local character = self:GetCharacter()
|
||||
if (!character) then return false end
|
||||
|
||||
local item = ix.item.instances[character:GetCombineSuit()]
|
||||
if (item) then
|
||||
return item:GetData("suitActive") and item
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function playerMeta:HasActiveCombineMask()
|
||||
if (!self:HasActiveCombineSuit()) then return false end
|
||||
|
||||
local items = self:GetCharacter():GetInventory():GetItemsByBase("base_maskcp", true)
|
||||
for _, v in pairs(items) do
|
||||
if (v.isCombineMask and v:GetData("equip")) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function playerMeta:HasActiveTracker()
|
||||
local character = self:GetCharacter()
|
||||
if (!character) then return false end
|
||||
|
||||
local item = ix.item.instances[character:GetCombineSuit()]
|
||||
if (item) then
|
||||
if (item:GetData("trackingActive")) then return true end
|
||||
end
|
||||
end
|
||||
|
||||
function playerMeta:GetCombineTag()
|
||||
local name = self:IsDispatch() and self:Name()
|
||||
local suit = self:GetActiveCombineSuit()
|
||||
if (suit) then
|
||||
name = suit:GetData("ownerName")
|
||||
end
|
||||
|
||||
if (!name) then return self:Name() end
|
||||
if (string.find(name, "%a+%-%d+$")) then
|
||||
return string.match(name, "%a+%-%d+$")
|
||||
else
|
||||
return name
|
||||
end
|
||||
end
|
||||
|
||||
function playerMeta:GetCombineRank()
|
||||
local name = self:IsDispatch() and self:Name()
|
||||
local suit = self:GetActiveCombineSuit()
|
||||
if (suit) then
|
||||
name = suit:GetData("ownerName")
|
||||
end
|
||||
|
||||
if (!name) then return -1 end
|
||||
for k, v in ipairs(PLUGIN.ranks) do
|
||||
if (v and Schema:IsCombineRank(name, v)) then
|
||||
return k
|
||||
end
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
function playerMeta:IsCombineRankAbove(rank)
|
||||
for k, v in ipairs(PLUGIN.ranks) do
|
||||
if (v == rank) then
|
||||
return self:GetCombineRank() >= k
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function playerMeta:IsCombine()
|
||||
local faction = ix.faction.Get(self:Team())
|
||||
if (faction and faction.isCombineFaction) then
|
||||
return true
|
||||
else
|
||||
local suit = self:GetActiveCombineSuit()
|
||||
if (suit and (suit:GetData("ownerID") == self:GetCharacter():GetID() or !suit:GetData("trackingActive"))) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function playerMeta:IsCP()
|
||||
local faction = self:Team()
|
||||
return faction == FACTION_CP
|
||||
end
|
||||
|
||||
function playerMeta:IsOTA()
|
||||
local faction = self:Team()
|
||||
return faction == FACTION_OTA
|
||||
end
|
||||
|
||||
function playerMeta:IsDispatch()
|
||||
return self:Team() == FACTION_OVERWATCH
|
||||
end
|
||||
|
||||
function playerMeta:IsOverwatch()
|
||||
return self:Team() == FACTION_OVERWATCH and !Schema:IsCombineRank(self:Name(), "SCN") and !Schema:IsCombineRank(self:Name(), "SHIELD") and !Schema:IsCombineRank(self:Name(), "Disp:AI")
|
||||
end
|
||||
|
||||
function playerMeta:IsCombineScanner()
|
||||
return self:Team() == FACTION_OVERWATCH and (Schema:IsCombineRank(self:Name(), "SCN") or Schema:IsCombineRank(self:Name(), "SHIELD") or Schema:IsCombineRank(self:Name(), "Disp:AI"))
|
||||
end
|
||||
Reference in New Issue
Block a user