Login


All times are UTC - 5 hours


It is currently Tue Feb 20, 2018 6:58 am




Post new topic Reply to topic  [ 18 posts ] 
Author Message
 Post subject: 1.7 Code Changes (Moved)
PostPosted: Fri Feb 12, 2016 10:45 pm 
Game Server Host
User avatar

Joined: Mon Aug 31, 2009 12:33 am
Posts: 4286
All code edits added in 1.7 are listed here if anyone wants to edit these in future.

Code:
Eth item reqs:

D2Common
-------------------------
00059916   74 06            JE SHORT 0005991E
00059918   83EF 0A          SUB EDI,0A           ; Change SUB to ADD (0A = Value to increase/decrease by)
0005991B   83ED 0A          SUB EBP,0A           ; Change SUB to ADD (0A = Value to increase/decrease by)

D2Client:
--------------------------
0004337D   74 06            JE SHORT 00043385
0004337F   83EB 0A          SUB EBX,0A           ; As above
00043382   83ED 0A          SUB EBP,0A           ; As above


Code:
Barb find potion item list table.
D2Game 00110548 in raw .dll Item table:
--------------------------------------------------------------------------

00110548  70 00 00 00 00 00 00 00 68 70 32 20 6D 70 32 20  p.......hp2 mp2
00110558  72 76 73 20 68 70 33 20 6D 70 33 20 72 76 73 20  rvs hp3 mp3 rvs
00110568  68 70 33 20 6D 70 33 20 72 76 73 20 68 70 34 20  hp3 mp3 rvs hp4
00110578  6D 70 34 20 72 76 6C 20 68 70 34 20 6D 70 34 20  mp4 rvl hp4 mp4
00110588  72 76 6C 20 68 70 34 20 6D 70 34 20 72 76 6C 20  rvl hp4 mp4 rvl
00110598  68 70 34 20 6D 70 35 20 72 76 6C 20 68 70 35 20  hp4 mp5 rvl hp5
001105A8  6D 70 35 20 72 76 6C 20 68 70 35 20 6D 70 35 20  mp5 rvl hp5 mp5
001105B8  72 76 6C 20 68 70 35 20 6D 70 35 20 72 76 6C 20  rvl hp5 mp5 rvl
001105C8  68 70 35 20 6D 70 35 20 72 76 6C 20 68 70 35 20  hp5 mp5 rvl hp5
001105D8  6D 70 35 20 72 76 6C 20 68 70 35 20 6D 70 35 20  mp5 rvl hp5 mp5
001105E8  72 76 6C 20 68 70 35 20 6D 70 35 20 72 76 6C 20  rvl hp5 mp5 rvl
001105F8  68 70 35 20 6D 70 35 20 72 76 6C 20 0F 00 00 00  hp5 mp5 rvl ...
00110608  43 3A 5C 70 72 6F 6A 65 63 74 73 5C 44 32 5C 68  C:\projects\D2\h
00110618  65 61 64 5C 44 69 61 62 6C 6F 32 5C 53 6F 75 72  ead\Diablo2\Sour
00110628  63 65 5C 44 32 47 61 6D 65 5C 53 4B 49 4C 4C 53  ce\D2Game\SKILLS
00110638  5C 53 6B 69 6C 6C 42 61 72 2E 63 70 70 00 00 00  \SkillBar.cpp...

Health pot + mana pot + rejuv type, per act pe defficulty (15 combinations total)
----------------------------------------------------------------------------




Code:
Merc clientside resist cap: D2Client
-----------------------------------------------------
0004DFC4   83C7 32          ADD EDI,32  50% before max res
0004DFC7   83FF 42          CMP EDI,42  66% after max res
0004DFCA   7C 05            JL SHORT 0004DFD1
0004DFCC   BF 42000000      MOV EDI,42  66% after max res
==================================================



Code:
Remove the randomiser for number of additional items spawned at vendors:
-----------------------------------------------------
0009739A   33C0             XOR EAX,EAX
0009739C   8A41 03          MOV AL,BYTE PTR DS:[ECX+3]
0009739F   03C2             ADD EAX,EDX                 ; NOP to remove additional 1-3 items of same type
000973A1   33D2             XOR EDX,EDX
000973A3   8A51 02          MOV DL,BYTE PTR DS:[ECX+2]
000973A6   8BCA             MOV ECX,EDX
000973A8   3BC1             CMP EAX,ECX
====================================================



Code:
Increase max ilvl for vendrs to sell whites
--------------------------------------------
000971F8   83FF 19          CMP EDI,19   ; ilvl to force magic
000971FB   7D 63            JGE SHORT 00097260


00097368   83FF 19          CMP EDI,19   ; ilvl to force magic
0009736B   BA 01000000      MOV EDX,1
00097370   7C 22            JL SHORT 00097394

=====================================================


Code:
Adjust max ilvl of items sold by vendors in normal (NM/Hell already set to 99)
------------------------------------------------------------------------------
00097171   85C0             TEST EAX,EAX
00097173   74 3E            JE SHORT 000971B3
00097175   8A40 22          MOV AL,BYTE PTR DS:[EAX+22]
00097178   C74424 44 0C0000>MOV DWORD PTR SS:[ESP+44],0C  ; Act 1 max ilvl
00097180   3C 05            CMP AL,5
00097182   C74424 48 140000>MOV DWORD PTR SS:[ESP+48],14  ; Act 2 max ilvl
0009718A   C74424 4C 1C0000>MOV DWORD PTR SS:[ESP+4C],1C  ; Act 3 ""   ""
00097192   C74424 50 240000>MOV DWORD PTR SS:[ESP+50],24  ; Act 4 ""   ""
0009719A   C74424 54 2D0000>MOV DWORD PTR SS:[ESP+54],2D  ; Act 5 ""   ""
000971A2   73 0F            JNB SHORT 000971B3
000971A4   25 FF000000      AND EAX,0FF
========================================================




Code:
Changing A5Q2 Rune reward from Tal, Ral, Ort to Gul, Vex, Ohm
----------------------------------------------------------------------------

0008239B   8B0C9D 78CDD36F  MOV ECX,DWORD PTR DS:[EBX*4+6FD3CD78] ; Rune Reward Pointer
6FD3CD78-6FC30000 Base:
10CD78 in unloaded Hex:
0010CD78  72 30 37 20 72 30 38 20 72 30 39 20 72 30 31 20  r07 r08 r09 r01
0010CD88  72 30 32 20 72 30 33 20 72 30 34 20 72 30 35 20  r02 r03 r04 r05
0010CD98  72 30 36 20 72 30 37 20 72 30 38 20 72 30 39 20  r06 r07 r08 r09
0010CDA8  72 31 30 20 72 31 31 20 72 31 32 20 72 31 33 20  r10 r11 r12 r13
0010CDB8  72 31 34 20 72 31 35 20 72 31 36 20 72 31 37 20  r14 r15 r16 r17
0010CDC8  72 31 38 20 72 31 39 20 72 32 30 20 72 32 31 20  r18 r19 r20 r21
0010CDD8  72 32 32 20 72 32 33 20 72 32 34 20 72 32 35 20  r22 r23 r24 r25
0010CDE8  72 32 36 20 72 32 37 20 72 32 38 20 72 32 39 20  r26 r27 r28 r29
0010CDF8  72 33 30 20 72 33 31 20                          r30 r31

First 12 bytes = rune codes for A5Q2. 4 bytes per rune.

========================================================


Code:
Enabled Physical Pierce:
Passive Phys Pierce:
D2Game Hex: 10F098 - Changed FF FF FF FF to 78 01 00 00 (New Stat ID)

Change PLR so it is pierced by its own stat rather than pois pierce:
Passive PLR Pierce:
D2Game Hex: 10F1D0 - Changed 50 01 00 00 (Pois Pierce ID) to 79 01 00 00 (New Stat ID)
=========================================================


Code:
Ormus ring reward changed to difficulty dependant item that allows access to each level challenge
================================================================================================
Original:
000796FF   68 72696E20      PUSH 206E6972   ; PUSH RING CODE

Changed to:
000796FF   E9 BFD30700      JMP 000F6AC3    ; JUMP TO FREE SPACE


New reward code:
000F6AC3   33C0             XOR EAX,EAX
000F6AC5   8A41 6D          MOV AL,BYTE PTR DS:[ECX+6D]   ; get difficulty
000F6AC8   48               DEC EAX                       ; -1
000F6AC9   74 0D            JE SHORT 000F6AD8             ; jump if even (NM is equal)
000F6ACB   48               DEC EAX                       ; -1
000F6ACC   75 14            JNZ SHORT 000F6AE2            ;jump if not zero (normal is not zero)
000F6ACE   68 6F726D33      PUSH 336D726F                 ; push hell item (orm3)
000F6AD3  ^E9 2C2CF8FF      JMP 00079704                  ;jump back to original function
000F6AD8   68 6F726D32      PUSH 326D726F                 ; push nm item (orm2)
000F6ADD  ^E9 222CF8FF      JMP 00079704                  ; jump back to original function
000F6AE2   68 6F726D31      PUSH 316D726F                 ; push normal item (orm1)
000F6AE7  ^E9 182CF8FF      JMP 00079704                  ; jump back to original function
000F6AEC   C2 0400          RETN 4

=======================================================


Code:
Change Fire Enchanted MonUMod missile Server Side: both in raw .dll
=======================================================================
D2Game.dll:
0003C7C6   6A 01            PUSH 1
0003C7C8   51               PUSH ECX
0003C7C9   52               PUSH EDX
0003C7CA   6A 00            PUSH 0
0003C7CC   6A 00            PUSH 0
0003C7CE   6A 01            PUSH 1
0003C7D0   6A 00            PUSH 0
0003C7D2   53               PUSH EBX
0003C7D3   BA 74030000      MOV EDX,374                ; missile ID 884
0003C7D8   8BCE             MOV ECX,ESI
0003C7DA   E8 414C0A00      CALL 000E1420



D2Client:
000A53F2   6A 01            PUSH 1
000A53F4   48               DEC EAX
000A53F5   6A 00            PUSH 0
000A53F7   57               PUSH EDI
000A53F8   50               PUSH EAX
000A53F9   894424 24        MOV DWORD PTR SS:[ESP+24],EAX
000A53FD   E8 EE96FFFF      CALL 0009EAF0
000A5402   BA 74030000      MOV EDX,374                   ;missile ID 884
000A5407   8B4C24 14        MOV ECX,DWORD PTR SS:[ESP+14]


--------------------------------------------------------
========================================================



Code:
Changing auraenchanted skill ID's
Hardcoded aura enchanted table:
6FD2EF68 (FEF68 in hex editor (XVI32))
############################################
00000000 00000000 01000000 06000000 62000000 
00000000 00000000 01000000 06000000 66000000   
00000000 00000000 01000000 05000000 6C000000
00000000 00000000 01000000 07000000 72000000
00000000 00000000 01000000 08000000 7B000000
00000000 00000000 01000000 08000000 7A000000
14000000 00000000 01000000 08000000 76000000
E7030000 00000000 00000000 01000000 67000000
############################################

Column 1 (level the monster has to be)
column 2 unknown
column 3 is aura enabled? (1=yes 0=no)
column 4 skill level factor (lower number = higher level)
column 5 SkillID in skills.txt

Changed to:
############################################
00000000 00000000 01000000 04000000 EF010000 - skill ID 495
00000000 00000000 01000000 04000000 F0010000 - skill ID 496
00000000 00000000 01000000 04000000 F1010000 - skill ID 497
00000000 00000000 01000000 04000000 F2010000 - skill ID 498
00000000 00000000 01000000 04000000 F3010000 - skill ID 499
00000000 00000000 01000000 04000000 F4010000 - skill ID 500
00000000 00000000 01000000 04000000 F5010000 - skill ID 501
00000000 00000000 01000000 04000000 F6010000 - skill ID 502
############################################
============================================



Code:
Changing moncurse table to new IDs
D2Game in XVI32:
############################################
F97A0 42 00 00 00 Amp
F97A4 48 00 00 00 Weaken
F97A8 4C 00 00 00 IM
F97AC 52 00 00 00 Life Tap
F97B0 57 00 00 00 Decrepify
F97B4 5B 00 00 00 Lower Resist
############################################
changed to:
############################################
F97A0 E9 01 00 00
F97A4 EA 01 00 00
F97A8 EB 01 00 00
F97AC EC 01 00 00
F97B0 ED 01 00 00
F97B4 EE 01 00 00
############################################
===========================================



Code:
Change max resist cap to 50%
D2Game:
-------------------------------------------
0008FC20   83C0 32          ADD EAX,32   ; 50%

D2Client:
------------------------------------------
00030C87   83C5 32          ADD EBP,32   ; 50%
===========================================



Code:
Ring reward from akara made unique and difficulty dependant:
D2game:
-----------------------------------------


Original push changed to jump:

0006B49C   E9 F5B50800      JMP 000F6A96


New Code:

000F6A96   33C9             XOR ECX,ECX
000F6A98   8A4D 6D          MOV CL,BYTE PTR SS:[EBP+6D]
000F6A9B   49               DEC ECX
000F6A9C   74 0D            JE SHORT 000F6AAB
000F6A9E   49               DEC ECX
000F6A9F   75 14            JNZ SHORT 000F6AB5
000F6AA1   68 72696E33      PUSH 336E6972           ;rin3 in hell
000F6AA6  ^E9 F649F7FF      JMP 0006B4A1
000F6AAB   68 72696E32      PUSH 326E6972           ;rin2 in NM
000F6AB0  ^E9 EC49F7FF      JMP 0006B4A1       
000F6AB5   68 72696E31      PUSH 316E6972           ;rin1 in norm
000F6ABA  ^E9 E249F7FF      JMP 0006B4A1            ; return to original code
000F6ABF   C2 0400          RETN 4

=========================================



Code:
Fixing manaburn:
D2Game:
----------------------------------------
0008EF09   C1E3 08          SHL EBX,8   ;   changed to 2
0008EF0C   83FB 08          CMP EBX,8   ; changed to 2
0008EF0F   7D 0C            JGE SHORT 0008EF1D
0008EF11   33C9             XOR ECX,ECX
0008EF13   85ED             TEST EBP,EBP
0008EF15   0F9CC1           SETL CL
0008EF18   49               DEC ECX
0008EF19   23CD             AND ECX,EBP
0008EF1B   EB 1E            JMP SHORT 0008EF3B
0008EF1D   6A 00            PUSH 0
0008EF1F   6A 3E            PUSH 3E
0008EF21   56               PUSH ESI
0008EF22   E8 6BC70500      CALL 000EB692
0008EF27   C1E0 08          SHL EAX,8    ; changed to 2
0008EF2A   55               PUSH EBP

=========================================================


Code:
Change resistance bonus granted by fire/cold/light/pois chanted manaburn and mag resist to 33%
D2Game:
--------------------------------------------
Fire Enchanted:
0003B787   83F9 09          CMP ECX,9           ; MonUMod ID 9 (fire enchanted)
0003B78A   75 18            JNZ SHORT 0003B7A4
0003B78C   83C7 4B          ADD EDI,4B          ; 75% resistance, changed to 21 (33%)
0003B78F   6A 00            PUSH 0
0003B791   57               PUSH EDI
0003B792   6A 27            PUSH 27             ; Fire resist stat ID
0003B794   56               PUSH ESI
0003B795   E8 0E010B00      CALL 000EB8A8
0003B79A   5F               POP EDI
0003B79B   5E               POP ESI
0003B79C   5D               POP EBP
0003B79D   5B               POP EBX
0003B79E   83C4 0C          ADD ESP,0C
0003B7A1   C2 0400          RETN 4

Cold Enchanted:
0003B7A4   83F9 12          CMP ECX,12             ; MonUMod 18 (cold enchanted)
0003B7A7   75 18            JNZ SHORT 0003B7C1
0003B7A9   83C3 4B          ADD EBX,4B             ; 75% resistance (changed to 21, 33%)
0003B7AC   6A 00            PUSH 0
0003B7AE   53               PUSH EBX
0003B7AF   6A 2B            PUSH 2B                ; cold resistance stat
0003B7B1   56               PUSH ESI
0003B7B2   E8 F1000B00      CALL 000EB8A8
0003B7B7   5F               POP EDI
0003B7B8   5E               POP ESI
0003B7B9   5D               POP EBP
0003B7BA   5B               POP EBX
0003B7BB   83C4 0C          ADD ESP,0C
0003B7BE   C2 0400          RETN 4

Lightning Enchanted
0003B7C1   83F9 11          CMP ECX,11             ; MonUMod 17 (lightning chanted)
0003B7C4   75 1C            JNZ SHORT 0003B7E2
0003B7C6   8B4424 10        MOV EAX,DWORD PTR SS:[ESP+10]
0003B7CA   6A 00            PUSH 0
0003B7CC   83C0 4B          ADD EAX,4B             ; 75% resistance, changed to 21 (33%)
0003B7CF   50               PUSH EAX
0003B7D0   6A 29            PUSH 29                ; lightning resist stat ID
0003B7D2   56               PUSH ESI
0003B7D3   E8 D0000B00      CALL 000EB8A8
0003B7D8   5F               POP EDI
0003B7D9   5E               POP ESI
0003B7DA   5D               POP EBP
0003B7DB   5B               POP EBX
0003B7DC   83C4 0C          ADD ESP,0C
0003B7DF   C2 0400          RETN 4

Poison Enchanted
0003B7E2   83F9 17          CMP ECX,17            ; MonUMod 23, poison enchanted
0003B7E5   75 18            JNZ SHORT 0003B7FF
0003B7E7   83C5 4B          ADD EBP,4B            ; 75% resistance, changed to 21 (33%)
0003B7EA   6A 00            PUSH 0
0003B7EC   55               PUSH EBP
0003B7ED   6A 2D            PUSH 2D               ; poison resist stat ID
0003B7EF   56               PUSH ESI
0003B7F0   E8 B3000B00      CALL 000EB8A8
0003B7F5   5F               POP EDI
0003B7F6   5E               POP ESI
0003B7F7   5D               POP EBP
0003B7F8   5B               POP EBX
0003B7F9   83C4 0C          ADD ESP,0C
0003B7FC   C2 0400          RETN 4

Mana Burn:
0003B7FF   83F9 19          CMP ECX,19           ; MonUMod 25, manaburn
0003B802   75 18            JNZ SHORT 0003B81C
0003B804   83C0 14          ADD EAX,14           ; 20% resistance, left alone for now
0003B807   6A 00            PUSH 0
0003B809   50               PUSH EAX
0003B80A   6A 25            PUSH 25              ; magic resist stat
0003B80C   56               PUSH ESI
0003B80D   E8 96000B00      CALL 000EB8A8
0003B812   5F               POP EDI
0003B813   5E               POP ESI
0003B814   5D               POP EBP
0003B815   5B               POP EBX
0003B816   83C4 0C          ADD ESP,0C
0003B819   C2 0400          RETN 4

Spectral Hit:
0003B81C   83F9 1B          CMP ECX,1B              ; MonUMod 27 Spectral Hit
0003B81F   75 75            JNZ SHORT 0003B896
0003B821   83FB 4B          CMP EBX,4B              ; compare resistance to 75%
0003B824   7D 17            JGE SHORT 0003B83D      ; skip adding resistance if resistance is > 75
0003B826   83C3 14          ADD EBX,14              ; 20% resist  left alone for now
0003B829   6A 00            PUSH 0
0003B82B   53               PUSH EBX
0003B82C   6A 2B            PUSH 2B                 ; cold resist stat ID
0003B82E   56               PUSH ESI
0003B82F   E8 74000B00      CALL 000EB8A8
0003B834   83FB 64          CMP EBX,64
0003B837   7C 04            JL SHORT 0003B83D
0003B839   FF4424 20        INC DWORD PTR SS:[ESP+20]
0003B83D   837C24 20 02     CMP DWORD PTR SS:[ESP+20],2
0003B842   7D 65            JGE SHORT 0003B8A9
0003B844   83FF 4B          CMP EDI,4B              ;compare resistance to 75%
0003B847   7D 17            JGE SHORT 0003B860      ; skip if resist is >75%
0003B849   83C7 14          ADD EDI,14              ; 20% resist    left alone for now
0003B84C   6A 00            PUSH 0
0003B84E   57               PUSH EDI
0003B84F   6A 27            PUSH 27                 ; fire resist stat
0003B851   56               PUSH ESI
0003B852   E8 51000B00      CALL 000EB8A8
0003B857   83FF 64          CMP EDI,64
0003B85A   7C 04            JL SHORT 0003B860
0003B85C   FF4424 20        INC DWORD PTR SS:[ESP+20]
0003B860   837C24 20 02     CMP DWORD PTR SS:[ESP+20],2
0003B865   7D 42            JGE SHORT 0003B8A9
0003B867   8B7C24 10        MOV EDI,DWORD PTR SS:[ESP+10]
0003B86B   83FF 4B          CMP EDI,4B              ; compare resistance to 75
0003B86E   7D 39            JGE SHORT 0003B8A9      ; skip if resist is > 75%
0003B870   83C7 14          ADD EDI,14              ; 20% resist  left alone for now
0003B873   6A 00            PUSH 0
0003B875   57               PUSH EDI
0003B876   6A 29            PUSH 29                 ; lightning resist
0003B878   56               PUSH ESI
0003B879   E8 2A000B00      CALL 000EB8A8
0003B87E   83FF 64          CMP EDI,64
0003B881   7C 26            JL SHORT 0003B8A9
0003B883   8B4424 20        MOV EAX,DWORD PTR SS:[ESP+20]
0003B887   5F               POP EDI
0003B888   40               INC EAX
0003B889   5E               POP ESI
0003B88A   5D               POP EBP
0003B88B   894424 14        MOV DWORD PTR SS:[ESP+14],EAX
0003B88F   5B               POP EBX
0003B890   83C4 0C          ADD ESP,0C
0003B893   C2 0400          RETN 4

Stoneskin
0003B896   83F9 1C          CMP ECX,1C           ; monumod 28, stoneskin
0003B899   75 0E            JNZ SHORT 0003B8A9
0003B89B   83C2 32          ADD EDX,32           ; 50% resistance, changed to 21, (33%)
0003B89E   6A 00            PUSH 0
0003B8A0   52               PUSH EDX
0003B8A1   6A 24            PUSH 24              ; damageresist stat
0003B8A3   56               PUSH ESI
0003B8A4   E8 FFFF0A00      CALL 000EB8A8
0003B8A9   5F               POP EDI
0003B8AA   5E               POP ESI
0003B8AB   5D               POP EBP
0003B8AC   5B               POP EBX
0003B8AD   83C4 0C          ADD ESP,0C
0003B8B0   C2 0400          RETN 4

Magic Resistant
0003B6F9   83F9 08          CMP ECX,8      ; MonUMod 8, magic resist
0003B6FC   0F85 85000000    JNZ 0003B787
0003B702   83FB 64          CMP EBX,64     ;compare to 100% resist
0003B705   7D 17            JGE SHORT 0003B71E  ; skip if monster has 100% resist already
0003B707   83C3 28          ADD EBX,28          ; 40% resist      changed to 21, (33%)
0003B70A   6A 00            PUSH 0
0003B70C   53               PUSH EBX
0003B70D   6A 2B            PUSH 2B             ; cold res stat
0003B70F   56               PUSH ESI
0003B710   E8 93010B00      CALL 000EB8A8
0003B715   83FB 64          CMP EBX,64
0003B718   7C 04            JL SHORT 0003B71E
0003B71A   FF4424 20        INC DWORD PTR SS:[ESP+20]
0003B71E   837C24 20 02     CMP DWORD PTR SS:[ESP+20],2
0003B723   0F8D 80010000    JGE 0003B8A9
0003B729   83FF 64          CMP EDI,64          ; compare to 100% resist
0003B72C   7D 17            JGE SHORT 0003B745  ; skip if monster is already immune
0003B72E   83C7 28          ADD EDI,28          ; 40% resist    changed to 21 (33%)
0003B731   6A 00            PUSH 0
0003B733   57               PUSH EDI
0003B734   6A 27            PUSH 27             ; fire resist stat
0003B736   56               PUSH ESI
0003B737   E8 6C010B00      CALL 000EB8A8
0003B73C   83FF 64          CMP EDI,64
0003B73F   7C 04            JL SHORT 0003B745
0003B741   FF4424 20        INC DWORD PTR SS:[ESP+20]
0003B745   837C24 20 02     CMP DWORD PTR SS:[ESP+20],2
0003B74A   0F8D 59010000    JGE 0003B8A9
0003B750   8B7C24 10        MOV EDI,DWORD PTR SS:[ESP+10]
0003B754   83FF 64          CMP EDI,64          ; compare to 100% resist
0003B757   0F8D 4C010000    JGE 0003B8A9        ; skip if monster is immune
0003B75D   83C7 28          ADD EDI,28          ; 40% resist    changed to 21 (33%)
0003B760   6A 00            PUSH 0
0003B762   57               PUSH EDI
0003B763   6A 29            PUSH 29             ; lightning resist
0003B765   56               PUSH ESI
0003B766   E8 3D010B00      CALL 000EB8A8
0003B76B   83FF 64          CMP EDI,64
0003B76E   0F8C 35010000    JL 0003B8A9
0003B774   8B4424 20        MOV EAX,DWORD PTR SS:[ESP+20]
0003B778   5F               POP EDI
0003B779   40               INC EAX
0003B77A   5E               POP ESI
0003B77B   5D               POP EBP
0003B77C   894424 14        MOV DWORD PTR SS:[ESP+14],EAX
0003B780   5B               POP EBX
0003B781   83C4 0C          ADD ESP,0C
0003B784   C2 0400          RETN 4
-----------------------------------------------

Code:
D2Client edit for monster res from UMod: (required so the client is updated with the correct values of the UMod)
--------------

Fire Enchanted:
000A5014   83F9 09          CMP ECX,9                 ; monUmod 9 fire chanted
000A5017   75 18            JNZ SHORT 000A5031
000A5019   83C7 4B          ADD EDI,4B                ; 75% resist bonus, changed to 21 (33%)
000A501C   6A 00            PUSH 0
000A501E   57               PUSH EDI
000A501F   6A 27            PUSH 27                   ; fire resist stat
000A5021   56               PUSH ESI
000A5022   E8 E3590200      CALL 000CAA0A
000A5027   5F               POP EDI
000A5028   5E               POP ESI
000A5029   5D               POP EBP
000A502A   5B               POP EBX
000A502B   83C4 0C          ADD ESP,0C
000A502E   C2 0400          RETN 4

Cold Enchanted:
000A5031   83F9 12          CMP ECX,12                ; MonUMod 18, cold chanted
000A5034   75 18            JNZ SHORT 000A504E
000A5036   83C3 4B          ADD EBX,4B                ; 75% resistance bonus changed to 21 (33%)
000A5039   6A 00            PUSH 0
000A503B   53               PUSH EBX
000A503C   6A 2B            PUSH 2B                   ; cold resist stat
000A503E   56               PUSH ESI
000A503F   E8 C6590200      CALL 000CAA0A
000A5044   5F               POP EDI
000A5045   5E               POP ESI
000A5046   5D               POP EBP
000A5047   5B               POP EBX
000A5048   83C4 0C          ADD ESP,0C
000A504B   C2 0400          RETN 4

Lightning Enchanted:
000A504E   83F9 11          CMP ECX,11                ;MonUMod 17, light chanted
000A5051   75 1C            JNZ SHORT 000A506F
000A5053   8B4424 10        MOV EAX,DWORD PTR SS:[ESP+10]
000A5057   6A 00            PUSH 0
000A5059   83C0 4B          ADD EAX,4B                ; 75% resistance bonus, changed to 21 (33%)
000A505C   50               PUSH EAX
000A505D   6A 29            PUSH 29                   ; light resist stat
000A505F   56               PUSH ESI
000A5060   E8 A5590200      CALL 000CAA0A
000A5065   5F               POP EDI
000A5066   5E               POP ESI
000A5067   5D               POP EBP
000A5068   5B               POP EBX
000A5069   83C4 0C          ADD ESP,0C
000A506C   C2 0400          RETN 4

Poison Enchanted:
000A506F   83F9 17          CMP ECX,17              ; MonUMod 23, pois chanted
000A5072   75 18            JNZ SHORT 000A508C
000A5074   83C5 4B          ADD EBP,4B              ; 75% resistance bonus, changed to 21 (33%)
000A5077   6A 00            PUSH 0
000A5079   55               PUSH EBP
000A507A   6A 2D            PUSH 2D                 ; pois resist stat
000A507C   56               PUSH ESI
000A507D   E8 88590200      CALL 000CAA0A
000A5082   5F               POP EDI
000A5083   5E               POP ESI
000A5084   5D               POP EBP
000A5085   5B               POP EBX
000A5086   83C4 0C          ADD ESP,0C
000A5089   C2 0400          RETN 4

Mana Burn:
000A508C   83F9 19          CMP ECX,19              ; MonUMod 25, mana burn
000A508F   75 18            JNZ SHORT 000A50A9
000A5091   83C0 14          ADD EAX,14              ; 20% resist bonus, left alone for now
000A5094   6A 00            PUSH 0
000A5096   50               PUSH EAX
000A5097   6A 25            PUSH 25                 ; magic resist stat
000A5099   56               PUSH ESI
000A509A   E8 6B590200      CALL 000CAA0A
000A509F   5F               POP EDI
000A50A0   5E               POP ESI
000A50A1   5D               POP EBP
000A50A2   5B               POP EBX
000A50A3   83C4 0C          ADD ESP,0C
000A50A6   C2 0400          RETN 4

Spectral Hit:
000A50A9   83F9 1B          CMP ECX,1B                 ; MonUMod 27, spectral Hit
000A50AC   75 75            JNZ SHORT 000A5123
000A50AE   83FB 4B          CMP EBX,4B                  ; compare resistance to 100
000A50B1   7D 17            JGE SHORT 000A50CA         ; skip if monster is already immune
000A50B3   83C3 14          ADD EBX,14                 ; 20% resistance bonus   left alone for now
000A50B6   6A 00            PUSH 0
000A50B8   53               PUSH EBX
000A50B9   6A 2B            PUSH 2B                    ; cold resist stat
000A50BB   56               PUSH ESI
000A50BC   E8 49590200      CALL 000CAA0A
000A50C1   83FB 64          CMP EBX,64
000A50C4   7C 04            JL SHORT 000A50CA
000A50C6   FF4424 20        INC DWORD PTR SS:[ESP+20]
000A50CA   837C24 20 02     CMP DWORD PTR SS:[ESP+20],2
000A50CF   7D 65            JGE SHORT 000A5136
000A50D1   83FF 4B          CMP EDI,4B                 ; compare resistance to 100
000A50D4   7D 17            JGE SHORT 000A50ED         ; skip if already immune
000A50D6   83C7 14          ADD EDI,14                 ; 20% resistance, left alone for now
000A50D9   6A 00            PUSH 0
000A50DB   57               PUSH EDI
000A50DC   6A 27            PUSH 27                    ; fire resist stat
000A50DE   56               PUSH ESI
000A50DF   E8 26590200      CALL 000CAA0A
000A50E4   83FF 64          CMP EDI,64
000A50E7   7C 04            JL SHORT 000A50ED
000A50E9   FF4424 20        INC DWORD PTR SS:[ESP+20]
000A50ED   837C24 20 02     CMP DWORD PTR SS:[ESP+20],2
000A50F2   7D 42            JGE SHORT 000A5136
000A50F4   8B7C24 10        MOV EDI,DWORD PTR SS:[ESP+10]
000A50F8   83FF 4B          CMP EDI,4B                 ; compare resistance to 100
000A50FB   7D 39            JGE SHORT 000A5136         ; skip if already immune
000A50FD   83C7 14          ADD EDI,14                 ; 20% resistance, left alone for now
000A5100   6A 00            PUSH 0
000A5102   57               PUSH EDI
000A5103   6A 29            PUSH 29                    ; lightning resist stat
000A5105   56               PUSH ESI
000A5106   E8 FF580200      CALL 000CAA0A
000A510B   83FF 64          CMP EDI,64
000A510E   7C 26            JL SHORT 000A5136
000A5110   8B4424 20        MOV EAX,DWORD PTR SS:[ESP+20]
000A5114   5F               POP EDI
000A5115   40               INC EAX
000A5116   5E               POP ESI
000A5117   5D               POP EBP
000A5118   894424 14        MOV DWORD PTR SS:[ESP+14],EAX
000A511C   5B               POP EBX
000A511D   83C4 0C          ADD ESP,0C
000A5120   C2 0400          RETN 4

Stoneskin:
000A5123   83F9 1C          CMP ECX,1C            ; MonUMod 28, stoneskin
000A5126   75 0E            JNZ SHORT 000A5136
000A5128   83C2 32          ADD EDX,32            ; 50% resist bonus, changed to 21 (33%)
000A512B   6A 00            PUSH 0
000A512D   52               PUSH EDX
000A512E   6A 24            PUSH 24               ; damage resist stat
000A5130   56               PUSH ESI
000A5131   E8 D4580200      CALL 000CAA0A
000A5136   5F               POP EDI
000A5137   5E               POP ESI
000A5138   5D               POP EBP
000A5139   5B               POP EBX
000A513A   83C4 0C          ADD ESP,0C
000A513D   C2 0400          RETN 4

Magic Resist:
000A4F86   83F9 08          CMP ECX,8             ;MonUMod 8, magic resistant
000A4F89   0F85 85000000    JNZ 000A5014
000A4F8F   83FB 64          CMP EBX,64            ; compare resist to 100
000A4F92   7D 17            JGE SHORT 000A4FAB    ; skip if already immune
000A4F94   83C3 28          ADD EBX,28            ; 40% res bonus, changed to 21 (33%)
000A4F97   6A 00            PUSH 0
000A4F99   53               PUSH EBX
000A4F9A   6A 2B            PUSH 2B               ; cold resist stat
000A4F9C   56               PUSH ESI
000A4F9D   E8 685A0200      CALL 000CAA0A
000A4FA2   83FB 64          CMP EBX,64
000A4FA5   7C 04            JL SHORT 000A4FAB
000A4FA7   FF4424 20        INC DWORD PTR SS:[ESP+20]
000A4FAB   837C24 20 02     CMP DWORD PTR SS:[ESP+20],2
000A4FB0   0F8D 80010000    JGE 000A5136
000A4FB6   83FF 64          CMP EDI,64            ; compare resist to 100
000A4FB9   7D 17            JGE SHORT 000A4FD2    ; skip if already immune
000A4FBB   83C7 28          ADD EDI,28            ; 40% res bonus, changed to 21 (33%)
000A4FBE   6A 00            PUSH 0
000A4FC0   57               PUSH EDI
000A4FC1   6A 27            PUSH 27               ; fire res stat
000A4FC3   56               PUSH ESI
000A4FC4   E8 415A0200      CALL 000CAA0A
000A4FC9   83FF 64          CMP EDI,64
000A4FCC   7C 04            JL SHORT 000A4FD2
000A4FCE   FF4424 20        INC DWORD PTR SS:[ESP+20]
000A4FD2   837C24 20 02     CMP DWORD PTR SS:[ESP+20],2
000A4FD7   0F8D 59010000    JGE 000A5136
000A4FDD   8B7C24 10        MOV EDI,DWORD PTR SS:[ESP+10]
000A4FE1   83FF 64          CMP EDI,64            ; compare resist to 100
000A4FE4   0F8D 4C010000    JGE 000A5136          ; skip if already immune
000A4FEA   83C7 28          ADD EDI,28            ; 40% res bonus, changed to 21 (33%)
000A4FED   6A 00            PUSH 0
000A4FEF   57               PUSH EDI
000A4FF0   6A 29            PUSH 29               ; lightning res stat
000A4FF2   56               PUSH ESI
000A4FF3   E8 125A0200      CALL 000CAA0A
000A4FF8   83FF 64          CMP EDI,64
000A4FFB   0F8C 35010000    JL 000A5136
000A5001   8B4424 20        MOV EAX,DWORD PTR SS:[ESP+20]
000A5005   5F               POP EDI
000A5006   40               INC EAX
000A5007   5E               POP ESI
000A5008   5D               POP EBP
000A5009   894424 14        MOV DWORD PTR SS:[ESP+14],EAX
000A500D   5B               POP EBX
000A500E   83C4 0C          ADD ESP,0C
000A5011   C2 0400          RETN 4
=========================================================

Code:
Change block chance cap to 66%
D2Common:
--------------------------------------------

00080CFE   83FD 4B          CMP EBP,4B             ; change to 42 (66% in hex)
00080D01   7D 08            JGE SHORT 00080D0B
00080D03   5F               POP EDI
00080D04   8BC5             MOV EAX,EBP
00080D06   5E               POP ESI
00080D07   5D               POP EBP
00080D08   C2 0800          RETN 8
00080D0B   5F               POP EDI
00080D0C   5E               POP ESI
00080D0D   B8 4B000000      MOV EAX,4B             ; change to 42 (66% in hex)

===============================================

Code:
Change def per dex from 0.25 to 1
D2Common:
----------------------------------------------
000808BB   6A 00            PUSH 0
000808BD   6A 1F            PUSH 1F    ; AC stat
000808BF   53               PUSH EBX
000808C0   E8 6B73FFFF      CALL 00077C30
000808C5   6A 00            PUSH 0
000808C7   6A 02            PUSH 2     ; Dex stat
000808C9   53               PUSH EBX   ;ptunit
000808CA   8BF0             MOV ESI,EAX      ; ESI = Base Def
000808CC   E8 5F73FFFF      CALL 00077C30
000808D1   99               CDQ
000808D2   83E2 03          AND EDX,3       ; Makes EDX = 0
000808D5   6A 00            PUSH 0
000808D7   03C2             ADD EAX,EDX     ; Dex + 0
000808D9   68 AB000000      PUSH 0AB        ; Def% stat
000808DE   C1F8 02          SAR EAX,2       ; Divide dex by 2, twice (dex/4)    < nopped to stop the division by 4
000808E1   53               PUSH EBX        ; ptunit
000808E2   03F0             ADD ESI,EAX     ; Base def + (dex/4)                < if nopped above, then def + dex =  total def
000808E4   E8 4775FFFF      CALL 00077E30

==============================================================


Code:
Change crafts level req penalty from 10+3/affix to 0 +1/affix:
D2Common.dll
------------------------------------------------------------
0005A119    83C5 03         ADD EBP,3        ;req per affix, changed to 1
0005A11C    85C0            TEST EAX,EAX
0005A11E    74 03           JE SHORT 0005A123
0005A120    83C5 03         ADD EBP,3        ;req per affix, changed to 1
===========================================================================

0005A054   BD 0A000000      MOV EBP,0A       ; base req +10, changed to 1

============================================================================

Code:
Unlock Ancient AI, defaults to WW AI type:
Original Switch: (D2Game.dll)
-------------------------
6FCEFBC0   . 85D2           TEST EDX,EDX
6FCEFBC2   . 75 05          JNZ SHORT D2Game.6FCEFBC9
6FCEFBC4   . 83C8 FF        OR EAX,FFFFFFFF
6FCEFBC7   . EB 03          JMP SHORT D2Game.6FCEFBCC
6FCEFBC9   > 8B42 04        MOV EAX,DWORD PTR DS:[EDX+4]
6FCEFBCC   > 2D 1C020000    SUB EAX,21C                              ;  Switch (cases 21C..21E)
6FCEFBD1     74 10          JE SHORT D2Game.6FCEFBE3
6FCEFBD3   . 48             DEC EAX
6FCEFBD4   . 74 08          JE SHORT D2Game.6FCEFBDE
6FCEFBD6   . 48             DEC EAX
6FCEFBD7     75 12          JNZ SHORT D2Game.6FCEFBE8                ;  Any unit other than ancients
6FCEFBD9   .^E9 32FEFFFF    JMP D2Game.6FCEFA10                      ;  Case 21E of switch 6FCEFBCC
6FCEFBDE   >^E9 BDFBFFFF    JMP D2Game.6FCEF7A0                      ;  Case 21D of switch 6FCEFBCC
6FCEFBE3   >^E9 08F8FFFF    JMP D2Game.6FCEF3F0                      ;  Case 21C of switch 6FCEFBCC
6FCEFBE8   > C2 0400        RETN 4                                   ;  Default case of switch 6FCEFBCC



---------------------------
Switch
-----------------------------------------------------------------------
6FCEFBC0   . 85D2           TEST EDX,EDX
6FCEFBC2   . 75 05          JNZ SHORT D2Game.6FCEFBC9
6FCEFBC4   . 83C8 FF        OR EAX,FFFFFFFF
6FCEFBC7   . EB 03          JMP SHORT D2Game.6FCEFBCC
6FCEFBC9   > 8B42 04        MOV EAX,DWORD PTR DS:[EDX+4]
6FCEFBCC   > 2D 1C020000    SUB EAX,21C                              ;  Switch (cases 21C..21E)
6FCEFBD1     74 10          JE SHORT D2Game.6FCEFBE3
6FCEFBD3   . 48             DEC EAX
6FCEFBD4   . 74 08          JE SHORT D2Game.6FCEFBDE
6FCEFBD6   . 48             DEC EAX
6FCEFBD7     75 12          JNZ SHORT D2Game.6FCEFBEB                ;any unit other than ancients jump further
6FCEFBD9   .^E9 32FEFFFF    JMP D2Game.6FCEFA10                      ;  Case 21E of switch 6FCEFBCC
6FCEFBDE   >^E9 BDFBFFFF    JMP D2Game.6FCEF7A0                      ;  Case 21D of switch 6FCEFBCC
6FCEFBE3   >^E9 08F8FFFF    JMP D2Game.6FCEF3F0                      ;  Case 21C of switch 6FCEFBCC
6FCEFBE8   > C2 0400        RETN 4                                   ;  Default case of switch 6FCEFBCC
6FCEFBEB    ^EB F6          JMP SHORT D2Game.6FCEFBE3                ; default to CAse 21c if not an ancient

=========================================================

See this topic for monstats params related to this AI:http://forum.arimyth.com/viewtopic.php?f=25&t=13933
Code:
Ancient AI Questlock:
-------------------------

6FCEFA2B      85C0          TEST EAX,EAX                 ;NOP
6FCEFA2D      0F85 72010000 JNZ D2Game.6FCEFBA5          ;NOP

6FCEF40F      85C0          TEST EAX,EAX                 ;NOP
6FCEF411      0F85 F5020000 JNZ D2Game.6FCEF70C          ;NOP

6FCEF7B9     /74 15         JE SHORT D2Game.6FCEF7D0     ; Change to JMP

================================================================

_________________
Bron wrote:
There's no cure for being a cunt.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Code Changes (The actual code incase revisions are neede
PostPosted: Sat Feb 13, 2016 8:32 pm 
User avatar

Joined: Mon Aug 31, 2009 11:28 am
Posts: 1091
Location: Vancouver, BC
I'm having trouble configuring the FireEnchanted missile, and noticed in the code above that you've got a different number for D2Client (884) and D2Game.dll (886). Does D2Game.dll include the file header (and maybe an extra row)? The problem is that I can't give the missiles damage (but they have graphics), and replacing the spawning missile (884) yields no effects (lose graphics, still no damage). There's no rush on a fix though, since it's failing in a safe way (no deaths).

I've tried the following with
min/max damage (phys and elem(fire) both filled) = 50
hitshift = 8:
1) Missile 884 and all sub missiles (884-890) (even just graphical ones) given damage
2) Replace 884 with a copy-pasted row from "coldunique" (the FNova when CEnchanted monster dies), renumbered and renamed as "colduniquefe", given damage
3) Replaced 884 with a FireNova (new skill clone of other Novas, and confirmed to work well) clone
4) Tried both FireNova and original meteorSwarm where damage was not a flat number (my typical mlvl-based formula)
5) Tried (4) with only elemental or physical damage.

If I replace the meteorSwarm missile with something else, then nothing seems to happen when a monster dies, which I don't mind, since it looks very good (however no flame graphics appear on the ground, which the original meteorSwarm missile has). If we run out of ideas for things to try, then I don't really mind it doing no damage (It was bugged originally anyways, but at least no one dies now), at least it looks scary as hell.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Code Changes (The actual code incase revisions are neede
PostPosted: Sat Feb 13, 2016 9:35 pm 
Game Server Host
User avatar

Joined: Mon Aug 31, 2009 12:33 am
Posts: 4286
Yep my mistake, 1 sec and I'll fix that. ID 884 is the correct missile. I'd edited D2Game first, then realized that missiles.txt ID's were out of order so I corrected the ID's and forgot to update d2game.dll. Missile ID 884 is correct. Here's a Fixed D2Game.dll to remedy that.

https://dl.dropboxusercontent.com/u/15324396/D2Game.rar

Updated the code in the OP too

_________________
Bron wrote:
There's no cure for being a cunt.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Code Changes (The actual code incase revisions are neede
PostPosted: Sun Feb 14, 2016 1:17 am 
User avatar

Joined: Mon Aug 31, 2009 11:28 am
Posts: 1091
Location: Vancouver, BC
The correction works, but a while of testing revealed surprising limitations that I believe are caused by the missile not being launched by a skill (my guess is the skill functions cause more behaviours than I expected).

The meteorShower produced no visible flames, although they were able to cause damage (I've removed this flame-patch submissile for now).

I tried to create a variety of Nova-style explosions (FireNova, PheonixStrike's ChaosIce style of nova, etc), and I'm so confident that FOrb's nova would work that I didn't bother testing it because it wasn't interesting. All other nova experiments failed (launches a single missile (i.e. a tiny slice of a Nova) towards the bottom right)

I'm currently quite pleased with the visual effect of MeteorShower (I normally reserve this spell for Baal and Marilith on-Death monprop) when the flames are removed and the radius is reduced to 6 yards (roughly 25 meteors fall). Testing with zero DR/MDR implies that a character could get hit between 5-20 times depending on where in the radius they're standing. This is definitely a monprop to keep an eye on in testing for whether it is too strong or just right. Currently I think it looks good, gives plenty of warning, but could potentially kill people (pretty much exactly what I'm aiming for). If testers agree, then I'd be open to reducing the number of meteors by 30% (down to 15), or increasing the radius by 2 yards (should reduce the number of meteors hitting you by 1/2 on average, but of course increases the AoEffect), whichever feels right to folks.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Code Changes (The actual code incase revisions are neede
PostPosted: Sun Feb 14, 2016 9:56 am 
Game Server Host
User avatar

Joined: Mon Aug 31, 2009 12:33 am
Posts: 4286
If you would like to make a nova, the method I would use would be to clone the missile "advlighttrailingjav". This is an unused missile with a hit function that releases a nova. Simply give it a range of 1 and always explode set to 1. Set the dofunc entries to 1.

The hitparams control how many missiles are released and if the submissiles should use a random path like a charged bolt or not.
End result is a insta exploding missile that produces your nova effect.
Those sub missiles could then use frozen orbs dofunc to create a flame patch every 1 or 2 frames to create an expanding burning circle on the ground that lasts for a set duration.

I do like the shower effect though as it gives the player a warning to move rather than just auto dealing damage.

_________________
Bron wrote:
There's no cure for being a cunt.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Code Changes (The actual code incase revisions are neede
PostPosted: Tue Feb 16, 2016 2:37 pm 
Game Server Host
User avatar

Joined: Mon Aug 31, 2009 12:33 am
Posts: 4286
Updated OP with completed ormus' quest reward code.

_________________
Bron wrote:
There's no cure for being a cunt.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Code Changes (The actual code incase revisions are neede
PostPosted: Wed Apr 13, 2016 1:39 am 
Game Server Host
User avatar

Joined: Mon Aug 31, 2009 12:33 am
Posts: 4286
Updated OP with the following:
A5Q2 Rune Reward
Max ilvl for vendors in each act
Max ilvl to sell whites

Edit: Also added removal of additional vendor items

_________________
Bron wrote:
There's no cure for being a cunt.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Code Changes (The actual code incase revisions are neede
PostPosted: Tue Jul 19, 2016 5:00 am 
Game Server Host
User avatar

Joined: Mon Aug 31, 2009 12:33 am
Posts: 4286
Updated to add merc resistance clientside display

_________________
Bron wrote:
There's no cure for being a cunt.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Code Changes (The actual code incase revisions are neede
PostPosted: Mon Dec 26, 2016 5:17 pm 
Game Server Host
User avatar

Joined: Mon Aug 31, 2009 12:33 am
Posts: 4286
Updated with find item table and eth requirements stuff.

_________________
Bron wrote:
There's no cure for being a cunt.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: 1.7 Code Changes (Moved)
PostPosted: Tue Dec 27, 2016 10:54 pm 

Joined: Mon Oct 03, 2016 10:38 am
Posts: 11
Hello, I have a question about the "Increase max ilvl for vendrs to sell whites" codes.

If I understand it right, these codes can force vendors to only sell white items by changing the 19 to a high number value like 63 (99), is that right?

I tried the above and also removed 1 from xxxMagicMin. Max and set xxxMagicLvl to 255 but magic items still appear. (Tried with Charsi in Normal)

Could you guide me through this please?

Thanks in advance!


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: 1.7 Code Changes (Moved)
PostPosted: Tue Dec 27, 2016 11:07 pm 
User avatar

Joined: Mon Aug 31, 2009 11:28 am
Posts: 1091
Location: Vancouver, BC
Note that there were other hard coded changes relevant to vendors spawning magic items. For example, there is a hard-coded "feature" where vendors spawn additional magic items (randomly 0-3 or similar). The details to changing that are in PureRage's post.

Aside from that, consider experimenting with the numbers you used in the files. For example, you mentioned setting Charsi's MagicLvl to 255. I know PhrozenKeep mentions VendorMagicLvl to be the maximum affix level for that vendor, but I haven't noticed that in my tests (seems to behave more like a minimum level, in which case yours is set to a very high level (or maybe 255 is treated special, I haven't run that test yet)).


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: 1.7 Code Changes (Moved)
PostPosted: Tue Dec 27, 2016 11:14 pm 

Joined: Mon Oct 03, 2016 10:38 am
Posts: 11
Brevan wrote:
Note that there were other hard coded changes relevant to vendors spawning magic items. For example, there is a hard-coded "feature" where vendors spawn additional magic items (randomly 0-3 or similar). The details to changing that are in PureRage's post.


Thanks for the info, time to change it now...

I just search the keep for related topic and found this
http://d2mods.info/forum/viewtopic.php?t=5277&highlight=Death
http://d2mods.info/forum/viewtopic.php?f=8&t=8131&view=next

someone posted the offsets but It's for 1.09...


Last edited by ocarinas on Tue Dec 27, 2016 11:22 pm, edited 1 time in total.

Top
 Offline Profile  
Reply with quote  
 Post subject: Re: 1.7 Code Changes (Moved)
PostPosted: Tue Dec 27, 2016 11:20 pm 
Game Server Host
User avatar

Joined: Mon Aug 31, 2009 12:33 am
Posts: 4286
That edit is the level the game forces whites to become magic. There can be magi versions along side the whites (extra blue if over the max ilvl). To prevent blues, you need to stop the game adding a magic version along side the whites. Try the "Remove the randomiser for number of additional items spawned at vendors:" edit in tandem with your current edit maybe.

_________________
Bron wrote:
There's no cure for being a cunt.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: 1.7 Code Changes (Moved)
PostPosted: Tue Dec 27, 2016 11:24 pm 

Joined: Mon Oct 03, 2016 10:38 am
Posts: 11
I'll try that.

Thanks both of you for the tip. :)


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: 1.7 Code Changes (Moved)
PostPosted: Tue Dec 27, 2016 11:29 pm 
Game Server Host
User avatar

Joined: Mon Aug 31, 2009 12:33 am
Posts: 4286
If that doesn't work, try searching in and around that function as that is the npc item generation stuff.

_________________
Bron wrote:
There's no cure for being a cunt.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: 1.7 Code Changes (Moved)
PostPosted: Tue Dec 27, 2016 11:45 pm 
Game Server Host
User avatar

Joined: Mon Aug 31, 2009 12:33 am
Posts: 4286
Using that topic you linked, I just quickly searched around the location related to NPC selling items, so from the OP:
Code:
000971F8   83FF 19          CMP EDI,19   ; ilvl to force magic

Is related to generating items at NPC

Simply scrolling down looking out for a PUSH 4 instruction as indicated in the PK thread (Code for magic, being pushed as the secondary type to spawn at vendor.)

I found this:
Code:
00097409   6A 04            PUSH 4


Setting to 6 forces all non whites to spawn as rare. Setting to 2 forces all to be white. Setting to 3 sets all to superior. 5 would be set and 7 unique.

_________________
Bron wrote:
There's no cure for being a cunt.


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: 1.7 Code Changes (Moved)
PostPosted: Wed Dec 28, 2016 12:10 am 

Joined: Mon Oct 03, 2016 10:38 am
Posts: 11
PureRage-DoD wrote:
Using that topic you linked, I just quickly searched around the location related to NPC selling items, so from the OP:
Code:
000971F8   83FF 19          CMP EDI,19   ; ilvl to force magic

Is related to generating items at NPC

Simply scrolling down looking out for a PUSH 4 instruction as indicated in the PK thread (Code for magic, being pushed as the secondary type to spawn at vendor.)

I found this:
Code:
00097409   6A 04            PUSH 4


Setting to 6 forces all non whites to spawn as rare. Setting to 2 forces all to be white. Setting to 3 sets all to superior. 5 would be set and 7 unique.


Wow, thanks for taking your time to search for me!!

Actually tried setting PermStoreItem to 1 also do the trick too.

EDIT: Work like a charm :)


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: 1.7 Code Changes (Moved)
PostPosted: Mon May 08, 2017 7:26 pm 

Joined: Mon Oct 03, 2016 10:38 am
Posts: 11
Hello,
I got a question related to CE.

I want to make a skill that when used will check if player has 2-handed weapon equipped if yes then changes the weapon token to claymore (clm). It's basically a Holy Shield clone that changes player's weapon token instead of shield.

According to the link below, I need to find where it do SH directory check and change it to RA. I've been staring at the codes almost a week now but still can't find the offsets.

http://d2mods.info/forum/viewtopic.php?f=8&t=25318

Can anyone here guide me through this?

I've replied to the thread, and have also made a thread at snej, almost a week has passed and no one has replied so I get impatient. That's why I post here just in case hoping someone could shred some light on me.


Top
 Offline Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 18 posts ] 

All times are UTC - 5 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: