- Joined
- Feb 17, 2011
- Messages
- 9
- Reaction score
- 0
waa..
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature currently requires accessing the site using the built-in Safari browser.
done making it on 2240...
thnks to ryllady for the offset xD
Can you supply what you did, I nee dit for 2240 also,
Thank you
Dunno know if TyFix said ti will work on 2240's
nice guide thanks
anyone can try this
You must be registered to see links
0047FED9 MOV EDX,DWORD PTR SS:[ESP+18]
0047FEDD PUSH 1
0047FEDF SUB ESP,8
0047FEE2 MOV EAX,ESP
0047FEE4 MOV DWORD PTR DS:[EAX],EBP
0047FEE6 MOV ECX,EDI
0047FEE8 MOV DWORD PTR DS:[ESI+1C],EDX
0047FEEB MOV BYTE PTR DS:[EAX+4],BL
0047FEEE CALL RylGameS.00428DA0
0047FEF3 TEST AL,AL
0047FEF5 JNZ RylGameS.00480002
0047FEFB MOV DWORD PTR SS:[ESP+30],1
0047FF03 JMP RylGameS.00480002
0047FF08 MOV ECX,DWORD PTR SS:[ESP+22]
0047FF0C PUSH ECX
0047FEFB MOV DWORD PTR SS:[ESP+30],1
0047FF03 JMP RylGameS.00480002
0047FF08 MOV ECX,DWORD PTR SS:[ESP+22]
0047FF0C PUSH ECX
0047FEFB JMP RylGameS.????????
0047FF03 NOP
0047FF08 NOP
0047FF0C NOP
0047FEFB JMP RylGameS.[U]????????[/U]
Hey,
I'm sure most of you have seen the video by now that someone found out how to dupe gold on selling items they setup in a store by swapping items around and putting a high value then selling item to vendor for same price as they put in store.
Was looking around a 1750 server in asm and might have a solution to fix this, please keep in mind that i have not tested this at all so can make no guarantees if it will work or not, but the new code that is inserted will only run if you get the server error up so it will still work as intended on normal operation.
As i said i used a 1750 gameserver so offsets will vary if you are using a different version.
Code:0047D709 MOV EDX,DWORD PTR SS:[ESP+18] 0047D70D PUSH 1 0047D70F SUB ESP,8 0047D712 MOV EAX,ESP 0047D714 MOV DWORD PTR DS:[EAX],EBP 0047D716 MOV ECX,EDI 0047D718 MOV DWORD PTR DS:[ESI+1C],EDX 0047D71B MOV BYTE PTR DS:[EAX+4],BL 0047D71E CALL RylGameS.CCharacter::MoveItem 0047D723 TEST AL,AL 0047D725 JNZ RylGameS.0047D832 0047D72B MOV DWORD PTR SS:[ESP+30],1 0047D733 JMP RylGameS.0047D832
The bug here is that the price is always set on the item even if the item fails to register in stall, we're gonna change that.
To do so you'll need to find a place with some empty code space because we're gonna be adding some code and there isn't room here for this. Usually you'll want to go to the end of the file for the needed space, for 1750 i used the area 005050EE->00505101
Alright enough talking, on with the code, change the following:
NOP out, and replace with a far jump to the available codespace.Code:0047D72B MOV DWORD PTR SS:[ESP+30],1
Code:0047D72B JMP RylGameS.005050EE 0047D730 NOP 0047D731 NOP 0047D732 NOP
Go to your free codespace and write the replacement code:
Code:005050EE MOV DWORD PTR SS:[ESP+30],1 ; Set error to Server Error 005050F6 MOV DWORD PTR DS:[ESI+1C],0 ; Stall Price = 0 005050FD JMP RylGameS.0047D832 ; Return to stall code
And we're done, rightclick->copy to executeable->all modifications (select copy on all) rightclick->backup->save data to file (input a new filename for instance gameserver_.exe)
A little explanation about what this mod does, it will set the stall price as usual but in case the item fails to register in stall it will overwrite the price with 0 and send a server error. As i said previously this is untested so i cannot guarantee it will work but I'm fairly sure it will, and please remember these offsets and combination of registers will only work for 1750 server, other versions WILL vary though be somewhat similar.
Enjoy.
Edit: Just got confirmation from someone that tried this that it does in fact fix the problem, so off you go fix your servers
047D71E CALL RylGameS.CCharacter::MoveItem
004xxxxx 33FF XOR EDI,EDI
004xxxxx DD1C24 FSTP QWORD PTR SS:[ESP]
004xxxxx 68 6CC65000 PUSH RylGameS.0050C66C ; ASCII "CCharacter::MoveItem"
004xxxxx 8BF1 MOV ESI,ECX
004xxxxx C74424 48 6CC650>MOV DWORD PTR SS:[ESP+48],RylGameS.0050C>; ASCII "CCharacter::MoveItem"
004xxxxx 897C24 38 MOV DWORD PTR SS:[ESP+38],EDI
004xxxxx 897C24 3C MOV DWORD PTR SS:[ESP+3C],EDI
004xxxxx E8 BA5AFEFF CALL RylGameS.0040DEF0
004xxxxx 8BC8 MOV ECX,EAX
004xxxxx E8 6358FEFF CALL RylGameS.0040DCA0
004xxxxx 8D4424 2C LEA EAX,DWORD PTR SS:[ESP+2C]
004xxxxx 894424 28 MOV DWORD PTR SS:[ESP+28],EAX
004xxxxx 897C24 34 MOV DWORD PTR SS:[ESP+34],EDI
004xxxxx 897C24 38 MOV DWORD PTR SS:[ESP+38],EDI
004xxxxx 0F31 RDTSC
004xxxxx 895424 24 MOV DWORD PTR SS:[ESP+24],EDX
004xxxxx 894424 20 MOV DWORD PTR SS:[ESP+20],EAX
004xxxxx 8B4C24 20 MOV ECX,DWORD PTR SS:[ESP+20]
004xxxxx 8B5424 24 MOV EDX,DWORD PTR SS:[ESP+24]
004xxxxx 894C24 2C MOV DWORD PTR SS:[ESP+2C],ECX
004xxxxx 895424 30 MOV DWORD PTR SS:[ESP+30],EDX
004xxxxx 33C0 XOR EAX,EAX
004xxxxx 8A4424 54 MOV AL,BYTE PTR SS:[ESP+54]
004xxxxx 8BCE MOV ECX,ESI
004xxxxx 897C24 4C MOV DWORD PTR SS:[ESP+4C],EDI
004xxxxx 25 0FFFFFFF AND EAX,FFFFFF0F
004xxxxx 50 PUSH EAX
004xxxxx E8 E2ECFFFF CALL RylGameS.00427160
004xxxxx 8B5C24 56 MOV EBX,DWORD PTR SS:[ESP+56]
004xxxxx 33C9 XOR ECX,ECX
004xxxxx 8ACB MOV CL,BL
004xxxxx 8BE8 MOV EBP,EAX
004xxxxx 896C24 18 MOV DWORD PTR SS:[ESP+18],EBP
004xxxxx 81E1 0FFFFFFF AND ECX,FFFFFF0F
004xxxxx 51 PUSH ECX
004xxxxx 8BCE MOV ECX,ESI
004xxxxx E8 C6ECFFFF CALL RylGameS.00427160
004xxxxx 3BEF CMP EBP,EDI
004xxxxx 894424 20 MOV DWORD PTR SS:[ESP+20],EAX
004xxxxx 0F84 5A040000 JE RylGameS.00428900
004xxxxx 3BC7 CMP EAX,EDI
004xxxxx 0F84 52040000 JE RylGameS.00428900
004xxxxx 8B4424 54 MOV EAX,DWORD PTR SS:[ESP+54]
004xxxxx 8AD0 MOV DL,AL
004xxxxx 80E2 0F AND DL,0F
004xxxxx 80FA 0B CMP DL,0B
004xxxxx 75 2C JNZ SHORT RylGameS.004284E8
004xxxxx 8BCB MOV ECX,EBX
004xxxxx 83E1 0F AND ECX,0F
Hey,
I'm sure most of you have seen the video by now that someone found out how to dupe gold on selling items they setup in a store by swapping items around and putting a high value then selling item to vendor for same price as they put in store.
Was looking around a 1750 server in asm and might have a solution to fix this, please keep in mind that i have not tested this at all so can make no guarantees if it will work or not, but the new code that is inserted will only run if you get the server error up so it will still work as intended on normal operation.
As i said i used a 1750 gameserver so offsets will vary if you are using a different version.
Code:0047D709 MOV EDX,DWORD PTR SS:[ESP+18] 0047D70D PUSH 1 0047D70F SUB ESP,8 0047D712 MOV EAX,ESP 0047D714 MOV DWORD PTR DS:[EAX],EBP 0047D716 MOV ECX,EDI 0047D718 MOV DWORD PTR DS:[ESI+1C],EDX 0047D71B MOV BYTE PTR DS:[EAX+4],BL 0047D71E CALL RylGameS.CCharacter::MoveItem 0047D723 TEST AL,AL 0047D725 JNZ RylGameS.0047D832 0047D72B MOV DWORD PTR SS:[ESP+30],1 0047D733 JMP RylGameS.0047D832
The bug here is that the price is always set on the item even if the item fails to register in stall, we're gonna change that.
To do so you'll need to find a place with some empty code space because we're gonna be adding some code and there isn't room here for this. Usually you'll want to go to the end of the file for the needed space, for 1750 i used the area 005050EE->00505101
Alright enough talking, on with the code, change the following:
NOP out, and replace with a far jump to the available codespace.Code:0047D72B MOV DWORD PTR SS:[ESP+30],1
Code:0047D72B JMP RylGameS.005050EE 0047D730 NOP 0047D731 NOP 0047D732 NOP
Go to your free codespace and write the replacement code:
Code:005050EE MOV DWORD PTR SS:[ESP+30],1 ; Set error to Server Error 005050F6 MOV DWORD PTR DS:[ESI+1C],0 ; Stall Price = 0 005050FD JMP RylGameS.0047D832 ; Return to stall code
And we're done, rightclick->copy to executeable->all modifications (select copy on all) rightclick->backup->save data to file (input a new filename for instance gameserver_.exe)
A little explanation about what this mod does, it will set the stall price as usual but in case the item fails to register in stall it will overwrite the price with 0 and send a server error. As i said previously this is untested so i cannot guarantee it will work but I'm fairly sure it will, and please remember these offsets and combination of registers will only work for 1750 server, other versions WILL vary though be somewhat similar.
Enjoy.
Edit: Just got confirmation from someone that tried this that it does in fact fix the problem, so off you go fix your servers