Altering Cold Mastery To Break Immunities

Post here about all aspects of D2 mod making whether it's information, problems or whatever. Please specify whether your post is relating to Classic D2 or the Expansion.

Moderator: Nizari

0
No votes
 
Total votes: 0

User avatar
RyanFialcowitz
Junior Member
Paladin
Posts: 100
Joined: Fri Jan 19, 2007 8:15 pm
Location: Santa Ana, California

Altering Cold Mastery To Break Immunities

Post by RyanFialcowitz » Thu Sep 11, 2008 5:29 am

How would I go about altering Cold Mastery so that it will break cold immunities?

-Ryan P. Fialcowitz

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains

Hand-picked

Re: Altering Cold Mastery To Break Immunities

Post by Nefarius » Thu Sep 11, 2008 6:29 am

You need to change the resistance evaluation code in D2Game.dll to not skip immune monsters when it applies pierce.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
RyanFialcowitz
Junior Member
Paladin
Posts: 100
Joined: Fri Jan 19, 2007 8:15 pm
Location: Santa Ana, California

Re: Altering Cold Mastery To Break Immunities

Post by RyanFialcowitz » Thu Sep 11, 2008 7:00 am

How would I go about doing that?

-Ryan P. Fialcowitz

User avatar
Necrolis
Senior Admin
Throne
Posts: 9125
Joined: Sat Mar 25, 2006 1:22 pm
Location: The Land of the Dead
South Africa

Hand-picked

Post by Necrolis » Thu Sep 11, 2008 3:12 pm

i've posted how to do this in CE(for 1.10)
Image
Netiquette, Do you USE it?!?! | Nefarius' Fixed TXT Files | Terms Of Service
Blackened | Day of Death | D2GFEx
"What was yours is mine. Your land, your people, and now your life." - Lim-Dul, the Necromancer
Judgement is Final, Death is Eternal

User avatar
RyanFialcowitz
Junior Member
Paladin
Posts: 100
Joined: Fri Jan 19, 2007 8:15 pm
Location: Santa Ana, California

Re: Altering Cold Mastery To Break Immunities

Post by RyanFialcowitz » Thu Sep 11, 2008 6:00 pm

Can it be done in 1.11b?

-Ryan P. Fialcowitz

User avatar
Necrolis
Senior Admin
Throne
Posts: 9125
Joined: Sat Mar 25, 2006 1:22 pm
Location: The Land of the Dead
South Africa

Hand-picked

Post by Necrolis » Fri Sep 12, 2008 7:56 am

ofc, just look at nefarius' post on damage generation and go to the section that checks resist >= 100
Image
Netiquette, Do you USE it?!?! | Nefarius' Fixed TXT Files | Terms Of Service
Blackened | Day of Death | D2GFEx
"What was yours is mine. Your land, your people, and now your life." - Lim-Dul, the Necromancer
Judgement is Final, Death is Eternal

User avatar
RyanFialcowitz
Junior Member
Paladin
Posts: 100
Joined: Fri Jan 19, 2007 8:15 pm
Location: Santa Ana, California

Re: Altering Cold Mastery To Break Immunities

Post by RyanFialcowitz » Fri Sep 12, 2008 4:38 pm

I looked through the post and didn't see the part about the resist checking, my fault I know but perhaps you could post the exact code I would need to change- it would really help me out and I would obviously appreciate it. Many thanks.

-Ryan P. Fialcowitz

User avatar
Nameless
Forum Legend
Power
Posts: 3357
Joined: Tue Feb 14, 2006 6:38 am

Post by Nameless » Sat Sep 13, 2008 9:27 am

If you want to do it without code editing, you could do something with an on-equip aura (like Conviction, the player would get a charm for example) whose effect is based on the level of Cold Mastery.

User avatar
Necrolis
Senior Admin
Throne
Posts: 9125
Joined: Sat Mar 25, 2006 1:22 pm
Location: The Land of the Dead
South Africa

Hand-picked

Post by Necrolis » Sat Sep 13, 2008 11:29 am

Code: Select all

[ PIERCE ]
6FC9A5F8  |> 8B43 0C          MOV EAX,[EBX+C]         EAX = ptResTable->Pierce
6FC9A5FB  |. 83F8 FF          CMP EAX,-1
6FC9A5FE  |. 74 1E            JE SHORT D2GAME.6FC9A61E   (Pierce == -1): NO_PIERCE
6FC9A600  |. 83FE 64          CMP ESI,64
6FC9A603  |. 7C 07            JL SHORT D2GAME.6FC9A60C   (resistance < 100): APPLY_PIERCE 
easy as: search damage gen, ctrl+f pierce....
viewtopic.php?t=43302&highlight=damage+generation
Image
Netiquette, Do you USE it?!?! | Nefarius' Fixed TXT Files | Terms Of Service
Blackened | Day of Death | D2GFEx
"What was yours is mine. Your land, your people, and now your life." - Lim-Dul, the Necromancer
Judgement is Final, Death is Eternal

User avatar
RyanFialcowitz
Junior Member
Paladin
Posts: 100
Joined: Fri Jan 19, 2007 8:15 pm
Location: Santa Ana, California

Re: Altering Cold Mastery To Break Immunities

Post by RyanFialcowitz » Sat Sep 13, 2008 4:18 pm

So, I looked for 83FE 64 at offset 6FC9A600 which I can only assume mena s 9A600 as there is no 6FC9A600. . . And it wasn't there so I searched the entire dll and found it at offset 7A5FB- I'm pretty sure this is the right one as it has 7C 07 right after it. I'm assuming the 64 is what I have to change as it's 100 in hexadecimal.

-Ryan P. Fialcowitz
Last edited by RyanFialcowitz on Sat Sep 13, 2008 6:52 pm, edited 1 time in total.

User avatar
RyanFialcowitz
Junior Member
Paladin
Posts: 100
Joined: Fri Jan 19, 2007 8:15 pm
Location: Santa Ana, California

Post by RyanFialcowitz » Sat Sep 13, 2008 10:43 pm

Thank you- which of those lines should I change to get Cold Mastery to break Cold Immunities? Also, I'm having trouble locating the offsets you listed, such as 6FC9A600- this offset doesn't seem to exist as far as i can tell. I usually see offsets like 0x. . . is this different or what? What should I do? Thank you so much for your help.

-Ryan P. Fialcowitz

User avatar
Nameless
Forum Legend
Power
Posts: 3357
Joined: Tue Feb 14, 2006 6:38 am

Post by Nameless » Sun Sep 14, 2008 7:46 am

The prefix "0x..." just means that the number that follows is in hexadecimal notation, the actual number is what follows, just pretend there is a 0x before the numbers in Necrolis' post.

User avatar
RyanFialcowitz
Junior Member
Paladin
Posts: 100
Joined: Fri Jan 19, 2007 8:15 pm
Location: Santa Ana, California

Post by RyanFialcowitz » Sun Sep 14, 2008 5:00 pm

I couldn't find this offset 6FC9A600, I did find 9A600- but the code after it was not what I should be changing. And still no one has told me what to change. . .

-Ryan P. Fialcowitz

User avatar
Necrolis
Senior Admin
Throne
Posts: 9125
Joined: Sat Mar 25, 2006 1:22 pm
Location: The Land of the Dead
South Africa

Hand-picked

Post by Necrolis » Mon Sep 15, 2008 5:14 am

Nop out the cmp esi,64 and the jl(this will make pierce affect all resist types >100). You need to subtract the base address of the 1.11b d2game.dll from the above, they're listed in the tutorial nef gave you in the other thread
Image
Netiquette, Do you USE it?!?! | Nefarius' Fixed TXT Files | Terms Of Service
Blackened | Day of Death | D2GFEx
"What was yours is mine. Your land, your people, and now your life." - Lim-Dul, the Necromancer
Judgement is Final, Death is Eternal

User avatar
RyanFialcowitz
Junior Member
Paladin
Posts: 100
Joined: Fri Jan 19, 2007 8:15 pm
Location: Santa Ana, California

Re: Altering Cold Mastery To Break Immunities

Post by RyanFialcowitz » Mon Sep 15, 2008 6:42 pm

1.) I can't find in the tutorial where it covers the subtract command- when I use it I'm presented with many options- which should I chose?

2.) Do I subtract before or after I look for the code?

3.) Am I looking for 6FC9A600 & 6FC9A603 or 83FE 64 & 7C 07 or CMP ESI,64 & JL or all of the above?

4.) I can find addresses like 0006FC98 but none as long as the 6FC9A600 when I tried to do the subtration thing- none of them started with 6 but with 7. . . probably did it wrong though.

5.) I searched for the Nop command- but am not clear on how to use it. Should I just highlight CMP ESI,64 & JL and write nop in there place or is that incorrect?

Obviously I'm having a hard time with this and I do deeply appreciate your patience and help.

-Ryan P. Fialcowitz

User avatar
Necrolis
Senior Admin
Throne
Posts: 9125
Joined: Sat Mar 25, 2006 1:22 pm
Location: The Land of the Dead
South Africa

Hand-picked

Post by Necrolis » Mon Sep 15, 2008 8:11 pm

The very first page of the tutorial lists the base address for d2game, use windows calculator to subtract that from the above addresses(switch it to advanced mode under options and set it to hex), it should be 6FC20000 for the base, then go to the given address in olly and rightclick->disassemble, then rightclick->assemble, and write nop in the box and hit enter, do the same to the jl and then save
Image
Netiquette, Do you USE it?!?! | Nefarius' Fixed TXT Files | Terms Of Service
Blackened | Day of Death | D2GFEx
"What was yours is mine. Your land, your people, and now your life." - Lim-Dul, the Necromancer
Judgement is Final, Death is Eternal

User avatar
RyanFialcowitz
Junior Member
Paladin
Posts: 100
Joined: Fri Jan 19, 2007 8:15 pm
Location: Santa Ana, California

Re: Altering Cold Mastery To Break Immunities

Post by RyanFialcowitz » Mon Sep 15, 2008 8:53 pm

1.) Subtracting 6FC20000 from FC9A600 gives a value of FFFFFFFFA007A600 which is nowhere in the dll. Using OllyDbg all the values are like 7C901046, they all start 7C9 then the numbers after change. I did find 7A601 but the code was different then that listed above.

2.) Right clicking does not present the option to disassemble only assemble.

-Ryan P. Fialcowitz
Last edited by RyanFialcowitz on Thu Sep 18, 2008 6:02 pm, edited 2 times in total.

Return to “General Mod Making”