Fix: Low level damage cap
Server rules for lower level melee damage caps aren't working as intended.
In attack.cpp.client::attack; I think this: Code:
if(GetLevel() < 10 && max_hit > 20) Code:
if(GetLevel() < 10 && max_hit > RuleI(Combat, HitCapPre10)) |
Without looking at the code for getting rule values, I would use a few static const variables in this instance. Assuming you do not need to update these values during run-time.
|
I removed the code altogether for my purposes :)
|
Haha me too!
|
Kind of dumb to replace a dynamic rule that you can change yourself in the rules table then to change code with a static value.
You can set the values of those rules in the `rules_values` table. |
I meant read the value from the DB into a static const.
|
Hi Akkadius,
Not sure if you realised from my original post, but with the current code, if you change the pre-10 cap to 100, it will mean that if a player uses a 12 damage weapon and hit for 24, their max damage becomes the cap (100). The cap needs to be included in the if statement. |
I'll add this into SVN later. Good catch.
|
Rules can be changed at runtime, so it probably would not be good to cache the value. Even if you did all you're saving is a function call and a lookup by index in a static array, so I'd say not worth worrying about at all.
|
I didn't realize this hadn't made it in yet.
http://www.eqemulator.org/forums/showthread.php?t=35541 |
To be honest me either Tabasco. I recall you posting it ages ago D:
|
It looks like part of it made it in, because Bots were changed as well where before they didn't use the rules at all, but not completely.
|
All times are GMT -4. The time now is 08:28 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.