Attribute/Gear Mods Testing
Moderator: Community Managers
Attribute/Gear Mods Testing
Hello All!
I could use some help testing the attribute code as well as the item equip code. Specifically you should be able to equip items and get their bonuses applied. I have a few attributes that even apply their mods to other attributes. So if you are interested in helping me test this, please create a character on "Ratief's Dev World" and play with items.
Here are some things to keep in mind/test/break.
I could use some help testing the attribute code as well as the item equip code. Specifically you should be able to equip items and get their bonuses applied. I have a few attributes that even apply their mods to other attributes. So if you are interested in helping me test this, please create a character on "Ratief's Dev World" and play with items.
Here are some things to keep in mind/test/break.
- Currently all stats display in strange ways and they all have a base default of 1%. Item mods are being applied, but they don't get displayed right now (I don't have the conversion from integer => percent working). So please don't bug this sort of stuff.[/*2vly2s8y]
- Defense, Attack, Ranged, and Off Hand are all sorts of screwed up and I haven't even looked into them yet.[/*2vly2s8y]
- The only attribute dependencies (that is what I'm calling them) that are working are the following.
- Con => resists[/*2vly2s8y]
- Con => HPs[/*2vly2s8y]
- Vit => run speed[/*2vly2s8y][/list:u][/*2vly2s8y]
- Hopefully things are all adding up to the correct values.[/*2vly2s8y]
- HPs/Energy/Endurance should all be working and regenerating.[/*2vly2s8y]
- Equiped effects/buffs aren't working.[/*2vly2s8y]
- Adventuring/Crafting/Diplomacy items should all be working.[/*2vly2s8y]
- Armor class should be working.[/*2vly2s8y]
- Mount speeds are currently stacking (ground+ground from flying mount = applied ground mount speed)[/*2vly2s8y]
- I haven't figured out how to detect landing yet, so you get the flying speed as soon as you summon your mount.[/*2vly2s8y]
- If my server disappears, just PM me and I'll get it running again.[/*2vly2s8y]
- You should be able to reset your attributes using '.resetattrs'.[/*2vly2s8y]
- If things get screwed up, try removing all of your gear, doing a resetattrs, then relogging. Please report if you have to do this as these bugs are critical![/*2vly2s8y][/list:u]
- John Adams
- Retired
- Posts: 4581
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: Attribute/Gear Mods Testing
Big Glaring Notice:
This is not code on New Telon!
You must test on Ratief's server.
You must test on Ratief's server.
Re: Attribute/Gear Mods Testing
I tried to make a toon, but it broke. It didn't go to character customization at all. And now it's stuck on trying to get the info from the server.
- John Adams
- Retired
- Posts: 4581
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: Attribute/Gear Mods Testing
Confirmed, created new toon, just hangs there.
Wake up from your turkey nap and reset!
Wake up from your turkey nap and reset!
Re: Attribute/Gear Mods Testing
This is interesting. I see that the new characters got created without errors. I'm also still logged into the server. Very strange.
Edit: I was just able to create a character on my server as well. I have no clue why others are having an issue... I'll dig into it more tomorrow.
Edit: I was just able to create a character on my server as well. I have no clue why others are having an issue... I'll dig into it more tomorrow.
Re: Attribute/Gear Mods Testing
Everyone should be able to log in now. Sorry for the troubles.
Re: Attribute/Gear Mods Testing
As I've been playing with this and trying to figure out the correct stat defaults, I have run into a couple of problems though.
1) The item mod parsed data has all of the values as unsigned ints. There are several items that have negative item mods. I think we can fix this without a re-parse, but I want to mention it.
2) This one could be a big issue. I've run across some items that have strange mods listed. For the most part, if attribute_id=-1, then attribute_id2=the stat id (or so I assumed). However, I have found that there are some items with mods that have both an attribute_id and an attribute_id2. Both seem to be valid. As an example, item #1268888, has +156 Physical Spell Damage Focus. This is somehow derived from attribute_id=114 and attribute_id2=15. I haven't figured out what a stat id=15 is yet (it is still unknown), but 114 is attribute Physical Resistance. So somehow stat 15 turns that into Physical Spell Damage Focus. You see the same sort of thing from item #1269663. Stat 15 somehow turns attribute #55 (Fire Resistance) into Fire Spell Damage Focus. I've also seen this sort of thing on some diplo mods.
My code definitely doesn't deal with this strangeness. Right now I'm not even sure how to deal with it. I'm going to have to stand back and look at it all again and see if attribute_id2 is actually an id at all. Maybe it is some sort of function id...
1) The item mod parsed data has all of the values as unsigned ints. There are several items that have negative item mods. I think we can fix this without a re-parse, but I want to mention it.
2) This one could be a big issue. I've run across some items that have strange mods listed. For the most part, if attribute_id=-1, then attribute_id2=the stat id (or so I assumed). However, I have found that there are some items with mods that have both an attribute_id and an attribute_id2. Both seem to be valid. As an example, item #1268888, has +156 Physical Spell Damage Focus. This is somehow derived from attribute_id=114 and attribute_id2=15. I haven't figured out what a stat id=15 is yet (it is still unknown), but 114 is attribute Physical Resistance. So somehow stat 15 turns that into Physical Spell Damage Focus. You see the same sort of thing from item #1269663. Stat 15 somehow turns attribute #55 (Fire Resistance) into Fire Spell Damage Focus. I've also seen this sort of thing on some diplo mods.
My code definitely doesn't deal with this strangeness. Right now I'm not even sure how to deal with it. I'm going to have to stand back and look at it all again and see if attribute_id2 is actually an id at all. Maybe it is some sort of function id...
- John Adams
- Retired
- Posts: 4581
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: Attribute/Gear Mods Testing
[quote="Ratief"]The item mod parsed data has all of the values as unsigned ints. There are several items that have negative item mods. I think we can fix this without a re-parse, but I want to mention it.[/quote]
Make sure this is fixed in the vgemu-structs.xml file and I will update the parser for the next full run (happening soon). If you don't know how, get with Xinux.
Also, here is my explosion of that item, if seeing the data helps.
http://vgoplayers.com/items.php?itemId=1268888
Make sure this is fixed in the vgemu-structs.xml file and I will update the parser for the next full run (happening soon). If you don't know how, get with Xinux.
Also, here is my explosion of that item, if seeing the data helps.
http://vgoplayers.com/items.php?itemId=1268888
Re: Attribute/Gear Mods Testing
15 = Spell Damage focus
Code: Select all
BOOL __cdecl _GetItemModNameById(int a1, int a2)
{
int v2; // edx@2
int v3; // eax@68
char *v5; // [sp-4h] [bp-68h]@3
int v6; // [sp+4h] [bp-60h]@0
int v7; // [sp+8h] [bp-5Ch]@0
int v8; // [sp+10h] [bp-54h]@0
int v9; // [sp+14h] [bp-50h]@1
int v10; // [sp+18h] [bp-4Ch]@1
char v11; // [sp+1Ch] [bp-48h]@68
void *v12; // [sp+20h] [bp-44h]@69
int v13; // [sp+30h] [bp-34h]@70
unsigned int v14; // [sp+34h] [bp-30h]@68
char v15; // [sp+38h] [bp-2Ch]@68
void *v16; // [sp+3Ch] [bp-28h]@68
int v17; // [sp+4Ch] [bp-18h]@68
unsigned int v18; // [sp+50h] [bp-14h]@68
unsigned int v19; // [sp+54h] [bp-10h]@1
int v20; // [sp+60h] [bp-4h]@2
v19 = (unsigned int)&v9 ^ dword_144A69C;
v10 = a1;
v9 = 0;
switch ( a2 )
{
case 2:
_BasicString__BasicString(a1, (char *)L"Tool Accuracy");
v20 = 0;
v9 = 1;
return sub_DA40AB((void *)((unsigned int)&v9 ^ v19), a1, v2, v8, v6, v7, v9);
case 3:
case 43:
v5 = (char *)L"Tool Effectiveness";
goto LABEL_4;
case 5:
v5 = (char *)L"Healing Focus";
goto LABEL_4;
case 6:
case 15:
v5 = (char *)L"Spell Damage Focus";
goto LABEL_4;
case 7:
v5 = (char *)L"Accuracy Rating";
goto LABEL_4;
case 8:
v5 = (char *)L"Damage Rating";
goto LABEL_4;
case 9:
v5 = (char *)L"Evasion Rating";
goto LABEL_4;
case 10:
v5 = (char *)L"Mitigation Rating";
goto LABEL_4;
case 26:
v5 = (char *)L"Melee Accuracy Rating";
goto LABEL_4;
case 27:
v5 = (char *)L"Melee Damage Rating";
goto LABEL_4;
case 28:
v5 = (char *)L"Melee Evasion Rating";
goto LABEL_4;
case 29:
v5 = (char *)L"Melee Mitigation Rating";
goto LABEL_4;
case 30:
v5 = (char *)L"Ranged Accuracy Rating";
goto LABEL_4;
case 31:
v5 = (char *)L"Ranged Damage Rating";
goto LABEL_4;
case 32:
v5 = (char *)L"Spell Accuracy Rating";
goto LABEL_4;
case 33:
v5 = (char *)L"Spell Damage Rating";
goto LABEL_4;
case 34:
v5 = (char *)L"Spell Evasion Rating";
goto LABEL_4;
case 35:
v5 = (char *)L"Spell Mitigation Rating";
goto LABEL_4;
case 37:
v5 = (char *)L"Endurance Regeneration";
goto LABEL_4;
case 38:
v5 = (char *)L"Energy Regeneration";
goto LABEL_4;
case 39:
v5 = (char *)L"Health Regeneration";
goto LABEL_4;
case 40:
v5 = (char *)L"Melee Haste";
goto LABEL_4;
case 41:
v5 = (char *)L"Spell Haste";
goto LABEL_4;
case 42:
v5 = (char *)L"Mount Speed (Ground)";
goto LABEL_4;
case 70:
v5 = (char *)L"Mount Speed (Air)";
goto LABEL_4;
case 71:
v5 = (char *)L"Mount Speed (Water)";
goto LABEL_4;
case 36:
v5 = (char *)L"Mount Stability";
goto LABEL_4;
case 48:
v5 = (char *)L"Debate Effectiveness";
goto LABEL_4;
case 49:
v5 = (char *)L"Min Range";
goto LABEL_4;
case 50:
v5 = (char *)L"Max Range";
goto LABEL_4;
case 51:
v5 = (char *)L"% Aim Time";
goto LABEL_4;
case 52:
v5 = (char *)L"General Critical Hit Rating";
goto LABEL_4;
case 53:
v5 = (char *)L"Melee Critical Hit Rating";
goto LABEL_4;
case 54:
v5 = (char *)L"Ranged Critical Hit Rating";
goto LABEL_4;
case 55:
v5 = (char *)L"Spell Critical Hit Rating";
goto LABEL_4;
case 67:
v5 = (char *)L"Harvesting Speed";
goto LABEL_4;
case 68:
v5 = (char *)L"Min Units Per Hit";
goto LABEL_4;
case 69:
v5 = (char *)L"Avg Units Per Hit";
goto LABEL_4;
case 19:
v5 = (char *)L"Assembly Skills";
goto LABEL_4;
case 17:
v5 = (char *)L"Refining Parent Skills";
goto LABEL_4;
case 18:
v5 = (char *)L"Finishing Parent Skills";
goto LABEL_4;
case 20:
v5 = (char *)L"Crafting Station Use";
goto LABEL_4;
case 22:
v5 = (char *)L"Crafting Tool Use";
goto LABEL_4;
case 21:
v5 = (char *)L"Crafting Utility Use";
goto LABEL_4;
case 72:
v5 = (char *)L"Heal Critical Chance";
goto LABEL_4;
case 73:
v5 = (char *)L"Heal Critical Multiplier";
goto LABEL_4;
case 75:
v5 = (char *)L"Melee Strikethrough";
goto LABEL_4;
case 76:
v5 = (char *)L"Melee Strikethrough Chance";
goto LABEL_4;
case 77:
v5 = (char *)L"Spell Strikethrough";
goto LABEL_4;
case 78:
v5 = (char *)L"Spell Strikethrough Chance";
goto LABEL_4;
case 74:
v5 = (char *)L"Heal Effectiveness";
goto LABEL_4;
case 45:
v5 = (char *)L"Weapon Damage";
goto LABEL_4;
case 44:
v5 = (char *)L"Armor Class";
goto LABEL_4;
case 46:
v5 = (char *)L"Weapon Delay";
goto LABEL_4;
case 79:
v5 = (char *)L"Global Recovery Haste";
goto LABEL_4;
case 80:
v5 = (char *)L"Critical Hit Evasion";
goto LABEL_4;
case 81:
v5 = (char *)L"Critical Hit Mitigation";
goto LABEL_4;
case 82:
v5 = (char *)L"Proc On Attack Chance";
goto LABEL_4;
case 83:
v5 = (char *)L"Proc On Hit Chance";
goto LABEL_4;
case 84:
v5 = (char *)L"Proc On Cast Chance";
goto LABEL_4;
case 85:
v5 = (char *)L"AOE Mitigation";
goto LABEL_4;
case 86:
v5 = (char *)L"Spell Critical Damage Bonus";
goto LABEL_4;
case 87:
v5 = (char *)L"Melee Critical Damage Bonus";
goto LABEL_4;
case 88:
v5 = (char *)L"Ranged Critical Damage Bonus";
goto LABEL_4;
case 89:
v5 = (char *)L"Critical Damage Bonus";
LABEL_4:
_BasicString__BasicString(a1, v5);
v20 = 0;
v9 = 1;
break;
default:
v18 = 7;
v17 = 0;
LOWORD(v16) = 0;
_BasicString__opEquals_wchar_((int)&v15, (char *)L"Unknown Mod: ", 13);
Re: Attribute/Gear Mods Testing
The trouble is that 15 is also all of the specialized spell damage focus values (so 7 attributes in one). My code is written such that they are all separate attributes.