mirror of
https://github.com/brues-code/nampower.git
synced 2026-10-10 07:30:01 +00:00
Adding new event for sending spell
This commit is contained in:
@@ -1441,6 +1441,8 @@ namespace game {
|
||||
|
||||
AURA_CAST_ON_SELF = 560,
|
||||
AURA_CAST_ON_OTHER = 561,
|
||||
|
||||
SPELL_SENDING_EVENT = 562,
|
||||
};
|
||||
|
||||
enum TypeMask {
|
||||
|
||||
@@ -1318,6 +1318,9 @@ namespace Nampower {
|
||||
char SPELL_DAMAGE_EVENT_OTHER[] = "SPELL_DAMAGE_EVENT_OTHER";
|
||||
addCustomEvent(game::SPELL_DAMAGE_EVENT_OTHER, SPELL_DAMAGE_EVENT_OTHER);
|
||||
|
||||
char SPELL_SENDING_EVENT[] = "SPELL_SENDING_EVENT";
|
||||
addCustomEvent(game::SPELL_SENDING_EVENT, SPELL_SENDING_EVENT);
|
||||
|
||||
char DEBUFF_ADDED_SELF[] = "DEBUFF_ADDED_SELF";
|
||||
addCustomEvent(game::DEBUFF_ADDED_SELF, DEBUFF_ADDED_SELF);
|
||||
|
||||
|
||||
@@ -344,6 +344,21 @@ namespace Nampower {
|
||||
delete[] guidStr;
|
||||
}
|
||||
|
||||
void
|
||||
TriggerSpellSendingEvent(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_SENDING_EVENT, // SPELL_SENDING_EVENT event we are adding
|
||||
format,
|
||||
spellId,
|
||||
guidStr);
|
||||
|
||||
delete[] guidStr;
|
||||
}
|
||||
|
||||
void clearCastingSpell() {
|
||||
// clearing current casting spell id if needed
|
||||
// this prevents client from failing to cast spells without a casttime
|
||||
@@ -1047,6 +1062,13 @@ namespace Nampower {
|
||||
}
|
||||
|
||||
void SendCastHook(hadesmem::PatchDetourBase *detour, game::SpellCast *cast, char unk) {
|
||||
|
||||
if (cast != nullptr && cast->itemTarget == 0 && cast->caster == game::ClntObjMgrGetActivePlayerGuid()) {
|
||||
const auto guid = cast->unitTarget;
|
||||
const auto spellId = cast->spellId;
|
||||
TriggerSpellSendingEvent(spellId, guid);
|
||||
}
|
||||
|
||||
auto const sendCast = detour->GetTrampolineT<SendCastT>();
|
||||
sendCast(cast, unk);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user