[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,13 +374,16 @@ bool IsAEDurationSpell(uint16 spell_id)
There are plenty of spells with aoe_duration set at single digit numbers, but these There are plenty of spells with aoe_duration set at single digit numbers, but these
do not act as duration effects. do not act as duration effects.
*/ */
if (IsValidSpell(spell_id) && if (
IsValidSpell(spell_id) &&
spells[spell_id].aoe_duration >= 2500 && 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_UndeadAE ||
spells[spell_id].target_type == ST_AECaster || spells[spell_id].target_type == ST_AECaster ||
spells[spell_id].target_type == ST_Ring) spells[spell_id].target_type == ST_Ring
) { )
) {
return true; return true;
} }
@ -1482,6 +1485,7 @@ bool IsInstrumentModAppliedToSpellEffect(int32 spell_id, int effect)
case SE_WaterBreathing: case SE_WaterBreathing:
case SE_ModelSize: case SE_ModelSize:
case SE_ChangeHeight: case SE_ChangeHeight:
case SE_MakeDrunk:
return false; return false;
default: default:
return true; return true;
@ -1495,11 +1499,13 @@ bool IsPulsingBardSong(int32 spell_id)
return false; return false;
} }
if (spells[spell_id].buff_duration == 0xFFFF || if (
spells[spell_id].recast_time> 0 || spells[spell_id].buff_duration == 0xFFFF ||
spells[spell_id].recast_time > 0 ||
spells[spell_id].mana > 0 || spells[spell_id].mana > 0 ||
IsEffectInSpell(spell_id, SE_TemporaryPets) || IsEffectInSpell(spell_id, SE_TemporaryPets) ||
IsEffectInSpell(spell_id, SE_Familiar)) { IsEffectInSpell(spell_id, SE_Familiar)
) {
return false; 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_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_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_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_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_MitigateMeleeDamage 162 // implemented - rune with max value
#define SE_NegateAttacks 163 // implemented #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 #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) 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 #endif
@ -3072,6 +3072,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
case SE_ResistCold: case SE_ResistCold:
case SE_ResistFire: case SE_ResistFire:
case SE_AllStats: case SE_AllStats:
case SE_MakeDrunk:
case SE_CHA: case SE_CHA:
case SE_WIS: case SE_WIS:
case SE_INT: case SE_INT:
@ -3317,12 +3318,12 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
#ifdef SPELL_EFFECT_SPAM #ifdef SPELL_EFFECT_SPAM
snprintf(effect_desc, _EDLEN, "Unknown Effect ID %d", effect); snprintf(effect_desc, _EDLEN, "Unknown Effect ID %d", effect);
#else #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 #endif
} }
} }
#ifdef SPELL_EFFECT_SPAM #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 #endif
} }
@ -6972,7 +6973,7 @@ bool Mob::TryDeathSave() {
HealAmt = GetMaxHP() - GetHP(); HealAmt = GetMaxHP() - GetHP();
SetHP((GetHP()+HealAmt)); 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) if(spellbonuses.DeathSave[SBIndex::DEATH_SAVE_TYPE] == 2)
entity_list.MessageCloseString( entity_list.MessageCloseString(
@ -7011,7 +7012,7 @@ bool Mob::TryDeathSave() {
HealAmt = GetMaxHP() - GetHP(); HealAmt = GetMaxHP() - GetHP();
SetHP((GetHP()+HealAmt)); 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) if(spellbonuses.DeathSave[SBIndex::DEATH_SAVE_TYPE] == 2)
entity_list.MessageCloseString( entity_list.MessageCloseString(