[Bug Fix] Bind Sight will now function properly (#1825)

* start

* bind sight fixed

* Update spdat.h

* Update spells.cpp

* Search or jump to… Pull requests Issues Marketplace Explore   @KayenEQ  EQEmu / Server Public 60 338 290 Code Issues 106 Pull requests 11 Actions Projects 1 Wiki Security Insights [Bug Fix] Bind Sight will now function properly #1825  Open KayenEQ wants to merge 4 commits into EQEmu:master from KayenEQ:bindsightfix2  Open [Bug Fix] Bind Sight will now function properly
This commit is contained in:
KayenEQ 2021-11-25 10:16:28 -05:00 committed by GitHub
parent ba427c64ba
commit 1a5f48521d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 7 deletions

View File

@ -775,7 +775,7 @@ typedef enum {
//#define SE_CorpseBomb 70 // not used
#define SE_NecPet 71 // implemented
//#define SE_PreserveCorpse 72 // not used
#define SE_BindSight 73 // implemented
#define SE_BindSight 73 // implemented, @Vision, see through the eyes of your target, click off buff to end effect, base: 1, limit: none, max: none
#define SE_FeignDeath 74 // implemented
#define SE_VoiceGraft 75 // implemented
#define SE_Sentinel 76 // *not implemented?(just seems to send a message)

View File

@ -3986,8 +3986,9 @@ void Client::Handle_OP_BuffRemoveRequest(const EQApplicationPacket *app)
uint16 SpellID = m->GetSpellIDFromSlot(brrs->SlotID);
if (SpellID && IsBeneficialSpell(SpellID) && !spells[SpellID].no_remove)
if (SpellID && (IsBeneficialSpell(SpellID) || IsEffectInSpell(SpellID, SE_BindSight)) && !spells[SpellID].no_remove) {
m->BuffFadeBySlot(brrs->SlotID, true);
}
}
void Client::Handle_OP_Bug(const EQApplicationPacket *app)

View File

@ -1458,6 +1458,14 @@ void Mob::CastedSpellFinished(uint16 spell_id, uint32 target_id, CastingSlot slo
if(DeleteChargeFromSlot >= 0)
CastToClient()->DeleteItemInInventory(DeleteChargeFromSlot, 1, true);
if (IsClient() && IsEffectInSpell(spell_id, SE_BindSight)) {
for (int i = 0; i < GetMaxTotalSlots(); i++) {
if (buffs[i].spellid == spell_id) {
CastToClient()->SendBuffNumHitPacket(buffs[i], i);//its hack, it works.
}
}
}
//Check if buffs has numhits, then resend packet so it displays the hit count.
if (IsClient() && (spells[spell_id].buff_duration > 0 || spells[spell_id].short_buff_box)) {
for (int i = 0; i < GetMaxTotalSlots(); i++) {
@ -3655,11 +3663,7 @@ bool Mob::SpellOnTarget(uint16 spell_id, Mob *spelltar, int reflect_effectivenes
}
// select target
if // Bind Sight line of spells
(
spell_id == 500 || // bind sight
spell_id == 407 // cast sight
)
if (IsEffectInSpell(spell_id, SE_BindSight))
{
action->target = GetID();
}