diff --git a/extensions/tf2/AMBuilder b/extensions/tf2/AMBuilder index ffd8f1e168..bf4dfffcca 100644 --- a/extensions/tf2/AMBuilder +++ b/extensions/tf2/AMBuilder @@ -19,6 +19,7 @@ if 'tf2' in SM.sdks: 'teleporter.cpp', 'gameplayrules.cpp', 'conditions.cpp', + 'constmanager.cpp', '../../public/smsdk_ext.cpp' ] binary.compiler.defines += ['HAVE_STRING_H'] diff --git a/extensions/tf2/constmanager.cpp b/extensions/tf2/constmanager.cpp new file mode 100644 index 0000000000..9c7412de21 --- /dev/null +++ b/extensions/tf2/constmanager.cpp @@ -0,0 +1,180 @@ +#include "constmanager.h" +#include +class CTakeDamageInfo; +#define TF_MATCHMAKING_SHARED_H +#include +#include +#include + +template +inline void PopulateVar(IPluginRuntime* runtime, const char* name, T value) +{ + uint32_t idx; + if (runtime->FindPubvarByName(name, &idx) != SP_ERROR_NONE) + { + return; + } + sp_pubvar_t* var; + runtime->GetPubvarByIndex(idx, &var); + *var->offs = static_cast(value); +} + +void ConstManager::OnPluginLoaded(IPlugin* plugin) +{ + auto* runtime = plugin->GetRuntime(); + PopulateVar(runtime, "TF_COND_INVALID", TF_COND_INVALID); + PopulateVar(runtime, "TF_COND_AIMING", TF_COND_AIMING); + PopulateVar(runtime, "TF_COND_ZOOMED", TF_COND_ZOOMED); + PopulateVar(runtime, "TF_COND_DISGUISING", TF_COND_DISGUISING); + PopulateVar(runtime, "TF_COND_DISGUISED", TF_COND_DISGUISED); + PopulateVar(runtime, "TF_COND_STEALTHED", TF_COND_STEALTHED); + PopulateVar(runtime, "TF_COND_INVULNERABLE", TF_COND_INVULNERABLE); + PopulateVar(runtime, "TF_COND_TELEPORTED", TF_COND_TELEPORTED); + PopulateVar(runtime, "TF_COND_TAUNTING", TF_COND_TAUNTING); + PopulateVar(runtime, "TF_COND_INVULNERABLE_WEARINGOFF", TF_COND_INVULNERABLE_WEARINGOFF); + PopulateVar(runtime, "TF_COND_STEALTHED_BLINK", TF_COND_STEALTHED_BLINK); + PopulateVar(runtime, "TF_COND_SELECTED_TO_TELEPORT", TF_COND_SELECTED_TO_TELEPORT); + PopulateVar(runtime, "TF_COND_CRITBOOSTED", TF_COND_CRITBOOSTED); + PopulateVar(runtime, "TF_COND_TMPDAMAGEBONUS", TF_COND_TMPDAMAGEBONUS); + PopulateVar(runtime, "TF_COND_FEIGN_DEATH", TF_COND_FEIGN_DEATH); + PopulateVar(runtime, "TF_COND_PHASE", TF_COND_PHASE); + PopulateVar(runtime, "TF_COND_STUNNED", TF_COND_STUNNED); + PopulateVar(runtime, "TF_COND_OFFENSEBUFF", TF_COND_OFFENSEBUFF); + PopulateVar(runtime, "TF_COND_SHIELD_CHARGE", TF_COND_SHIELD_CHARGE); + PopulateVar(runtime, "TF_COND_DEMO_BUFF", TF_COND_DEMO_BUFF); + PopulateVar(runtime, "TF_COND_ENERGY_BUFF", TF_COND_ENERGY_BUFF); + PopulateVar(runtime, "TF_COND_RADIUSHEAL", TF_COND_RADIUSHEAL); + PopulateVar(runtime, "TF_COND_HEALTH_BUFF", TF_COND_HEALTH_BUFF); + PopulateVar(runtime, "TF_COND_BURNING", TF_COND_BURNING); + PopulateVar(runtime, "TF_COND_HEALTH_OVERHEALED", TF_COND_HEALTH_OVERHEALED); + PopulateVar(runtime, "TF_COND_URINE", TF_COND_URINE); + PopulateVar(runtime, "TF_COND_BLEEDING", TF_COND_BLEEDING); + PopulateVar(runtime, "TF_COND_DEFENSEBUFF", TF_COND_DEFENSEBUFF); + PopulateVar(runtime, "TF_COND_MAD_MILK", TF_COND_MAD_MILK); + PopulateVar(runtime, "TF_COND_MEGAHEAL", TF_COND_MEGAHEAL); + PopulateVar(runtime, "TF_COND_REGENONDAMAGEBUFF", TF_COND_REGENONDAMAGEBUFF); + PopulateVar(runtime, "TF_COND_MARKEDFORDEATH", TF_COND_MARKEDFORDEATH); + PopulateVar(runtime, "TF_COND_NOHEALINGDAMAGEBUFF", TF_COND_NOHEALINGDAMAGEBUFF); + PopulateVar(runtime, "TF_COND_SPEED_BOOST", TF_COND_SPEED_BOOST); + PopulateVar(runtime, "TF_COND_CRITBOOSTED_PUMPKIN", TF_COND_CRITBOOSTED_PUMPKIN); + PopulateVar(runtime, "TF_COND_CRITBOOSTED_USER_BUFF", TF_COND_CRITBOOSTED_USER_BUFF); + PopulateVar(runtime, "TF_COND_CRITBOOSTED_DEMO_CHARGE", TF_COND_CRITBOOSTED_DEMO_CHARGE); + PopulateVar(runtime, "TF_COND_SODAPOPPER_HYPE", TF_COND_SODAPOPPER_HYPE); + PopulateVar(runtime, "TF_COND_CRITBOOSTED_FIRST_BLOOD", TF_COND_CRITBOOSTED_FIRST_BLOOD); + PopulateVar(runtime, "TF_COND_CRITBOOSTED_BONUS_TIME", TF_COND_CRITBOOSTED_BONUS_TIME); + PopulateVar(runtime, "TF_COND_CRITBOOSTED_CTF_CAPTURE", TF_COND_CRITBOOSTED_CTF_CAPTURE); + PopulateVar(runtime, "TF_COND_CRITBOOSTED_ON_KILL", TF_COND_CRITBOOSTED_ON_KILL); + PopulateVar(runtime, "TF_COND_CANNOT_SWITCH_FROM_MELEE", TF_COND_CANNOT_SWITCH_FROM_MELEE); + PopulateVar(runtime, "TF_COND_DEFENSEBUFF_NO_CRIT_BLOCK", TF_COND_DEFENSEBUFF_NO_CRIT_BLOCK); + PopulateVar(runtime, "TF_COND_REPROGRAMMED", TF_COND_REPROGRAMMED); + PopulateVar(runtime, "TF_COND_CRITBOOSTED_RAGE_BUFF", TF_COND_CRITBOOSTED_RAGE_BUFF); + PopulateVar(runtime, "TF_COND_DEFENSEBUFF_HIGH", TF_COND_DEFENSEBUFF_HIGH); + PopulateVar(runtime, "TF_COND_SNIPERCHARGE_RAGE_BUFF", TF_COND_SNIPERCHARGE_RAGE_BUFF); + PopulateVar(runtime, "TF_COND_DISGUISE_WEARINGOFF", TF_COND_DISGUISE_WEARINGOFF); + PopulateVar(runtime, "TF_COND_MARKEDFORDEATH_SILENT", TF_COND_MARKEDFORDEATH_SILENT); + PopulateVar(runtime, "TF_COND_DISGUISED_AS_DISPENSER", TF_COND_DISGUISED_AS_DISPENSER); + PopulateVar(runtime, "TF_COND_SAPPED", TF_COND_SAPPED); + PopulateVar(runtime, "TF_COND_INVULNERABLE_HIDE_UNLESS_DAMAGED", TF_COND_INVULNERABLE_HIDE_UNLESS_DAMAGED); + PopulateVar(runtime, "TF_COND_INVULNERABLE_USER_BUFF", TF_COND_INVULNERABLE_USER_BUFF); + PopulateVar(runtime, "TF_COND_HALLOWEEN_BOMB_HEAD", TF_COND_HALLOWEEN_BOMB_HEAD); + PopulateVar(runtime, "TF_COND_HALLOWEEN_THRILLER", TF_COND_HALLOWEEN_THRILLER); + PopulateVar(runtime, "TF_COND_RADIUSHEAL_ON_DAMAGE", TF_COND_RADIUSHEAL_ON_DAMAGE); + PopulateVar(runtime, "TF_COND_CRITBOOSTED_CARD_EFFECT", TF_COND_CRITBOOSTED_CARD_EFFECT); + PopulateVar(runtime, "TF_COND_INVULNERABLE_CARD_EFFECT", TF_COND_INVULNERABLE_CARD_EFFECT); + PopulateVar(runtime, "TF_COND_MEDIGUN_UBER_BULLET_RESIST", TF_COND_MEDIGUN_UBER_BULLET_RESIST); + PopulateVar(runtime, "TF_COND_MEDIGUN_UBER_BLAST_RESIST", TF_COND_MEDIGUN_UBER_BLAST_RESIST); + PopulateVar(runtime, "TF_COND_MEDIGUN_UBER_FIRE_RESIST", TF_COND_MEDIGUN_UBER_FIRE_RESIST); + PopulateVar(runtime, "TF_COND_MEDIGUN_SMALL_BULLET_RESIST", TF_COND_MEDIGUN_SMALL_BULLET_RESIST); + PopulateVar(runtime, "TF_COND_MEDIGUN_SMALL_BLAST_RESIST", TF_COND_MEDIGUN_SMALL_BLAST_RESIST); + PopulateVar(runtime, "TF_COND_MEDIGUN_SMALL_FIRE_RESIST", TF_COND_MEDIGUN_SMALL_FIRE_RESIST); + PopulateVar(runtime, "TF_COND_STEALTHED_USER_BUFF", TF_COND_STEALTHED_USER_BUFF); + PopulateVar(runtime, "TF_COND_MEDIGUN_DEBUFF", TF_COND_MEDIGUN_DEBUFF); + PopulateVar(runtime, "TF_COND_STEALTHED_USER_BUFF_FADING", TF_COND_STEALTHED_USER_BUFF_FADING); + PopulateVar(runtime, "TF_COND_BULLET_IMMUNE", TF_COND_BULLET_IMMUNE); + PopulateVar(runtime, "TF_COND_BLAST_IMMUNE", TF_COND_BLAST_IMMUNE); + PopulateVar(runtime, "TF_COND_FIRE_IMMUNE", TF_COND_FIRE_IMMUNE); + PopulateVar(runtime, "TF_COND_PREVENT_DEATH", TF_COND_PREVENT_DEATH); + PopulateVar(runtime, "TF_COND_MVM_BOT_STUN_RADIOWAVE", TF_COND_MVM_BOT_STUN_RADIOWAVE); + PopulateVar(runtime, "TF_COND_HALLOWEEN_SPEED_BOOST", TF_COND_HALLOWEEN_SPEED_BOOST); + PopulateVar(runtime, "TF_COND_HALLOWEEN_QUICK_HEAL", TF_COND_HALLOWEEN_QUICK_HEAL); + PopulateVar(runtime, "TF_COND_HALLOWEEN_GIANT", TF_COND_HALLOWEEN_GIANT); + PopulateVar(runtime, "TF_COND_HALLOWEEN_TINY", TF_COND_HALLOWEEN_TINY); + PopulateVar(runtime, "TF_COND_HALLOWEEN_IN_HELL", TF_COND_HALLOWEEN_IN_HELL); + PopulateVar(runtime, "TF_COND_HALLOWEEN_GHOST_MODE", TF_COND_HALLOWEEN_GHOST_MODE); + PopulateVar(runtime, "TF_COND_MINICRITBOOSTED_ON_KILL", TF_COND_MINICRITBOOSTED_ON_KILL); + PopulateVar(runtime, "TF_COND_OBSCURED_SMOKE", TF_COND_OBSCURED_SMOKE); + PopulateVar(runtime, "TF_COND_PARACHUTE_ACTIVE", TF_COND_PARACHUTE_ACTIVE); + PopulateVar(runtime, "TF_COND_BLASTJUMPING", TF_COND_BLASTJUMPING); + PopulateVar(runtime, "TF_COND_HALLOWEEN_KART", TF_COND_HALLOWEEN_KART); + PopulateVar(runtime, "TF_COND_HALLOWEEN_KART_DASH", TF_COND_HALLOWEEN_KART_DASH); + PopulateVar(runtime, "TF_COND_BALLOON_HEAD", TF_COND_BALLOON_HEAD); + PopulateVar(runtime, "TF_COND_MELEE_ONLY", TF_COND_MELEE_ONLY); + PopulateVar(runtime, "TF_COND_SWIMMING_CURSE", TF_COND_SWIMMING_CURSE); + PopulateVar(runtime, "TF_COND_FREEZE_INPUT", TF_COND_FREEZE_INPUT); + PopulateVar(runtime, "TF_COND_HALLOWEEN_KART_CAGE", TF_COND_HALLOWEEN_KART_CAGE); + PopulateVar(runtime, "TF_COND_RUNE_STRENGTH", TF_COND_RUNE_STRENGTH); + PopulateVar(runtime, "TF_COND_RUNE_HASTE", TF_COND_RUNE_HASTE); + PopulateVar(runtime, "TF_COND_RUNE_REGEN", TF_COND_RUNE_REGEN); + PopulateVar(runtime, "TF_COND_RUNE_RESIST", TF_COND_RUNE_RESIST); + PopulateVar(runtime, "TF_COND_RUNE_VAMPIRE", TF_COND_RUNE_VAMPIRE); + PopulateVar(runtime, "TF_COND_RUNE_REFLECT", TF_COND_RUNE_REFLECT); + PopulateVar(runtime, "TF_COND_RUNE_PRECISION", TF_COND_RUNE_PRECISION); + PopulateVar(runtime, "TF_COND_RUNE_AGILITY", TF_COND_RUNE_AGILITY); + PopulateVar(runtime, "TF_COND_GRAPPLINGHOOK", TF_COND_GRAPPLINGHOOK); + PopulateVar(runtime, "TF_COND_GRAPPLINGHOOK_SAFEFALL", TF_COND_GRAPPLINGHOOK_SAFEFALL); + PopulateVar(runtime, "TF_COND_GRAPPLINGHOOK_LATCHED", TF_COND_GRAPPLINGHOOK_LATCHED); + PopulateVar(runtime, "TF_COND_GRAPPLINGHOOK_BLEEDING", TF_COND_GRAPPLINGHOOK_BLEEDING); + PopulateVar(runtime, "TF_COND_AFTERBURN_IMMUNE", TF_COND_AFTERBURN_IMMUNE); + PopulateVar(runtime, "TF_COND_RUNE_KNOCKOUT", TF_COND_RUNE_KNOCKOUT); + PopulateVar(runtime, "TF_COND_RUNE_IMBALANCE", TF_COND_RUNE_IMBALANCE); + PopulateVar(runtime, "TF_COND_CRITBOOSTED_RUNE_TEMP", TF_COND_CRITBOOSTED_RUNE_TEMP); + PopulateVar(runtime, "TF_COND_PASSTIME_INTERCEPTION", TF_COND_PASSTIME_INTERCEPTION); + PopulateVar(runtime, "TF_COND_SWIMMING_NO_EFFECTS", TF_COND_SWIMMING_NO_EFFECTS); + PopulateVar(runtime, "TF_COND_PURGATORY", TF_COND_PURGATORY); + PopulateVar(runtime, "TF_COND_RUNE_KING", TF_COND_RUNE_KING); + PopulateVar(runtime, "TF_COND_RUNE_PLAGUE", TF_COND_RUNE_PLAGUE); + PopulateVar(runtime, "TF_COND_RUNE_SUPERNOVA", TF_COND_RUNE_SUPERNOVA); + PopulateVar(runtime, "TF_COND_PLAGUE", TF_COND_PLAGUE); + PopulateVar(runtime, "TF_COND_KING_BUFFED", TF_COND_KING_BUFFED); + PopulateVar(runtime, "TF_COND_TEAM_GLOWS", TF_COND_TEAM_GLOWS); + PopulateVar(runtime, "TF_COND_KNOCKED_INTO_AIR", TF_COND_KNOCKED_INTO_AIR); + PopulateVar(runtime, "TF_COND_COMPETITIVE_WINNER", TF_COND_COMPETITIVE_WINNER); + PopulateVar(runtime, "TF_COND_COMPETITIVE_LOSER", TF_COND_COMPETITIVE_LOSER); + PopulateVar(runtime, "TF_COND_HEALING_DEBUFF", TF_COND_HEALING_DEBUFF); + PopulateVar(runtime, "TF_COND_PASSTIME_PENALTY_DEBUFF", TF_COND_PASSTIME_PENALTY_DEBUFF); + PopulateVar(runtime, "TF_COND_GRAPPLED_TO_PLAYER", TF_COND_GRAPPLED_TO_PLAYER); + PopulateVar(runtime, "TF_COND_GRAPPLED_BY_PLAYER", TF_COND_GRAPPLED_BY_PLAYER); + PopulateVar(runtime, "TF_COND_PARACHUTE_DEPLOYED", TF_COND_PARACHUTE_DEPLOYED); + PopulateVar(runtime, "TF_COND_GAS", TF_COND_GAS); + PopulateVar(runtime, "TF_COND_BURNING_PYRO", TF_COND_BURNING_PYRO); + PopulateVar(runtime, "TF_COND_ROCKETPACK", TF_COND_ROCKETPACK); + PopulateVar(runtime, "TF_COND_LOST_FOOTING", TF_COND_LOST_FOOTING); + PopulateVar(runtime, "TF_COND_AIR_CURRENT", TF_COND_AIR_CURRENT); + PopulateVar(runtime, "TF_COND_HALLOWEEN_HELL_HEAL", TF_COND_HALLOWEEN_HELL_HEAL); + PopulateVar(runtime, "TF_COND_POWERUPMODE_DOMINANT", TF_COND_POWERUPMODE_DOMINANT); + PopulateVar(runtime, "TF_COND_IMMUNE_TO_PUSHBACK", TF_COND_IMMUNE_TO_PUSHBACK); + PopulateVar(runtime, "TF_COND_LAST", TF_COND_LAST); + + PopulateVar(runtime, "TFHoliday_Birthday", kHoliday_TFBirthday); + PopulateVar(runtime, "TFHoliday_Halloween", kHoliday_Halloween); + PopulateVar(runtime, "TFHoliday_Christmas", kHoliday_Christmas); + PopulateVar(runtime, "TFHoliday_CommunityUpdate", kHoliday_CommunityUpdate); + PopulateVar(runtime, "TFHoliday_EndOfTheLine", kHoliday_EOTL); + PopulateVar(runtime, "TFHoliday_ValentinesDay", kHoliday_Valentines); + PopulateVar(runtime, "TFHoliday_MeetThePyro", kHoliday_MeetThePyro); + PopulateVar(runtime, "TFHoliday_FullMoon", kHoliday_FullMoon); + PopulateVar(runtime, "TFHoliday_HalloweenOrFullMoon", kHoliday_HalloweenOrFullMoon); + PopulateVar(runtime, "TFHoliday_HalloweenOrFullMoonOrValentines", kHoliday_HalloweenOrFullMoonOrValentines); + PopulateVar(runtime, "TFHoliday_AprilFools", kHoliday_AprilFools); + PopulateVar(runtime, "TFHoliday_Soldier", kHoliday_Soldier); + PopulateVar(runtime, "TFHoliday_Summer", kHoliday_Summer); + + PopulateVar(runtime, "TFCOLLISION_GROUP_GRENADES", TF_COLLISIONGROUP_GRENADES); + PopulateVar(runtime, "TFCOLLISION_GROUP_OBJECT", TFCOLLISION_GROUP_OBJECT); + PopulateVar(runtime, "TFCOLLISION_GROUP_OBJECT_SOLIDTOPLAYERMOVEMENT", TFCOLLISION_GROUP_OBJECT_SOLIDTOPLAYERMOVEMENT); + PopulateVar(runtime, "TFCOLLISION_GROUP_COMBATOBJECT", TFCOLLISION_GROUP_COMBATOBJECT); + PopulateVar(runtime, "TFCOLLISION_GROUP_ROCKETS", TFCOLLISION_GROUP_ROCKETS); + PopulateVar(runtime, "TFCOLLISION_GROUP_RESPAWNROOMS", TFCOLLISION_GROUP_RESPAWNROOMS); + PopulateVar(runtime, "TFCOLLISION_GROUP_TANK", TFCOLLISION_GROUP_TANK); + PopulateVar(runtime, "TFCOLLISION_GROUP_ROCKET_BUT_NOT_WITH_OTHER_ROCKETS", TFCOLLISION_GROUP_ROCKET_BUT_NOT_WITH_OTHER_ROCKETS); +} \ No newline at end of file diff --git a/extensions/tf2/constmanager.h b/extensions/tf2/constmanager.h new file mode 100644 index 0000000000..93ed47a30c --- /dev/null +++ b/extensions/tf2/constmanager.h @@ -0,0 +1,11 @@ +#pragma once + +#include "smsdk_ext.h" + +class ConstManager : public IPluginsListener +{ +public: + ConstManager() = default; +public: // IPluginsListener + virtual void OnPluginLoaded(IPlugin *plugin) override; +}; \ No newline at end of file diff --git a/extensions/tf2/extension.cpp b/extensions/tf2/extension.cpp index 620eec5697..b289d81b99 100644 --- a/extensions/tf2/extension.cpp +++ b/extensions/tf2/extension.cpp @@ -113,8 +113,6 @@ bool TF2Tools::SDK_OnLoad(char *error, size_t maxlength, bool late) sharesys->AddNatives(myself, g_TFNatives); sharesys->RegisterLibrary(myself, "tf2"); - plsys->AddPluginsListener(this); - playerhelpers->RegisterCommandTargetProcessor(this); g_critForward = forwards->CreateForward("TF2_CalcIsAttackCritical", ET_Hook, 4, NULL, Param_Cell, Param_Cell, Param_String, Param_CellByRef); @@ -133,6 +131,9 @@ bool TF2Tools::SDK_OnLoad(char *error, size_t maxlength, bool late) g_HolidayManager.OnSDKLoad(late); + plsys->AddPluginsListener(&m_ConstsManager); + plsys->AddPluginsListener(this); + return true; } @@ -195,6 +196,7 @@ void TF2Tools::SDK_OnUnload() playerhelpers->UnregisterCommandTargetProcessor(this); plsys->RemovePluginsListener(this); + plsys->RemovePluginsListener(&m_ConstsManager); forwards->ReleaseForward(g_critForward); forwards->ReleaseForward(g_addCondForward); diff --git a/extensions/tf2/extension.h b/extensions/tf2/extension.h index d9b2233408..452c40070f 100644 --- a/extensions/tf2/extension.h +++ b/extensions/tf2/extension.h @@ -41,6 +41,7 @@ #include #include #include +#include "constmanager.h" namespace SourceMod { class ISDKTools; @@ -120,6 +121,7 @@ class TF2Tools : bool m_CondChecksEnabled; bool m_RulesDetoursEnabled; bool m_TeleportDetourEnabled; + ConstManager m_ConstsManager; }; enum TFClassType diff --git a/extensions/tf2/holiday.cpp b/extensions/tf2/holiday.cpp index 012cc150aa..e0374cf435 100644 --- a/extensions/tf2/holiday.cpp +++ b/extensions/tf2/holiday.cpp @@ -143,21 +143,6 @@ static inline void PopulateHolidayVar(IPluginRuntime *pRuntime, const char *pszN void HolidayManager::OnPluginLoaded(IPlugin *plugin) { HookIfNecessary(); - - auto *pRuntime = plugin->GetRuntime(); - PopulateHolidayVar(pRuntime, "TFHoliday_Birthday"); - PopulateHolidayVar(pRuntime, "TFHoliday_Halloween"); - PopulateHolidayVar(pRuntime, "TFHoliday_Christmas"); - PopulateHolidayVar(pRuntime, "TFHoliday_CommunityUpdate"); - PopulateHolidayVar(pRuntime, "TFHoliday_EndOfTheLine"); - PopulateHolidayVar(pRuntime, "TFHoliday_ValentinesDay"); - PopulateHolidayVar(pRuntime, "TFHoliday_MeetThePyro"); - PopulateHolidayVar(pRuntime, "TFHoliday_FullMoon"); - PopulateHolidayVar(pRuntime, "TFHoliday_HalloweenOrFullMoon"); - PopulateHolidayVar(pRuntime, "TFHoliday_HalloweenOrFullMoonOrValentines"); - PopulateHolidayVar(pRuntime, "TFHoliday_AprilFools"); - PopulateHolidayVar(pRuntime, "TFHoliday_Soldier"); - PopulateHolidayVar(pRuntime, "TFHoliday_Summer"); } void HolidayManager::OnPluginUnloaded(IPlugin *plugin) diff --git a/plugins/include/tf2.inc b/plugins/include/tf2.inc index 51e68a1c33..0616c56d97 100644 --- a/plugins/include/tf2.inc +++ b/plugins/include/tf2.inc @@ -210,8 +210,152 @@ enum TFCond TFCond_HalloweenHellHeal, // 128: Used when a player gets teleported to hell TFCond_PowerupModeDominant, // 129: Reduces effects of certain powerups TFCond_ImmuneToPushback // 130: Player is immune to pushback effects + + // OLD Enum. New TFCond should be added as constants like below }; +public const TFCond TF_COND_INVALID; +public const TFCond TF_COND_AIMING; +public const TFCond TF_COND_ZOOMED; +public const TFCond TF_COND_DISGUISING; +public const TFCond TF_COND_DISGUISED; +public const TFCond TF_COND_STEALTHED; +public const TFCond TF_COND_INVULNERABLE; +public const TFCond TF_COND_TELEPORTED; +public const TFCond TF_COND_TAUNTING; +public const TFCond TF_COND_INVULNERABLE_WEARINGOFF; +public const TFCond TF_COND_STEALTHED_BLINK; +public const TFCond TF_COND_SELECTED_TO_TELEPORT; +public const TFCond TF_COND_CRITBOOSTED; +public const TFCond TF_COND_TMPDAMAGEBONUS; +public const TFCond TF_COND_FEIGN_DEATH; +public const TFCond TF_COND_PHASE; +public const TFCond TF_COND_STUNNED; +public const TFCond TF_COND_OFFENSEBUFF; +public const TFCond TF_COND_SHIELD_CHARGE; +public const TFCond TF_COND_DEMO_BUFF; +public const TFCond TF_COND_ENERGY_BUFF; +public const TFCond TF_COND_RADIUSHEAL; +public const TFCond TF_COND_HEALTH_BUFF; +public const TFCond TF_COND_BURNING; +public const TFCond TF_COND_HEALTH_OVERHEALED; +public const TFCond TF_COND_URINE; +public const TFCond TF_COND_BLEEDING; +public const TFCond TF_COND_DEFENSEBUFF; +public const TFCond TF_COND_MAD_MILK; +public const TFCond TF_COND_MEGAHEAL; +public const TFCond TF_COND_REGENONDAMAGEBUFF; +public const TFCond TF_COND_MARKEDFORDEATH; +public const TFCond TF_COND_NOHEALINGDAMAGEBUFF; +public const TFCond TF_COND_SPEED_BOOST; +public const TFCond TF_COND_CRITBOOSTED_PUMPKIN; +public const TFCond TF_COND_CRITBOOSTED_USER_BUFF; +public const TFCond TF_COND_CRITBOOSTED_DEMO_CHARGE; +public const TFCond TF_COND_SODAPOPPER_HYPE; +public const TFCond TF_COND_CRITBOOSTED_FIRST_BLOOD; +public const TFCond TF_COND_CRITBOOSTED_BONUS_TIME; +public const TFCond TF_COND_CRITBOOSTED_CTF_CAPTURE; +public const TFCond TF_COND_CRITBOOSTED_ON_KILL; +public const TFCond TF_COND_CANNOT_SWITCH_FROM_MELEE; +public const TFCond TF_COND_DEFENSEBUFF_NO_CRIT_BLOCK; +public const TFCond TF_COND_REPROGRAMMED; +public const TFCond TF_COND_CRITBOOSTED_RAGE_BUFF; +public const TFCond TF_COND_DEFENSEBUFF_HIGH; +public const TFCond TF_COND_SNIPERCHARGE_RAGE_BUFF; +public const TFCond TF_COND_DISGUISE_WEARINGOFF; +public const TFCond TF_COND_MARKEDFORDEATH_SILENT; +public const TFCond TF_COND_DISGUISED_AS_DISPENSER; +public const TFCond TF_COND_SAPPED; +public const TFCond TF_COND_INVULNERABLE_HIDE_UNLESS_DAMAGED; +public const TFCond TF_COND_INVULNERABLE_USER_BUFF; +public const TFCond TF_COND_HALLOWEEN_BOMB_HEAD; +public const TFCond TF_COND_HALLOWEEN_THRILLER; +public const TFCond TF_COND_RADIUSHEAL_ON_DAMAGE; +public const TFCond TF_COND_CRITBOOSTED_CARD_EFFECT; +public const TFCond TF_COND_INVULNERABLE_CARD_EFFECT; +public const TFCond TF_COND_MEDIGUN_UBER_BULLET_RESIST; +public const TFCond TF_COND_MEDIGUN_UBER_BLAST_RESIST; +public const TFCond TF_COND_MEDIGUN_UBER_FIRE_RESIST; +public const TFCond TF_COND_MEDIGUN_SMALL_BULLET_RESIST; +public const TFCond TF_COND_MEDIGUN_SMALL_BLAST_RESIST; +public const TFCond TF_COND_MEDIGUN_SMALL_FIRE_RESIST; +public const TFCond TF_COND_STEALTHED_USER_BUFF; +public const TFCond TF_COND_MEDIGUN_DEBUFF; +public const TFCond TF_COND_STEALTHED_USER_BUFF_FADING; +public const TFCond TF_COND_BULLET_IMMUNE; +public const TFCond TF_COND_BLAST_IMMUNE; +public const TFCond TF_COND_FIRE_IMMUNE; +public const TFCond TF_COND_PREVENT_DEATH; +public const TFCond TF_COND_MVM_BOT_STUN_RADIOWAVE; +public const TFCond TF_COND_HALLOWEEN_SPEED_BOOST; +public const TFCond TF_COND_HALLOWEEN_QUICK_HEAL; +public const TFCond TF_COND_HALLOWEEN_GIANT; +public const TFCond TF_COND_HALLOWEEN_TINY; +public const TFCond TF_COND_HALLOWEEN_IN_HELL; +public const TFCond TF_COND_HALLOWEEN_GHOST_MODE; +public const TFCond TF_COND_MINICRITBOOSTED_ON_KILL; +public const TFCond TF_COND_OBSCURED_SMOKE; +public const TFCond TF_COND_PARACHUTE_ACTIVE; +public const TFCond TF_COND_BLASTJUMPING; +public const TFCond TF_COND_HALLOWEEN_KART; +public const TFCond TF_COND_HALLOWEEN_KART_DASH; +public const TFCond TF_COND_BALLOON_HEAD; +public const TFCond TF_COND_MELEE_ONLY; +public const TFCond TF_COND_SWIMMING_CURSE; +public const TFCond TF_COND_FREEZE_INPUT; +public const TFCond TF_COND_HALLOWEEN_KART_CAGE; +public const TFCond TF_COND_RUNE_STRENGTH; +public const TFCond TF_COND_RUNE_HASTE; +public const TFCond TF_COND_RUNE_REGEN; +public const TFCond TF_COND_RUNE_RESIST; +public const TFCond TF_COND_RUNE_VAMPIRE; +public const TFCond TF_COND_RUNE_REFLECT; +public const TFCond TF_COND_RUNE_PRECISION; +public const TFCond TF_COND_RUNE_AGILITY; +public const TFCond TF_COND_GRAPPLINGHOOK; +public const TFCond TF_COND_GRAPPLINGHOOK_SAFEFALL; +public const TFCond TF_COND_GRAPPLINGHOOK_LATCHED; +public const TFCond TF_COND_GRAPPLINGHOOK_BLEEDING; +public const TFCond TF_COND_AFTERBURN_IMMUNE; +public const TFCond TF_COND_RUNE_KNOCKOUT; +public const TFCond TF_COND_RUNE_IMBALANCE; +public const TFCond TF_COND_CRITBOOSTED_RUNE_TEMP; +public const TFCond TF_COND_PASSTIME_INTERCEPTION; +public const TFCond TF_COND_SWIMMING_NO_EFFECTS; +public const TFCond TF_COND_PURGATORY; +public const TFCond TF_COND_RUNE_KING; +public const TFCond TF_COND_RUNE_PLAGUE; +public const TFCond TF_COND_RUNE_SUPERNOVA; +public const TFCond TF_COND_PLAGUE; +public const TFCond TF_COND_KING_BUFFED; +public const TFCond TF_COND_TEAM_GLOWS; +public const TFCond TF_COND_KNOCKED_INTO_AIR; +public const TFCond TF_COND_COMPETITIVE_WINNER; +public const TFCond TF_COND_COMPETITIVE_LOSER; +public const TFCond TF_COND_HEALING_DEBUFF; +public const TFCond TF_COND_PASSTIME_PENALTY_DEBUFF; +public const TFCond TF_COND_GRAPPLED_TO_PLAYER; +public const TFCond TF_COND_GRAPPLED_BY_PLAYER; +public const TFCond TF_COND_PARACHUTE_DEPLOYED; +public const TFCond TF_COND_GAS; +public const TFCond TF_COND_BURNING_PYRO; +public const TFCond TF_COND_ROCKETPACK; +public const TFCond TF_COND_LOST_FOOTING; +public const TFCond TF_COND_AIR_CURRENT; +public const TFCond TF_COND_HALLOWEEN_HELL_HEAL; +public const TFCond TF_COND_POWERUPMODE_DOMINANT; +public const TFCond TF_COND_IMMUNE_TO_PUSHBACK; +public const TFCond TF_COND_LAST; + +public const int TFCOLLISION_GROUP_GRENADES; +public const int TFCOLLISION_GROUP_OBJECT; +public const int TFCOLLISION_GROUP_OBJECT_SOLIDTOPLAYERMOVEMENT; +public const int TFCOLLISION_GROUP_COMBATOBJECT; +public const int TFCOLLISION_GROUP_ROCKETS; +public const int TFCOLLISION_GROUP_RESPAWNROOMS; +public const int TFCOLLISION_GROUP_TANK; +public const int TFCOLLISION_GROUP_ROCKET_BUT_NOT_WITH_OTHER_ROCKETS; + const float TFCondDuration_Infinite = -1.0; enum TFHoliday