Jump to content

Question About Mana Regeneration


Guest DarkSide

Recommended Posts

After switch to patch 2.4.1

the mana regeneration to player after level 70

is buged.

I know that mangos is offylike project but if in mangos.conf

is present the line to set level max for player it is right that all

work fine to prescind from level (formulas mana regeneration, crits ecc....)

I have spoken with vladimir of this Bug,

it has said to me that for this formula as for the others the level comes taken from the DBC

it is possible to realize a formula that it does not use the dBC

or that only in the case the level max is greater of 70 does not use the DBC.

For Mana Regeneration, Crit and all Formulas that use this fuction "GT_MAX_LEVEL".

------------------------------------------------------------------

1

Link to comment
Share on other sites

  • 4 weeks later...

try this, maybe it helps...

tested it with manaregen and changed the others, too .. but I have to test

my thought was GT_MAX_LEVEL is 100

70 is max bliss level and so are DBC.. so you should use it...

but its only my first shot!

Mangos Rev : 6083

Index: src/game/Player.cpp
===================================================================
--- src/game/Player.cpp (Revision 6083)
+++ src/game/Player.cpp (Arbeitskopie)
@@ -4025,7 +4025,7 @@
        uint32 level = getLevel();
        uint32 pclass = getClass();

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

        GtChanceToMeleeCritBaseEntry const *critBase    = sGtChanceToMeleeCritBaseStore.LookupEntry(pclass-1);
        GtChanceToMeleeCritEntry         const *critRatio = sGtChanceToMeleeCritStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
@@ -4041,7 +4041,7 @@
        uint32 level = getLevel();
        uint32 pclass = getClass();

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

        GtChanceToSpellCritBaseEntry const *critBase    = sGtChanceToSpellCritBaseStore.LookupEntry(pclass-1);
        GtChanceToSpellCritEntry         const *critRatio = sGtChanceToSpellCritStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
@@ -4057,7 +4057,7 @@
        uint32 level = getLevel();
        uint32 rating_id = index - PLAYER_FIELD_COMBAT_RATING_1;

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

        GtCombatRatingsEntry const *Rating = sGtCombatRatingsStore.LookupEntry(rating_id*GT_MAX_LEVEL+level-1);
        if (Rating == NULL)
@@ -4124,7 +4124,7 @@
        uint32 level = getLevel();
        uint32 pclass = getClass();

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

        GtOCTRegenHPEntry         const *baseRatio = sGtOCTRegenHPStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
        GtRegenHPPerSptEntry    const *moreRatio = sGtRegenHPPerSptStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
@@ -4145,7 +4145,7 @@
        uint32 level = getLevel();
        uint32 pclass = getClass();

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

//        GtOCTRegenMPEntry         const *baseRatio = sGtOCTRegenMPStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
        GtRegenMPPerSptEntry    const *moreRatio = sGtRegenMPPerSptStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);

Link to comment
Share on other sites

this is why i set it back to lv 70 .. in this simple way..

before, my shaman had manaregeneration of 1 with lv 71 .. now it increases from 70 to 71 a bit ..

this is not perfekt.. but .. for ppl looking for a solution this patch might be a start...

Link to comment
Share on other sites

  • 2 weeks later...

if you copy paste, you also copy the "wrong" end of lines..

just look at long lines and remove the linefeeds in your editor.

btw, shortly after my patch, mangos added another dbc based %% value.. i think it was block rating..

the patch doesnt cover this issue.. and has to be done manually, right now.

lets see....

here we go >> http://filebeam.com/8fbd33466604a7959bac4577c6e9af97

looks like this

Index: src/game/Player.cpp
===================================================================
--- src/game/Player.cpp        (revision 6109)
+++ src/game/Player.cpp        (working copy)
@@ -4005,7 +4015,7 @@
        uint32 level = getLevel();
        uint32 pclass = getClass();

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

        GtChanceToMeleeCritBaseEntry const *critBase    = sGtChanceToMeleeCritBaseStore.LookupEntry(pclass-1);
        GtChanceToMeleeCritEntry         const *critRatio = sGtChanceToMeleeCritStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
@@ -4050,7 +4060,7 @@
        uint32 level = getLevel();
        uint32 pclass = getClass();

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

        // Dodge per agility for most classes equal crit per agility (but for some classes need apply some multiplier)
        GtChanceToMeleeCritEntry    const *dodgeRatio = sGtChanceToMeleeCritStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
@@ -4066,7 +4076,7 @@
        uint32 level = getLevel();
        uint32 pclass = getClass();

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

        GtChanceToSpellCritBaseEntry const *critBase    = sGtChanceToSpellCritBaseStore.LookupEntry(pclass-1);
        GtChanceToSpellCritEntry         const *critRatio = sGtChanceToSpellCritStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
@@ -4082,7 +4092,7 @@
        uint32 level = getLevel();
        uint32 rating_id = index - PLAYER_FIELD_COMBAT_RATING_1;

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

        GtCombatRatingsEntry const *Rating = sGtCombatRatingsStore.LookupEntry(rating_id*GT_MAX_LEVEL+level-1);
        if (Rating == NULL)
@@ -4149,7 +4159,7 @@
        uint32 level = getLevel();
        uint32 pclass = getClass();

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

        GtOCTRegenHPEntry         const *baseRatio = sGtOCTRegenHPStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
        GtRegenHPPerSptEntry    const *moreRatio = sGtRegenHPPerSptStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
@@ -4170,7 +4180,7 @@
        uint32 level = getLevel();
        uint32 pclass = getClass();

-        if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;
+        if (level>70) level = 70;

//        GtOCTRegenMPEntry         const *baseRatio = sGtOCTRegenMPStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);
        GtRegenMPPerSptEntry    const *moreRatio = sGtRegenMPPerSptStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1);

Link to comment
Share on other sites

Actually whats easy about your patch, it showed me how you circumvent the levelcap (sorta)

So i did a find and replace in Visual studio with player.cpp:

find

if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL;

replace with

if (level>70) level = 70;

Should work with every revision

Link to comment
Share on other sites

  • 3 months later...
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use