/**\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/* *\
/*<><><><><><><><><><><><><><><><><><>*/
/* 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! :) */
/*<><><><><><><><><><><><><><><><><><>*/
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*
/*\ /*