@@ -29,18 +29,19 @@ FunctionHook CCSPlayerPawnBase_PostThink("CCSPlayerPawnBase_PostThink", dyno::Ca
2929
3030bool OnClientChat (int playerid, std::string text, bool teamonly)
3131{
32- ClassData data ({ { " plugin_name" , std::string (" core" ) } }, " Event" , nullptr );
33- g_pluginManager.ExecuteEvent (" core" , " OnClientChat" , { playerid, text, teamonly }, & data);
32+ ClassData* data = new ClassData ({ { " plugin_name" , std::string (" core" ) } }, " Event" , nullptr );
33+ g_pluginManager.ExecuteEvent (" core" , " OnClientChat" , { playerid, text, teamonly }, data);
3434
3535 bool response = true ;
3636 try
3737 {
38- response = std::any_cast<bool >(data. GetAnyData (" event_return" ));
38+ response = std::any_cast<bool >(data-> GetAnyData (" event_return" ));
3939 }
4040 catch (std::bad_any_cast& e)
4141 {
4242 response = true ;
4343 }
44+ delete data;
4445
4546 return response;
4647}
@@ -52,18 +53,19 @@ void OnClientConvarQuery(int playerid, std::string convar_name, std::string conv
5253
5354dyno::ReturnAction Hook_CGameRules_TerminateRound (dyno::CallbackType type, dyno::IHook& hook)
5455{
55- ClassData data ({ { " plugin_name" , std::string (" core" ) } }, " Event" , nullptr );
56- g_pluginManager.ExecuteEvent (" core" , " OnTerminateRound" , std::vector<std::any>{ hook.getArgument <float >(1 ), hook.getArgument <uint32_t >(2 ) }, & data);
56+ ClassData* data = new ClassData ({ { " plugin_name" , std::string (" core" ) } }, " Event" , nullptr );
57+ g_pluginManager.ExecuteEvent (" core" , " OnTerminateRound" , std::vector<std::any>{ hook.getArgument <float >(1 ), hook.getArgument <uint32_t >(2 ) }, data);
5758
5859 bool response = true ;
5960 try
6061 {
61- response = std::any_cast<bool >(data. GetAnyData (" event_return" ));
62+ response = std::any_cast<bool >(data-> GetAnyData (" event_return" ));
6263 }
6364 catch (std::bad_any_cast& e)
6465 {
6566 response = true ;
6667 }
68+ delete data;
6769
6870 if (!response) return dyno::ReturnAction::Supercede;
6971
@@ -74,17 +76,17 @@ FunctionHook CGameRules_TerminateRound("CGameRules_TerminateRound", dyno::Callba
7476
7577dyno::ReturnAction Hook_CEntityIdentity_AcceptInput (dyno::CallbackType type, dyno::IHook& hook)
7678{
77- ClassData data ({ { " plugin_name" , std::string (" core" ) } }, " Event" , nullptr );
79+ ClassData* data = new ClassData ({ { " plugin_name" , std::string (" core" ) } }, " Event" , nullptr );
7880 ClassData* ThisPlayer = new ClassData ({ { " class_name" , std::string (" CEntityInstance" ) }, { " class_ptr" , (void *)(hook.getArgument <CEntityIdentity*>(0 )->m_pInstance ) } }, " SDKClass" , nullptr );
7981 ClassData* Activator = new ClassData ({ { " class_name" , std::string (" CEntityInstance" ) }, { " class_ptr" , (void *)(hook.getArgument <CEntityInstance*>(2 )) } }, " SDKClass" , nullptr );
8082 ClassData* Caller = new ClassData ({ { " class_name" , std::string (" CEntityInstance" ) }, { " class_ptr" , (void *)(hook.getArgument <CEntityInstance*>(3 )) } }, " SDKClass" , nullptr );
8183
82- g_pluginManager.ExecuteEvent (" core" , " OnEntityAcceptInput" , { ThisPlayer, hook.getArgument <CUtlSymbolLarge*>(1 )->String (), Activator, Caller, hook.getArgument <variant_t *>(4 )->ToString (), hook.getArgument <int >(5 ) }, & data);
84+ g_pluginManager.ExecuteEvent (" core" , " OnEntityAcceptInput" , { ThisPlayer, hook.getArgument <CUtlSymbolLarge*>(1 )->String (), Activator, Caller, hook.getArgument <variant_t *>(4 )->ToString (), hook.getArgument <int >(5 ) }, data);
8385
8486 bool response = true ;
8587 try
8688 {
87- response = std::any_cast<bool >(data. GetAnyData (" event_return" ));
89+ response = std::any_cast<bool >(data-> GetAnyData (" event_return" ));
8890 }
8991 catch (std::bad_any_cast& e)
9092 {
@@ -94,6 +96,7 @@ dyno::ReturnAction Hook_CEntityIdentity_AcceptInput(dyno::CallbackType type, dyn
9496 delete ThisPlayer;
9597 delete Activator;
9698 delete Caller;
99+ delete data;
97100
98101 if (!response) return dyno::ReturnAction::Supercede;
99102
@@ -120,17 +123,17 @@ dyno::ReturnAction Hook_CBaseEntity_TakeDamage(dyno::CallbackType type, dyno::IH
120123 if (attackerController) attackerid = attackerController.GetEntryIndex () - 1 ;
121124 }
122125
123- ClassData data ({ { " plugin_name" , std::string (" core" ) } }, " Event" , nullptr );
126+ ClassData* data = new ClassData ({ { " plugin_name" , std::string (" core" ) } }, " Event" , nullptr );
124127 ClassData* damageinfo = new ClassData ({ { " class_name" , std::string (" CTakeDamageInfo" ) }, { " class_ptr" , (void *)info } }, " SDKClass" , nullptr );
125128 ClassData* Inflictor = new ClassData ({ { " class_name" , std::string (" CBaseEntity" ) }, { " class_ptr" , (void *)(info->m_hInflictor .Get ()) } }, " SDKClass" , nullptr );
126129 ClassData* Ability = new ClassData ({ { " class_name" , std::string (" CBaseEntity" ) }, { " class_ptr" , (void *)(info->m_hAbility .Get ()) } }, " SDKClass" , nullptr );
127130
128- g_pluginManager.ExecuteEvent (" core" , " OnPlayerDamage" , { playerid, attackerid, damageinfo, Inflictor, Ability }, & data);
131+ g_pluginManager.ExecuteEvent (" core" , " OnPlayerDamage" , { playerid, attackerid, damageinfo, Inflictor, Ability }, data);
129132
130133 bool response = true ;
131134 try
132135 {
133- response = std::any_cast<bool >(data. GetAnyData (" event_return" ));
136+ response = std::any_cast<bool >(data-> GetAnyData (" event_return" ));
134137 }
135138 catch (std::bad_any_cast& e)
136139 {
@@ -140,6 +143,7 @@ dyno::ReturnAction Hook_CBaseEntity_TakeDamage(dyno::CallbackType type, dyno::IH
140143 delete damageinfo;
141144 delete Inflictor;
142145 delete Ability;
146+ delete data;
143147
144148 if (!response) return dyno::ReturnAction::Supercede;
145149
0 commit comments