mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-29 18:11:28 +00:00
Additional functionality for damage shield and skill damage taken
effects va the npc_spell_effects table. See change log and wiki.
This commit is contained in:
parent
a1adda36fa
commit
216113e14b
@ -1,5 +1,10 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 06/13/2014 ==
|
||||
Kayen: For table 'npc_spell_effects_entries' setting se_max for damage shield effects (59) will now determine the DS Type (ie burning)
|
||||
Setting se_max to 1 for SkillDamageTaken effects (127) will allow for stackable mitigation/weakness same as quest function ModSkillDmgTaken.
|
||||
|
||||
|
||||
== 06/8/2014 ==
|
||||
KLS: Changed lua API: eq.get_globals(client, npc) has been removed. Use eq.get_globals(npc, client) instead.
|
||||
There's a bug with something in gcc 4.6.3 (maybe other versions) on x86 that this is attempting to combat.
|
||||
|
||||
@ -818,7 +818,7 @@ int GetSpellEffectDescNum(uint16 spell_id)
|
||||
return -1;
|
||||
}
|
||||
|
||||
DmgShieldType GetDamageShieldType(uint16 spell_id)
|
||||
DmgShieldType GetDamageShieldType(uint16 spell_id, int32 DSType)
|
||||
{
|
||||
// If we have a DamageShieldType for this spell from the damageshieldtypes table, return that,
|
||||
// else, make a guess, based on the resist type. Default return value is DS_THORNS
|
||||
@ -841,6 +841,9 @@ DmgShieldType GetDamageShieldType(uint16 spell_id)
|
||||
}
|
||||
}
|
||||
|
||||
else if (DSType)
|
||||
return (DmgShieldType) DSType;
|
||||
|
||||
return DS_THORNS;
|
||||
}
|
||||
|
||||
|
||||
@ -840,7 +840,7 @@ uint32 GetPartialMagicRuneAmount(uint32 spell_id);
|
||||
int CalcPetHp(int levelb, int classb, int STA = 75);
|
||||
const char *GetRandPetName();
|
||||
int GetSpellEffectDescNum(uint16 spell_id);
|
||||
DmgShieldType GetDamageShieldType(uint16 spell_id);
|
||||
DmgShieldType GetDamageShieldType(uint16 spell_id, int32 DSType = 0);
|
||||
bool DetrimentalSpellAllowsRest(uint16 spell_id);
|
||||
uint32 GetNimbusEffect(uint16 spell_id);
|
||||
int32 GetFuriousBash(uint16 spell_id);
|
||||
|
||||
@ -1627,7 +1627,12 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses* ne
|
||||
{
|
||||
newbon->DamageShield += effect_value;
|
||||
newbon->DamageShieldSpellID = spell_id;
|
||||
newbon->DamageShieldType = GetDamageShieldType(spell_id);
|
||||
//When using npc_spells_effects MAX value can be set to determine DS Type
|
||||
if (IsAISpellEffect && max)
|
||||
newbon->DamageShieldType = GetDamageShieldType(spell_id, max);
|
||||
else
|
||||
newbon->DamageShieldType = GetDamageShieldType(spell_id);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1635,7 +1640,11 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses* ne
|
||||
{
|
||||
newbon->ReverseDamageShield += effect_value;
|
||||
newbon->ReverseDamageShieldSpellID = spell_id;
|
||||
newbon->ReverseDamageShieldType = GetDamageShieldType(spell_id);
|
||||
|
||||
if (IsAISpellEffect && max)
|
||||
newbon->ReverseDamageShieldType = GetDamageShieldType(spell_id, max);
|
||||
else
|
||||
newbon->ReverseDamageShieldType = GetDamageShieldType(spell_id);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1999,10 +2008,21 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses* ne
|
||||
|
||||
case SE_SkillDamageTaken:
|
||||
{
|
||||
if(base2 == -1)
|
||||
newbon->SkillDmgTaken[HIGHEST_SKILL+1] += effect_value;
|
||||
else
|
||||
newbon->SkillDmgTaken[base2] += effect_value;
|
||||
//When using npc_spells_effects if MAX value set, use stackable quest based modifier.
|
||||
if (IsAISpellEffect && max){
|
||||
if(base2 == -1)
|
||||
SkillDmgTaken_Mod[HIGHEST_SKILL+1] = effect_value;
|
||||
else
|
||||
SkillDmgTaken_Mod[base2] = effect_value;
|
||||
}
|
||||
else {
|
||||
|
||||
if(base2 == -1)
|
||||
newbon->SkillDmgTaken[HIGHEST_SKILL+1] += effect_value;
|
||||
else
|
||||
newbon->SkillDmgTaken[base2] += effect_value;
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user