mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 23:01:30 +00:00
[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:
parent
de7a632d67
commit
dbba22b153
@ -374,12 +374,15 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user