diff --git a/data/menu/nullifiedcat/misc/catbot.xml b/data/menu/nullifiedcat/misc/catbot.xml index 2fa07059..f874293b 100755 --- a/data/menu/nullifiedcat/misc/catbot.xml +++ b/data/menu/nullifiedcat/misc/catbot.xml @@ -56,6 +56,8 @@ + + diff --git a/src/hacks/Achievement.cpp b/src/hacks/Achievement.cpp index a8a40bab..832f85aa 100644 --- a/src/hacks/Achievement.cpp +++ b/src/hacks/Achievement.cpp @@ -35,6 +35,7 @@ static settings::Int equip_secondary{ "achievement.equip-secondary", "0" }; static settings::Int equip_melee{ "achievement.equip-melee", "0" }; static settings::Int equip_pda2{ "achievement.equip-pda2", "0" }; static settings::Boolean hat_troll{ "misc.nohatsforyou", "false" }; +static settings::Boolean auto_noisemaker{ "misc.auto-noisemaker", "false" }; bool checkachmngr() { @@ -182,6 +183,7 @@ static CatCommand get_sniper_items("achievement_sniper", "Get all sniper achieve }); static Timer accept_time{}; +static Timer equip_noisemaker{}; static Timer cooldowm{}; static Timer cooldown_2{}; static CatCommand get_best_hats("achievement_cathats", "Get and equip the bencat hats", []() { @@ -212,6 +214,13 @@ bool equip_item(int clazz, int slot, int id) } return false; } +bool equip_action_item(int action_item, std::pair classes) +{ + for (int i = classes.first; i <= classes.second; i++) + if (!equip_item(i, 9, action_item)) + return false; + return true; +} bool equip_hats_fn(std::vector hats, std::pair classes) { @@ -310,6 +319,28 @@ void Paint() if (!accept_time.check(5000) && cooldowm.test_and_set(500)) g_IEngine->ClientCmd_Unrestricted("cl_trigger_first_notification"); + // Noisemaker code + if (auto_noisemaker && equip_noisemaker.test_and_set(60000)) + { + // Inventory Manager + auto invmng = re::CTFInventoryManager::GTFInventoryManager(); + // Inventory + auto inv = invmng->GTFPlayerInventory(); + + // No Noisemaker in inventory? + if (!inv->GetFirstItemOfItemDef(673) && !inv->GetFirstItemOfItemDef(536)) + accept_time.update(); + else + { + bool success = equip_action_item(673, { tf_scout, tf_engineer }); + if (!success) + { + success = equip_action_item(536, { tf_scout, tf_engineer }); + if (!success) + logging::Info("Bruh moment while equipping noisemaker"); + } + } + } // Hat equip code if (equip_hats) {