mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-27 01:13:53 +00:00
Fix some effect value calcs and implement more
Derived from the client
This commit is contained in:
parent
364ed921ce
commit
86c1420f6e
@ -3,6 +3,7 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
== 09/16/2014 ==
|
||||
demonstar55: Implement spell formula 137 (BER AA Desperation)
|
||||
Uleat (NateDog): Fix for LoadBuffs() crash when a spell with a non-persistent Illusion effect was loaded.
|
||||
demonstar55: Fix some effect calcs + implement more (derived from the client)
|
||||
|
||||
== 09/15/2014 ==
|
||||
Kayen: Nimbus effects will now be reapplied after zoning and will be removed when associated buff fades.
|
||||
|
||||
@ -3127,26 +3127,42 @@ snare has both of them negative, yet their range should work the same:
|
||||
|
||||
case 110: // confirmed 2/6/04
|
||||
//is there a reason we dont use updownsign here???
|
||||
result = ubase + (caster_level / 5); break;
|
||||
result = ubase + (caster_level / 6);
|
||||
break;
|
||||
|
||||
case 111:
|
||||
result = updownsign * (ubase + 6 * (caster_level - GetMinLevel(spell_id))); break;
|
||||
result = updownsign * (ubase + 6 * (caster_level - 16));
|
||||
break;
|
||||
case 112:
|
||||
result = updownsign * (ubase + 8 * (caster_level - GetMinLevel(spell_id))); break;
|
||||
result = updownsign * (ubase + 8 * (caster_level - 24));
|
||||
break;
|
||||
case 113:
|
||||
result = updownsign * (ubase + 10 * (caster_level - GetMinLevel(spell_id))); break;
|
||||
result = updownsign * (ubase + 10 * (caster_level - 34));
|
||||
break;
|
||||
case 114:
|
||||
result = updownsign * (ubase + 15 * (caster_level - GetMinLevel(spell_id))); break;
|
||||
result = updownsign * (ubase + 15 * (caster_level - 44));
|
||||
break;
|
||||
|
||||
//these formula were updated according to lucy 10/16/04
|
||||
case 115: // this is only in symbol of transal
|
||||
result = ubase + 6 * (caster_level - GetMinLevel(spell_id)); break;
|
||||
result = ubase;
|
||||
if (caster_level > 15)
|
||||
result += 7 * (caster_level - 15);
|
||||
break;
|
||||
case 116: // this is only in symbol of ryltan
|
||||
result = ubase + 8 * (caster_level - GetMinLevel(spell_id)); break;
|
||||
result = ubase;
|
||||
if (caster_level > 24)
|
||||
result += 10 * (caster_level - 24);
|
||||
break;
|
||||
case 117: // this is only in symbol of pinzarn
|
||||
result = ubase + 12 * (caster_level - GetMinLevel(spell_id)); break;
|
||||
result = ubase;
|
||||
if (caster_level > 34)
|
||||
result += 13 * (caster_level - 34);
|
||||
break;
|
||||
case 118: // used in naltron and a few others
|
||||
result = ubase + 20 * (caster_level - GetMinLevel(spell_id)); break;
|
||||
result = ubase;
|
||||
if (caster_level > 44)
|
||||
result += 20 * (caster_level - 44);
|
||||
break;
|
||||
|
||||
case 119: // confirmed 2/6/04
|
||||
result = ubase + (caster_level / 8); break;
|
||||
@ -3166,10 +3182,93 @@ snare has both of them negative, yet their range should work the same:
|
||||
result = MakeRandomInt(ubase, abs(max));
|
||||
break;
|
||||
|
||||
case 124: // check sign
|
||||
result = ubase;
|
||||
if (caster_level > 50)
|
||||
result += caster_level - 50;
|
||||
break;
|
||||
|
||||
case 125: // check sign
|
||||
result = ubase;
|
||||
if (caster_level > 50)
|
||||
result += 2 * (caster_level - 50);
|
||||
break;
|
||||
|
||||
case 126: // check sign
|
||||
result = ubase;
|
||||
if (caster_level > 50)
|
||||
result += 3 * (caster_level - 50);
|
||||
break;
|
||||
|
||||
case 127: // check sign
|
||||
result = ubase;
|
||||
if (caster_level > 50)
|
||||
result += 4 * (caster_level - 50);
|
||||
break;
|
||||
|
||||
case 128: // check sign
|
||||
result = ubase;
|
||||
if (caster_level > 50)
|
||||
result += 5 * (caster_level - 50);
|
||||
break;
|
||||
|
||||
case 129: // check sign
|
||||
result = ubase;
|
||||
if (caster_level > 50)
|
||||
result += 10 * (caster_level - 50);
|
||||
break;
|
||||
|
||||
case 130: // check sign
|
||||
result = ubase;
|
||||
if (caster_level > 50)
|
||||
result += 15 * (caster_level - 50);
|
||||
break;
|
||||
|
||||
case 131: // check sign
|
||||
result = ubase;
|
||||
if (caster_level > 50)
|
||||
result += 20 * (caster_level - 50);
|
||||
break;
|
||||
|
||||
case 132: // check sign
|
||||
result = ubase;
|
||||
if (caster_level > 50)
|
||||
result += 25 * (caster_level - 50);
|
||||
break;
|
||||
|
||||
case 137: // used in berserker AA desperation
|
||||
result = ubase - (ubase * (GetHPRatio() / 100.0f));
|
||||
break;
|
||||
|
||||
case 138: { // unused on live?
|
||||
int maxhps = GetMaxHP() / 2;
|
||||
if (GetHP() <= maxhps)
|
||||
result = -(ubase * GetHP() / maxhps);
|
||||
else
|
||||
result = -ubase;
|
||||
break;
|
||||
}
|
||||
|
||||
case 139: // check sign
|
||||
result = ubase + (caster_level > 30 ? (caster_level - 30) / 2 : 0);
|
||||
break;
|
||||
|
||||
case 140: // check sign
|
||||
result = ubase + (caster_level > 30 ? caster_level - 30 : 0);
|
||||
break;
|
||||
|
||||
case 141: // check sign
|
||||
result = ubase + (caster_level > 30 ? (3 * caster_level - 90) / 2 : 0);
|
||||
break;
|
||||
|
||||
case 142: // check sign
|
||||
result = ubase + (caster_level > 30 ? 2 * caster_level - 60 : 0);
|
||||
break;
|
||||
|
||||
case 143: // check sign
|
||||
result = ubase + (3 * caster_level / 4);
|
||||
break;
|
||||
|
||||
//these are used in stacking effects... formula unknown
|
||||
case 201:
|
||||
case 203:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user