This commit is contained in:
lifestorm
2024-08-04 23:54:45 +03:00
parent 8064ba84d8
commit 6a58f406b1
7522 changed files with 4011896 additions and 15 deletions

View File

@@ -0,0 +1,450 @@
--[[
| 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 surface = surface
local derma = derma
local string = string
local hook = hook
local math = math
local table = table
local ipairs = ipairs
local IsValid = IsValid
local ix = ix
local CAMI = CAMI
local Derma_StringRequest = Derma_StringRequest
local net = net
ITEM.base = "base_outfit"
ITEM.name = "Combine Suit Base"
ITEM.description = "A base for Combine Suit functionality"
ITEM.category = "Combine"
ITEM.maxArmor = 50
ITEM.repairItem = "tool_repair"
ITEM.isRadio = true
if (CLIENT) then
function ITEM:PaintOver(item, w, h)
if (item:GetData("equip")) then
surface.SetDrawColor(110, 255, 110, 100)
surface.DrawOutlinedRect(1, 1, w - 2, h - 2)
end
if (item:GetData("suitActive")) then
surface.SetDrawColor(110, 255, 110, 100)
surface.DrawRect(w - 14, h - 14, 8, 8)
end
end
function ITEM:PopulateTooltip(tooltip)
local panel = tooltip:AddRowAfter("name", "armor")
panel:SetBackgroundColor(derma.GetColor("Warning", tooltip))
panel:SetText("Zırh: " .. (self:GetData("equip") and LocalPlayer():Armor() or self:GetData("armor", self.maxArmor)))
panel:SizeToContents()
panel = tooltip:AddRowAfter("armor", "name")
panel:SetBackgroundColor(derma.GetColor("info", tooltip))
panel:SetText("İsim: " .. self:GetData("ownerName", "UNKNOWN"))
panel:SizeToContents()
end
end
function ITEM:GetChannels(bForce)
if ((bForce or self:GetData("suitActive") != false) and self.channels) then
return self.channels
else
return {}
end
end
function ITEM:CanEquipOutfit(client)
local player = self.player or client
local suit = player:GetCharacter():GetCombineSuit()
if (suit and ix.item.instances[suit] and ix.item.instances[suit] != self) then
return false
end
return true
end
function ITEM:OnGetReplacement(client)
local player = self.player or client
if (self.replacement) then
return self.replacement
elseif (self.replacementString) then
local model = "models/"..self.replacementString..string.match(player:GetModel(), "/%a+_?%d%d%.mdl$")
if (string.find(model, "/male%d%d")) then
model = string.gsub(model, "/male[01]", {["/male0"] = "/male_0", ["/male_1"] = "/male_1"}, 1)
end
return model
end
end
function ITEM:OnEquipped(client)
local character = client:GetCharacter()
client:SetArmor(self:GetData("armor", self.maxArmor))
character:SetCombineSuit(self:GetID())
if (!self:GetData("ownerID")) then
self:SetData("ownerID", character:GetID())
self:SetData("ownerName", client:Name())
elseif (self:GetData("ownerID") == character:GetID()) then
self:SetData("ownerName", client:Name())
if (self:GetData("trackingActive")) then
self:SetData("suitActive", true)
end
elseif (self:GetData("trackingActive")) then
ix.combineNotify:AddImportantNotification("WRN:// " .. self:GetData("ownerName") .. " uniform biosignal mismatch detected", nil, client, client:GetPos(), nil)
end
local hairBGIndex = client:FindBodygroupByName("hair")
local hairData = character:GetHair()
if hairBGIndex != -1 then
local groups = character:GetData("groups", {})
groups[hairBGIndex] = hairData.hair or 0
character:SetData("groups", groups)
client:SetBodygroup(hairBGIndex, hairData.hair or 0)
end
if client and IsValid(client) then
local replacements = self:OnGetReplacement(client) or self.replacement or client:GetModel()
local skin = self.newSkin or client:GetSkin()
local bodygroups = client:GetBodyGroups()
net.Start("ixRefreshBodygroupsInventoryModel")
net.WriteString(replacements)
net.WriteUInt(skin, 5)
net.WriteTable(bodygroups)
net.Send(client)
end
hook.Run("OnPlayerCombineSuitChange", client, true, self:GetData("suitActive"), self)
end
function ITEM:OnUnequipped(client)
self:SetData("armor", math.Clamp(client:Armor(), 0, self.maxArmor))
client:SetArmor(0)
client:GetCharacter():SetCombineSuit(0)
if client and IsValid(client) then
local replacements = client:GetModel()
local skin = client:GetSkin()
local bodygroups = client:GetBodyGroups()
net.Start("ixRefreshBodygroupsInventoryModel")
net.WriteString(replacements)
net.WriteUInt(skin, 5)
net.WriteTable(bodygroups)
net.Send(client)
local hairBGIndex = client:FindBodygroupByName("hair")
local character = client:GetCharacter()
local hairData = character:GetHair()
if hairBGIndex != -1 then
local groups = character:GetData("groups", {})
groups[hairBGIndex] = hairData.hair or 0
character:SetData("groups", groups)
client:SetBodygroup(hairBGIndex, hairData.hair or 0)
end
end
hook.Run("OnPlayerCombineSuitChange", client, false, false, self)
end
function ITEM:OnDoDeathDrop(client)
self:SetData("suitActive", false)
end
function ITEM:OnInstanced()
self:SetData("armor", self.maxArmor)
self:SetData("suitActive", true)
self:SetData("trackingActive", true)
self:SetData("ownerName", "UNKNOWN")
self.bodyGroups = table.Copy(ix.item.list[self.uniqueID].bodyGroups or {})
end
function ITEM:OnLoadout()
if (!self:CanEquipOutfit()) then
self:SetData("equip", false)
elseif (self:GetData("equip")) then
self.player:SetArmor(self:GetData("armor", self.maxArmor))
self.player:GetCharacter():SetCombineSuit(self:GetID())
hook.Run("OnPlayerCombineSuitChange", self.player, true, self:GetData("suitActive"), self, true)
end
self.bodyGroups = table.Copy(ix.item.list[self.uniqueID].bodyGroups or {})
self.bodyGroups.Pants = self:GetData("Pants")
end
function ITEM:OnSave()
if (self:GetData("equip") and self.maxArmor) then
local armor = math.Clamp(self.player:Armor(), 0, self.maxArmor)
self:SetData("armor", armor)
if (armor != self.player:Armor()) then
self.player:SetArmor(armor)
end
end
end
function ITEM:OnRemoved()
self:SetData("suitActive", false)
local owner = self:GetOwner()
if (owner) then
for _, v in ipairs(self:GetChannels(true)) do
ix.radio:RemoveListenerFromChannel(owner, v)
end
end
end
function ITEM:Repair(client, amount)
amount = amount or self.maxArmor
local repairItem = client:GetCharacter():GetInventory():HasItem(self.repairItem)
if (repairItem) then
if (repairItem.isTool) then
repairItem:DamageDurability(1)
else
repairItem:Remove()
end
self:SetData("armor", math.Clamp(self:GetData("armor") + amount, 0, self.maxArmor))
end
end
ITEM.functions.Repair = {
name = "Repair",
tip = "repairTip",
icon = "icon16/wrench.png",
OnRun = function(item)
local item = item
local player = item.player
player:Freeze(true)
player:SetAction("Repairing Armor...", 5, function()
if !IsValid(player) then return end
player:Freeze(false)
item:Repair(player)
end)
return false
end,
OnCanRun = function(item)
if (IsValid(item.entity) or !IsValid(item.player)) then return false end
if (item:GetData("equip") == true) then return false end
if (item.repairItem == nil) then return false end
if (item:GetData("armor") == item.maxArmor) then return false end
if timer.Exists("combattimer" .. item.player:SteamID64()) then
item.player:Notify("You cannot use this item while in combat.")
return false
end
return item.player:GetCharacter():GetInventory():HasItem(item.repairItem)
end
}
ITEM.functions.AdmActivate = {
name = "(ADM) Activate Suit",
icon = "icon16/connect.png",
OnRun = function(item)
item:SetData("suitActive", true)
ix.log.Add(item.player, "combineSuitsAdminActivate", item)
return false
end,
OnCanRun = function(item)
if (IsValid(item.entity)) then return false end
if (item:GetData("equip") == true) then return false end
if (item:GetData("suitActive") == true) then return false end
local client = item.player
if (client:GetMoveType() != MOVETYPE_NOCLIP or client:InVehicle()) then return false end
return CAMI.PlayerHasAccess(client, "Helix - Combine Suit Admin Control")
end
}
ITEM.functions.AdmActivateDe = {
name = "(ADM) Deactivate Suit",
icon = "icon16/disconnect.png",
OnRun = function(item)
item:SetData("suitActive", false)
ix.log.Add(item.player, "combineSuitsAdminActivate", item, true)
return false
end,
OnCanRun = function(item)
if (IsValid(item.entity)) then return false end
if (item:GetData("equip") == true) then return false end
if (item:GetData("suitActive") != true) then return false end
local client = item.player
if (client:GetMoveType() != MOVETYPE_NOCLIP or client:InVehicle()) then return false end
return CAMI.PlayerHasAccess(client, "Helix - Combine Suit Admin Control")
end
}
ITEM.functions.AdmTracker = {
name = "(ADM) Activate Tracker",
icon = "icon16/map_add.png",
OnRun = function(item)
item:SetData("trackingActive", true)
ix.log.Add(item.player, "combineSuitsAdminTracking", item)
return false
end,
OnCanRun = function(item)
if (IsValid(item.entity)) then return false end
if (item:GetData("equip") == true) then return false end
if (item:GetData("trackingActive") == true) then return false end
local client = item.player
if (client:GetMoveType() != MOVETYPE_NOCLIP or client:InVehicle()) then return false end
return CAMI.PlayerHasAccess(client, "Helix - Combine Suit Admin Control")
end
}
ITEM.functions.AdmTrackerDe = {
name = "(ADM) Deactivate Tracker",
icon = "icon16/map_delete.png",
OnRun = function(item)
item:SetData("trackingActive", false)
ix.log.Add(item.player, "combineSuitsAdminTracking", item, true)
return false
end,
OnCanRun = function(item)
if (IsValid(item.entity)) then return false end
if (item:GetData("equip") == true) then return false end
if (item:GetData("trackingActive") != true) then return false end
local client = item.player
if (client:GetMoveType() != MOVETYPE_NOCLIP or client:InVehicle()) then return false end
return CAMI.PlayerHasAccess(client, "Helix - Combine Suit Admin Control")
end
}
ITEM.functions.AdmOwnerDisable = {
name = "(ADM) Disable Owner",
icon = "icon16/user_delete.png",
OnRun = function(item)
item:SetData("ownerID", -1)
ix.log.Add(item.player, "combineSuitsAdminOwner", item)
if (item:GetData("trackingActive")) then
item.player:NotifyLocalized("suitDisableTracker")
end
return false
end,
OnCanRun = function(item)
if (IsValid(item.entity)) then return false end
if (item:GetData("ownerID") == -1) then return false end
local client = item.player
if (client:GetMoveType() != MOVETYPE_NOCLIP or client:InVehicle()) then return false end
return CAMI.PlayerHasAccess(client, "Helix - Combine Suit Admin Control")
end
}
ITEM.functions.AdmOwnerClear = {
name = "(ADM) Clear Owner",
icon = "icon16/user_edit.png",
OnRun = function(item)
item:SetData("ownerID")
ix.log.Add(item.player, "combineSuitsAdminOwnerClear", item)
return false
end,
OnCanRun = function(item)
if (IsValid(item.entity)) then return false end
if (item:GetData("ownerID") == nil) then return false end
local client = item.player
if (client:GetMoveType() != MOVETYPE_NOCLIP or client:InVehicle()) then return false end
return CAMI.PlayerHasAccess(client, "Helix - Combine Suit Admin Control")
end
}
ITEM.functions.AdmSetName = {
name = "(ADM) Set Name",
icon = "icon16/vcard_edit.png",
OnRun = function(item, data)
if (data[1] == "") then return end
item:SetData("ownerName", data[1])
ix.log.Add(item.player, "combineSuitsAdminName", item)
return false
end,
OnClick = function(item)
Derma_StringRequest("Set Name", "Set the name stored on this suit:", item:GetData("ownerName"), function(text)
if (text == "") then return end
net.Start("ixInventoryAction")
net.WriteString("AdmSetName")
net.WriteUInt(item.id, 32)
net.WriteUInt(item.invID, 32)
net.WriteTable({text})
net.SendToServer()
end)
return false
end,
OnCanRun = function(item)
if (IsValid(item.entity)) then return false end
if (item:GetData("equip") == true) then return false end
if (item:GetData("ownerID") == nil) then return false end
local client = item.player
if (client:GetMoveType() != MOVETYPE_NOCLIP or client:InVehicle()) then return false end
local inventory = ix.item.inventories[item.invID]
if (inventory and inventory.owner == item:GetData("ownerID")) then return false end
return CAMI.PlayerHasAccess(client, "Helix - Combine Suit Admin Control")
end
}
ITEM.functions.Pants = {
name = "Botları Değiştir",
tip = "repairTip",
icon = "icon16/user_suit.png",
OnRun = function(item)
local originalItem = ix.item.list[item.uniqueID]
local actual = originalItem.bodyGroups.Pants or 0
if (item.bodyGroups.Pants != actual) then
item.bodyGroups.Pants = actual
item:SetData("Pants", actual)
item.player:Notify("Normal botlar seçildi.")
else
item.bodyGroups.Pants = 1
item:SetData("Pants", 1)
item.player:Notify("Çatışma botları seçildi.")
end
return false
end,
OnCanRun = function(item)
local client = item.player
return item.isCP != nil and item:GetData("equip") == false and
!IsValid(item.entity) and IsValid(client)
end
}

View File

@@ -0,0 +1,43 @@
--[[
| 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/
--]]
ITEM.base = "base_bgclothes"
ITEM.isGasmask = true
ITEM.isCombineMask = true
ITEM.isMask = true
ITEM.hooks.Equip = function(item, data)
local character = item.player:GetCharacter()
if (character and character:GetCombineSuit() == 0) then
return false
end
end
ITEM.postHooks.Equip = function(item, client)
local player = item.player or client
hook.Run("OnPlayerCombineMaskChange", player, true, player:GetActiveCombineSuit())
end
ITEM.postHooks.EquipUn = function(item, client)
local player = item.player or client
hook.Run("OnPlayerCombineMaskChange", player, false, player:GetActiveCombineSuit())
end
function ITEM:OnLoadout()
if (self:GetData("equip")) then
local client = self.player
timer.Simple(1, function()
if (!IsValid(client)) then return end
hook.Run("OnPlayerCombineMaskChange",client, true, client:GetActiveCombineSuit())
end)
end
end

View File

@@ -0,0 +1,33 @@
--[[
| 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/
--]]
ITEM.name = "Lightweight Command Uniform (City 8)"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "A nicer set of the original Functionary uniform designed for those fitting of the rank 'Intention 2' and above."
ITEM.category = "Combine"
ITEM.replacementString = "wn7new/metropolice_c8"
ITEM.model = "models/wn7new/metropolice_c8/cpuniform.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isCP = true
ITEM.maxArmor = 75
ITEM.channels = {"cmb", "tac-3", "tac-4", "ccr-tac"}
ITEM.bodyGroups = {
["Pants"] = 0,
["cp_Body"] = 2
}
ITEM.replaceOnDeath = "broken_cpuniform"
ITEM.energyConsumptionRate = 0.002 -- fatigue_system

View File

@@ -0,0 +1,32 @@
--[[
| 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/
--]]
ITEM.name = "Lightweight Functionary Uniform (City 8)"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "A nice and clean uniform set designed for use by the Civil Protection. Containing a Level-2 Kevlar Vest, Insulated Olive Trousers, a Dual-Steel Utility Belt and Steel-Capped Military Boots."
ITEM.category = "Combine"
ITEM.replacementString = "wn7new/metropolice_c8"
ITEM.model = "models/wn7new/metropolice_c8/cpuniform.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isCP = true
ITEM.channels = {"cmb", "tac-3"}
ITEM.bodyGroups = {
["Pants"] = 0,
["cp_Body"] = 2
}
ITEM.replaceOnDeath = "broken_cpuniform"
ITEM.energyConsumptionRate = 0.002 -- fatigue_system

View File

@@ -0,0 +1,34 @@
--[[
| 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/
--]]
ITEM.name = "Protection Captain Uniform (City 8)"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Combine issued Civil Protection uniform made for Captains."
ITEM.category = "Combine"
ITEM.replacementString = "wn7new/metropolice_c8"
ITEM.model = "models/wn7new/metropolice_c8/cpuniform.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isCP = true
ITEM.maxArmor = 75
ITEM.channels = {"cmb", "tac-3", "tac-4", "tac-5", "mcp", "ccr-tac"}
ITEM.bodyGroups = {
["Pants"] = 0,
["Base"] = 1,
["cp_Body"] = 16
}
ITEM.replaceOnDeath = "broken_cpuniform"
ITEM.energyConsumptionRate = 0.003 -- fatigue_system

View File

@@ -0,0 +1,33 @@
--[[
| 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/
--]]
ITEM.name = "Riot Functionary Uniform (City 8)"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "A nice and clean uniform set designed for use by the Civil Protection. Containing a Level-3 Kevlar Vest, Insulated Olive Trousers, a Dual-Steel Utility Belt and Steel-Capped Military Boots."
ITEM.category = "Combine"
ITEM.replacementString = "wn7new/metropolice_c8"
ITEM.model = "models/wn7new/metropolice_c8/cpuniform.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isCP = true
ITEM.maxArmor = 75
ITEM.channels = {"cmb", "tac-3"}
ITEM.bodyGroups = {
["Pants"] = 0,
["cp_Body"] = 2
}
ITEM.replaceOnDeath = "broken_cpuniform"
ITEM.energyConsumptionRate = 0.003 -- fatigue_system

View File

@@ -0,0 +1,33 @@
--[[
| 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/
--]]
ITEM.name = "Rank Leader Uniform (City 8)"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Containing a modified version of the original Level-2 Kevlar vest comes a uniform designed for Rank Leaders and above. Better comfort and utility compared to the standardized design."
ITEM.category = "Combine"
ITEM.replacementString = "wn7new/metropolice_c8"
ITEM.model = "models/wn7new/metropolice_c8/cpuniform.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isCP = true
ITEM.maxArmor = 75
ITEM.channels = {"cmb", "tac-3", "tac-4", "tac-5", "ccr-tac"}
ITEM.bodyGroups = {
["Pants"] = 0,
["cp_Body"] = 16
}
ITEM.replaceOnDeath = "broken_cpuniform"
ITEM.energyConsumptionRate = 0.003 -- fatigue_system

View File

@@ -0,0 +1,25 @@
--[[
| 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/
--]]
ITEM.name = "OTA Wallhammer Üniforması"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Combine damgalı OTA Wallhammer üniforması."
ITEM.category = "Combine"
ITEM.replacement = "models/wn/wallhammer.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isOTA = true
ITEM.maxArmor = 125
ITEM.channels = {"ota-tac", "tac-3", "tac-4", "tac-5", "cmb", "cca", "mcp", "ccr-tac"}
ITEM.replaceOnDeath = "broken_otauniform"

View File

@@ -0,0 +1,33 @@
--[[
| 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/
--]]
ITEM.name = "Orta Komuta Üniforması"
ITEM.model = Model("models/wn7new/metropolice/cpuniform.mdl")
ITEM.description = "Orijinal Seviye-2 Kevlar yeleğinin değiştirilmiş bir versiyonunu içeren, Rütbe Liderleri ve üstü için tasarlanmış bir üniforma. Standart tasarıma kıyasla daha iyi konfor ve kullanışlılık sağlar."
ITEM.category = "Combine"
ITEM.replacementString = "wn7new/metropolice"
ITEM.model = "models/wn7new/metropolice/cpuniform.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isCP = true
ITEM.maxArmor = 75
ITEM.channels = {"cmb", "tac-3", "tac-4", "tac-5"}
ITEM.bodyGroups = {
["Pants"] = 0,
["cp_Body"] = 16
}
ITEM.replaceOnDeath = "broken_cpuniform"
ITEM.energyConsumptionRate = 0.003 -- fatigue_system

View File

@@ -0,0 +1,32 @@
--[[
| 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/
--]]
ITEM.name = "Hafif Görev Üniforması"
ITEM.model = Model("models/wn7new/metropolice/cpuniform.mdl")
ITEM.description = "Sivil Koruma tarafından kullanılmak üzere tasarlanmış güzel ve temiz bir üniforma seti. Seviye-2 Kevlar yelek, yalıtımlı yeşil pantolon, çift çelik yardımcı kemer ve çelik başlıklı askeri botlar içerir."
ITEM.category = "Combine"
ITEM.replacementString = "wn7new/metropolice"
ITEM.model = "models/wn7new/metropolice/cpuniform.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isCP = true
ITEM.channels = {"cmb", "tac-3"}
ITEM.bodyGroups = {
["Pants"] = 0,
["cp_Body"] = 2
}
ITEM.replaceOnDeath = "broken_cpuniform"
ITEM.energyConsumptionRate = 0.002 -- fatigue_system

View File

@@ -0,0 +1,32 @@
--[[
| 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/
--]]
ITEM.name = "Hafif Komuta Üniforması"
ITEM.model = Model("models/wn7new/metropolice/cpuniform.mdl")
ITEM.description = "'Rütbe 2' ve üzeri rütbeye uyanlar için tasarlanmış orijinal görev üniformasının daha güzel bir seti."
ITEM.category = "Combine"
ITEM.replacementString = "wn7new/metropolice"
ITEM.model = "models/wn7new/metropolice/cpuniform.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isCP = true
ITEM.channels = {"cmb", "tac-3", "tac-4", "ccr-tac"}
ITEM.bodyGroups = {
["Pants"] = 0,
["cp_Body"] = 2
}
ITEM.replaceOnDeath = "broken_cpuniform"
ITEM.energyConsumptionRate = 0.002 -- fatigue_system

View File

@@ -0,0 +1,33 @@
--[[
| 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/
--]]
ITEM.name = "Riot Functionary Uniform"
ITEM.model = Model("models/wn7new/metropolice/cpuniform.mdl")
ITEM.description = "A nice and clean uniform set designed for use by the Civil Protection. Containing a Level-3 Kevlar Vest, Insulated Olive Trousers, a Dual-Steel Utility Belt and Steel-Capped Military Boots."
ITEM.category = "Combine"
ITEM.replacementString = "wn7new/metropolice"
ITEM.model = "models/wn7new/metropolice/cpuniform.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isCP = true
ITEM.maxArmor = 75
ITEM.channels = {"cmb", "tac-3"}
ITEM.bodyGroups = {
["Pants"] = 0,
["cp_Body"] = 2
}
ITEM.replaceOnDeath = "broken_cpuniform"
ITEM.energyConsumptionRate = 0.003 -- fatigue_system

View File

@@ -0,0 +1,25 @@
--[[
| 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/
--]]
ITEM.name = "OTA Elit Üniforması"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Combine damgalı OTA Elit üniforması."
ITEM.category = "Combine"
ITEM.replacement = "models/wn/ota_elite.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isOTA = true
ITEM.maxArmor = 150
ITEM.channels = {"ota-tac", "tac-3", "tac-4", "tac-5", "cmb", "cca", "mcp", "ccr-tac"}
ITEM.replaceOnDeath = "broken_otauniform"

View File

@@ -0,0 +1,25 @@
--[[
| 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/
--]]
ITEM.name = "Muhafaza Üniforması"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Combine damgalı OCS üniforması."
ITEM.category = "Combine"
ITEM.replacement = "models/willardnetworks/combine/antibody.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isOTA = true
ITEM.maxArmor = 75
ITEM.channels = {"ota-tac", "tac-3", "tac-4", "tac-5", "cmb", "cca", "mcp", "ccr-tac"}
ITEM.replaceOnDeath = "broken_otauniform"

View File

@@ -0,0 +1,33 @@
--[[
| 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/
--]]
ITEM.name = "SK Kaptan Üniforması"
ITEM.model = Model("models/wn7new/metropolice/cpuniform.mdl")
ITEM.description = "Combine tarafından verilen Kaptanlar için yapılmış SK üniforması."
ITEM.category = "Combine"
ITEM.replacementString = "wn7new/metropolice"
ITEM.model = "models/wn7new/metropolice/cpuniform.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isCP = true
ITEM.maxArmor = 75
ITEM.channels = {"cmb", "tac-3", "tac-4", "tac-5", "ccr-tac"}
ITEM.bodyGroups = {
["Pants"] = 0,
["Base"] = 1,
["cp_Body"] = 16
}
ITEM.replaceOnDeath = "broken_cpuniform"

View File

@@ -0,0 +1,25 @@
--[[
| 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/
--]]
ITEM.name = "OTA Ordinal Üniforması"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Combine damgalı OTA Ordinal üniforması."
ITEM.category = "Combine"
ITEM.replacement = "models/wn/ordinal.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isOTA = true
ITEM.maxArmor = 125
ITEM.channels = {"ota-tac", "tac-3", "tac-4", "tac-5", "cmb", "cca", "mcp", "ccr-tac"}
ITEM.replaceOnDeath = "broken_otauniform"

View File

@@ -0,0 +1,25 @@
--[[
| 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/
--]]
ITEM.name = "OTA Üniforması"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Combine damgalı OTA üniforması."
ITEM.category = "Combine"
ITEM.replacement = "models/wn/ota_soldier.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isOTA = true
ITEM.maxArmor = 100
ITEM.channels = {"ota-tac", "tac-3", "tac-4", "tac-5", "cmb", "cca", "mcp", "ccr-tac"}
ITEM.replaceOnDeath = "broken_otauniform"

View File

@@ -0,0 +1,26 @@
--[[
| 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/
--]]
ITEM.name = "OTA Takım Lideri Üniforması"
ITEM.model = Model("models/wn7new/metropolice/cpuniform.mdl")
ITEM.description = "Combine tarafından verilen OTA Komutan üniforması."
ITEM.category = "Combine"
ITEM.replacement = "models/wn/ota_commander.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isOTA = true
ITEM.maxArmor = 100
ITEM.channels = {"ota-tac", "tac-3", "tac-4", "tac-5", "cmb", "cca", "ccg", "osi", "cca-cwu", "moc", "boe", "dob", "cwu", "cmru", "mcp"}
ITEM.replaceOnDeath = "broken_otauniform"

View File

@@ -0,0 +1,26 @@
--[[
| 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/
--]]
ITEM.name = "OTA Shotgunner Üniforması"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Combine damgalı OTA Shotgunner üniforması."
ITEM.category = "Combine"
ITEM.replacement = "models/wn/ota_shotgunner.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isOTA = true
ITEM.maxArmor = 100
ITEM.channels = {"ota-tac", "tac-3", "tac-4", "tac-5", "cmb", "cca", "mcp", "ccr-tac"}
ITEM.replaceOnDeath = "broken_otauniform"

View File

@@ -0,0 +1,26 @@
--[[
| 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/
--]]
ITEM.name = "Summit 24 Elit Üniforması"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Summit 24 için özelleştirilmiş OTA Elit üniforması."
ITEM.category = "Combine"
ITEM.replacement = "models/wn/ota_elite_summit.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isOTA = true
ITEM.maxArmor = 150
ITEM.channels = {"ota-tac", "tac-3", "tac-4", "tac-5", "cmb", "cca", "mcp", "ccr-tac"}
ITEM.replaceOnDeath = "broken_otauniform"

View File

@@ -0,0 +1,25 @@
--[[
| 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/
--]]
ITEM.name = "OTA Suppressor Üniforması"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Combine damgalı OTA Suppressor üniforması."
ITEM.category = "Combine"
ITEM.replacement = "models/wn/suppressor.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isOTA = true
ITEM.maxArmor = 125
ITEM.channels = {"ota-tac", "tac-3", "tac-4", "tac-5", "cmb", "cca", "mcp", "ccr-tac"}
ITEM.replaceOnDeath = "broken_otauniform"

View File

@@ -0,0 +1,25 @@
--[[
| 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/
--]]
ITEM.name = "OTA Valkyrie Üniforması"
ITEM.model = Model("models/wn7new/metropolice/cpuniform.mdl")
ITEM.description = "Combine tarafından verilen OTA Valkyrie üniforması."
ITEM.category = "Combine"
ITEM.replacement = "models/wn/soldier.mdl"
ITEM.iconCam = {
pos = Vector(-1.96, 13.01, 199.57),
ang = Angle(84.7, 279.39, 0),
fov = 4.8
}
ITEM.isOTA = true
ITEM.maxArmor = 100
ITEM.channels = {"ota-tac", "tac-3", "tac-4", "tac-5", "cmb", "cca", "ccg", "osi", "cca-cwu", "moc", "boe", "dob", "cwu", "cmru", "mcp"}
ITEM.replaceOnDeath = "broken_otauniform"

View File

@@ -0,0 +1,31 @@
--[[
| 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/
--]]
ITEM.name = "Gelişmiş PMG-5 (AUG) Gaz Maskesi"
ITEM.description = "Tıpkı orijinal maske gibi, ancak geliştirilmiş görsellere, OCIN'e daha iyi bağlantı ve iletişim için gelişmiş ayarlara sahip."
ITEM.category = "Combine"
ITEM.model = "models/wn7new/metropolice_c8/cp_gasmask7.mdl"
ITEM.width = 1
ITEM.height = 1
ITEM.iconCam = {
pos = Vector(-6.26, 381.14, 189.04),
ang = Angle(26.03, 270.95, 0),
fov = 1.91
}
ITEM.width = 1
ITEM.height = 1
ITEM.outfitCategory = "Head"
ITEM.bodyGroups = {
["cp_Head"] = 3 -- The actual name of the bodypart, then number in that bodypart (model-wise)
}
ITEM.isGasmask = true
ITEM.isCombineMask = true
ITEM.energyConsumptionRate = 0.001 -- fatigue_system

View File

@@ -0,0 +1,31 @@
--[[
| 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/
--]]
ITEM.name = "PMG-5 (AUG) Gaz Maskesi"
ITEM.description = "Zararlı dumanlara, gazlara ve bazı kötü kokulara karşı yeterli koruma sağlar. İletişim için dahili bir kulaklıkla birlikte gelir."
ITEM.category = "Combine"
ITEM.model = "models/wn7new/metropolice_c8/cp_gasmask1.mdl"
ITEM.width = 1
ITEM.height = 1
ITEM.iconCam = {
pos = Vector(-6.26, 381.14, 189.04),
ang = Angle(26.03, 270.95, 0),
fov = 1.91
}
ITEM.width = 1
ITEM.height = 1
ITEM.outfitCategory = "Head"
ITEM.bodyGroups = {
["cp_Head"] = 1 -- The actual name of the bodypart, then number in that bodypart (model-wise)
}
ITEM.isGasmask = true
ITEM.isCombineMask = true
ITEM.energyConsumptionRate = 0.001 -- fatigue_system

View File

@@ -0,0 +1,31 @@
--[[
| 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/
--]]
ITEM.name = "OTA Mask"
ITEM.description = "Provides adequate protection against harmful fumes, gases, and some foul odours."
ITEM.category = "Combine"
ITEM.model = "models/wn7new/metropolice_c8/cp_gasmask4.mdl"
ITEM.width = 1
ITEM.height = 1
ITEM.iconCam = {
pos = Vector(-6.26, 381.14, 189.04),
ang = Angle(26.03, 270.95, 0),
fov = 1.91
}
ITEM.outfitCategory = "Head"
ITEM.bodyGroups = {
["cp_Head"] = 1 -- The actual name of the bodypart, then number in that bodypart (model-wise)
}
ITEM.isGasmask = true
ITEM.isCombineMask = true
ITEM.isPPE = true
ITEM.colorAppendix = {["blue"] = "Dummy item to make gasmask and Combine mask stuff work."}

View File

@@ -0,0 +1,14 @@
--[[
| 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/
--]]
ITEM.name = "Kırık SK Üniforması"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Yırtık pırtık bir SK üniforması, bunu giymenin hiçbir yolu yok. Belki parçaları kurtarılabilir?"
ITEM.category = "Combine"

View File

@@ -0,0 +1,14 @@
--[[
| 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/
--]]
ITEM.name = "Kırık OTA Üniforması"
ITEM.model = Model("models/wn7new/metropolice_c8/cpuniform.mdl")
ITEM.description = "Yırtık pırtık bir OTA üniforması, bunu giymenin hiçbir yolu yok. Belki parçaları kurtarılabilir? Kesinlikle artık zırh görevi görmeyecek - deliklerle dolu."
ITEM.category = "Combine"