Anyone know any tutorial explaining how to make the aging does not alter the level of certain items or all items on the server?
Printable View
Anyone know any tutorial explaining how to make the aging does not alter the level of certain items or all items on the server?
anyone know a way to make the aging does not change the level of the item? I was looking in the tutorials section of the forum and found no guide to talk about it
Never tried to change the level requirements of an aged item Charllie.
The aging routine is located server side, and can be found by looking for references to the aging failure table. I believe it modifies the .itm structure in memory and transmits it back to the client. Age restriction is within that structure, so I imagine that altering that routine so that it does not modify that field should do the trick.
Hope that helps.
Thanks Bob helped a lot .. failure in the table of my server.exe has several numbers example: .. 40%...+2...+1...I'll see if changing these numbers with success .. maybe if I want certain items be placed with the static level, ie not affected by the processes of aging, I will have to create a new table .. :D:
Maybe, but the information you are looking for is not in that table. If it is stored in a table, and not calculated, then that table will be referenced by the code surrounding that which accesses the failure table. (which is quite commonly modified, and therefore well documented here)
Here's what I have concerning this matter in my archives (plus some extra information).
The offsets should be the same as the usual server base (KPT-Endless). And I have no clue if the procedures are altered or not, I can't remember. But the offsets should guide you to your goal (: .
I hope you can make any sense of that garbled mess (: .
Code:=== Shield : Block + 1 ===
CPU Disasm
Address Hex dump Command Comments
004BD4F0 /$ 8B4C24 04 MOV ECX,DWORD PTR SS:[ARG.1]
004BD4F4 |. 66:8B81 DC010 MOV AX,WORD PTR DS:[ECX+1DC]
004BD4FB |. 66:85C0 TEST AX,AX
004BD4FE |. 74 2C JE SHORT 004BD52C
004BD500 |. 0FBFC0 MOVSX EAX,AX
004BD503 |. 25 01000080 AND EAX,80000001
004BD508 |. 79 05 JNS SHORT 004BD50F
004BD50A |. 48 DEC EAX
004BD50B |. 83C8 FE OR EAX,FFFFFFFE
004BD50E |. 40 INC EAX
004BD50F |> 83F8 01 CMP EAX,1
004BD512 |. B8 01000000 MOV EAX,1
004BD517 |. 75 18 JNE SHORT 004BD531
004BD519 |. D981 80000000 FLD DWORD PTR DS:[ECX+80]
004BD51F |. D805 7CF75D00 FADD DWORD PTR DS:[5DF77C] ; FLOAT 1.000000
004BD525 |. D999 80000000 FSTP DWORD PTR DS:[ECX+80]
004BD52B |. C3 RETN
004BD52C |> B8 01000000 MOV EAX,1
004BD531 \> C3 RETN
=== Shield : Absorb +0.2/0.4 ===
CPU Disasm
Address Hex dump Command Comments
004BD490 /$ 8B4424 04 MOV EAX,DWORD PTR SS:[ARG.1]
004BD494 |. D94424 08 FLD DWORD PTR SS:[ARG.2]
004BD498 |. 66:83B8 DC010 CMP WORD PTR DS:[EAX+1DC],9
004BD4A0 |. D840 78 FADD DWORD PTR DS:[EAX+78]
004BD4A3 |. D950 78 FST DWORD PTR DS:[EAX+78]
004BD4A6 |. 7C 0D JL SHORT 004BD4B5
004BD4A8 |. D84424 08 FADD DWORD PTR SS:[ARG.2]
004BD4AC |. D958 78 FSTP DWORD PTR DS:[EAX+78]
004BD4AF |. B8 01000000 MOV EAX,1
004BD4B4 |. C3 RETN
004BD4B5 |> DDD8 FSTP ST
004BD4B7 |. B8 01000000 MOV EAX,1
004BD4BC \. C3 RETN
=== All : Req level up ===
CPU Disasm
Address Hex dump Command Comments
004BD63A |> >66:FF86 DC010 INC WORD PTR DS:[ESI+1DC]
004BD641 |. |66:8B86 DC010 MOV AX,WORD PTR DS:[ESI+1DC]
004BD648 |. |33C9 XOR ECX,ECX
004BD64A |. |0FBFC0 MOVSX EAX,AX
004BD64D |. |25 01000080 AND EAX,80000001
004BD652 |. |66:898E DE010 MOV WORD PTR DS:[ESI+1DE],CX
004BD659 |. |66:898E E0010 MOV WORD PTR DS:[ESI+1E0],CX
004BD660 |. |66:898E E2010 MOV WORD PTR DS:[ESI+1E2],CX
004BD667 |. |79 05 JNS SHORT 004BD66E
004BD669 |. |48 DEC EAX
004BD66A |. |83C8 FE OR EAX,FFFFFFFE
004BD66D |. |40 INC EAX
004BD66E |> |75 06 JNE SHORT 004BD676
004BD670 |. |FF86 A8000000 INC DWORD PTR DS:[ESI+0A8]
=== Armor, Robe : Defense bonus ===
CPU Disasm
Address Hex dump Command Comments
004BD440 /$ 56 PUSH ESI
004BD441 |. 8B7424 08 MOV ESI,DWORD PTR SS:[ARG.1]
004BD445 |. 57 PUSH EDI
004BD446 |. 8B7E 7C MOV EDI,DWORD PTR DS:[ESI+7C]
004BD449 |. 897C24 0C MOV DWORD PTR SS:[ARG.1],EDI
004BD44D |. DB4424 0C FILD DWORD PTR SS:[ARG.1]
004BD451 |. DB4424 10 FILD DWORD PTR SS:[ARG.2]
004BD455 |. D83D 34135E00 FDIVR DWORD PTR DS:[5E1334] ; FLOAT 100.0000
004BD45B |. DEF9 FDIVP ST(1),ST
004BD45D |. E8 BEA21000 CALL 005C7720
004BD462 |. 03C7 ADD EAX,EDI
004BD464 |. 8946 7C MOV DWORD PTR DS:[ESI+7C],EAX
004BD467 |. 5F POP EDI
004BD468 |. B8 01000000 MOV EAX,1
004BD46D |. 5E POP ESI
004BD46E \. C3 RETN
=== Weapons : Attack bonus +1/+2 ===
CPU Disasm
Address Hex dump Command Comments
004BD400 /$ 8B4424 04 MOV EAX,DWORD PTR SS:[ARG.1]
004BD404 |. 66:FF40 64 INC WORD PTR DS:[EAX+64]
004BD408 |. 33C9 XOR ECX,ECX
004BD40A |. 66:FF40 66 INC WORD PTR DS:[EAX+66]
004BD40E |. 66:8B48 64 MOV CX,WORD PTR DS:[EAX+64]
004BD412 |. 33D2 XOR EDX,EDX
004BD414 |. 66:83B8 DC010 CMP WORD PTR DS:[EAX+1DC],9
004BD41C |. 66:8B50 66 MOV DX,WORD PTR DS:[EAX+66]
004BD420 |. 7C 0A JL SHORT 004BD42C
004BD422 |. 41 INC ECX
004BD423 |. 42 INC EDX
004BD424 |. 66:8948 64 MOV WORD PTR DS:[EAX+64],CX
004BD428 |. 66:8950 66 MOV WORD PTR DS:[EAX+66],DX
004BD42C |> B8 01000000 MOV EAX,1
004BD431 \. C3 RETN
=== Axe : Rating bonus +[ARG.2] ===
CPU Disasm
Address Hex dump Command Comments
004BD470 /$ 8B4424 04 MOV EAX,DWORD PTR SS:[ARG.1] ; server.004BD470(guessed Arg1,Arg2)
004BD474 |. 8B50 70 MOV EDX,DWORD PTR DS:[EAX+70]
004BD477 |. 8B4C24 08 MOV ECX,DWORD PTR SS:[ARG.2]
004BD47B |. 03D1 ADD EDX,ECX
004BD47D |. 8950 70 MOV DWORD PTR DS:[EAX+70],EDX
004BD480 |. B8 01000000 MOV EAX,1
004BD485 \. C3 RETN
=== Talon : Critical + 1 ===
CPU Disasm
Address Hex dump Command Comments
004BD4C0 /$ 8B4C24 04 MOV ECX,DWORD PTR SS:[ARG.1] ; server.004BD4C0(guessed Arg1)
004BD4C4 |. 66:8B81 DC010 MOV AX,WORD PTR DS:[ECX+1DC]
004BD4CB |. 66:85C0 TEST AX,AX
004BD4CE |. 74 17 JE SHORT 004BD4E7
004BD4D0 |. 0FBFC0 MOVSX EAX,AX
004BD4D3 |. 25 01000080 AND EAX,80000001
004BD4D8 |. 79 05 JNS SHORT 004BD4DF
004BD4DA |. 48 DEC EAX
004BD4DB |. 83C8 FE OR EAX,FFFFFFFE
004BD4DE |. 40 INC EAX
004BD4DF |> 83F8 01 CMP EAX,1
004BD4E2 |. 75 03 JNE SHORT 004BD4E7
004BD4E4 |. FF41 74 INC DWORD PTR DS:[ECX+74]
004BD4E7 |> B8 01000000 MOV EAX,1
004BD4EC \. C3 RETN
=== Wand : MP + 10 ===
CPU Disasm
Address Hex dump Command Comments
004BD5AA |. D986 A0000000 FLD DWORD PTR DS:[ESI+0A0]
004BD5B0 |. D805 1CFE5D00 FADD DWORD PTR DS:[5DFE1C] ; FLOAT 10.00000
004BD5B6 |. 83C4 0C ADD ESP,0C
004BD5B9 |. D99E A0000000 FSTP DWORD PTR DS:[ESI+0A0]
=== Mature tables ===
CPU Disasm
Address Hex dump Command Comments
004C3E61 |> >8B3D 38B78607 MOV EDI,DWORD PTR DS:[786B738] ; Default case of switch server.4C3DCF
004C3E67 |. |8BCF MOV ECX,EDI
004C3E69 |. |81E1 0000FFFF AND ECX,FFFF0000
004C3E6F |. |81F9 00000201 CMP ECX,OFFSET server.01020000
004C3E75 |. |74 10 JE SHORT 004C3E87
004C3E77 |. |81F9 00000701 CMP ECX,OFFSET server.01070000
004C3E7D |. |74 08 JE SHORT 004C3E87
004C3E7F |. |81F9 00000501 CMP ECX,OFFSET server.01050000
004C3E85 |. |75 24 JNE SHORT 004C3EAB
004C3E87 |> |83FE 02 CMP ESI,2
004C3E8A |. |0FBFD5 MOVSX EDX,BP
004C3E8D |. |66:8B0495 70B MOV AX,WORD PTR DS:[EDX*4+6DBC70]
004C3E95 |. |66:A3 1ABA860 MOV WORD PTR DS:[786BA1A],AX
004C3E9B |. |7F 0E JG SHORT 004C3EAB
004C3E9D |. |0FBFC0 MOVSX EAX,AX
004C3EA0 |. |99 CDQ
004C3EA1 |. |2BC2 SUB EAX,EDX
004C3EA3 |. |D1F8 SAR EAX,1
004C3EA5 |. |66:A3 18BA860 MOV WORD PTR DS:[786BA18],AX
004C3EAB |> |81F9 00000101 CMP ECX,OFFSET server.01010000
004C3EB1 |. |74 20 JE SHORT 004C3ED3
004C3EB3 |. |81F9 00000301 CMP ECX,OFFSET server.01030000
004C3EB9 |. |74 18 JE SHORT 004C3ED3
004C3EBB |. |81F9 00000401 CMP ECX,OFFSET server.01040000
004C3EC1 |. |74 10 JE SHORT 004C3ED3
004C3EC3 |. |81F9 00000601 CMP ECX,OFFSET server.01060000
004C3EC9 |. |74 08 JE SHORT 004C3ED3
004C3ECB |. |81F9 00000801 CMP ECX,OFFSET server.01080000
004C3ED1 |. |75 24 JNE SHORT 004C3EF7
004C3ED3 |> |83FE 02 CMP ESI,2
004C3ED6 |. |0FBFC5 MOVSX EAX,BP
004C3ED9 |. |66:8B0485 18B MOV AX,WORD PTR DS:[EAX*4+6DBC18]
004C3EE1 |. |66:A3 1ABA860 MOV WORD PTR DS:[786BA1A],AX
004C3EE7 |. |7F 0E JG SHORT 004C3EF7
004C3EE9 |. |0FBFC0 MOVSX EAX,AX
004C3EEC |. |99 CDQ
004C3EED |. |2BC2 SUB EAX,EDX
004C3EEF |. |D1F8 SAR EAX,1
004C3EF1 |. |66:A3 18BA860 MOV WORD PTR DS:[786BA18],AX
004C3EF7 |> |81F9 00000402 CMP ECX,OFFSET server.02040000
004C3EFD |. |75 24 JNE SHORT 004C3F23
004C3EFF |. |83FE 02 CMP ESI,2
004C3F02 |. |0FBFD5 MOVSX EDX,BP
004C3F05 |. |66:8B0495 C8B MOV AX,WORD PTR DS:[EDX*4+6DBCC8]
004C3F0D |. |66:A3 1ABA860 MOV WORD PTR DS:[786BA1A],AX
004C3F13 |. |7F 0E JG SHORT 004C3F23
004C3F15 |. |0FBFC0 MOVSX EAX,AX
004C3F18 |. |99 CDQ
004C3F19 |. |2BC2 SUB EAX,EDX
004C3F1B |. |D1F8 SAR EAX,1
004C3F1D |. |66:A3 18BA860 MOV WORD PTR DS:[786BA18],AX
004C3F23 |> |81F9 00000102 CMP ECX,OFFSET server.02010000
004C3F29 |. |74 10 JE SHORT 004C3F3B
004C3F2B |. |81F9 00000502 CMP ECX,OFFSET server.02050000
004C3F31 |. |74 08 JE SHORT 004C3F3B
004C3F33 |. |81F9 00000303 CMP ECX,OFFSET server.03030000
004C3F39 |. |75 24 JNE SHORT 004C3F5F
From a quick look at that, one may guess that assembling JMP 4BD676 into 4BD63A may produce the desired result. (Thanks Gregoo)
Or maybe NOPing the whole block if you love making your CPU burn cycles (:
Gregoo have already explained, may be unnecessary...
Code:004BD63A |> 66:FF86 DC010000 INC WORD PTR DS:[ESI+1DC] ; Aging Level+1
Code:004BD670 |. FF86 A8000000 INC DWORD PTR DS:[ESI+A8] ; Request level+1
kwsk and I think I have to look these references that you cited and change them on the server
Quote:
Code:
004BD63A |> 66:FF86 DC010000 INC WORD PTR DS:[ESI+1DC] ; Aging Level+1
Code:
004BD670 |. FF86 A8000000 INC DWORD PTR DS:[ESI+A8] ; Request level+1