wavenumber = 0 playerchickenlimit = 0 stopChickensRQ = 0 local models = { [1] = "models/bots/scout/bot_scout.mdl", [2] = "models/bots/sniper/bot_sniper.mdl", [3] = "models/bots/soldier/bot_soldier.mdl", [4] = "models/bots/demo/bot_demo.mdl", [5] = "models/bots/medic/bot_medic.mdl", [6] = "models/bots/heavy/bot_heavy.mdl", [7] = "models/bots/pyro/bot_pyro.mdl", [8] = "models/bots/pyro/bot_pyro.mdl", [9] = "models/bots/engineer/bot_engineer.mdl", } local class_string = { [1] = "Scout", [3] = "Soldier", [7] = "Pyro", [4] = "Demo", [6] = "Heavy", [9] = "Engineer", [5] = "Medic", [2] = "Sniper", [8] = "Spy", } local modelsGiant = { [1] = "models/bots/scout_boss/bot_scout_boss.mdl", [2] = "models/bots/sniper/bot_sniper.mdl", [3] = "models/bots/soldier_boss/bot_soldier_boss.mdl", [4] = "models/bots/demo_boss/bot_demo_boss.mdl", [5] = "models/bots/medic/bot_medic.mdl", [6] = "models/bots/heavy_boss/bot_heavy_boss.mdl", [7] = "models/bots/pyro_boss/bot_pyro_boss.mdl", [8] = "models/bots/pyro/bot_pyro.mdl", [9] = "models/bots/engineer/bot_engineer.mdl", } local playerGiants = { [1] = "models/bots/scout_boss/bot_scout_boss.mdl", [2] = "models/bots/sniper/bot_sniper.mdl", [3] = "models/bots/soldier_boss/bot_soldier_boss.mdl", [4] = "models/bots/demo_boss/bot_demo_boss.mdl", [5] = "models/bots/medic/bot_medic.mdl", [6] = "models/bots/heavy_boss/bot_heavy_boss.mdl", [7] = "models/bots/pyro_boss/bot_pyro_boss.mdl", [8] = "models/bots/spy/bot_spy.mdl", [9] = "models/bots/engineer/bot_engineer.mdl", } local carboard_design = { [1] = "models/props_training/target_scout.mdl", [2] = "models/props_training/target_sniper.mdl", [3] = "models/props_training/target_soldier.mdl", [4] = "models/props_training/target_demoman.mdl", [5] = "models/props_training/target_medic.mdl", [6] = "models/props_training/target_heavy.mdl", [7] = "models/props_training/target_pyro.mdl", [8] = "models/props_training/target_spy.mdl", [9] = "models/props_training/target_engineer.mdl", } playercheck = 0 pickedPowerUp = 0 pauseabilities = 1 function shuffleTable(t) local n = #t for i = n, 2, -1 do -- Pick a random index 'j' between 1 and 'i' (inclusive) local j = math.random(i) -- Swap the elements at positions 'i' and 'j' t[i], t[j] = t[j], t[i] end return t end function showplayer() for _, player in pairs(ents.GetAllPlayers()) do if player:IsRealPlayer() then player:AcceptInput("runscriptcode", "self.SetForceLocalDraw(true)") player:AcceptInput("SetScriptOverlayMaterial", "") if not player.shenaniganCosmetics == nil then for _, i in pairs(player.shenaniganCosmetics) do player.shenaniganCosmetics[i]:AcceptInput("$ShowTo", "!activator", player) end end end end end --//SHENANIGANS maxchickenspawnoutputs = 2 upgradelist = { --//TODO : FIX UP THE COSMETIC ----------------------------------------------------------------------- function(owner) --// CUT OUCH --// THE BASE FUNC FOR COSMETIC ADDING HERE print("power is implemented") local name = "cosmetic"..tostring(owner:GetHandleIndex()) owner:SetAttributeValue("CARD: move speed bonus", 1.50) owner:SetAttributeValue("damage force increase", 2) owner:SetAttributeValue("dmg taken increased", 1.30) owner:SetAttributeValue("can headshot", 1) if not owner.m_iClass == 2 then owner:SetAttributeValue("crit_dmg_falloff", 1) end owner:AcceptInput("SetCustomModelVisibleToSelf", 1) -- if owner.shenaniganCosmetics[1] == nil then print("CUTOUT should be made") table.insert(owner.shenaniganCosmetics, 1, ents.CreateWithKeys("prop_dynamic_override", { targetname = name, model = carboard_design[owner.m_iClass], modelscale = 0.65, solid = 0, skin = 0, disableshadows = 1, }) ) local hat = ents.CreateWithKeys("info_target", { targetname = "amonguser", }) hat:AcceptInput("SetParent", "!activator", owner) timer.Create(0.05, function() hat:SetAbsOrigin(owner:GetAbsOrigin()) hat:AcceptInput("SetParentAttachment", "partyhat") owner.shenaniganCosmetics[1]:AcceptInput("SetParent", "!activator", hat) owner.shenaniganCosmetics[1]:SetAbsOrigin(hat:GetAbsOrigin()) owner.shenaniganCosmetics[1]:AcceptInput("$SetLocalOrigin", "-21 0 -75") -- owner.shenaniganCosmetics[1]:AcceptInput("$HideTo", "!activator", owner) print(owner.shenaniganCosmetics[1].m_hMoveParent) print(owner.shenaniganCosmetics[1]:GetAbsOrigin()) print(hat:GetAbsOrigin()) end,1) -- timer.Simple(1, function() -- hat:SetAbsOrigin(owner:GetAbsOrigin()) -- hat:AcceptInput("SetParentAttachment", "partyhat") -- end) -- if not owner.wave1callback == nil then owner.wave1callback = owner:AddCallback(ON_SPAWN, function() print("should be reimplemented") owner:SetAttributeValue("CARD: move speed bonus", 1.50) owner:SetAttributeValue("damage force increase", 2) owner:SetAttributeValue("dmg taken increased", 1.30) owner:SetAttributeValue("can headshot", 1) if not owner.m_iClass == 2 then owner:SetAttributeValue("crit_dmg_falloff", 1) end owner:AcceptInput("SetCustomModelVisibleToSelf", 1) owner.shenaniganCosmetics[1]:SetModelOverride(carboard_design[owner.m_iClass]) timer.Create(0.02, function() hat:AcceptInput("SetParentAttachment", "partyhat") owner.shenaniganCosmetics[1]:SetAbsOrigin(hat:GetAbsOrigin()) end,1) end) -- end -- end end, --//THE CHICKENS function(owner) local name = "ello"..tostring(owner:GetHandleIndex()) owner.chickenCount = 1 owner.currentChickens = 0 owner:SetAttributeValue("max health additive bonus", 75) -- owner:SetAttributeValue("damage penalty on bodyshot", 0.75) owner:SetAttributeValue("move speed penalty", 0.90) owner:GiveItem("The Chicken Kiev", _, true, true) table.insert(owner.shenaniganCosmetics, 1, ents.CreateWithKeys("info_target", { targetname = name, }) ) owner.shenaniganCosmetics[1]:AcceptInput("SetParent", "!activator", owner) owner.shenaniganCosmetics[1]:SetAbsOrigin(owner:GetAbsOrigin()) if maxchickenspawnoutputs > 0 then owner.incubator = timer.Create(15, function() if pauseabilities == 0 and stopChickensRQ == 0 and owner:IsAlive() then if playerchickenlimit < 2 then if owner.currentChickens < owner.chickenCount then playerchickenlimit = playerchickenlimit + 1 local chicken = ents.CreateWithKeys("$tf_bot",{ ["=template"] = "Chickens", }) local chickenname = "chicken"..tostring(chicken:GetHandleIndex()) chicken:AcceptInput("$TeleportToEntity", owner) chicken:AddCallback(ON_DEATH, function() owner.currentChickens = owner.currentChickens - 1 playerchickenlimit = playerchickenlimit -1 chicken:RemoveAllCallbacks() end) timer.Simple(10, function() if chicken:IsAlive() then chicken:Suicide() end end) owner.currentChickens = owner.currentChickens + 1 else print("full chickens") end else print("too many player chickens") end else print("spawning is paused") end end,0) maxchickenspawnoutputs = maxchickenspawnoutputs - 1 end owner.wave1callback = owner:AddCallback(ON_SPAWN, function() owner:SetAttributeValue("max health additive bonus", 75) -- owner:SetAttributeValue("damage penalty on bodyshot", 0.75) owner:SetAttributeValue("move speed penalty", 0.90) owner:GiveItem("The Chicken Kiev", _, true, true) end) end, ------------------------------------------------------------------------- --//THE JACK OF ALL TRADES function(owner) local name = "baller"..tostring(owner:GetHandleIndex()) print("Name of your gun is : "..name) owner:SetAttributeValue("halloween increased jump height", 2.25) -- owner:SetAttributeValue("boots falling stomp", 1) owner:SetAttributeValue("increased air control", 2) owner:AcceptInput("$AddItemAttribute", "fire rate penalty|2.25|2") owner:AcceptInput("$AddItemAttribute", "custom item model|models/passtime/ball/passtime_ball.mdl|2") -- owner:GiveItem("Demoman's Fro",_,true,true) -- if owner.shenaniganCosmetics[1] == nil then print("BOMB SHOULD BE MADE") table.insert(owner.shenaniganCosmetics, 1, ents.CreateWithKeys("tf_point_weapon_mimic", { origin = "0 0 0", teamnum = 2, ["$weaponname"] = "baller" }) ) print(owner.shenaniganCosmetics[1]:GetName()) owner.shenaniganCosmetics[1]:AcceptInput("$SetOwner", owner) owner.shenaniganCosmetics[1]:AcceptInput("SetParent", "!activator", owner) -- end -- if owner.wave1callback == nil then owner.wave1callback = owner:AddCallback(ON_SPAWN, function() local name = "baller"..tostring(owner:GetHandleIndex()) print("PASSBALL should be reimplemented") -- owner:GiveItem("Demoman's Fro",_,true,true) owner:SetAttributeValue("halloween increased jump height", 2.25) owner:SetAttributeValue("increased air control", 2) owner:AcceptInput("$AddItemAttribute", "fire rate penalty|2.25|2") owner:AcceptInput("$AddItemAttribute", "custom item model|models/passtime/ball/passtime_ball.mdl|2") owner:AcceptInput("SetCustomModelVisibleToSelf", 1) end) owner:AddCallback(ON_DAMAGE_RECEIVED_POST, function(_, damageinfo) local playerInfo = { translation = owner:GetAbsOrigin(), } -- print(owner.m_hActiveWeapon) -- print(owner:GetPlayerItemBySlot(LOADOUT_POSITION_MELEE)) if owner.bullshitfixer == nil then owner.bullshitfixer = owner:GetAllItems() end if damageinfo.DamageType == 32 then if owner.m_hActiveWeapon == owner:GetPlayerItemBySlot(LOADOUT_POSITION_MELEE) or owner.m_hActiveWeapon == owner.bullshitfixer[7] or owner.m_hActiveWeapon == owner.bullshitfixer[8] then print("fall damage detected. triggering bombs") ents.SpawnTemplate("ballerattack",playerInfo) owner:AddHealth((damageinfo.Damage), false) end end end) -- end end, } upgradelist2 = { --//THE POWER OF MIKU function(owner) print("ULT IS READY") owner:SetAttributeValue("use original class weapon animations", 1) owner:SetAttributeValue("fire input on taunt", "popscript^$rikuTimer") print("Should copy anims") timer.Simple(0.2, function() owner:AcceptInput("SetCustomModelWithClassAnimations", "models/midnightmodels/scout.mdl") end) owner.rikumeter = 1 table.insert(owner.shenaniganCosmetics, 2, ents.CreateWithKeys("game_text", { targetname = meter, -- spawnflags = 1, holdtime = 99999, color = "0 255 0", message = "[TAUNT] ▰▰▰", channel = 1, y = 0.7, x = -1, }) ) owner.shenaniganCosmetics[2]:AcceptInput("Display", _, owner) owner.wave2callback = owner:AddCallback(ON_SPAWN, function() owner:SetAttributeValue("use original class weapon animations", 1) owner:SetAttributeValue("fire input on taunt", "popscript^$rikuTimer") print(owner.shenaniganCosmetics[2]) owner.shenaniganCosmetics[2]:AcceptInput("Display", _, owner) print("Should copy anims") timer.Simple(1, function() owner:AcceptInput("SetCustomModelWithClassAnimations", "models/midnightmodels/scout.mdl") owner.shenaniganCosmetics[2]:AcceptInput("Display", _, owner) end) end) end, --//WHAT THE FUCK IS A KILOMETER! function(owner) print("ULT IS READY") owner.kilometer = 1 owner:SetAttributeValue("fire input on taunt", "popscript^$KILOMETERWRATH") table.insert(owner.shenaniganCosmetics, 2, ents.CreateWithKeys("game_text", { targetname = "meter", -- spawnflags = 1, holdtime = 99999, color = "0 255 0", message = "[TAUNT] ▰▰▰", channel = 1, y = 0.7, x = -1, }) ) local pot = owner:GiveItem("Stainless Pot", _, true, true) pot.m_flModelScale = 1.25 owner.shenaniganCosmetics[2]:AcceptInput("Display", _, owner) owner.wave2callback = owner:AddCallback(ON_SPAWN, function() owner:SetAttributeValue("fire input on taunt", "popscript^$KILOMETERWRATH") local pot = owner:GiveItem("Stainless Pot", _, true, true) pot.m_flModelScale = 1.25 owner:SetAttributeValue("halloween reload time decreased", nil) owner.m_flModelScale = 1 print(owner.shenaniganCosmetics[2]) KILOMETERWRATH(_, owner) timer.Simple(1, function() owner.shenaniganCosmetics[2]:AcceptInput("Display", _, owner) end) end) end, --//GORDON????? function(owner) print("ULT IS READY") owner.gizmoMeter = 0 owner.randomizer = 0 owner:AcceptInput("SetCustomModelWithClassAnimations", "models/midnightmodels/player/engineer.mdl") table.insert(owner.shenaniganCosmetics, 2, ents.CreateWithKeys("game_text", { targetname = meter, -- spawnflags = 1, holdtime = 99999, color = "255 0 0", message = "▱▱▱", channel = 1, y = 0.7, x = -1, }) ) GIZMOCOUNT(_, owner) owner.shenaniganCosmetics[2]:AcceptInput("Display", _, owner) owner.wave2callback = owner:AddCallback(ON_SPAWN, function() owner:AcceptInput("SetCustomModelWithClassAnimations", "models/midnightmodels/player/engineer.mdl") -- for _, removeitem in pairs(owner:GetAllItems()) do -- if removeitem:GetClassname() == "tf_wearable" then -- print(removeitem) -- -- removeitem:HideTo(owner) -- end -- end -- print(owner.shenaniganCosmetics[2]) timer.Simple(1, function() owner.shenaniganCosmetics[2]:AcceptInput("Display", _, owner) end) end) end } upgradelist3 = { function(owner) print("rubberband is implemented") owner.recall = 1 local name = "coco"..tostring(owner:GetHandleIndex()) table.insert(owner.shenaniganCosmetics, 3, ents.CreateWithKeys("prop_dynamic_override", { targetname = name, model = "models/editor/playerstart.mdl", modelscale = 1, solid = 0, skin = 0, disableshadows = 1, }) ) owner.shenaniganCosmetics[3]:AcceptInput("$TeleportToEntity", owner) owner.shenaniganCosmetics[3].spinning = timer.Create(0.2, function() owner.shenaniganCosmetics[3]:SetAbsAngles(owner.shenaniganCosmetics[3]:GetAbsAngles() + Vector(0,15,0)) end,-1) owner.shenaniganCosmetics[3]:AddCallback(ON_REMOVE, function() timer.Stop(owner.shenaniganCosmetics[3].spinning) end) timer.Create(20, function() -- local checkforfloors = -- { -- start = owner, -- angles = Vector(90,0,0), -- mask = MASK_NPCWORLDSTATIC, -- distance = 8192 -- } -- local floor = util.Trace(checkforfloors) owner.currenthealth = owner.m_iHealth if owner:IsAlive() then owner.shenaniganCosmetics[3]:AcceptInput("$TeleportToEntity", owner) if owner.recall == 1 then owner:AcceptInput("$PlaySoundToSelf", "items/spawn_item.wav") end end end, -1) owner.wave3callback = owner:AddCallback(ON_DAMAGE_RECEIVED_PRE, function() local healthcheck = (owner.m_iMaxHealth / 2) print(healthcheck) if owner.recall == 1 and owner.m_iHealth < healthcheck then owner:AddCond(14, 3) owner.m_iHealth = owner.currenthealth owner.shenaniganCosmetics[3]:AcceptInput("$HideToAll") owner:AcceptInput("$TeleportToEntity", ents.FindByName(name)) owner:AcceptInput("$PlaySoundToSelf", "weapons/teleporter_send.wav") owner:AcceptInput("$DisplayTextHint", "Rubber-Banding. 20 Seconds Ago") owner.recall = 0 timer.Simple(23, function() owner.recall = 1 owner:AcceptInput("$DisplayTextHint", "Rubber-Band Reloaded") owner:AcceptInput("$PlaySoundToSelf", "ui/medic_alert.wav") owner.shenaniganCosmetics[3]:AcceptInput("$ShowToAll") end) end end) owner.wave3deathcallback = owner:AddCallback(ON_DEATH, function() owner.recall = 1 end) end, function(owner) table.insert(owner.shenaniganCosmetics, 3, ents.CreateWithKeys("info_target", { targetname = "baloneyphony", }) ) owner.hasTauntAggro = 1 end, function(owner) table.insert(owner.shenaniganCosmetics, 3, ents.CreateWithKeys("info_target", { targetname = "baloneyphony", }) ) owner:AcceptInput("AddItemAttribute", "mod shovel damage boost|1|0") owner:AcceptInput("AddItemAttribute", "mod shovel damage boost|1|1") owner:AcceptInput("AddItemAttribute", "mod shovel damage boost|1|2") owner:AcceptInput("AddItemAttribute", "mod shovel speed boost|1|0") owner:AcceptInput("AddItemAttribute", "mod shovel speed boost|1|1") owner:AcceptInput("AddItemAttribute", "mod shovel speed boost|1|2") owner.wave3callback = owner:AddCallback(ON_SPAWN, function() owner:AcceptInput("AddItemAttribute", "mod shovel damage boost|1|0") owner:AcceptInput("AddItemAttribute", "mod shovel damage boost|1|1") owner:AcceptInput("AddItemAttribute", "mod shovel damage boost|1|2") owner:AcceptInput("AddItemAttribute", "mod shovel speed boost|1|0") owner:AcceptInput("AddItemAttribute", "mod shovel speed boost|1|1") owner:AcceptInput("AddItemAttribute", "mod shovel speed boost|1|2") end) end, } -------------------------------------------- --//EXTRA FUNCTIONS HERE FOR THE SHENANIGANS -------------------------------------------- function KILOMETERWRATH(_, activator) if activator.kilometer == 1 then local playerInfo = { translation = activator:GetAbsOrigin(), } ents.SpawnTemplate("kilometer_power",playerInfo) if activator.hasTauntAggro == 1 then timer.Simple(0.1, function() ents.SpawnTemplate("taunt_aggro",playerInfo) print("angry bots fr") end) end activator:SetCustomModelWithClassAnimations(playerGiants[activator.m_iClass]) activator.m_flModelScale = 1.3 activator.kilometer = 0 activator:AddHealth(1000, true) activator:SetAttributeValue("halloween reload time decreased", 0.05) activator.kilocallback = activator:AddCallback(ON_DAMAGE_RECEIVED_POST, function() if activator.m_iHealth < activator.m_iMaxHealth then activator:AcceptInput("SetCustomModelWithClassAnimations", "") activator:SetAttributeValue("halloween reload time decreased", nil) activator.m_flModelScale = 1 activator:RemoveCallback(activator.kilocallback) end end) activator.shenaniganCosmetics[2]:AddOutput("message ▱▱▱") activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) timer.Simple(46, function() activator.shenaniganCosmetics[2]:AddOutput("message ▰▱▱") activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) end) timer.Simple(86, function() activator.shenaniganCosmetics[2]:AddOutput("message ▰▰▱") activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) end) timer.Simple(140, function() activator.shenaniganCosmetics[2]:AddOutput("message [TAUNT] ▰▰▰") activator.shenaniganCosmetics[2]:AddOutput("color 0 255 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) activator.kilometer = 1 end) else timer.Simple(1, function() activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) end) print("ult on cooldown") end end function rikuTimer(_, activator) if activator.rikumeter == 1 then local playerInfo = { translation = activator:GetAbsOrigin(), } ents.SpawnTemplate("riku_power",playerInfo) if activator.hasTauntAggro == 1 then timer.Simple(0.1, function() ents.SpawnTemplate("taunt_aggro",playerInfo) print("angry bots fr") end) end activator.rikumeter = 0 timer.Simple(0.75, function() activator:RemoveCond(7) end) activator.shenaniganCosmetics[2]:AddOutput("message ▱▱▱") activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) timer.Simple(20, function() activator.shenaniganCosmetics[2]:AddOutput("message ▰▱▱") activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) end) timer.Simple(50, function() activator.shenaniganCosmetics[2]:AddOutput("message ▰▰▱") activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) end) timer.Simple(80, function() activator.shenaniganCosmetics[2]:AddOutput("message [TAUNT] ▰▰▰") activator.shenaniganCosmetics[2]:AddOutput("color 0 255 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) activator.rikumeter = 1 end) else print("ult on cooldown") end end function rikuPOWER(_, activator) local boogie = math.random(3) if activator.m_flModelScale < 1.5 then if boogie == 1 then activator:AcceptInput("$TauntFromItem", "Taunt: Mannrobics") elseif boogie == 2 then activator:AcceptInput("$TauntFromItem", "Taunt: Kazotsky Kick") elseif boogie == 3 then activator:AcceptInput("$TauntFromItem", "Conga Taunt") end activator:SetAttributeValue("no_attack", 1) timer.Simple(6, function() activator:RemoveCond(7) activator:SetAttributeValue("no_attack", nil) end) end end -------------------------------------------- --THE MAIN WILDCARD FUCTION -------------------------------------------- function GIZMOCOUNT(_, activator) if wavenumber >= 2 then if activator.gizmoMeter == 0 then print("Should Be Displaying") timer.Simple(7, function() activator.shenaniganCosmetics[2]:AddOutput("message ▰▱▱") activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) end) timer.Simple(15, function() activator.shenaniganCosmetics[2]:AddOutput("message ▰▰▱") activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) end) timer.Simple(30, function() --math.random(4) activator.randomizer = math.random(3) activator.gizmoMeter = 1 SHOWGIZMO(_, activator) activator:AcceptInput("$PlaySoundToSelf", "ui/hint.wav") end) end end end function SHOWGIZMO(_, activator) if activator.randomizer == 1 then activator.shenaniganCosmetics[2]:AddOutput("message [BANANA]▰▰▰") activator.shenaniganCosmetics[2]:AddOutput("color 0 255 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) activator:SetAttributeValue("fire input on taunt", "popscript^$SUMMONGIZMO") elseif activator.randomizer == 2 then activator.shenaniganCosmetics[2]:AddOutput("message [PIANO]▰▰▰") activator.shenaniganCosmetics[2]:AddOutput("color 0 255 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) activator:SetAttributeValue("fire input on taunt", "popscript^$SUMMONGIZMO") elseif activator.randomizer == 3 then activator.shenaniganCosmetics[2]:AddOutput("message [MERASMUS]▰▰▰") activator.shenaniganCosmetics[2]:AddOutput("color 0 255 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) activator:SetAttributeValue("fire input on taunt", "popscript^$SUMMONGIZMO") -- elseif activator.randomizer == 4 then -- activator.shenaniganCosmetics[2]:AddOutput("message [DUPLICATOR]▰▰▰") -- activator.shenaniganCosmetics[2]:AddOutput("color 0 255 0") -- activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) -- activator:SetAttributeValue("fire input on taunt", "popscript^$SUMMONGIZMO") end end function SUMMONGIZMO(_, activator) if pauseabilities == 0 then activator.gizmoMeter = 0 local playerInfo = { translation = activator:GetAbsOrigin() } if activator.hasTauntAggro == 1 then timer.Simple(0.1, function() ents.SpawnTemplate("taunt_aggro",playerInfo) print("angry bots fr") end) end if activator.randomizer == 1 then --BANANA timer.Simple(0.5, function() activator:RemoveCond(7) end) ents.SpawnTemplate("wildcard_banana", playerInfo) activator:SetAttributeValue("fire input on taunt", nil) activator.shenaniganCosmetics[2]:AddOutput("message ▱▱▱") activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) GIZMOCOUNT(_, activator) elseif activator.randomizer == 2 then --PIANO timer.Simple(0.5, function() activator:RemoveCond(7) end) ents.SpawnTemplate("wildcard_piano", playerInfo) activator:SetAttributeValue("fire input on taunt", nil) activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AddOutput("message ▱▱▱") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) GIZMOCOUNT(_, activator) elseif activator.randomizer == 3 then --MERASMUS timer.Simple(0.5, function() activator:RemoveCond(7) end) ents.SpawnTemplate("wildcard_merasmus", playerInfo) activator:SetAttributeValue("fire input on taunt", nil) activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") activator.shenaniganCosmetics[2]:AddOutput("message ▱▱▱") activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) GIZMOCOUNT(_, activator) -- elseif activator.randomizer == 4 then --DUPLICATOR -- activator:SetAttributeValue("fire input on taunt", nil) -- activator:AcceptInput("$PlaySoundToSelf", "weapons/drg_wrench_teleport.wav") -- timer.Simple(2, function() -- activator:RemoveCond(7) -- end) -- local everyItem = activator:GetAllItems() -- local everyUpgrades = activator:GetAllAttributeValues(true) -- local jimmy = ents.CreateWithKeys("$tf_bot", { -- ["=class"] = class_string[activator.m_iClass], -- ["=Action"] = "Mobber", -- ["=Attributes"] = "IgnoreFlag", -- ["=UseHumanModel"] = 1, -- ["=Skill"] = "Hard", -- ["=Attributes"] = "HoldFireUntilFullReload", -- ["=Name"] = (activator:GetPlayerName().."'s Duplicate"), -- }) -- jimmy:TeleportToEntity(activator) -- jimmy:AddCond(43, -1) -- timer.Simple(0.1, function() -- for i, o in pairs(everyItem) do -- jimmy:GiveItem(everyItem[i]:GetItemName()) -- end -- for i, o in pairs(everyUpgrades) do -- jimmy:SetAttributeValue(i, o) -- end -- jimmy:SetAttributeValue("fire input on taunt", nil) -- jimmy:SetAttributeValue("fire input on kill", nil) -- end) -- activator.shenaniganCosmetics[2]:AddOutput("color 255 0 0") -- activator.shenaniganCosmetics[2]:AddOutput("message [KILL]▱▱▱") -- activator.shenaniganCosmetics[2]:AcceptInput("Display", _, activator) -- GIZMOCOUNT(_, activator) end end end --------------------------------------------- --WILDCARD GIZMO FUNCTIONS --------------------------------------------- function duplicator(_, activator, caller) if pauseabilities == 0 then if activator:IsRealPlayer() then print("point check") print(caller.duplicounts) local everyItem = activator:GetAllItems() local everyUpgrades = activator:GetAllAttributeValues(true) -- PrintTable(everyItem) -- PrintTable(everyUpgrades) local subject = ents.CreateWithKeys("$tf_bot", { ["=class"] = class_string[activator.m_iClass], ["=Action"] = "Mobber", ["=Attributes"] = "IgnoreFlag", ["=UseHumanModel"] = 1, ["=Skill"] = "Hard", ["=Attributes"] = "HoldFireUntilFullReload", ["=Name"] = (activator:GetPlayerName().."'s Duplicate"), teamnum = 2, }) subject:AcceptInput("$TeleportToEntity", caller) -- subject:AddCond(43, -1) timer.Simple(0.1, function() for i, o in pairs(everyItem) do subject:GiveItem(everyItem[i]:GetItemName()) end for i, o in pairs(everyUpgrades) do subject:SetAttributeValue(i, o) end subject:SetAttributeValue("fire input on taunt", nil) subject:SetAttributeValue("fire input on kill", nil) end) caller:AcceptInput("Disable") -- caller.m_hMoveChild:AcceptInput("SetPlaybackRate", 0.001) timer.Simple(5, function() caller:AcceptInput("Enable") -- caller.m_hMoveChild:AcceptInput("SetPlaybackRate", 1) end) caller.m_hMoveChild:AcceptInput("RemoveHealth", 999) end else print("Inbetween Wave. Not Summoning") end end function banana(_, activator, caller) local chances = math.random(13) print(chances) if chances < 10 then activator:StunPlayer(6, 0.01, TF_STUNFLAGS_LOSERSTATE, nil) activator:AcceptInput("RunScriptCode", "self.EmitSound(`General.banana_slip`)") else activator:AcceptInput("$TauntFromItem", "Taunt: The Victory Lap") activator:SetAttributeValue("no_attack", 1) timer.Simple(6, function() activator:SetAttributeValue("no_attack", nil) activator:RemoveCond(7) end) end caller.banana = caller.banana - 1 if caller.banana < 1 then local plop = ents.CreateWithKeys("info_particle_system", { effect_name = "peejar_impact", start_active = 0, }) plop:AcceptInput("$TeleportToEntity", caller) plop:AcceptInput("Start") timer.Simple(0.1, function() caller.m_hMoveChild:Remove() caller:Remove() plop:Remove() end) end end function merasmusAttack(_, activator) print("Firing Strike") local amountToCheck = 4 for _, player in pairs(ents.FindInSphere(activator:GetAbsOrigin(), 1500, "player")) do timer.Simple(0.15, function() if player.m_iTeamNum == 3 and amountToCheck > 1 and player:IsAlive() then -- print("Player Found") local playerInfo = { translation = player:GetAbsOrigin() } local shenanigans = ents.SpawnTemplate("merasmus_airstrike", playerInfo) -- shenanigans:AcceptInput("$SetOwner", activator.m_hMoveParent) amountToCheck = amountToCheck - 1 end end) end end ------------------------------------------------- --////////////////// ------------------------------------------------- clearupgrades = { function(owner) --CUT-OWCH owner:SetAttributeValue("CARD: move speed bonus", nil) owner:SetAttributeValue("damage force increase", nil) owner:SetAttributeValue("dmg taken increased", nil) owner:SetAttributeValue("increased air control", nil) owner:SetAttributeValue("can headshot", nil) owner:SetAttributeValue("crit_dmg_falloff", nil) owner:AcceptInput("SetCustomModelWithClassAnimations", "") print(owner:GetPlayerName().." reverted back to normal") owner:RemoveCallback(owner.wave1callback) if not owner.shenaniganChoices[1] == nil then owner.shenaniganCosmetics[1]:Kill() end end, function(owner) -- CHICKEN KIEV owner:SetAttributeValue("max health additive bonus", nil) owner:SetAttributeValue("damage penalty on bodyshot", nil) owner:SetAttributeValue("move speed penalty", nil) owner.m_flModelScale = 1 maxchickenspawnoutputs = maxchickenspawnoutputs + 1 owner:RemoveItem("The Chicken Kiev") owner:AcceptInput("SetCustomModelWithClassAnimations", "") print(owner:GetPlayerName().." reverted back to normal") owner:RemoveAllCallbacks() timer.Stop(owner.incubator) if not owner.shenaniganChoices[1] == nil then owner.shenaniganCosmetics[1]:Kill() end end, function(owner) -- JACK owner:SetAttributeValue("halloween increased jump height", nil) owner:AcceptInput("$RemoveItemAttribute", "fire input on attack") owner:AcceptInput("$RemoveItemAttribute", "fire rate penalty") owner:AcceptInput("$RemoveItemAttribute", "custom item model") owner:SetAttributeValue("boots falling stomp", nil) owner:AcceptInput("SetCustomModelWithClassAnimations", "") print(owner:GetPlayerName().." reverted back to normal") owner:RemoveAllCallbacks() owner.bullshitfixer = nil if not owner.shenaniganChoices[1] == nil then owner.shenaniganCosmetics[1]:Kill() end end, function(i) print("hi") end } clearupgrades2 = { function(owner) owner:RemoveCallback(owner.wave2callback) owner.shenaniganCosmetics[2]:Kill() activator.rikumeter = nil owner:AcceptInput("SetCustomModelWithClassAnimations", "") end, function(owner) owner:RemoveCallback(owner.wave2callback) owner.shenaniganCosmetics[2]:Kill() activator.kilometer = nil owner:AcceptInput("SetCustomModelWithClassAnimations", "") end, function(owner) owner:RemoveCallback(owner.wave2callback) owner.shenaniganCosmetics[2]:Kill() owner.gizmoMeter = nil owner:SetAttributeValue("fire input on kill", nil) owner:SetAttributeValue("fire input on taunt", nil) owner:AcceptInput("SetCustomModelWithClassAnimations", "") end } clearupgrades3 = { function(owner) owner.recall = nil owner.shenaniganCosmetics[3]:Kill() end, function(owner) owner:RemoveCallback(owner.wave3callback) owner:RemoveCallback(owner.wave3deathcallback) owner.hasTauntAggro = 0 owner.shenaniganCosmetics[3]:Kill() if not owner.shenaniganCosmetics[3].spinning == nil then timer.Stop(owner.shenaniganCosmetics[3].spinning) end -- activator.rikumeter = nil -- owner:AcceptInput("SetCustomModelWithClassAnimations", "") end, function(owner) owner:AcceptInput("RemoveItemAttribute", "mod shovel damage boost|0") owner:AcceptInput("RemoveItemAttribute", "mod shovel damage boost|1") owner:AcceptInput("RemoveItemAttribute", "mod shovel damage boost|2") owner.shenaniganCosmetics[3]:Kill() end } --//WEAPON SPECIFICS --//WAVE ONE. shenanigansMenu = { timeout = 0, title = "Pick your Shenanigan Card!", itemsPerPage = 3, flags = MENUFLAG_NO_SOUND, onSelect = function(voter, index) if wavenumber == 1 then if index == 1 and voter.hasPicked ~= 1 then table.insert(voter.shenaniganChoices, 1, function(owner) upgradelist[index](owner) end ) voter.shenaniganChoices[1](voter) voter:AcceptInput("SetScriptOverlayMaterial", "") for _, i in pairs(ents.GetAllPlayers()) do i:AcceptInput("$DisplayTextChat", voter:GetPlayerName() .." HAS CHOSEN {FFA500}CUT-OWCH!") end voter.hasPicked = 1 pickedPowerUp = pickedPowerUp + 1 voter:PlaySoundToSelf('ui/hint.wav') voter.powerWave1 = index voter:HideMenu() print(voter:GetPlayerName().. " has picked "..voter.hasPicked) print(voter.hasPicked) print(voter.powerWave1) --JACK-- elseif index == 3 and voter.hasPicked ~= 1 then table.insert(voter.shenaniganChoices, 1, function(owner) upgradelist[index](owner) end ) voter.shenaniganChoices[1](voter) voter:AcceptInput("SetScriptOverlayMaterial", "") for _, i in pairs(ents.GetAllPlayers()) do i:AcceptInput("$DisplayTextChat", voter:GetPlayerName() .." HAS CHOSEN {GREEN}SLAM-DUNK!") end voter.hasPicked = 1 pickedPowerUp = pickedPowerUp + 1 voter:PlaySoundToSelf('ui/hint.wav') voter.powerWave1 = index voter:HideMenu() print(voter:GetPlayerName().. " has picked "..voter.powerWave1) print(voter.hasPicked) print(voter.powerWave1) elseif index == 2 and voter.hasPicked ~= 1 then table.insert(voter.shenaniganChoices, 1, function(owner) upgradelist[index](owner) end ) voter.shenaniganChoices[1](voter) voter:AcceptInput("SetScriptOverlayMaterial", "") for _, i in pairs(ents.GetAllPlayers()) do i:AcceptInput("$DisplayTextChat", voter:GetPlayerName() .." HAS CHOSEN {RED}POOTIS-POWER!") end voter.hasPicked = 1 pickedPowerUp = pickedPowerUp + 1 voter:PlaySoundToSelf('ui/hint.wav') voter.powerWave1 = index voter:HideMenu() print(voter:GetPlayerName().. " has picked "..voter.powerWave1) print(voter.hasPicked) print(voter.powerWave1) end ------------------------------ --W A V E (2) ----------------------------- elseif wavenumber == 2 then if index == 1 and voter.hasPicked ~= 1 then table.insert(voter.shenaniganChoices, 2, function(owner) upgradelist2[1](owner) end ) voter.shenaniganChoices[2](voter) voter:AcceptInput("SetScriptOverlayMaterial", "") for _, i in pairs(ents.GetAllPlayers()) do i:AcceptInput("$DisplayTextChat", voter:GetPlayerName() .." HAS CHOSEN {RED}RIKU-RUKU!") end voter.hasPicked = 1 pickedPowerUp = pickedPowerUp + 1 voter:PlaySoundToSelf('ui/hint.wav') voter.powerWave2 = 1 voter:HideMenu() print(voter:GetPlayerName().. " has picked "..voter.hasPicked) print(voter.hasPicked) print(voter.powerWave2) --//////////////////////////////////////////// elseif index == 2 and voter.hasPicked ~= 1 then table.insert(voter.shenaniganChoices, 2, function(owner) upgradelist2[2](owner) end ) voter.shenaniganChoices[2](voter) voter:AcceptInput("SetScriptOverlayMaterial", "") for _, i in pairs(ents.GetAllPlayers()) do i:AcceptInput("$DisplayTextChat", voter:GetPlayerName() .." HAS CHOSEN {RESET} MANN-OF-STEEL!") end voter.hasPicked = 2 pickedPowerUp = pickedPowerUp + 1 voter:PlaySoundToSelf('ui/hint.wav') voter.powerWave2 = 2 voter:HideMenu() print(voter:GetPlayerName().. " has picked "..voter.hasPicked) print(voter.hasPicked) print(voter.powerWave2) elseif index == 3 and voter.hasPicked ~= 1 then table.insert(voter.shenaniganChoices, 2, function(owner) upgradelist2[3](owner) end ) voter.shenaniganChoices[2](voter) voter:AcceptInput("SetScriptOverlayMaterial", "") for _, i in pairs(ents.GetAllPlayers()) do i:AcceptInput("$DisplayTextChat", voter:GetPlayerName() .." HAS CHOSEN {GREEN} WILDCARD GIZMO!") end voter.hasPicked = 3 pickedPowerUp = pickedPowerUp + 1 voter:PlaySoundToSelf('ui/hint.wav') voter.powerWave2 = 3 voter:HideMenu() print(voter:GetPlayerName().. " has picked "..voter.hasPicked) print(voter.hasPicked) print(voter.powerWave2) end elseif wavenumber == 3 then if index == 1 and voter.hasPicked ~= 1 then table.insert(voter.shenaniganChoices, 3, function(owner) upgradelist3[index](owner) end ) voter.shenaniganChoices[3](voter) voter:AcceptInput("SetScriptOverlayMaterial", "") for _, i in pairs(ents.GetAllPlayers()) do i:AcceptInput("$DisplayTextChat", voter:GetPlayerName() .." HAS CHOSEN {RED}RUBBERBAND!") end voter.hasPicked = 1 pickedPowerUp = pickedPowerUp + 1 voter:PlaySoundToSelf('ui/hint.wav') voter.powerWave3 = 1 voter:HideMenu() print(voter:GetPlayerName().. " has picked "..voter.hasPicked) print(voter.hasPicked) print(voter.powerWave3) --//////////////////////////////////////////// elseif index == 2 and voter.hasPicked ~= 1 then table.insert(voter.shenaniganChoices, 3, function(owner) upgradelist3[2](owner) end ) voter.shenaniganChoices[3](voter) voter:AcceptInput("SetScriptOverlayMaterial", "") for _, i in pairs(ents.GetAllPlayers()) do i:AcceptInput("$DisplayTextChat", voter:GetPlayerName() .." HAS CHOSEN {RESET} TAUNT-AGGRO!") end voter.hasPicked = 2 pickedPowerUp = pickedPowerUp + 1 voter:PlaySoundToSelf('ui/hint.wav') voter.powerWave3 = 2 voter:HideMenu() print(voter:GetPlayerName().. " has picked "..voter.hasPicked) print(voter.hasPicked) print(voter.powerWave3) elseif index == 3 and voter.hasPicked ~= 1 then table.insert(voter.shenaniganChoices, 3, function(owner) upgradelist3[3](owner) end ) voter.shenaniganChoices[3](voter) voter:AcceptInput("SetScriptOverlayMaterial", "") for _, i in pairs(ents.GetAllPlayers()) do i:AcceptInput("$DisplayTextChat", voter:GetPlayerName() .." HAS CHOSEN {GREEN} EQUALIZING-ESCAPE!") end voter.hasPicked = 3 pickedPowerUp = pickedPowerUp + 1 voter:PlaySoundToSelf('ui/hint.wav') voter.powerWave3 = 3 voter:HideMenu() print(voter:GetPlayerName().. " has picked "..voter.hasPicked) print(voter.hasPicked) print(voter.powerWave3) end end end } --//Call the shenanigans function shenanigans1() print(playercheck) for _, player in pairs(ents.GetAllPlayers()) do if player:IsRealPlayer() and player.m_iTeamNum == 2 and wavenumber == 1 then player:AcceptInput("SetScriptOverlayMaterial", "shenanigans1_02") shenanigansMenu[1] = {text = "CUT-OWCH"} shenanigansMenu[2] = {text = "POOTIS-POWER"} shenanigansMenu[3] = {text = "SLAM DUNK"} timer.Simple(0.25, function() print("should be working"..player:GetPlayerName()) player:DisplayMenu(shenanigansMenu) end) elseif player:IsRealPlayer() and player.m_iTeamNum == 2 and wavenumber == 2 then player:AcceptInput("SetScriptOverlayMaterial", "shenanigans2_01") shenanigansMenu[1] = {text = "RIKU-RIKU"} shenanigansMenu[2] = {text = "MANN-OF-STEEL"} shenanigansMenu[3] = {text = "WILDCARD GIZMO"} timer.Simple(0.25, function() print("should be working"..player:GetPlayerName()) player:DisplayMenu(shenanigansMenu) end) elseif player:IsRealPlayer() and player.m_iTeamNum == 2 and wavenumber == 3 then -- player:AcceptInput("SetScriptOverlayMaterial", "shenanigans2_01") shenanigansMenu[1] = {text = "RUBBERBAND"} shenanigansMenu[2] = {text = "TAUNT-AGGRO"} shenanigansMenu[3] = {text = "EQUALIZING-ESCAPE"} timer.Simple(0.25, function() print("should be working"..player:GetPlayerName()) player:DisplayMenu(shenanigansMenu) end) end end local alsotimer = timer.Create(28, function() ents.FindByName("picked"):AcceptInput("Trigger") for _, i in pairs(ents.GetAllPlayers()) do i:HideMenu() if i:IsRealPlayer() then if i.hasPicked == 0 and i.m_iTeamNum == 2 then local choice = math.random(3) if choice == 1 then i:AcceptInput("$DisplayTextChat", i:GetPlayerName() .." WAS GIVEN A RANDOM CHOICE") i.powerWave1 = 1 elseif choice == 2 then i:AcceptInput("$DisplayTextChat", i:GetPlayerName() .." WAS GIVEN A RANDOM CHOICE") i.powerWave1 = 2 elseif choice == 3 then i:AcceptInput("$DisplayTextChat", i:GetPlayerName() .." WAS GIVEN A RANDOM CHOICE") i.powerWave1 = 3 end if wavenumber == 1 then table.insert(i.shenaniganChoices, 1, function(i) upgradelist[choice](i) end ) i.shenaniganChoices[1](i) elseif wavenumber == 2 then table.insert(i.shenaniganChoices, 2, function(i) upgradelist2[choice](i) end ) i.shenaniganChoices[2](i) elseif wavenumber == 3 then table.insert(i.shenaniganChoices, 2, function(i) upgradelist3[choice](i) end ) i.shenaniganChoices[3](i) end end end timer.Simple(1, function() ents.FindByName("pop_handle"):AcceptInput("$FinishWavespawn", "wave1display") ents.FindByName("pop_handle"):AcceptInput("$KillWavespawn", "wave1display") end) end finishedVoting = true end,1) allPickedered = timer.Create(0.2, function() if pickedPowerUp == playercheck then ents.FindByName("picked"):AcceptInput("Trigger") timer.Stop(alsotimer) pickedPowerUp = 0 finishedVoting = true timer.Simple(1, function() ents.FindByName("pop_handle"):AcceptInput("$FinishWavespawn", "wave1display") ents.FindByName("pop_handle"):AcceptInput("$KillWavespawn", "wave1display") end) end end,0) end function powerup() -- print("test") for _, player in pairs(ents.GetAllPlayers()) do player:AcceptInput("runscriptcode", "self.SetForceLocalDraw(false)") player:AcceptInput("SetScriptOverlayMaterial", "") -- if player:IsRealPlayer() and player.m_iTeamNum == 2 then -- player.shenaniganChoices[1](player) -- end end end ----------------------------------------- ----------------------------------------- --//ON WAVES HERE ----------------------------------------- function OnWaveStart(wave) pauseabilities = 0 print("Powers should be on now!") shuffleTable(models) shuffleTable(modelsGiant) playercheck = 0 for _, player in pairs(ents.GetAllPlayers()) do if player:IsRealPlayer() and player.m_iTeamNum == 2 then playercheck = playercheck + 1 end end -- checkup for _, i in pairs(models) do print(i) end if wave == 2 then for _, player in pairs(ents.GetAllPlayers()) do if player:IsRealPlayer() and player.m_iTeamNum == 2 then if player.powerWave1 == 0 then player.powerWave1 = math.random(3) table.insert(player.shenaniganChoices, 1, function(player) upgradelist[player.powerWave1](player) end ) player.shenaniganChoices[1](player) player:AcceptInput("$DisplayTextChat",player:GetPlayerName() .. "{CBC3E3} HAS BEEN GIVEN ".. (wave - 1).." SHENANIGANS FOR MISSING ".. (wave - 1).. " WAVES!") end end end elseif wave == 3 then for _, player in pairs(ents.GetAllPlayers()) do if player:IsRealPlayer() and player.m_iTeamNum == 2 then local count = 0 if player.powerWave1 == 0 then player.powerWave1 = math.random(3) table.insert(player.shenaniganChoices, 1, function(player) upgradelist[player.powerWave1](player) end ) player.shenaniganChoices[1](player) count = count + 1 end if player.powerWave2 == 0 then player.powerWave2 = math.random(3) table.insert(player.shenaniganChoices, 2, function(player) upgradelist2[player.powerWave2](player) end ) player.shenaniganChoices[2](player) count = count + 1 end player:AcceptInput("$DisplayTextChat",player:GetPlayerName() .. "{CBC3E3} HAS BEEN GIVEN ".. (count).." SHENANIGANS FOR MISSING ".. (count).. " WAVES!") end end end end function OnWaveSpawnBot(bot, wave, tags) for _, tag in pairs(tags) do if tag ~= "boss" or tag ~= "miku" then if tag == "bot" then -- print("small bot") bot:AcceptInput("SetCustomModelWithClassAnimations",models[bot.m_iClass]) bot:SetAttributeValue("use original class weapon animations", 1) bot:AcceptInput("$AddItemAttribute", "use original class weapon animations|1|0") bot:AcceptInput("$AddItemAttribute", "use original class weapon animations|1|1") bot:AcceptInput("$AddItemAttribute", "use original class weapon animations|1|2") elseif tag == "giant" then -- print("big bot") bot:AcceptInput("SetCustomModelWithClassAnimations",modelsGiant[bot.m_iClass]) bot:SetAttributeValue("use original class weapon animations", 1) bot:AcceptInput("$AddItemAttribute", "use original class weapon animations|1|0") bot:AcceptInput("$AddItemAttribute", "use original class weapon animations|1|1") bot:AcceptInput("$AddItemAttribute", "use original class weapon animations|1|2") end end end end function OnPlayerConnected(player) player.shenaniganChoices = {} player.shenaniganCosmetics = {} player.hasTauntAggro = 0 player.powerWave1 = 0 player.powerWave2 = 0 player.powerWave3 = 0 end function OnPlayerDisconnected(player) if player:IsRealPlayer() then print('player disconnect ', player) clearupgrades[player.powerWave1](player) clearupgrades2[player.powerWave2](player) clearupgrades3[player.powerWave3](player) end end function OnWaveSuccess() pickedPowerUp = 0 end -- function OnWaveReset(wave) -- -- for _, i in pairs(ents.FindAllByName("amonguser")) do -- -- if not i.m_hMoveParent:GetClassname() == "player" then -- -- i:kill() -- -- end -- -- end -- pauseabilities = 1 -- for _, player in pairs(ents.GetAllPlayers()) do -- if player:IsRealPlayer() then -- player:AcceptInput("runscriptcode", "self.SetForceLocalDraw(false)") -- player:AcceptInput("SetScriptOverlayMaterial", "") -- playercheck = playercheck + 1 -- player:HideMenu() -- end -- end -- pickedPowerUp = 0 -- if wave == 1 then -- for _, player in pairs(ents.GetAllPlayers()) do -- player.shenaniganChoices = {} -- player.shenaniganCosmetics = {} -- player.wave1callback = nil -- if player.hasPicked == 1 then -- clearupgrades[player.powerWave1](player) -- player.hasPicked = 0 -- print(player.hasPicked .. " picked reset") -- end -- end -- end -- print("wave reset") -- end function OnWaveInit(wave) ents.FindByName("menagery"):AcceptInput("Trigger") pickedPowerUp = 0 playercheck = 0 pauseabilities = 1 wavenumber = wave stopchickens = 0 playercheck = 0 for _, player in pairs(ents.GetAllPlayers()) do if player:IsRealPlayer() then player:HideMenu() playercheck = playercheck + 1 end end print("abilities are turned off") for _, player in pairs(ents.GetAllPlayers()) do if player:IsRealPlayer() then player:AcceptInput("runscriptcode", "self.SetForceLocalDraw(false)") player:AcceptInput("SetScriptOverlayMaterial", "") player.hasPicked = 0 player:HideMenu() print(player.hasPicked) end end if wave == 1 then print("killed off") for _, player in pairs(ents.GetAllPlayers()) do -- player.shenaniganChoices = {} -- player.shenaniganCosmetics = {} -- player.wave1callback = nil player:AcceptInput("SetCustomModelWithClassAnimations", "") -- if player.hasPicked == 1 then clearupgrades[player.powerWave1](player) clearupgrades2[player.powerWave2](player) clearupgrades3[player.powerWave3](player) print(player.hasPicked .. " picked reset") player.powerWave1 = 0 -- end end elseif wave == 2 then print("powers check!") for _, player in pairs(ents.GetAllPlayers()) do if player:IsRealPlayer() then -- if not player.shenaniganCosmetics == nil then -- for i, o in pairs(player.shenaniganCosmetics) do -- player.shenaniganCosmetics = {} -- end -- end player:AcceptInput("SetCustomModelWithClassAnimations", "") clearupgrades2[player.powerWave2](player) print(player.hasPicked .. " picked reset") timer.Create(0.05, function() print("reimplementing wave 1 buffs") player.shenaniganChoices[1](player) player.powerWave2 = 0 end,1) end end elseif wave == 3 then print("powers check!") for _, player in pairs(ents.GetAllPlayers()) do if player:IsRealPlayer() then -- if not player.shenaniganCosmetics == nil then -- for i, o in pairs(player.shenaniganCosmetics) do -- player.shenaniganCosmetics = {} -- end -- end print(player.hasPicked .. " picked reset") timer.Create(0.1, function() print("reimplementing wave 1 and 2 buffs") print("Player Wave 2 Power-Up : "..player.powerWave2) player.shenaniganChoices[1](player) player.shenaniganChoices[2](player) clearupgrades3[player.powerWave3](player) player.powerWave3 = 0 end,1) end end end end function stopchickens() stopChickensRQ = 1 end -- function killcheck(_, activator) -- print(activator:GetName() .. " should be removed") -- end