EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Server Code Submissions (https://www.eqemulator.org/forums/forumdisplay.php?f=669)
-   -   MaxHPChange Tweak (https://www.eqemulator.org/forums/showthread.php?t=36928)

Hateborne 06-07-2013 05:32 PM

MaxHPChange Tweak
 
We were having issues on EZ server due to the MaxHPChange being both int16 and due to some of the math involved. Thanks to Paldail and lerxst2112, we've produced a slightly more usable form that should resolve our problems while maintaining original functionality.

Code:

diff --git "a/.\\Server\\zone\\/bot.cpp" "b/.\\Server-Original\\zone\\/bot.cpp"
index b54fe70..c88ad72 100644
--- "a/.\\Server\\zone\\/bot.cpp"
+++ "b/.\\Server-Original\\zone\\/bot.cpp"
@@ -11043,7 +11043,7 @@ int32 Bot::CalcMaxHP() {
 
        bot_hp += GroupLeadershipAAHealthEnhancement();
 
-        bot_hp += bot_hp * (spellbonuses.MaxHPChange + itembonuses.MaxHPChange) / 10000;
+        bot_hp += bot_hp * ((spellbonuses.MaxHPChange + itembonuses.MaxHPChange) / 10000.0f);
        max_hp = bot_hp;
 
        if (cur_hp > max_hp)
diff --git "a/.\\Server\\zone\\/client_mods.cpp" "b/.\\Server-Original\\zone\\/client_mods.cpp"
index 1e27185..eaab0ba 100644
--- "a/.\\Server\\zone\\/client_mods.cpp"
+++ "b/.\\Server-Original\\zone\\/client_mods.cpp"
@@ -250,7 +250,7 @@ int32 Client::CalcMaxHP() {
 
        max_hp += GroupLeadershipAAHealthEnhancement();

-        max_hp += max_hp * (spellbonuses.MaxHPChange + itembonuses.MaxHPChange) / 10000;       
+        max_hp += max_hp * ((spellbonuses.MaxHPChange + itembonuses.MaxHPChange) / 10000.0f);
 
        if (cur_hp > max_hp)
                cur_hp = max_hp;
diff --git "a/.\\Server\\zone\\/common.h" "b/.\\Server-Original\\zone\\/common.h"
index f7716c9..ddc1711 100644
--- "a/.\\Server\\zone\\/common.h"
+++ "b/.\\Server-Original\\zone\\/common.h"
@@ -283,7 +283,7 @@ struct StatBonuses {
        int16        HundredHands;                                                //extra haste, stacks with all other haste        i
        int8        MeleeLifetap;                                                //i
        int16        HealRate;                                                        // Spell effect that influences effectiveness of heals
-        int16        MaxHPChange;                                                // Spell Effect
+        int32        MaxHPChange;                                                // Spell Effect
        int16        SkillDmgTaken[HIGHEST_SKILL+2];                // All Skills + -1
        int32        HealAmt;                                                        // Item Effect
        int32        SpellDmg;                                                        // Item Effect
diff --git "a/.\\Server\\zone\\/merc.cpp" "b/.\\Server-Original\\zone\\/merc.cpp"
index 3709524..0e652ff 100644
--- "a/.\\Server\\zone\\/merc.cpp"
+++ "b/.\\Server-Original\\zone\\/merc.cpp"
@@ -918,7 +918,7 @@ int32 Merc::CalcMaxHP() {
 
        max_hp += GroupLeadershipAAHealthEnhancement();
 
-        max_hp += max_hp * (spellbonuses.MaxHPChange + itembonuses.MaxHPChange) / 10000;
+        max_hp += max_hp * ((spellbonuses.MaxHPChange + itembonuses.MaxHPChange) / 10000.0f);
 
        if (cur_hp > max_hp)
                cur_hp = max_hp;
diff --git "a/.\\Server\\zone\\/mob.cpp" "b/.\\Server-Original\\zone\\/mob.cpp"
index bce504a..33560ed 100644
--- "a/.\\Server\\zone\\/mob.cpp"
+++ "b/.\\Server-Original\\zone\\/mob.cpp"
@@ -615,8 +615,7 @@ int32 Mob::CalcMaxMana() {
 
 int32 Mob::CalcMaxHP() {
        max_hp = (base_hp + itembonuses.HP + spellbonuses.HP);
-        max_hp += max_hp * (aabonuses.MaxHPChange + spellbonuses.MaxHPChange + itembonuses.MaxHPChange) / 10000;
+        max_hp += max_hp * ((aabonuses.MaxHPChange + spellbonuses.MaxHPChange + itembonuses.MaxHPChange) / 10000.0f);
        return max_hp;
 }

I've never created a git diff, so please don't crucify me too hard if it's wrong. (I've got medium-low resists to it!)


-Hate

NatedogEZ 06-08-2013 03:20 PM

This tweak works nicely!

KLS 06-12-2013 03:13 PM

Merged this, thanks.

Might be easier to use pull requests on github over diffs. Though I realize some people are a little wary of git still so we will still accept diffs for a long time.

Hateborne 06-12-2013 07:45 PM

Quote:

Originally Posted by KLS (Post 221624)
Merged this, thanks.

Might be easier to use pull requests on github over diffs. Though I realize some people are a little wary of git still so we will still accept diffs for a long time.

Ok, I will look into it and try to submit anything further in this manner. Thanks for the commit!


-Hate


All times are GMT -4. The time now is 04:46 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.