Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Items import needed #3701

Open
70 tasks
joligario opened this issue Nov 21, 2023 · 7 comments
Open
70 tasks

Items import needed #3701

joligario opened this issue Nov 21, 2023 · 7 comments
Labels

Comments

@joligario
Copy link
Contributor

joligario commented Nov 21, 2023

The content database is way behind live on items. The 13th floor import script is ready to go live. Need some eyes on the data as of 20 NOV to see if any last changes need to happen before importing. Please review and provide any comments if you feel we are ready to make the updates.

The editor now supports reviewing the items_new table. Makes it easier to digest. December 3 items dump is uploaded to PEQ for review.

Changes that may need to be addressed:

  • Name. Several name changes. Most fix spellings, clarify detail, capitalization, Volume -> Vol., etc. Recommend: Accept Changes
  • accuracy. All accuracy was dropped to 0. It may have been changed on live with the other stat changes years ago. Potentially converted to heroic stats. Recommend: Accept Changes
  • avoidance. Same as accuracy. Recommend: Accept Changes
  • bagslots. Several increases of already 10+ slot bags. Probably won't affect the client, so should be ok to merge this one. Recommend: Accept Changes
  • charmfile. All items with BAG_STAT_XXX were removed. Need to check if we use that value. Recommend: Accept Changes with ignoring BAG_STAT_XXX
  • combateffects. All same as accuracy and avoidance. Not many actually have a value > 0, but there are some. Possibly same as accuracy. Recommend: Accept Changes
  • damageshield. All values dropped to 0. Same as accuracy. Recommend: Accept Changes
  • filename. Some filenames (for books) look incomplete or corrupt. Recommend: Accept Changes after ensuring name changes in books matches.
  • dotshielding. Same as damageshield. Recommend: Accept Changes
  • icon. A few updates that may want to be checked with older clients to ensure backwards compatibility for those that want. Recommend: Ignore Changes pending review
  • idfile. Same as icon. Many more changes here. Recommend: Ignore Changes pending review
  • ldontheme. Several dropped to 0. Perhaps they were no longer sold at LDoN merchants. Recommend: Accept Changes ignoring changes to 0
  • shielding. Quite a few dropped to 0 here. Possibly heroic stat. Recommend: Accept Changes
  • skillmodtype. Quite a few dropped to -1. May want to ensure we are using -1 or 0 in the source/database properly. Recommend: Accept Changes and confirm usage.
  • spellshield. Same as shielding. Recommend: Accept Changes
  • strikethrough. Same as shielding. Recommend: Accept Changes
  • stunresist. Same as shielding. Recommend: Accept Changes
  • UNK13. While we don't know what that is yet, it seems they all changed to 0. I don't see any harm in letting this one change. Recommend: Accept Changes
  • UNK124. Very few changes to 0. Should be ok to merge this one. Recommend: Accept Changes
  • comment. A few notes that someone made adjustments at some point on CR and DR differences between 13th floor and Lucy. Adding an attachment for posterity. Recommend: Accept Changes
  • potionbelt. Quite a few changed to 0. May want to ignore changes to 0 on this one. Recommend: Accept Changes ignoring changes to 0
  • stacksize. Lots of stack size changes over the years on live. Many up to 1000. Could merge this and let operators limit actual stack sizes based on client/era/etc. Recommend: Accept Changes
  • source. Looks like we blank these out. Could quote 13th Floor as that is our input source. Recommend: Ignore Changes and give credit to 13th Floor
  • UNK014. Same as UNK13. Recommend: Accept Changes
  • augslot4unk2. Seems odd, but only 1 change. Should be ok to merge this. Recommend: Accept Changes
  • augslot5unk2. Same item and case as augslot4unk2. Recommend: Accept Changes
  • augslot4unk2. A few changed to 0. Probably ok to merge. Recommend: Accept Changes
  • UNK120. All seem to have changed from -1 to 0. Probably ok to merge. Recommend: Accept Changes
  • clickunk7. A few changes, but nothing significant from what I can tell. Recommend: Accept Changes
  • procunk1. Many changed to -1. Probably ok to merge. Recommend: Accept Changes
  • procunk4. Only 1 change. Should be ok. Recommend: Accept Changes
  • procunk7. Same as clickunk7. Recommend: Accept Changes
  • wornunk1. Same as procunk1. Recommend: Accept Changes
  • wornunk5. Only a couple changes to 0. Should be ok. Recommend: Accept Changes
  • wornunk7. Same as clickunk7. Recommend: Accept Changes
  • focusunk1. Several changes, but probably ok to merge. Same as other unknowns. Recommend: Accept Changes
  • focusunk2. Only 1 change. Recommend: Accept Changes
  • focusunk4. A few changed to 0. Should be ok. Recommend: Accept Changes
  • focusunk5. Only 2 changes. Recommend: Accept Changes
  • focusunk7. A few changes with the other unk7 entries. Recommend: Accept Changes
  • scrollunk7. Very few changes like the other unk7 entries. Recommend: Accept Changes
  • clickname. The open, unpack, and light descriptions were removed. Could probably ignore changes to those. Recommend: Accept Changes ignoring changes to open, unpack, and light descriptions.
  • dsmitigation. Same as shielding. Recommend: Accept Changes
  • ldonsellbackrate. Many of our old sellback rates were a flat 70. The dump changes most of them. Recommend: Accept Changes
  • powersourcecapacity. Some large value bumps. May need to make sure code can handle change from 32767 (int16). Recommend: Accept Changes with confirmation of capacity
  • bardlevel2. Some changes from 1 to 0. Should be ok. Recommend: Accept Changes
  • bardlevel. Same as bardlevel2. Recommend: Accept Changes
  • bardunk1. Several changes. Same as other unknowns. Recommend: Accept Changes
  • bardunk7. A few changes. Same as other unknowns. Recommend: Accept Changes
  • subtype. Several changes. May want to confirm usage and perhaps ignore these changes. Recommend: Ignore Changes pending verification
  • UNK220. Same as other UNKs. Recommend: Accept Changes
  • UNK221. Same as other UNKs. Recommend: Accept Changes
  • UNK223. Several changes. Recommend: Accept Changes
  • UNK224. Same as UNK223. Recommend: Accept Changes
  • UNK225. Very few changes. Probably ok to merge. Recommend: Accept Changes
  • UNK226. All changed to 0. Probably ok to merge. Recommend: Accept Changes
  • UNK227. Same as UNK223. Recommend: Accept Changes
  • UNK228. Almost all changed to 0. Recommend: Accept Changes
  • UNK229. Same as UNK228. Recommend: Accept Changes
  • UNK230. Same as other UNKs. Recommend: Accept Changes
  • UNK231. Looks like all changed from -1 to 0. Recommend: Accept Changes
  • UNK233. Looks like all changed to 0. Recommend: Accept Changes
  • UNK234. Several changed from 255 to 0. Recommend: Accept Changes
  • UNK236. Same as other UNKs. Recommend: Accept Changes
  • UNK237. Same as UNK223. Recommend: Accept Changes
  • UNK238. Looks like most changed to 0. Recommend: Accept Changes
  • UNK239. A few changes like other UNKs. Recommend: Accept Changes
  • UNK240. A few changes to 0 like other UNKs. Recommend: Accept Changes
  • UNK241. A couple changed to 0 like other UNKs. Recommend: Accept Changes
  • epicitem. Looks like they changed all the epics to 0. Should verify we don't use this field for display. Recommend: Ignore Changes and verify usage

CR-DR-Lucy.txt

@fryguy503
Copy link
Contributor

fryguy503 commented Dec 3, 2023

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.

@joligario
Copy link
Contributor Author

joligario commented Dec 3, 2023

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.

@Aeadoin
Copy link
Contributor

Aeadoin commented Dec 4, 2023

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.

@fryguy503
Copy link
Contributor

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;
}
}

@Aeadoin
Copy link
Contributor

Aeadoin commented Dec 4, 2023

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.

@fryguy503
Copy link
Contributor

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.

@fryguy503
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants