Index: Player.cpp =================================================================== --- Player.cpp (revision 5691) +++ Player.cpp (working copy) @@ -4021,17 +4021,15 @@ if (level>GT_MAX_LEVEL) level = GT_MAX_LEVEL; - GtOCTRegenMPEntry const *baseRatio = sGtOCTRegenMPStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1); +// GtOCTRegenMPEntry const *baseRatio = sGtOCTRegenMPStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1); GtRegenMPPerSptEntry const *moreRatio = sGtRegenMPPerSptStore.LookupEntry((pclass-1)*GT_MAX_LEVEL + level-1); if (baseRatio==NULL || moreRatio==NULL) return 0.0f; // Formula get from PaperDollFrame script - float spirit = GetStat(STAT_SPIRIT); - float baseSpirit = spirit; - if (baseSpirit>50) baseSpirit = 50; - float moreSpirit = spirit - baseSpirit; - float regen = baseSpirit * baseRatio->ratio + moreSpirit * moreRatio->ratio; + float spirit = GetStat(STAT_SPIRIT); + float intellect = GetStat(STAT_INTELLECT); + float regen = sqrt(intellect) * spirit * moreRatio->ratio; return regen; }