mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 21:33:46 +03:00
110 lines
4.6 KiB
Lua
110 lines
4.6 KiB
Lua
--[[
|
|
| 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/
|
|
--]]
|
|
|
|
ArcCW.AmmoEntToArcCW = {
|
|
-- TTT
|
|
["item_ammo_pistol_ttt"] = "arccw_ammo_pistol",
|
|
["item_ammo_smg1_ttt"] = "arccw_ammo_smg1",
|
|
["item_ammo_revolver_ttt"] = "arccw_ammo_357",
|
|
["item_ammo_357_ttt"] = "arccw_ammo_sniper",
|
|
["item_box_buckshot_ttt"] = "arccw_ammo_buckshot",
|
|
|
|
-- HL2
|
|
["item_ammo_357"] = "arccw_ammo_357",
|
|
["item_ammo_357_large"] = "arccw_ammo_357_large",
|
|
["item_ammo_ar2"] = "arccw_ammo_ar2",
|
|
["item_ammo_ar2_large"] = "arccw_ammo_ar2_large",
|
|
["item_ammo_pistol"] = "arccw_ammo_pistol",
|
|
["item_ammo_pistol_large"] = "arccw_ammo_pistol_large",
|
|
["item_ammo_smg1"] = "arccw_ammo_smg1",
|
|
["item_ammo_smg1_large"] = "arccw_ammo_smg1_large",
|
|
["item_ammo_smg1_grenade"] = "arccw_ammo_smg1_grenade",
|
|
["item_ammo_crossbow"] = "arccw_ammo_sniper",
|
|
["item_box_buckshot"] = "arccw_ammo_buckshot",
|
|
["item_ammo_ar2_altfire"] = "arccw_ammo_smg1_grenade",
|
|
|
|
-- HL:S
|
|
["ammo_357"] = "arccw_ammo_357",
|
|
["ammo_crossbow"] = "arccw_ammo_sniper",
|
|
["ammo_glockclip"] = "arccw_ammo_pistol",
|
|
["ammo_9mmbox"] = "arccw_ammo_ar2",
|
|
["ammo_mp5clip"] = "arccw_ammo_smg1",
|
|
["ammo_mp5grenades"] = "arccw_ammo_smg1_grenade",
|
|
["ammo_rpgclip"] = "arccw_ammo_smg1_grenade_large",
|
|
["ammo_buckshot"] = "arccw_ammo_buckshot",
|
|
["ammo_gaussclip"] = "arccw_ammo_ar2_large"
|
|
}
|
|
|
|
function ArcCW:AddGrenadeAmmo()
|
|
if ArcCW.ConVars["equipmentammo"]:GetBool() and !ArcCW.ConVars["equipmentsingleton"]:GetBool() then
|
|
for i, k in pairs(weapons.GetList()) do
|
|
local class = k.ClassName
|
|
local wpntbl = weapons.Get(class)
|
|
if !wpntbl.ArcCW then continue end
|
|
|
|
if (wpntbl.Throwing or wpntbl.Disposable) and !wpntbl.Singleton and !wpntbl.DoNotEquipmentAmmo then
|
|
-- ammoid check will cause inconsistency between SV/CL on map change
|
|
-- Initialize is only run once anyways, so it should be fine
|
|
--local ammoid = game.GetAmmoID(class)
|
|
--if ammoid == -1 then
|
|
-- if ammo type does not exist, build it
|
|
game.AddAmmoType({
|
|
name = class,
|
|
})
|
|
print("ArcCW adding ammo type " .. class)
|
|
if CLIENT then
|
|
language.Add(class .. "_ammo", wpntbl.PrintName)
|
|
end
|
|
ArcCW.LangTable["en"]["ammo." .. class] = wpntbl.PrintName
|
|
--end
|
|
|
|
k.Primary.Ammo = class
|
|
k.OldAmmo = class
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
hook.Add("Initialize", "ArcCW_AddGrenadeAmmo", ArcCW.AddGrenadeAmmo)
|
|
|
|
if SERVER then
|
|
hook.Add( "OnEntityCreated", "ArcCW_AmmoReplacement", function(ent)
|
|
if ((engine.ActiveGamemode() == "terrortown" and ArcCW.ConVars["ttt_ammo"]:GetBool()) or
|
|
(engine.ActiveGamemode() != "terrortown" and ArcCW.ConVars["ammo_replace"]:GetBool()))
|
|
and ArcCW.AmmoEntToArcCW[ent:GetClass()] then
|
|
timer.Simple(0, function()
|
|
if !IsValid(ent) then return end
|
|
local ammoent = ents.Create(ArcCW.AmmoEntToArcCW[ent:GetClass()])
|
|
ammoent:SetPos(ent:GetPos())
|
|
ammoent:SetAngles(ent:GetAngles())
|
|
ammoent:Spawn()
|
|
SafeRemoveEntityDelayed(ent, 0) -- remove next tick
|
|
if engine.ActiveGamemode() == "terrortown" then
|
|
-- Setting owner prevents pickup
|
|
if IsValid(ent:GetOwner()) then
|
|
ammoent:SetOwner(ent:GetOwner())
|
|
timer.Simple(2, function()
|
|
if IsValid(ammoent) then ammoent:SetOwner(nil) end
|
|
end)
|
|
ammoent.AmmoCount = ent.AmmoAmount
|
|
end
|
|
--[[]
|
|
if ent:GetClass() == "item_ammo_pistol_ttt" and ent.AmmoCount == 20 then
|
|
-- Extremely ugly hack: TTT pistol ammo only gives 20 rounds but we want it to be 30
|
|
-- Because most SMGs use pistol ammo (unlike vanilla TTT) and it runs out quickly
|
|
ammoent.AmmoCount = 30
|
|
end
|
|
]]
|
|
ammoent:SetNWInt("truecount", ammoent.AmmoCount)
|
|
end
|
|
end)
|
|
end
|
|
end)
|
|
end |