[v62/v83] [For WZ Edits] Hair/Item Cap Client Fix

Newbie Spellweaver
Joined
Apr 6, 2017
Messages
33
Reaction score
0
can i know where should i change these?
 
Newbie Spellweaver
Joined
Apr 6, 2017
Messages
33
Reaction score
0
Your localhost (client) using OllyDBG.

ooh thanks alot! i changed them, now i can see the hairs but not the face any idea what happen? ._. ( the face became blank )

ahh, some hair also bald xD

- i tried to import v14x hair to v83
 
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
thanks, umm however if i were to edit for v117.2 item cap where/ which address should i look for?

post-bb paths were a little more advanced iirc. from the clients i've looked into starting from v92 and up, they moved from conditions to a switch-table. you need to modify the index of the switch table's jump location to jump to the return value of hairs when it's nTI type 4 (itemID / 10000). you need to find the function get_equip_data_path which you can do by using StringPools.
 
Newbie Spellweaver
Joined
Apr 6, 2017
Messages
33
Reaction score
0

i dont really quite understand,
however where and how should i modify the index of switch table, and also ' get_equip_data_path '
sorry yea, im quite noob at these stuff. still learning .__.
 
Junior Spellweaver
Joined
Jan 10, 2017
Messages
105
Reaction score
6
How can I save what I have changed?
 
Last edited:
Experienced Elementalist
Joined
Sep 27, 2016
Messages
217
Reaction score
68
00AF5299 cmp eax,0
00AF529C sete cl

something like that right? not sure since I did this long ago
 
Newbie Spellweaver
Joined
Dec 17, 2009
Messages
5
Reaction score
0
After searching I found the addresses you mentioned, when I changed them I tried running my client and it still DC'ed me when I scrolled through the hairstyles/faces. Any idea what's up? (V83)
 
Newbie Spellweaver
Joined
Sep 27, 2018
Messages
93
Reaction score
20
After searching I found the addresses you mentioned, when I changed them I tried running my client and it still DC'ed me when I scrolled through the hairstyles/faces. Any idea what's up? (V83)

Not a client issue, you didn't import them to the WZs correctly. If you had imported them correctly and didn't apply the client fix... your character would be bald, not cause a DC.
 
Newbie Spellweaver
Joined
Dec 17, 2009
Messages
5
Reaction score
0
Thanks. I’ll go dump the wz again when I’m home and I’ll let you know.
 
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
Not a client issue, you didn't import them to the WZs correctly. If you had imported them correctly and didn't apply the client fix... your character would be bald, not cause a DC.

Actually it's a client issue I overlooked. As Umbreon pointed out previously, Nexon has two additional checks for hairs on top of being able to render them when it comes to using hairstyle NPC dialogues. If the first hair isn't a valid hair range, or you scroll to invalid hair, you'll dc just the same. Check out his post here to the explanation behind that problem.
 
Newbie Spellweaver
Joined
Sep 27, 2018
Messages
93
Reaction score
20
Are you sure? It didn't crash my client when viewing them via style npcs, they just rendered bald there too.

Edit:
Oh yeah, if you're using HeavenMS, you have to change the hair ID range in the source too. That's probably causing your disconnection since the source would think you're packet editing. lol
 
Newbie Spellweaver
Joined
May 14, 2019
Messages
51
Reaction score
0
thank you so much.
i can see the new hair with use command: !hair 40000
but it still will be crash when add hair 40000 to the npc script,
 
Newbie Spellweaver
Joined
Jul 5, 2017
Messages
12
Reaction score
1
Who ever uses "HeavenMS" Source Can do it without Client edit at all.. Just need to Add the ID's Ranges to: MapleItemInformationProvider.javaJust change the the Highest ID here to the Highest ID in you .WZ Files And you got it fixed without client editing theData = eqpStringData; cat = "Eqp/Accessory"; } else if (itemId >= 1000000 && itemId < 1010000) { theData = eqpStringData; cat = "Eqp/Cap"; } else if (itemId >= 1102000 && itemId < 1103231) { theData = eqpStringData; cat = "Eqp/Cape"; } else if (itemId >= 1040000 && itemId < 1050000) { theData = eqpStringData; cat = "Eqp/Coat"; } else if (itemId >= 20000 && itemId < 28846) { theData = eqpStringData; cat = "Eqp/Face"; } else if (itemId >= 1080000 && itemId < 1090000) { theData = eqpStringData; cat = "Eqp/Glove"; } else if (itemId >= 30000 && itemId < 48107) { theData = eqpStringData; cat = "Eqp/Hair"; } else if (itemId >= 1050000 && itemId < 1060000) { theData = eqpStringData; cat = "Eqp/Longcoat"; } else if (itemId >= 1060000 && itemId < 1070000) { theData = eqpStringData; cat = "Eqp/Pants"; } else if (itemId >= 1802000 && itemId < 1842000) { theData = eqpStringData; cat = "Eqp/PetEquip"; } else if (itemId >= 1112000 && itemId < 1120000) { theData = eqpStringData; cat = "Eqp/Ring"; } else if (itemId >= 1092000 && itemId < 1100000) { theData = eqpStringData; cat = "Eqp/Shield"; } else if (itemId >= 1070000 && itemId < 1080000) { theData = eqpStringData; cat = "Eqp/Shoes"; } else if (itemId >= 1900000 && itemId < 2000000) { theData = eqpStringData; cat = "Eqp/Taming"; } else if (itemId >= 1300000 && itemId < 1800000) { theData = eqpStringData; cat = "Eqp/Weapon"; } else if (itemId >= 4000000 && itemId < 5000000) { theData = etcStringData; cat = "Etc"; } else if (itemId >= 3000000 && itemId < 4000000) {