mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-17 22:51:30 +00:00
Implement songcap needed for the AA revamp
Added rule Character:UseSpellFileSongCap defaulted to true since most servers will probably be updating everything.
This commit is contained in:
parent
33b6748c1b
commit
0447321d92
@ -99,6 +99,7 @@ RULE_BOOL ( Character, EnableXTargetting, true) // Enable Extended Targetting Wi
|
|||||||
RULE_BOOL ( Character, KeepLevelOverMax, false) // Don't delevel a character that has somehow gone over the level cap
|
RULE_BOOL ( Character, KeepLevelOverMax, false) // Don't delevel a character that has somehow gone over the level cap
|
||||||
RULE_INT ( Character, FoodLossPerUpdate, 35) // How much food/water you lose per stamina update
|
RULE_INT ( Character, FoodLossPerUpdate, 35) // How much food/water you lose per stamina update
|
||||||
RULE_INT ( Character, BaseInstrumentSoftCap, 36) // Softcap for instrument mods, 36 commonly referred to as "3.6" as well.
|
RULE_INT ( Character, BaseInstrumentSoftCap, 36) // Softcap for instrument mods, 36 commonly referred to as "3.6" as well.
|
||||||
|
RULE_BOOL ( Character, UseSpellFileSongCap, true) // When they removed the AA that increased the cap they removed the above and just use the spell field
|
||||||
RULE_INT ( Character, BaseRunSpeedCap, 158) // Base Run Speed Cap, on live it's 158% which will give you a runspeed of 1.580 hard capped to 225.
|
RULE_INT ( Character, BaseRunSpeedCap, 158) // Base Run Speed Cap, on live it's 158% which will give you a runspeed of 1.580 hard capped to 225.
|
||||||
RULE_INT ( Character, OrnamentationAugmentType, 20) //Ornamentation Augment Type
|
RULE_INT ( Character, OrnamentationAugmentType, 20) //Ornamentation Augment Type
|
||||||
RULE_REAL(Character, EnvironmentDamageMulipliter, 1)
|
RULE_REAL(Character, EnvironmentDamageMulipliter, 1)
|
||||||
|
|||||||
@ -1682,6 +1682,7 @@ void SharedDatabase::LoadSpells(void *data, int max_spells) {
|
|||||||
sp[tempid].not_extendable = atoi(row[197]) != 0;
|
sp[tempid].not_extendable = atoi(row[197]) != 0;
|
||||||
sp[tempid].suspendable = atoi(row[200]) != 0;
|
sp[tempid].suspendable = atoi(row[200]) != 0;
|
||||||
sp[tempid].viral_range = atoi(row[201]);
|
sp[tempid].viral_range = atoi(row[201]);
|
||||||
|
sp[tempid].songcap = atoi(row[202]);
|
||||||
sp[tempid].no_block = atoi(row[205]);
|
sp[tempid].no_block = atoi(row[205]);
|
||||||
sp[tempid].spellgroup=atoi(row[207]);
|
sp[tempid].spellgroup=atoi(row[207]);
|
||||||
sp[tempid].rank = atoi(row[208]);
|
sp[tempid].rank = atoi(row[208]);
|
||||||
|
|||||||
@ -735,8 +735,8 @@ struct SPDat_Spell_Struct
|
|||||||
/* 198- 199 */
|
/* 198- 199 */
|
||||||
/* 200 */ bool suspendable; // buff is suspended in suspended buff zones
|
/* 200 */ bool suspendable; // buff is suspended in suspended buff zones
|
||||||
/* 201 */ int viral_range;
|
/* 201 */ int viral_range;
|
||||||
/* 202 */
|
/* 202 */ int songcap; // individual song cap
|
||||||
/* 203 */ //int songcap; // individual song cap (how live currently does it, not implemented)
|
/* 203 */
|
||||||
/* 204 */
|
/* 204 */
|
||||||
/* 205 */ bool no_block;
|
/* 205 */ bool no_block;
|
||||||
/* 206 */
|
/* 206 */
|
||||||
|
|||||||
@ -1978,7 +1978,11 @@ uint32 Mob::GetInstrumentMod(uint16 spell_id) const
|
|||||||
return 10;
|
return 10;
|
||||||
|
|
||||||
uint32 effectmod = 10;
|
uint32 effectmod = 10;
|
||||||
int effectmodcap = RuleI(Character, BaseInstrumentSoftCap);
|
int effectmodcap = 0;
|
||||||
|
if (RuleB(Character, UseSpellFileSongCap))
|
||||||
|
effectmodcap = spells[spell_id].songcap / 10;
|
||||||
|
else
|
||||||
|
effectmodcap = RuleI(Character, BaseInstrumentSoftCap);
|
||||||
// this should never use spell modifiers...
|
// this should never use spell modifiers...
|
||||||
// if a spell grants better modifers, they are copied into the item mods
|
// if a spell grants better modifers, they are copied into the item mods
|
||||||
// because the spells are supposed to act just like having the intrument.
|
// because the spells are supposed to act just like having the intrument.
|
||||||
@ -2048,10 +2052,11 @@ uint32 Mob::GetInstrumentMod(uint16 spell_id) const
|
|||||||
effectmod = 10;
|
effectmod = 10;
|
||||||
return effectmod;
|
return effectmod;
|
||||||
}
|
}
|
||||||
effectmodcap += aabonuses.songModCap + spellbonuses.songModCap + itembonuses.songModCap;
|
if (!RuleB(Character, UseSpellFileSongCap))
|
||||||
|
effectmodcap += aabonuses.songModCap + spellbonuses.songModCap + itembonuses.songModCap;
|
||||||
if (effectmod < 10)
|
if (effectmod < 10)
|
||||||
effectmod = 10;
|
effectmod = 10;
|
||||||
if (effectmod > effectmodcap)
|
if (effectmodcap && effectmod > effectmodcap) // if the cap is calculated to be 0 using new rules, no cap.
|
||||||
effectmod = effectmodcap;
|
effectmod = effectmodcap;
|
||||||
Log.Out(Logs::Detail, Logs::Spells, "%s::GetInstrumentMod() spell=%d mod=%d modcap=%d\n", GetName(), spell_id,
|
Log.Out(Logs::Detail, Logs::Spells, "%s::GetInstrumentMod() spell=%d mod=%d modcap=%d\n", GetName(), spell_id,
|
||||||
effectmod, effectmodcap);
|
effectmod, effectmodcap);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user