mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 06:21:28 +00:00
SE_IllusionPersistence affects self only
This commit is contained in:
parent
a46b1ac18b
commit
70048eb6e1
@ -413,10 +413,6 @@ int32 Client::GetActSpellCost(uint16 spell_id, int32 cost)
|
||||
|
||||
int32 Mob::GetActSpellDuration(uint16 spell_id, int32 duration)
|
||||
{
|
||||
if ((aabonuses.IllusionPersistence || spellbonuses.IllusionPersistence || itembonuses.IllusionPersistence) &&
|
||||
IsEffectInSpell(spell_id, SE_Illusion))
|
||||
return 10000; // ~16h
|
||||
|
||||
if (spells[spell_id].not_extendable)
|
||||
return duration;
|
||||
|
||||
|
||||
@ -1441,8 +1441,9 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
||||
for(int x = EmuConstants::MATERIAL_BEGIN; x <= EmuConstants::MATERIAL_TINT_END; x++)
|
||||
SendWearChange(x);
|
||||
|
||||
if(caster && (caster->spellbonuses.IllusionPersistence || caster->aabonuses.IllusionPersistence
|
||||
|| caster->itembonuses.IllusionPersistence))
|
||||
if (caster == this &&
|
||||
(spellbonuses.IllusionPersistence || aabonuses.IllusionPersistence ||
|
||||
itembonuses.IllusionPersistence))
|
||||
buffs[buffslot].persistant_buff = 1;
|
||||
else
|
||||
buffs[buffslot].persistant_buff = 0;
|
||||
|
||||
@ -2624,6 +2624,10 @@ int Mob::CalcBuffDuration(Mob *caster, Mob *target, uint16 spell_id, int32 caste
|
||||
castlevel = caster_level_override;
|
||||
|
||||
int res = CalcBuffDuration_formula(castlevel, formula, duration);
|
||||
if (caster == target && (target->aabonuses.IllusionPersistence || target->spellbonuses.IllusionPersistence ||
|
||||
target->itembonuses.IllusionPersistence) &&
|
||||
IsEffectInSpell(spell_id, SE_Illusion))
|
||||
res = 10000; // ~16h override
|
||||
|
||||
res = mod_buff_duration(res, caster, target, spell_id);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user