mirror of
https://github.com/brues-code/nampower.git
synced 2026-10-20 20:00:48 +00:00
Merge pull request 'New event fo begin casting' (#12) from Mats391/nampower:BeginCastEvent into master
Reviewed-on: https://gitea.com/avitasia/nampower/pulls/12
This commit is contained in:
@@ -1443,6 +1443,8 @@ namespace game {
|
||||
|
||||
AURA_CAST_ON_SELF = 560,
|
||||
AURA_CAST_ON_OTHER = 561,
|
||||
|
||||
SPELL_BEGIN_CAST_EVENT = 562,
|
||||
};
|
||||
|
||||
enum TypeMask {
|
||||
|
||||
@@ -1332,6 +1332,9 @@ namespace Nampower {
|
||||
char SPELL_DAMAGE_EVENT_OTHER[] = "SPELL_DAMAGE_EVENT_OTHER";
|
||||
addCustomEvent(game::SPELL_DAMAGE_EVENT_OTHER, SPELL_DAMAGE_EVENT_OTHER);
|
||||
|
||||
char SPELL_BEGIN_CAST_EVENT[] = "SPELL_BEGIN_CAST_EVENT";
|
||||
addCustomEvent(game::SPELL_BEGIN_CAST_EVENT, SPELL_BEGIN_CAST_EVENT);
|
||||
|
||||
char DEBUFF_ADDED_SELF[] = "DEBUFF_ADDED_SELF";
|
||||
addCustomEvent(game::DEBUFF_ADDED_SELF, DEBUFF_ADDED_SELF);
|
||||
|
||||
|
||||
@@ -107,6 +107,21 @@ namespace Nampower {
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TriggerSpellBeginCastEvent(uint32_t spellId, std::uint64_t guid) {
|
||||
char format[] = "%d%s";
|
||||
char *guidStr = new char[21]; // 2 for 0x prefix, 18 for the number, and 1 for '\0'
|
||||
std::snprintf(guidStr, 21, "0x%016llX", static_cast<unsigned long long>(guid));
|
||||
|
||||
((int (__cdecl *)(int, char *, uint32_t, char *)) Offsets::SignalEventParam)(
|
||||
game::SPELL_BEGIN_CAST_EVENT, // SPELL_BEGIN_CAST_EVENT event we are adding
|
||||
format,
|
||||
spellId,
|
||||
guidStr);
|
||||
|
||||
delete[] guidStr;
|
||||
}
|
||||
|
||||
bool Spell_C_TargetSpellHook(hadesmem::PatchDetourBase *detour,
|
||||
uint32_t *player,
|
||||
uint32_t *spellId,
|
||||
@@ -236,6 +251,9 @@ namespace Nampower {
|
||||
}
|
||||
|
||||
gLastCastData.startTimeMs = currentTime;
|
||||
|
||||
|
||||
TriggerSpellBeginCastEvent(cast->spellId, cast->unitTarget);
|
||||
}
|
||||
|
||||
void CastQueuedNonGcdSpell() {
|
||||
@@ -1073,6 +1091,7 @@ namespace Nampower {
|
||||
}
|
||||
|
||||
void SendCastHook(hadesmem::PatchDetourBase *detour, game::SpellCast *cast, char unk) {
|
||||
|
||||
auto const sendCast = detour->GetTrampolineT<SendCastT>();
|
||||
sendCast(cast, unk);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user