EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   Mana Regen Issue (https://www.eqemulator.org/forums/showthread.php?t=39163)

Missneye 12-30-2014 12:10 PM

Mana Regen Issue
 
Hello! I am currently running my own private server and everything has been great. I've spent several weeks editing hundreds of things, but there's one issue...whenever I edit Character:RestRegenPercent, it only affects health. It does absolutely nothing to mana or endurance regeneration, they both just use natural and worn regen. Both can be changed successfully by editing Character:ManaRegenMultiplier and Character:EnduranceRegenMultiplier, but I don't want a major increase while standing.

I have not edited mana regen in any way outside of the multiplier rule.

Is there any reason for this to be happening?
Is there a file somewhere I could edit that holds all of the regen code?

The confusing part is why health will regenerate while resting just fine and mana doesn't. I can only assume there is some code missing somewhere that I need to add in.

Thank you!

trevius 12-30-2014 12:14 PM

How does rest work on Live? Does it regen mana/endurance as well as Health? If so, then we can probably change the rest code to handle all 3 if it isn't already (which is how it sounds based on this report). If only Health is regen'ed on Live (or if it was that way at the time that the PEQ content is up to), then we would have to add an additional custom rule to allow for also regen'ing mana and endurance while in rest state.

Missneye 12-30-2014 12:26 PM

Quote:

Originally Posted by trevius (Post 236422)
How does rest work on Live? Does it regen mana/endurance as well as Health? If so, then we can probably change the rest code to handle all 3 if it isn't already (which is how it sounds based on this report). If only Health is regen'ed on Live (or if it was that way at the time that the PEQ content is up to), then we would have to add an additional custom rule to allow for also regen'ing mana and endurance while in rest state.

On live, all three of them regen 3-4% per tick. My problem is that I can set RestRegen to 5 and health will regen 5% each tick when sitting and out of combat, while mana and endurance are the same as when standing.

I know that all 3 work fine for everyone that has recently installed EQEmu or something similar like AXClassic. I also read a few different posts that dealt with the code put into RestRegen. It seems mana and endurance just need to match the formula that health has, but I'm not even sure which file contains that code. I'd imagine it's a .cpp or .h file somewhere, I just can't seem to find it.

Also, I am using the Titanium client if that makes any difference.

Edit: If I were to add a custom rule for this, how would I go about doing it? I've done very little with code outside of HeidiSQL and a few perl scripts for NPCs.

Coenxai 12-30-2014 01:07 PM

I wasn't aware Titanium supported a rested state?

Code:

void Client::CalcRestState() {

        // This method calculates rest state HP and mana regeneration.
        // The client must have been out of combat for RuleI(Character, RestRegenTimeToActivate) seconds,
        // must be sitting down, and must not have any detrimental spells affecting them.
        //
        if(!RuleI(Character, RestRegenPercent))
                return;

        RestRegenHP = RestRegenMana = RestRegenEndurance = 0;

        if(AggroCount || !IsSitting())
                return;

        if(!rest_timer.Check(false))
                return;

        uint32 buff_count = GetMaxTotalSlots();
        for (unsigned int j = 0; j < buff_count; j++) {
                if(buffs[j].spellid != SPELL_UNKNOWN) {
                        if(IsDetrimentalSpell(buffs[j].spellid) && (buffs[j].ticsremaining > 0))
                                if(!DetrimentalSpellAllowsRest(buffs[j].spellid))
                                        return;
                }
        }

        RestRegenHP = (GetMaxHP() * RuleI(Character, RestRegenPercent) / 100);

        RestRegenMana = (GetMaxMana() * RuleI(Character, RestRegenPercent) / 100);

        if(RuleB(Character, RestRegenEndurance))
                RestRegenEndurance = (GetMaxEndurance() * RuleI(Character, RestRegenPercent) / 100);
}

Looks and works fine for me on Underfoot. Make sure you're using the appropriate rule set for the zone you're in.

demonstar55 12-30-2014 01:27 PM

Titanium doesn't support rest regen like that.

Missneye 12-30-2014 01:48 PM

Now that's what I don't understand...didn't DoDH and earlier still have some sort of resting bonus for mana? Why only for health?

Also, whether it'll work or not, where exactly do I put that code? That's what I'm unfamiliar with.

Edit: I just noticed the download for RoF2 client on the homepage. I would be able to download that and easily transfer my database, right? Or would I need an entirely new install of EQEmu? I imagine that would fix this "bug".

demonstar55 12-30-2014 02:02 PM

If your server is up to date, you shouldn't have to do anything. Although RoF2 isn't entirely stable, but we need more testers to find the remaining bugs!

Coenxai 12-30-2014 02:04 PM

I have absolutely no idea what live had for resting. Anyway, you don't need to put that code anywhere. It's already in the source. Yes, anything above SoF+ will allow you to rest.

Missneye 12-30-2014 02:09 PM

Still don't get why health works and mana doesn't. But whatever, I'll just update the client. Thanks, guys! :)


All times are GMT -4. The time now is 03:37 PM.

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