Giter VIP home page Giter VIP logo

Comments (7)

fryguy503 avatar fryguy503 commented on May 28, 2024 2

All of those mod2's dropped to 0 are because they were all moved to heroic stats

So if you update heroic stats but not the mod2's you will double the performance of those stats.

from server.

joligario avatar joligario commented on May 28, 2024

My review complete and incorporated above. Take a look at what you can and let me know what you think. We can leave alone, merge, change completely, or a combination in the script. I'll mark with a comment on the plan above as I receive feedback.

Unless we are relying on the data, I think we are ok with making the UNKNOWN changes.

from server.

Aeadoin avatar Aeadoin commented on May 28, 2024

All of those mod2's dropped to 0 are because they were all moved to heroic stats

So if you update heroic stats but not the mod2's you will double the performance of those stats.

Correct, we don't have the Mod2 to Heroic Stat functionality implemented (I believe this wasn't actually done until a later client), So I would recommend not changing the value of any mod2s.

from server.

fryguy503 avatar fryguy503 commented on May 28, 2024

All of those mod2's dropped to 0 are because they were all moved to heroic stats
So if you update heroic stats but not the mod2's you will double the performance of those stats.

Correct, we don't have the Mod2 to Heroic Stat functionality implemented (I believe this wasn't actually done until a later client), So I would recommend not changing the value of any mod2s.

Except the source does calculate them:

Server/zone/bonuses.cpp

Lines 5923 to 5948 in b03f52d

void Mob::CalcHeroicBonuses(StatBonuses* newbon)
{
if (GetHeroicSTR()) {
SetHeroicStrBonuses(newbon);
}
if (GetHeroicSTA()) {
SetHeroicStaBonuses(newbon);
}
if (GetHeroicAGI()) {
SetHeroicAgiBonuses(newbon);
}
if (GetHeroicDEX()) {
SetHeroicDexBonuses(newbon);
}
if (GetHeroicINT()) {
SetHeroicIntBonuses(newbon);
}
if (GetHeroicWIS()) {
SetHeroicWisBonuses(newbon);
}
}

Server/zone/bonuses.cpp

Lines 5989 to 6000 in b03f52d

void Mob::SetHeroicAgiBonuses(StatBonuses* n)
{
n->heroic_agi_avoidance += GetHeroicAGI() * RuleR(Character, HeroicAgilityMultiplier) / 10;
n->heroic_max_end += GetHeroicAGI() * RuleR(Character, HeroicAgilityMultiplier) / 4 * 10.0f;
n->heroic_end_regen += GetHeroicAGI() * RuleR(Character, HeroicAgilityMultiplier) / 4 / 50;
if (RuleB(Character, HeroicStatsUseDataBucketsToScale)) {
n->heroic_agi_avoidance += GetHeroicAGI() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::AgiAvoidance) / 10;
n->heroic_max_end += GetHeroicAGI() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::AgiMaxEndurance) / 4 * 10.0f;
n->heroic_end_regen += GetHeroicAGI() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::AgiEnduranceRegen) / 4 / 50;
}
}

from server.

Aeadoin avatar Aeadoin commented on May 28, 2024

All of those mod2's dropped to 0 are because they were all moved to heroic stats
So if you update heroic stats but not the mod2's you will double the performance of those stats.

Correct, we don't have the Mod2 to Heroic Stat functionality implemented (I believe this wasn't actually done until a later client), So I would recommend not changing the value of any mod2s.

Except the source does calculate them:

Server/zone/bonuses.cpp

Lines 5923 to 5948 in b03f52d

void Mob::CalcHeroicBonuses(StatBonuses* newbon)
{
if (GetHeroicSTR()) {
SetHeroicStrBonuses(newbon);
}
if (GetHeroicSTA()) {
SetHeroicStaBonuses(newbon);
}
if (GetHeroicAGI()) {
SetHeroicAgiBonuses(newbon);
}
if (GetHeroicDEX()) {
SetHeroicDexBonuses(newbon);
}
if (GetHeroicINT()) {
SetHeroicIntBonuses(newbon);
}
if (GetHeroicWIS()) {
SetHeroicWisBonuses(newbon);
}
}

Server/zone/bonuses.cpp

Lines 5989 to 6000 in b03f52d

void Mob::SetHeroicAgiBonuses(StatBonuses* n)
{
n->heroic_agi_avoidance += GetHeroicAGI() * RuleR(Character, HeroicAgilityMultiplier) / 10;
n->heroic_max_end += GetHeroicAGI() * RuleR(Character, HeroicAgilityMultiplier) / 4 * 10.0f;
n->heroic_end_regen += GetHeroicAGI() * RuleR(Character, HeroicAgilityMultiplier) / 4 / 50;
if (RuleB(Character, HeroicStatsUseDataBucketsToScale)) {
n->heroic_agi_avoidance += GetHeroicAGI() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::AgiAvoidance) / 10;
n->heroic_max_end += GetHeroicAGI() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::AgiMaxEndurance) / 4 * 10.0f;
n->heroic_end_regen += GetHeroicAGI() * CheckHeroicBonusesDataBuckets(HeroicBonusBucket::AgiEnduranceRegen) / 4 / 50;
}
}

Those aren't Mod2 bonuses but the inherit Heroic Stat bonuses as described below.

Heroic Strength: Increases Endurance. Improves the percentage of AC that gets tranfered from your shield to be used for damage mitigation. It also improves melee attack damage (minimally... very minimally)

Heroic Stamina: Increases HP, HP Regen, and HP Regen Cap as well as all three of the same things for endurance (This is one of the best Heroic Stats for all classes)

Heroic Intelligence: Increases MP, MP Regen and Max MP Regen for Int Casters (This is one of the best Heroic Stats for Int Casters)

Heroic Wisdom: Increases MP, MP Regen and Max MP Regen for Wis Casters (This is one of the best Heroic Stats for Wis Casters)

Heroic Agility: Increases AC, Dodge, Block and Many of the most important Mod2s which we'll discuss later; Also Increases Endurance, Endurance Regen & Endurance Regen Cap (If you take hits as a class - even sometimes - this is a VERY important Heroic Stat)

Heroic Dexterity: Increases the chance that AAs and Combat Abilities like Headshot, Decap and Assassinate Proc as well as increasing Parry/Riposte and Crit Chance (One of the most important Stats for Melee)

Heroic Charisma: Increases Faction Gains/Loses and improves average charm duration.

The Stat Consolidation change was implemented May 2016 as part of this patch: https://forums.daybreakgames.com/eq/index.php?threads/stat-consolidation-and-you-may-2016-patch-preview.232498/#post-3430009

The above combined mod2s with the Inherit benefits granted from Heroic Stats.

from server.

fryguy503 avatar fryguy503 commented on May 28, 2024

Accuracy: Checks against NPC Avoidance to determine if you hit. (Dexterity)

Avoidance: Checks against an NPCs Accuracy to determine if you're hit. (Agility)

Combat Effects: Increases your chance to proc with all skills, abilities and weapons. (Dexterity)

Damage Shielding: Increases YOUR Damage Shield damage. (Strength)

Damage Shield Mitigation: Decreases damage sustained from enemy Damage Shields. (Strength)

DoT Shielding: Decreases DoT damage sustained. (Intelligence or Wisdom)

Melee Shielding: Mitigates incoming melee damage by a %. (Stamina)

Spell Shielding: Mitigates incoming spell damage by a %. (Intelligence or Wisdom)

Strike Through: Checks against an enemies Parry/Riposte/Dodge. Higher Strike Through gives you a chance to win the roll and punch them in the face anyway. (Agility)

Stun Resistance: Gives you a fixed percent chance to not be stunned (Stamina)

Yea I just looked at Agility and saw the avoidance in there.

from server.

fryguy503 avatar fryguy503 commented on May 28, 2024

IMO we shouldn't be in between on the items, it should be all pre heroic stat changes or post heroic stat change.

If we are going to import all new item data, we should add the heroic stat modifiers prior and import all item data as it is.

from server.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.