--Dear god... this is gonna be whack. --////////////////////////////////////////////////////////////////////////////////////////////// --===========CosCo The Rocket Drone========= Rest In Peace...s --///////////////VARIABLES////////////////// PT_list = 0 --=============Heavy Reinforcement=============== --////// function self_destruct(_, activator) local ent = ents.FindByName("hitdetection") activator:AddCallback(ON_DEATH, function() end) end --=============[THE POWER-PLAYER]=============== --////// function disableCanteens(_, activator) activator:AcceptInput("$AddPlayerAttribute", "fire input on hit|popscript^$powerAttack") activator:AcceptInput("$AddPlayerAttribute", "gesture speed increase|2.5") activator:AcceptInput("$AddPlayerAttribute", "fire input on taunt|popscript^$tauntPowerUp") --/////////////////// activator:AcceptInput("$AddItemAttribute", "Construction rate increased|2|2") activator:AcceptInput("$AddItemAttribute", "powerup max charges|0|9") end function pointsChecker(_, activator) if activator.poweringScale < 5 then activator.powerState = 5 activator.powerID:AddOutput("message [No Power] "..tostring(activator.poweringScale).."/"..tostring(activator.powerState)) activator.powerID:AcceptInput("Display",_, activator) elseif activator.poweringScale < 10 then activator.powerState = 10 activator.powerID:AddOutput("message [Minicrits + Sentry Burst Ready] "..tostring(activator.poweringScale).."/"..tostring(activator.powerState)) activator.powerID:AddOutput("color 0 128 0") activator.powerID:AcceptInput("Display",_, activator) activator.power = 1 elseif activator.poweringScale < 30 then activator.powerState = 30 activator.powerID:AddOutput("message [+Crits +Speed Ready] "..tostring(activator.poweringScale).."/"..tostring(activator.powerState)) activator.powerID:AddOutput("color 255 255 0") activator.powerID:AcceptInput("Display",_, activator) activator.power = 2 elseif activator.poweringScale >= 30 then activator.powerID:AddOutput("message [POWER-PLAY Ready] 30/30") activator.powerID:AddOutput("color 255 0 0") activator.powerID:AcceptInput("Display",_, activator) activator.power = 3 end end function sentry_Detection(_, activator) if not activator.alreadyLvl2 then --or "obj_dispenser" or "obj_telepoter" <== buggy. if activator:GetClassname() == "obj_sentrygun" then activator:AddOutput("$OnShootBullet popscript:$sentryPowerAttack::0:-1") activator:AddOutput("$OnShootRocket popscript:$sentryRocketAttack::0:-1") else print("no building found") end if activator.m_iHighestUpgradeLevel < 3 then print("below max level building. Set to lvl 2") activator.m_iHighestUpgradeLevel = 2 activator.alreadyLvl2 = 1 -- activator.m_hBuilder:AcceptInput("$DisplayTextChat", "{green}Synchronized!") -- if activator:GetClassname() == "obj_dispenser" then -- timer.Simple(0.05, function() -- activator:Activate() -- end) -- end elseif activator.m_iHighestUpgradeLevel == 3 then print("level 3 building") activator.m_iHighestUpgradeLevel = 3 activator.alreadyLvl2 = 1 -- activator.m_hBuilder:AcceptInput("$DisplayTextChat", "{green}Synchronized!") else print("already level 2") end else activator.alreadyLvl2 = 1 print("already variable added") end end function powerhouseAction(_, activator) activator.poweringScale = 0 activator.power = 0 activator.powerState = 5 activator.empowered = 0 local powerID = "power"..(PT_list) PT_list = PT_list + 1 ents.CreateWithKeys("game_text", { targetname = powerID, -- spawnflags = 1, holdtime = 99999, color = "255 0 0", message = "[No Power] 0/5", channel = 1, y = 0.65, x = -1, }) local powerAction = ents.FindByName(tostring(powerID)) activator.powerID = powerAction activator.IsDead = 0 -- util.PrintToChatAll(activator.powerID) activator.powerID:AcceptInput("Display",_, activator) --Remove activator:AddCallback(ON_DEATH, function() activator.powerID:Remove() activator.poweringScale = 0 activator.IsDead = 1 end) activator:AddCallback(ON_REMOVE, function() activator.powerID:Remove() activator.poweringScale = 0 end) -- end function powerAttack(_, activator, caller) print(caller:GetPlayerName()) print(activator:GetPlayerName()) if not caller:IsAlive() then activator.poweringScale = activator.poweringScale + 1 pointsChecker(_, activator) -- timer.Create(0.02, function() -- if activator.IsDead == 1 then -- return false -- end -- if activator.poweringScale < 5 then -- activator.powerState = 5 -- activator.powerID:AddOutput("message [No Power] "..tostring(activator.poweringScale).."/"..tostring(activator.powerState)) -- activator.powerID:AcceptInput("Display",_, activator) -- elseif activator.poweringScale < 10 then -- activator.powerState = 10 -- activator.powerID:AddOutput("message [Minicrits + Sentry Burst Ready] "..tostring(activator.poweringScale).."/"..tostring(activator.powerState)) -- activator.powerID:AddOutput("color 0 128 0") -- activator.powerID:AcceptInput("Display",_, activator) -- activator.power = 1 -- elseif activator.poweringScale < 30 then -- activator.powerState = 30 -- activator.powerID:AddOutput("message [+Crits +Speed Ready] "..tostring(activator.poweringScale).."/"..tostring(activator.powerState)) -- activator.powerID:AddOutput("color 255 255 0") -- activator.powerID:AcceptInput("Display",_, activator) -- activator.power = 2 -- elseif activator.poweringScale >= 30 then -- activator.powerID:AddOutput("message [POWER-PLAY Ready] 30/30") -- activator.powerID:AddOutput("color 255 0 0") -- activator.powerID:AcceptInput("Display",_, activator) -- activator.power = 3 -- end -- end, 0) end end function sentryPowerAttack(_, activator) local owner = activator.m_hBuilder print(owner.poweringScale) if not activator.m_hEnemy:IsAlive() then owner.poweringScale = owner.poweringScale + 1 pointsChecker(_, owner) -- timer.Create(0.02, function() -- if activator.IsDead == 1 then -- return false -- end -- if activator.poweringScale < 5 then -- activator.powerState = 5 -- activator.powerID:AddOutput("message [No Power] "..tostring(activator.poweringScale).."/"..tostring(activator.powerState)) -- activator.powerID:AcceptInput("Display",_, activator) -- elseif activator.poweringScale < 10 then -- activator.powerState = 10 -- activator.powerID:AddOutput("message [Minicrits + Sentry Burst Ready] "..tostring(activator.poweringScale).."/"..tostring(activator.powerState)) -- activator.powerID:AddOutput("color 0 128 0") -- activator.powerID:AcceptInput("Display",_, activator) -- activator.power = 1 -- elseif activator.poweringScale < 30 then -- activator.powerState = 30 -- activator.powerID:AddOutput("message [+Crits +Speed Ready] "..tostring(activator.poweringScale).."/"..tostring(activator.powerState)) -- activator.powerID:AddOutput("color 255 255 0") -- activator.powerID:AcceptInput("Display",_, activator) -- activator.power = 2 -- elseif activator.poweringScale >= 30 then -- activator.powerID:AddOutput("message [POWER-PLAY Ready] 30/30") -- activator.powerID:AddOutput("color 255 0 0") -- activator.powerID:AcceptInput("Display",_, activator) -- activator.power = 3 -- end -- end, 0) end end function sentryRocketAttack(_, activator) --= 30 then -- activator.powerID:AddOutput("message [POWER-PLAY Ready] 30/30") -- activator.powerID:AddOutput("color 255 0 0") -- activator.powerID:AcceptInput("Display",_, activator) -- activator.power = 3 -- end -- end, 0) end end) end --///////// function tauntPowerUp(_, activator) --Time To Be Strong if activator.empowered == 0 then if activator.power == 0 then print("not enough power") elseif activator.power == 1 then --<== Tier 1 activator:AcceptInput("$PlaySoundToSelf", "weapons/vaccinator_heal.wav") activator:AcceptInput("$PlaySoundToSelf","vo/engineer_autocappedintelligence01.mp3") activator:AcceptInput("$DisplayTextChat","{yellow}SENTRY OVER-DRIVE") activator:AddCond(52, 3.2) --/////////////////////// activator:AddCond(19, 8) activator:SetAttributeValue("engy sentry fire rate increased", 0.70) activator.powerID:AddOutput("color 255 0 0") activator.poweringScale = activator.poweringScale - 5 activator.power = 0 activator.empowered = 1 activator.powerState = 5 pointsChecker(_, activator) timer.Simple(8, function() activator.empowered = 0 activator:AcceptInput("$PlaySoundToSelf", "weapons/sentry_damage2.wav") activator:SetAttributeValue("engy sentry fire rate increased", 3.60) activator:AcceptInput("$DisplayTextChat","{red}SENTRY OVERHEATING - COOLING DOWN") timer.Simple(4, function() activator:SetAttributeValue("engy sentry fire rate increased", nil) end) end) elseif activator.power == 2 then --<== Tier 2 activator:AcceptInput("$PlaySoundToSelf", "misc/halloween/spell_lightning_ball_impact.wav") activator:AcceptInput("$PlaySoundToSelf","vo/engineer_battlecry07.mp3") activator:AcceptInput("$DisplayTextChat","{yellow}SENTRY OVER-DRIVE") activator:AddCond(52, 3.2) --/////////////////////// activator:AddCond(56, 11) activator:AddCond(32, 11) activator.powerID:AddOutput("color 255 0 0") activator.poweringScale = activator.poweringScale - 10 activator.power = 0 activator.empowered = 1 activator.powerState = 5 pointsChecker(_, activator) activator:SetAttributeValue("engy sentry fire rate increased", 0.70) timer.Simple(10, function() activator.empowered = 0 activator:AcceptInput("$PlaySoundToSelf", "weapons/sentry_damage2.wav") activator:SetAttributeValue("engy sentry fire rate increased", 3.60) activator:AcceptInput("$DisplayTextChat","{red}SENTRY OVERHEATING - COOLING DOWN") timer.Simple(4, function() activator:SetAttributeValue("engy sentry fire rate increased", nil) end) end) elseif activator.power == 3 then --<== Tier 3 activator:AcceptInput("$PlaySoundToSelf", "misc/halloween/spell_overheal.wav") activator:AcceptInput("$PlaySoundToSelf", "vo/engineer_sf13_influx_big01.mp3") activator:AcceptInput("$DisplayTextChat","{YELLOW}SUPER SENTRY MODE") activator:AddCond(57, 9) activator:AddCond(109, 23) activator:AddCond(55, 5.2) --/////////////////////// activator:AddCond(58, 23) activator:AddCond(59, 23) activator:AddCond(60, 23) activator:AddCond(16, 23) activator:AddCond(32, 23) activator.powerID:AddOutput("color 255 0 0") activator.poweringScale = 0 activator.power = 0 activator.empowered = 1 activator.powerState = 5 pointsChecker(_, activator) activator:SetAttributeValue("engy sentry fire rate increased", 0.45) timer.Simple(23, function() activator.empowered = 0 activator:SetAttributeValue("engy sentry fire rate increased", nil) end) end else print("already empowered") end end --//////////////////////////////////////////////// --=============[THE BROKEN OATH]=============== --////// function setVariablesMedic(_, activator) gaugeID = "guage"..tostring(PT_list) infoID = "info"..tostring(PT_list) activator.damageMeter = 0 activator.powerTier = 0 activator.powerDescription = 0 activator.Uber = 0 ents.CreateWithKeys("game_text", { targetname = gaugeID, -- spawnflags = 1, holdtime = 99999, color = "255 0 0", message = "▱▱▱", channel = 1, y = 0.55, x = -1, }) ents.CreateWithKeys("game_text", { targetname = infoID, -- spawnflags = 1, holdtime = 99999, color = "255 0 0", message = "0/200 [No Passives]", channel = 2, y = 0.58, x = -1, }) local gaugetxt = ents.FindByName(tostring(gaugeID)) local info = ents.FindByName(tostring(infoID)) activator.gauge = gaugetxt activator.textDescriptor = info activator.gauge:AcceptInput("Display",_, activator) activator.textDescriptor:AcceptInput("Display",_, activator) activator:AddCallback(ON_DEATH, function() activator.gauge:Remove() activator.textDescriptor:Remove() end) activator:AddCallback(ON_REMOVE, function() activator.gauge:Remove() activator.textDescriptor:Remove() end) PT_list = PT_list + 1 end function brokenAttack(damage, activator) activator.damageMeter = activator.damageMeter + damage -- util.PrintToChatAll(activator.damageMeter) if activator.damageMeter < 200 then activator.gauge:AddOutput("message ▱▱▱") activator.gauge:AddOutput("color 255 0 0") activator.gauge:AcceptInput("Display", _,activator) activator.textDescriptor:AddOutput("message "..tostring(activator.damageMeter).."/200 [No Passives]") activator.textDescriptor:AcceptInput("Display", _,activator) activator:SetAttributeValue("hidden maxhealth non buffed", nil) activator:SetAttributeValue("mark for death", nil) activator:SetAttributeValue("effect cond override", nil) activator:SetAttributeValue("Set DamageType Ignite", nil) activator:RemoveCond(32) activator:RemoveCond(46) activator.powerTier = 0 activator.Uber = 1 elseif activator.damageMeter < 1000 then activator.gauge:AddOutput("message ▰▱▱") activator.gauge:AddOutput("color 0 128 0") activator.gauge:AcceptInput("Display", _,activator) activator.textDescriptor:AddOutput("message "..tostring(activator.damageMeter).."/1000 [+25 HP +Speed]") activator.textDescriptor:AddOutput("color 0 128 0") activator.textDescriptor:AcceptInput("Display", _,activator) activator:SetAttributeValue("hidden maxhealth non buffed", 25) activator:AddCond(32, -1) activator.powerTier = 1 elseif activator.damageMeter < 2000 then activator.gauge:AddOutput("message ▰▰▱") activator.gauge:AddOutput("color 255 255 0") activator.gauge:AcceptInput("Display", _,activator) activator.textDescriptor:AddOutput("message "..tostring(activator.damageMeter).."/2000 [+50 HP +Mark]") activator.textDescriptor:AddOutput("color 255 255 0") activator.textDescriptor:AcceptInput("Display", _,activator) activator:SetAttributeValue("hidden maxhealth non buffed", 50) activator:AddCond(32, -1) activator:AddCond(46, -1) activator:SetAttributeValue("mark for death", 1) activator.powerTier = 2 elseif activator.damageMeter >= 2000 then activator.gauge:AddOutput("message ▰▰▰") activator.gauge:AddOutput("color 255 0 0") activator.gauge:AcceptInput("Display", _,activator) activator.textDescriptor:AddOutput("message 2000/2000 [Uber| Break The Oath]") activator.textDescriptor:AddOutput("color 255 0 0") activator.textDescriptor:AcceptInput("Display", _,activator) activator.Uber = 0 activator:SetAttributeValue("effect cond override", 14393) activator:SetAttributeValue("Set DamageType Ignite", 3) local UberEvent = AddEventCallback("player_chargedeployed", function(eventTable) -- PrintTable(eventTable) local uber = ents.GetPlayerByUserId(eventTable.userid) -- util.PrintToChatAll(uber) if uber.Uber == 0 then uber:AcceptInput("$PlaySoundToSelf", "vo/medic_sf13_influx_big02.mp3") uber:AcceptInput("$PlaySoundToSelf", "misc/halloween/spell_overheal.wav") uber.damageMeter = 0 uber.gauge:AddOutput("message ▱▱▱") uber.gauge:AddOutput("color 255 0 0") uber.gauge:AcceptInput("Display", _,uber) uber.textDescriptor:AddOutput("message "..tostring(uber.damageMeter).."/200 [No Passives]") uber.textDescriptor:AcceptInput("Display", _,uber) uber.Uber = 1 else print("already ubered") end return ACTION_CONTINUE end) end end --//////////////////////////////////////////////// --=============[THE BLAST-BASH DASH-BACK]=============== --////// function demoShieldVariables(_, activator) activator.dashCount = 3 activator.revertCount = 0 -- activator.revertCountMelee = 0 if activator.req ~= 1 then activator:AcceptInput("$DisplayTextChat", "{red}If you dont see UI of 3 green bars. Please re-equip the weapon") local blastDamage = "bashDamage"..tostring(PT_list) local blastParticle = "bashFX"..tostring(PT_list) local flingBack = "fling"..tostring(PT_list) local targetinfo = "targetFling"..tostring(PT_list) local meter = "meter"..tostring(PT_list) activator:AcceptInput("$AddItemAttribute", "Fire Input On Kill|popscript^$fillUpMeter|0") activator:AcceptInput("$AddItemAttribute", "Fire Input On Kill|popscript^$fillUpMeterMelee|2") ents.CreateWithKeys("trigger_hurt", { targetname = blastDamage, spawnflags = 1, damagetype = 64, damage = 300, filtername = "blurobots", startdisabled = 1, }) ents.CreateWithKeys("info_particle_system", { targetname = blastParticle, effect_name = "ExplosionCore_MidAir", startdisabled = 1, }) --//////////////////////////////////////// ents.CreateWithKeys("info_target", { targetname = targetinfo, ["$fakeparentoffset"] = "-60 0 65", }) ents.CreateWithKeys("trigger_catapult", { targetname = flingBack, LaunchTarget = targetinfo, spawnflags = 1, playerSpeed = 600, startdisabled = 1, }) ents.CreateWithKeys("game_text", { targetname = meter, -- spawnflags = 1, holdtime = 99999, color = "0 255 0", message = "▰▰▰", channel = 1, y = 0.52, x = -1, }) activator.bd = ents.FindByName(blastDamage) activator.bp = ents.FindByName(blastParticle) activator.fb = ents.FindByName(flingBack) activator.targetinfo = ents.FindByName(targetinfo) activator.meter = ents.FindByName(meter) activator.bd:SetSolid(2) activator.bd:AddOutput("mins -100 -100 -100") activator.bd:AddOutput("maxs 100 100 100") activator.bd:AcceptInput("SetOwner", activator) activator.fb:SetSolid(2) activator.fb:AddOutput("mins -10 -10 -10") activator.fb:AddOutput("maxs 10 10 10") -- activator.fb:AddOutput("LaunchTarget "..tostring(activator.targetinfo:GetName())) activator.bd:SetFakeParent(activator) activator.bp:SetFakeParent(activator) activator.fb:SetFakeParent(activator) activator.targetinfo:SetFakeParent(activator) activator.meter:AcceptInput("Display", _, activator) activator:AddCallback(ON_REMOVE, function() activator.bd:Remove() activator.bp:Remove() activator.fb:Remove() activator.meter:Remove() activator.targetinfo:Remove() activator.req = 0 -- util.PrintToChatAll(activator.req) end) activator:AddCallback(ON_SPAWN, function() activator.bd:Remove() activator.bp:Remove() activator.fb:Remove() activator.meter:Remove() activator.targetinfo:Remove() activator.req = 0 -- util.PrintToChatAll(activator.req) end) PT_list = PT_list + 1 activator.req = 1 else print("already created") activator.req = nil end end function blastBash(_, activator) local checkNetProps = activator:GetPlayerItemBySlot(LOADOUT_POSITION_PRIMARY) -- util.PrintToChatAll("HIT") -- util.PrintToChatAll(activator.bd:GetAbsAngles()) -- util.PrintToChatAll(activator.bp:GetAbsAngles()) activator.bd:AcceptInput("Enable") activator.bp:AcceptInput("Start") activator.fb:AcceptInput("Enable") timer.Simple(0.03, function() activator.bd:AcceptInput("Disable") activator.bp:AcceptInput("Stop") activator.fb:AcceptInput("Disable") end) if activator.dashCount == 3 then activator.meter:AddOutput("message ▰▰▱") activator.meter:AcceptInput("Display", _, activator) activator:SetAttributeValue("charge recharge rate increased", 999) activator:SetAttributeValue("faster reload rate", 0.05) activator:AddCond(32, 2) activator:AddCond(57, 1.5) activator:AddHealth(50, true) -- activator:AcceptInput("$RemoveItemAttribute", "Fire Input On Kill|0") -- activator:AcceptInput("$RemoveItemAttribute", "Fire Input On Kill|2") timer.Simple(1, function() activator:SetAttributeValue("charge recharge rate increased", nil) activator:SetAttributeValue("faster reload rate", nil) end) elseif activator.dashCount == 2 then activator.meter:AddOutput("message ▰▱▱") activator.meter:AcceptInput("Display", _, activator) activator:SetAttributeValue("charge recharge rate increased", 999) activator:SetAttributeValue("faster reload rate", 0.05) activator:AddCond(32, 2) activator:AddCond(57, 1.5) activator:AddHealth(50, true) timer.Simple(1, function() activator:SetAttributeValue("charge recharge rate increased", nil) activator:SetAttributeValue("faster reload rate", nil) end) elseif activator.dashCount == 1 then activator.meter:AddOutput("message ▱▱▱") activator.meter:AddOutput("color 255 0 0") activator.meter:AcceptInput("Display", _, activator) activator:SetAttributeValue("charge recharge rate increased", 999) activator:SetAttributeValue("faster reload rate", 0.05) activator:AddCond(32, 2) activator:AddCond(57, 1.5) timer.Simple(1, function() activator:SetAttributeValue("charge recharge rate increased", nil) activator:SetAttributeValue("faster reload rate", nil) end) activator.dashCount = 0 elseif activator.dashCount == 0 then print("no more dash") activator:SetAttributeValue("charge recharge rate increased", nil) -- activator:AcceptInput("$AddItemAttribute", "Fire Input On Kill|popscript^$fillUpMeter|0") -- activator:AcceptInput("$AddItemAttribute", "Fire Input On Kill|popscript^$fillUpMeterMelee|2") else print("no more dash") activator:SetAttributeValue("charge recharge rate increased", nil) -- activator:AcceptInput("$AddItemAttribute", "Fire Input On Kill|popscript^$fillUpMeter|0") -- activator:AcceptInput("$AddItemAttribute", "Fire Input On Kill|popscript^$fillUpMeterMelee|2") end if activator.dashCount ~= 0 then activator.dashCount = activator.dashCount - 1 else activator.dashCount = 0 end end function fillUpMeter(_, activator, caller) if activator.dashCount ~= 3 then if not caller:IsAlive() then activator.revertCount = activator.revertCount + 1 end if activator.revertCount >= 6 then activator.dashCount = activator.dashCount + 1 if activator.dashCount == 1 then activator.meter:AddOutput("message ▰▱▱") activator.meter:AddOutput("color 0 255 0") activator.meter:AcceptInput("Display", _, activator) elseif activator.dashCount == 2 then activator.meter:AddOutput("message ▰▰▱") activator.meter:AcceptInput("Display", _, activator) elseif activator.dashCount == 3 then activator.meter:AddOutput("message ▰▰▰") activator.meter:AcceptInput("Display", _, activator) end activator.revertCount = 0 end else print("filled up") end end function fillUpMeterMelee(_, activator, caller) -- util.PrintToChatAll("shing") if activator.dashCount ~= 3 then if not caller:IsAlive() then activator.revertCount = activator.revertCount + 2 -- util.PrintToChatAll(activator.revertCountMelee) end if activator.revertCount >= 6 then activator.dashCount = activator.dashCount + 1 if activator.dashCount == 1 then activator.meter:AddOutput("message ▰▱▱") activator.meter:AddOutput("color 0 255 0") activator.meter:AcceptInput("Display", _, activator) elseif activator.dashCount == 2 then activator.meter:AddOutput("message ▰▰▱") activator.meter:AcceptInput("Display", _, activator) elseif activator.dashCount == 3 then activator.meter:AddOutput("message ▰▰▰") activator.meter:AcceptInput("Display", _, activator) end activator.revertCount = 0 end end end --//////////////////////////////////////////////// --=============[THE DOPPLEGANGER]=============== --////// function spyVariables(_, activator) activator.alreadytriggered = 0 activator.killConfirmed = 0 activator.copyTarget = nil activator.hasDied = 0 activator.copyItems = {} end function sapperCopy(_, activator, caller) local classCheck = caller.m_iClass local targetHealth = caller.m_iHealth local isCrit = 0 activator.hasDied = 0 print(caller.tag) if caller:InCond(34) then isCrit = 1 end if classCheck ~= 8 then if classCheck ~= 9 then if activator.alreadytriggered ~= 1 then activator.alreadytriggered = 1 activator.copyItems = caller:GetAllItems() PrintTable(activator.copyItems) activator.copyTarget = caller print(activator.copyTarget) activator:AcceptInput("$DisplayTextChat", "{yellow}Marked!") ------------------------------------------------------------------------------------- caller:AddCallback(ON_DEATH, function() activator:AddCallback(ON_DEATH, function() activator:AcceptInput("$DisplayTextChat", "{red}Dead. Returning Back To Spy") activator.hasDied = 1 activator:SwitchClass(8) activator:RemoveAllCallbacks(ON_DEATH) end) caller:RemoveAllCallbacks(ON_DEATH) activator:AcceptInput("$DisplayTextChat", "{yellow}You Are Now {blue}"..tostring(caller:GetPlayerName())) activator.killConfirmed = 1 activator.alreadytriggered = 0 activator:SwitchClassInPlace(caller.m_iClass) timer.Simple(0.02, function() for i, items in pairs(activator.copyItems) do activator:GiveItem(activator.copyItems[i]:GetItemName(), activator.copyItems[i]:GetAllAttributeValues()) end end) activator:AcceptInput("SetCustomModelWithClassAnimations", tostring(caller.m_ModelName)) timer.Simple(0.1, function() if caller.m_bIsMiniBoss == 1 then activator.m_flModelScale = 1.5 if targetHealth < 3000 then activator:AddHealth(400, true) elseif targetHealth > 3000 then activator:AddHealth(600, true) end activator:SetAttributeValue("SET BONUS: move speed set bonus", 1) activator:SetAttributeValue("hidden primary max ammo bonus", 1.80) else activator:AddHealth(targetHealth, true) -- activator.m_flModelScale = caller.activator.m_flModelScale end if isCrit == 1 then activator:AddCond(16, 99) end end) timer.Simple(10, function() if activator.hasDied == 1 then return false end activator:AcceptInput("$DisplayTextChat", "{yellow}Reverting Back To Spy In 5 Seconds...") end) timer.Simple(20, function() if activator.hasDied == 1 then return false end activator:SetAttributeValue("SET BONUS: move speed set bonus", nil) activator:SetAttributeValue("hidden primary max ammo bonus", nil) if isCrit == 1 then activator:RemoveCond(34) end activator.m_flModelScale = 1 activator.killConfirmed = 0 isCrit = 0 activator:SwitchClassInPlace(8) activator:AcceptInput("SetCustomModelWithClassAnimations", "") end) end) -------------------------------------------------------------------------------------- timer.Simple(5, function() if activator.killConfirmed == 1 then return false end caller:RemoveAllCallbacks(ON_DEATH) activator:AcceptInput("$DisplayTextChat", "{Red} Target Was Not Killed") activator.alreadytriggered = 0 activator.copyItems = nil activator.copyTarget = nil isCrit = 0 end) end else activator:AcceptInput("$DisplayTextChat", "{Red}Spies and Engineers are invalid. Denied.") end else activator:AcceptInput("$DisplayTextChat", "{Red}Spies and Engineers are invalid. Denied.") end end function strongestMannVariables(_, activator) local count = "count"..PT_list activator.killReq = 0 activator:AcceptInput("$AddItemAttribute", "always crit|1|2") activator:AcceptInput("$AddItemAttribute", "slow enemy on hit major|3.0|1") activator:AcceptInput("$AddItemAttribute", "damage bonus|2.0|1") activator:AcceptInput("$AddItemAttribute", "minicritboost on kill|5.0|1") activator:AcceptInput("$AddPlayerAttribute", "fire input on taunt|popscript^$summonShield") activator:AcceptInput("$AddPlayerAttribute", "dmg taken from crit reduced|0.40") activator:AcceptInput("$AddPlayerAttribute", "gesture speed increase|2.5") activator:AcceptInput("$AddItemAttribute", "fire input on kill|popscript^$killMechanic|1") activator:AcceptInput("$AddItemAttribute", "fire input on kill|popscript^$killMechanic|2") ents.CreateWithKeys("game_text", { targetname = count, -- spawnflags = 1, holdtime = 99999, color = "255 0 0", message = "[Primal Protection] 0/10", channel = 1, y = 0.55, x = -1, }) activator.countID = ents.FindByName(count) timer.Simple(0.25, function() activator.countID:AcceptInput("Display",_, activator) end) activator:AddCallback(ON_SPAWN, function() util.PrintToChatAll("bye bye") activator:AcceptInput("$RemoveItemAttribute", "always crit|2") activator:AcceptInput("$RemoveItemAttribute", "slow enemy on hit major|1") activator:AcceptInput("$RemoveItemAttribute", "damage bonus|1") activator:AcceptInput("$RemoveItemAttribute", "minicritboost on kill|1") activator:AcceptInput("$RemovePlayerAttribute", "gesture speed increase") activator:AcceptInput("$RemovePlayerAttribute", "dmg taken from crit reduced") activator:AcceptInput("$RemoveItemAttribute", "fire input on kill|popscript^$killMechanic|1") activator:AcceptInput("$RemoveItemAttribute", "fire input on kill|popscript^$killMechanic|2") -- activator.countID:Remove() activator:RemoveAllCallbacks() end) activator:AddCallback(ON_DEATH, function() util.PrintToChatAll("bye bye") activator:AcceptInput("$RemoveItemAttribute", "always crit|2") activator:AcceptInput("$RemoveItemAttribute", "slow enemy on hit major|1") activator:AcceptInput("$RemoveItemAttribute", "damage bonus|1") activator:AcceptInput("$RemoveItemAttribute", "minicritboost on kill|1") activator:AcceptInput("$RemovePlayerAttribute", "gesture speed increase") activator:AcceptInput("$RemovePlayerAttribute", "dmg taken from crit reduced") activator:AcceptInput("$RemoveItemAttribute", "fire input on kill|popscript^$killMechanic|1") activator:AcceptInput("$RemoveItemAttribute", "fire input on kill|popscript^$killMechanic|2") -- activator.countID:Remove() activator:RemoveAllCallbacks() end) PT_list = PT_list + 1 end function killMechanic(_, activator) if activator.killReq < 10 then activator.killReq = activator.killReq + 1 activator.countID:AddOutput("message [Primal Protection] "..activator.killReq.."/10") activator.countID:AcceptInput("Display",_, activator) else print("full bar") activator.killReq = 10 activator.countID:AddOutput("message [Primal Protection] "..activator.killReq.."/10") activator.countID:AcceptInput("Display",_, activator) end end function summonShield(_, activator) local position = { translation = activator:GetAbsOrigin(), -- rotation = activator:GetAbsAngles(), } if activator.killReq == 10 then -- util.PrintToChatAll("Spawned") ents.SpawnTemplate("PP_Template", position) activator.killReq = 0 activator.countID:AddOutput("message [Primal Protection] 0/10") activator.countID:AcceptInput("Display",_, activator) end end