[Bug Fix] Add SE_MakeDrunk to avoid error message. (#2601)

* [Bug Fix] Add SE_MakeDrunk to avoid error message.

Currently sends error message about unknown spell effect ID.

* Message types cleanup.

* Update spdat.cpp
This commit is contained in:
Alex King 2022-11-30 22:09:59 -05:00 committed by GitHub
parent de7a632d67
commit dbba22b153
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 19 deletions

View File

@ -374,12 +374,15 @@ bool IsAEDurationSpell(uint16 spell_id)
There are plenty of spells with aoe_duration set at single digit numbers, but these
do not act as duration effects.
*/
if (IsValidSpell(spell_id) &&
if (
IsValidSpell(spell_id) &&
spells[spell_id].aoe_duration >= 2500 &&
( spells[spell_id].target_type == ST_AETarget ||
(
spells[spell_id].target_type == ST_AETarget ||
spells[spell_id].target_type == ST_UndeadAE ||
spells[spell_id].target_type == ST_AECaster ||
spells[spell_id].target_type == ST_Ring)
spells[spell_id].target_type == ST_Ring
)
) {
return true;
}
@ -1482,6 +1485,7 @@ bool IsInstrumentModAppliedToSpellEffect(int32 spell_id, int effect)
case SE_WaterBreathing:
case SE_ModelSize:
case SE_ChangeHeight:
case SE_MakeDrunk:
return false;
default:
return true;
@ -1495,11 +1499,13 @@ bool IsPulsingBardSong(int32 spell_id)
return false;
}
if (spells[spell_id].buff_duration == 0xFFFF ||
if (
spells[spell_id].buff_duration == 0xFFFF ||
spells[spell_id].recast_time > 0 ||
spells[spell_id].mana > 0 ||
IsEffectInSpell(spell_id, SE_TemporaryPets) ||
IsEffectInSpell(spell_id, SE_Familiar)) {
IsEffectInSpell(spell_id, SE_Familiar)
) {
return false;
}

View File

@ -894,7 +894,7 @@ typedef enum {
#define SE_SpellDamageShield 157 // implemented, @DS, causes non-melee damage on caster of a spell, base: Amt DS (negative), limit: none, max: unknown (same as base but +)
#define SE_Reflect 158 // implemented, @SpellMisc, reflect casted detrimental spell back at caster, base: chance pct, limit: resist modifier (positive value reduces resists), max: pct of base dmg mod (50=50pct of base)
#define SE_AllStats 159 // implemented
//#define SE_MakeDrunk 160 // *not implemented - Effect works entirely client side (Should check against tolerance)
#define SE_MakeDrunk 160 // *not implemented - Effect works entirely client side (Should check against tolerance)
#define SE_MitigateSpellDamage 161 // implemented, @Runes, mitigate incoming spell damage by percentage until rune fades, base: percent mitigation, limit: max dmg absorbed per hit, max: rune amt, Note: If placed on item or AA, will provide stackable percent mitigation.
#define SE_MitigateMeleeDamage 162 // implemented - rune with max value
#define SE_NegateAttacks 163 // implemented

View File

@ -129,10 +129,10 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
}
#ifdef SPELL_EFFECT_SPAM
Message(0, "You are affected by spell '%s' (id %d)", spell.name, spell_id);
Message(Chat::White, "You are affected by spell '%s' (id %d)", spell.name, spell_id);
if(buffslot >= 0)
{
Message(0, "Buff slot: %d Duration: %d tics", buffslot, buffs[buffslot].ticsremaining);
Message(Chat::White, "Buff slot: %d Duration: %d tics", buffslot, buffs[buffslot].ticsremaining);
}
#endif
@ -3072,6 +3072,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
case SE_ResistCold:
case SE_ResistFire:
case SE_AllStats:
case SE_MakeDrunk:
case SE_CHA:
case SE_WIS:
case SE_INT:
@ -3317,12 +3318,12 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
#ifdef SPELL_EFFECT_SPAM
snprintf(effect_desc, _EDLEN, "Unknown Effect ID %d", effect);
#else
Message(0, "Unknown spell effect %d in spell %s (id %d)", effect, spell.name, spell_id);
Message(Chat::White, "Unknown spell effect %d in spell %s (id %d)", effect, spell.name, spell_id);
#endif
}
}
#ifdef SPELL_EFFECT_SPAM
Message(0, ". . . Effect #%i: %s", i + 1, (effect_desc && effect_desc[0]) ? effect_desc : "Unknown");
Message(Chat::White, ". . . Effect #%i: %s", i + 1, (effect_desc && effect_desc[0]) ? effect_desc : "Unknown");
#endif
}
@ -6972,7 +6973,7 @@ bool Mob::TryDeathSave() {
HealAmt = GetMaxHP() - GetHP();
SetHP((GetHP()+HealAmt));
Message(263, "The gods have healed you for %i points of damage.", HealAmt);
Message(Chat::Emote, "The gods have healed you for %i points of damage.", HealAmt);
if(spellbonuses.DeathSave[SBIndex::DEATH_SAVE_TYPE] == 2)
entity_list.MessageCloseString(
@ -7011,7 +7012,7 @@ bool Mob::TryDeathSave() {
HealAmt = GetMaxHP() - GetHP();
SetHP((GetHP()+HealAmt));
Message(263, "The gods have healed you for %i points of damage.", HealAmt);
Message(Chat::Emote, "The gods have healed you for %i points of damage.", HealAmt);
if(spellbonuses.DeathSave[SBIndex::DEATH_SAVE_TYPE] == 2)
entity_list.MessageCloseString(