This commit is contained in:
lifestorm
2024-08-04 23:12:27 +03:00
parent 0e770b2b49
commit ba1fc01b16
7084 changed files with 2173495 additions and 14 deletions

View File

@@ -0,0 +1,203 @@
--[[
| 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 PLUGIN = PLUGIN
ITEM.name = "Cigarette"
ITEM.description = "Ćmik."
ITEM.model = Model("models/willardnetworks/cigarettes/cigarette.mdl")
ITEM.width = 1
ITEM.height = 1
ITEM.junkCleanTime = 120
if (CLIENT) then
function ITEM:PopulateTooltip(tooltip)
local length = self:GetData("length", 0)
local panel = tooltip:AddRowAfter("name", "remaining tobacco")
panel:SetBackgroundColor(derma.GetColor("Warning", tooltip))
panel:SetText("Pozostały tytoń: "..(math.Round(math.Remap(length, 0, 1, 100, 0), 0)).."%")
panel:SizeToContents()
end
function ITEM:PaintOver(item, w, h)
local length = item:GetData("length", 0)
surface.SetDrawColor(length >= 1 and (Color(255, 110, 110, 100)) or (length < 1 and length != 0 and Color(255, 193, 110, 100)) or (Color(110, 255, 110, 100)))
surface.DrawOutlinedRect(1, 1, w - 2, h - 2)
end
end
function ITEM:GetModelFlexes()
return {[0] = self:GetData("length", 0)}
end
function ITEM:CreateCigarette(client)
if ( SERVER ) then
PLUGIN:CreateCigarette(self, client)
end
end
function ITEM:CheckIfModelAllowed(client)
local faceIndex = client:FindBodygroupByName("face")
if string.find(client:GetModel(), "models/willardnetworks/citizens/") then
local headIndex = client:FindBodygroupByName("head")
if client:GetBodygroup(faceIndex) == 1 or client:GetBodygroup(headIndex) == 4 then
return false
end
end
if string.find(client:GetModel(), "models/thomask_110/") then
if client:GetBodygroup(faceIndex) == 3 or client:GetBodygroup(faceIndex) == 4 then
return false
end
end
if string.find(client:GetModel(), "models/willardnetworks/vortigaunt.mdl") and client:GetBodygroup(faceIndex) == 1 then
return false
end
if string.find(client:GetModel(), "models/wn7new/metropolice/") and client:GetBodygroup(client:FindBodygroupByName("Cp_Head")) > 0 then
return false
end
if string.find(client:GetModel(), "models/wn7new/metropolice_c8/") and client:GetBodygroup(client:FindBodygroupByName("Cp_Head")) > 0 then
return false
end
for _, v in pairs(PLUGIN.allowedModels) do
if string.find(client:GetModel(), v) then return true end
end
return false
end
function ITEM:OnCanRunSmoke()
local client = self.player
local length = self:GetData("length", 0)
if length >= 1 then return false end
if client and !self:CheckIfModelAllowed(client) then return false end
if math.Round(math.Remap(length, 0, 1, 100, 0), 0) == 0 then return false end
if self.entity then return false end
if client and client.cigarette and IsValid(client.cigarette) then return false end
if !self.cigaretteEnt then return true end
return false
end
function ITEM:OnRunSmoke()
local client = self.player
if !client then return false end
if (!client:Alive()) then return false end
self:CreateCigarette(client)
client:NotifyLocalized("Włożyłeś do ust papierosa. Użyj zapalniczki, aby go zapalić.")
end
function ITEM:OnRunStopSmoke(client, value, bRemove)
client = client or self.player
if !client then return false end
if (!client:Alive()) then return false end
if (value and !bRemove) then
self:SetData("length", value)
end
if IsValid(self.cigaretteEnt) and IsEntity(self.cigaretteEnt) then
if !value and !bRemove then
local length = self.cigaretteEnt:GetFlexWeight(self.cigaretteEnt.flexIndexLength)
self:SetData("length", length)
end
self.cigaretteEnt:Remove()
client.cigarette = nil
end
self.cigaretteEnt = nil
client:NotifyLocalized(self:GetData("length") == 1 and "Skończyłeś palić papierosa. Pozostał po nim tylko niedopałek." or "Wyjąłeś papierosa z ust.")
local itemID = self:GetID()
if bRemove then
self:Remove()
end
netstream.Start(client, "CigaretteSetClientEntity", itemID, nil, nil)
end
function ITEM:OnCanRunStopSmoke()
local length = self:GetData("length", 0)
if length >= 1 then return false end
if math.Round(math.Remap(length, 0, 1, 100, 0), 0) == 0 then return false end
if self.cigaretteEnt and IsEntity(self.cigaretteEnt) then return true end
if self.player and !self:CheckIfModelAllowed(self.player) then return false end
return false
end
function ITEM:SmokingFinished(client, value)
self:OnRunStopSmoke(client, value, true)
end
function ITEM:OnTransferred(curInv, inventory)
local client = self.player
if client and client.cigarette and IsEntity(client.cigarette) and client.cigarette.cigaretteItem and client.cigarette.cigaretteItem == self then
self:OnRunStopSmoke()
end
end
ITEM.functions.smoke = {
name = "Umieść w ustach",
tip = "Umieść papierosa w ustach.",
icon = "icon16/brick_add.png",
OnRun = function(item)
item:OnRunSmoke()
return false
end,
OnCanRun = function(item)
if item:OnCanRunSmoke() then return true end
return false
end
}
ITEM.functions.stopsmoke = {
name = "Wyjmij z ust",
tip = "Wyjmij papierosa z ust i zgaś go.",
icon = "icon16/brick_add.png",
OnRun = function(item)
item:OnRunStopSmoke()
return false
end,
OnCanRun = function(item)
if item:OnCanRunStopSmoke() then return true end
return false
end
}
if (CLIENT) then
netstream.Hook("CigaretteSetClientEntity", function(itemID, entIndex, isLit)
if itemID and ix.item.instances[itemID] then
ix.item.instances[itemID].cigaretteEnt = entIndex or nil
end
LocalPlayer().cigarette = entIndex or nil
if !LocalPlayer().cigarette then return end
LocalPlayer().cigarette.isLit = isLit or nil
end)
end

View File

@@ -0,0 +1,61 @@
--[[
| 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 = "Lighter"
ITEM.base = "base_tools"
ITEM.model = Model("models/willardnetworks/cigarettes/lighter.mdl")
ITEM.width = 1
ITEM.height = 1
ITEM.description = "Podręczne urządzenie przeznaczone do rozpalania płomienia w celu podpalenia przedmiotów."
function ITEM:OnRunLight()
local client = self.player
if !client then return end
if !client:Alive() then return end
if client.cigarette and IsEntity(client.cigarette) and client.cigarette.cigaretteItem and
client.cigarette.cigaretteItem.GetID and ix.item.instances[client.cigarette.cigaretteItem:GetID()] then
client.cigarette.isLit = true
netstream.Start(client, "CigaretteSetClientEntity", client.cigarette.cigaretteItem:GetID(), client.cigarette, true)
end
client:NotifyLocalized("Zacząłeś palić papierosa.")
client:EmitSound(self.useSound)
self:DamageDurability(1)
end
function ITEM:OnCanRunLight()
local client = self.player
if !client then return end
if !client:Alive() then return end
if client.cigarette and !client.cigarette.isLit then return true end
return false
end
ITEM.functions.light = {
name = "Zapal papierosa",
tip = "Zapal papierosa",
icon = "icon16/brick_add.png",
OnRun = function(item)
item:OnRunLight()
return false
end,
OnCanRun = function(item)
if item:OnCanRunLight() then return true end
return false
end
}

View File

@@ -0,0 +1,13 @@
--[[
| 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 = "Papieros"
ITEM.description = "Podobno palenie jest niezdrowe, ale czy w tych czasach jest to ważne?"

View File

@@ -0,0 +1,21 @@
--[[
| 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 = "Cygaretki Goodfella"
ITEM.model = Model("models/willardnetworks/cigarettes/cigarette_pack_goodfella.mdl")
ITEM.description = "Paczka cygaretek wysokiej jakości, w której mieści się ich 8 sztuk."
ITEM.allowNesting = true
ITEM.restriction = {"cigarette"}
ITEM.noEquip = true
function ITEM:OnBagInitialized(inventory)
inventory:Add("cigarette", 8)
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 = "Paczka papierosów"
ITEM.model = Model("models/willardnetworks/cigarettes/cigarette_pack_1.mdl")
ITEM.description = "Paczka papierosów, w której mieści się 8 papierosów."
ITEM.allowNesting = true
ITEM.restriction = {"cigarette", "lighter"}
ITEM.noEquip = true
function ITEM:GetName()
return self:GetData("relabeled", false) and "Paczka papierosów ze zmienioną etykietą" or "Paczka papiersów - Edycja Benefaktor"
end
function ITEM:GetDescription()
return self:GetData("relabeled", false) and "Paczka papierosów ze zmienioną etykietą, w której mieści się 8 papierosów." or "Paczka papierosów wydana przez Kombinat, w której mieści się 8 papierosów."
end
function ITEM:GetModel()
return self:GetData("relabeled", false) and "models/willardnetworks/cigarettes/cigarette_pack_1.mdl" or "models/willardnetworks/cigarettes/cigarette_pack.mdl"
end
function ITEM:OnBagInitialized(inventory)
inventory:Add("cigarette", 8)
end

View File

@@ -0,0 +1,28 @@
--[[
| 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 = "Plastikowa zapalniczka"
ITEM.model = Model("models/willardnetworks/cigarettes/lighter.mdl")
ITEM.description = "Tania plastikowa zapalniczka, przydatna do zapalania papierosów."
ITEM.useSound = "willardnetworks/cigarettes/normal.wav"
ITEM.category = "Tools"
ITEM.maxDurability = 8
ITEM.holdData = {
vectorOffset = {
right = 0,
up = 0,
forward = 0
},
angleOffset = {
right = 0,
up = 0,
forward = 0
},
}

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 = "Zapalniczka Zippo"
ITEM.model = Model("models/willardnetworks/cigarettes/zippo.mdl")
ITEM.description = "Zapalniczka Zippo to klasyczny model zapalniczki na benzynę, przydatna do zapalania papierosów."
ITEM.useSound = "willardnetworks/cigarettes/zippo.wav"
ITEM.maxDurability = 24
ITEM.width = 1
ITEM.height = 1
ITEM.iconCam = {
pos = Vector(-509.64, -427.61, 310.24),
ang = Angle(24.98, 400.03, 0),
fov = 0.29
}
ITEM.holdData = {
vectorOffset = {
right = 0,
up = 0,
forward = 0
},
angleOffset = {
right = 0,
up = 0,
forward = 0
},
}