/**\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/*<><><><><><><><><><><><><><><><><><>*/
/* Tool Information */
/*<><><><><><><><><><><><><><><><><><>*/
/**/
/**/ TOOL.Category = "Mrak"
/**/ TOOL.Name = "#Headcrab Canisters"
/**/ TOOL.Command = nil
/**/ TOOL.ConfigName = nil
/**/
/*<><><><><><><><><><><><><><><><><><>*/
/* Tool Descriptions */
/*<><><><><><><><><><><><><><><><><><>*/
/**/
/**/ if (CLIENT) then
/**/ language.Add("Tool_headcrab_canisters_name", "Headcrab Canisters Tool")
/**/ language.Add("Tool_headcrab_canisters_desc", "Summons headcrab canisters.")
/**/ language.Add("Tool_headcrab_canisters_0", "Right click to set the landing spot, then left click to summon the canister.")
/**/ language.Add("Tool_headcrab_canisters_method", "Choose the method of firing:")
/**/ language.Add("Tool_headcrab_canisters_type", "Headcrab Type:")
/**/ language.Add("Tool_headcrab_canisters_number", "Number of Headcrabs:")
/**/ language.Add("Tool_headcrab_canisters_time", "Flight Time:")
/**/ language.Add("Tool_headcrab_canisters_damage", "Impact Damage:")
/**/ language.Add("Tool_headcrab_canisters_radius", "Damage Radius:")
/**/ language.Add("Tool_headcrab_canisters_lifetime", "Smoke Lifetime:")
/**/ end
/**/
/*<><><><><><><><><><><><><><><><><><>*/
/* Tool Variables */
/*<><><><><><><><><><><><><><><><><><>*/
/**/
/**/ TOOL.ClientConVar["method"] = "0"
/**/ TOOL.ClientConVar["type"] = "0"
/**/ TOOL.ClientConVar["number"] = "0"
/**/ TOOL.ClientConVar["time"] = "0"
/**/ TOOL.ClientConVar["damage"] = "0"
/**/ TOOL.ClientConVar["radius"] = "0"
/**/ TOOL.ClientConVar["lifetime"] = "0"
/**/
/*<><><><><><><><><><><><><><><><><><>*/
/* Precache Models */
/*<><><><><><><><><><><><><><><><><><>*/
/**/
/**/ util.PrecacheModel("models/props_combine/headcrabcannister01a.mdl")
/**/ util.PrecacheModel("models/props_combine/headcrabcannister01b.mdl")
/**/ util.PrecacheModel("models/props_combine/headcrabcannister01a_skybox.mdl")
/**/ util.PrecacheModel("models/headcrabclassic.mdl")
/**/ util.PrecacheModel("models/headcrab.mdl")
/**/ util.PrecacheModel("models/headcrabblack.mdl")
/**/
/*<><><><><><><><><><><><><><><><><><>*/
/* Left Click Function */
/*<><><><><><><><><><><><><><><><><><>*/
/**/
/**/ function TOOL:LeftClick(trace)
/**/ if (!trace.HitWorld) then
/**/ return false
/**/ end
/**/
/**/ if (CLIENT) then
/**/ return true
/**/ end
/**/
/**/ local method = self:GetClientNumber("method")
/**/ local headcrabtype = self:GetClientNumber("type")
/**/ local headcrabnumber = self:GetClientNumber("number")
/**/ local ftime = self:GetClientNumber("time")
/**/ local damage = self:GetClientNumber("damage")
/**/ local radius = self:GetClientNumber("radius")
/**/ local lifetime = self:GetClientNumber("lifetime")
/**/
/**/ local Owner = self:GetOwner()
/**/
/**/ if (self.hitpos == nil) then
/**/ Owner:PrintMessage(3, "Pick a landing spot first!")
/**/ return end
/**/
/**/ if (ftime == 0) then
/**/ Owner:PrintMessage(3, "The flight time can't be 0!")
/**/ return end
/**/
/**/ self.target = ents.Create("info_target")
/**/ self.canister = ents.Create("env_headcrabcanister")
/**/
/**/ if (method == 0) then
/**/ self.target:SetPos(Owner:GetShootPos() + ((Owner:GetAimVector() * 35000) + Vector(0, 0, 50000)))
/**/ self.canister:SetPos(self.hitpos)
/**/ elseif (method == 1) then
/**/ self.target:SetPos(Owner:GetShootPos() + ((Owner:GetAimVector() * -35000) + Vector(0, 0, 50000)))
/**/ self.canister:SetPos(self.hitpos)
/**/ elseif (method == 2) then
/**/ self.target:SetPos(self.hitpos + Vector(0, 1, 50000))
/**/ self.canister:SetPos(self.hitpos)
/**/ end
/**/
/**/ self.target:SetKeyValue("targetname", "target")
/**/ self.target:Spawn()
/**/ self.target:Activate()
/**/
/**/ local Offset = self.target:GetPos() - self.hitpos
/**/ local Angle = Offset:Angle()
/**/
/**/ self.canister:SetAngles(Angle)
/**/ self.canister:SetKeyValue("HeadcrabType", headcrabtype)
/**/ self.canister:SetKeyValue("HeadcrabCount", headcrabnumber)
/**/ self.canister:SetKeyValue("LaunchPositionName", "target")
/**/ self.canister:SetKeyValue("FlightSpeed", 100)
/**/ self.canister:SetKeyValue("FlightTime", ftime)
/**/ self.canister:SetKeyValue("Damage", damage)
/**/ self.canister:SetKeyValue("DamageRadius", radius)
/**/ self.canister:SetKeyValue("SmokeLifetime", lifetime)
/**/ self.canister:Fire("Spawnflags", "16384", 0)
/**/ self.canister:Fire("FireCanister", "", 0)
/**/ self.canister:Fire("AddOutput", "OnImpacted OpenCanister", 0)
/**/ self.canister:Fire("AddOutput", "OnOpened SpawnHeadcrabs", 0)
/**/ self.canister:Spawn()
/**/ self.canister:Activate()
/**/
/**/ n = 1
/**/
/**/ self.Weapon:SetNextPrimaryFire(CurTime() + 0.8)
/**/ self.Weapon:SetNextSecondaryFire(CurTime() + 0.8)
/**/
/**/ return true
/**/ end
/**/
/*<><><><><><><><><><><><><><><><><><>*/
/* Right Click Function */
/*<><><><><><><><><><><><><><><><><><>*/
/**/
/**/ function TOOL:RightClick(trace)
/**/ if (!trace.HitWorld) then
/**/ return false
/**/ end
/**/
/**/ if (CLIENT) then
/**/ return true
/**/ end
/**/
/**/ self.hitpos = trace.HitPos
/**/
/**/ self.Weapon:SetNextPrimaryFire(CurTime() + 0.8)
/**/ self.Weapon:SetNextSecondaryFire(CurTime() + 0.8)
/**/
/**/ return true
/**/ end
/**/
/*<><><><><><><><><><><><><><><><><><>*/
/* Think Function */
/*<><><><><><><><><><><><><><><><><><>*/
/**/
/**/ function TOOL:Think()
/**/ if (n == 1) then
/**/ self.target:Remove()
/**/ n = 0
/**/ end
/**/ end
/**/
/*<><><><><><><><><><><><><><><><><><>*/
/* Reload Function */
/*<><><><><><><><><><><><><><><><><><>*/
/**/
/**/ function TOOL:Reload(trace)
/**/ local props = ents.FindByClass("env_headcrabcanister")
/**/
/**/ for k,v in pairs(props) do
/**/ props[k]:Remove()
/**/
/**/ local explosion = ents.Create("env_explosion")
/**/ explosion:SetPos(props[k]:GetPos())
/**/ explosion:SetKeyValue("iMagnitude", " 200")
/**/ explosion:SetKeyValue("iRadiusOverride", 0)
/**/ explosion:Spawn()
/**/ explosion:Activate()
/**/ explosion:Fire("explode", "", 0)
/**/ explosion:Fire("kill", "", 0)
/**/ end
/**/ end
/**/
/*<><><><><><><><><><><><><><><><><><>*/
/* Have fun! :) */
/*<><><><><><><><><><><><><><><><><><>*/
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*