移动服务器修改,GSGM公告和移动命令修改,让中文客户端正常使用移动和GM公

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

GSGM公告和移动命令修改,让中文客户端正常使用移动和GM公告

原理上就是这样,GS读取了服务端的信息文件,这个过程是ASCII编码,但是越南版服务端通过WideCharToMultiByte这个函数将信息编码转换为UNICODE编码发送给客户端,让越南客户端能够正常显示信息,同样,越南版客户端移动,GM公告等信息也是以UNICODE编码的形式发送给服务端GS的,而9c1.0客户端发送这些信息是以ASCII的形式发送,所以如果你用9c的客户端登陆越南版的9960 9962 9965服务端,会出现移动命令失效,信息显示不完全的问题。

知道了问题所在,就可以修改GS了,原理就是让服务端GS读取ASCII编码或处理ASCII编码,不再转换为UNICODE编码。

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

这里是GM公告部分的处理方法(nop掉红色部分)

0042CBDA 80BD 90ECFFFF>CMP BYTE PTR SS:[EBP-1370],21 判断是否为GM命令

0042CBE1 74 12 JE SHORT GameServ.0042CBF5

0042CBE3 80BD 90ECFFFF>CMP BYTE PTR SS:[EBP-1370],2F 判断是否为/命令

0042CBEA 0F84 17010000 JE GameServ.0042CD07

0042CBF0 E9 97010000 JMP GameServ.0042CD8C

0042CBF5 837D F0 02 CMP DWORD PTR SS:[EBP-10],2

0042CBF9 0F8E 03010000 JLE GameServ.0042CD02

0042CBFF 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]

0042CC02 0FBE51 0E MOVSX EDX,BYTE PTR DS:[ECX+E]

0042CC06 85D2 TEST EDX,EDX

0042CC08 0F85 F4000000 JNZ GameServ.0042CD02

0042CC0E 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]

0042CC11 8B88 A0010000 MOV ECX,DWORD PTR DS:[EAX+1A0]

第二处修改

0042CC42 |. 83C0 0F ADD EAX,0F

改为

0042CC42 83C0 0E ADD EAX,0E

移动命令部分处理(这里是原来的代码)

0042CD07 837D F0 02 CMP DWORD PTR SS:[EBP-10],2

0042CD0B 7E 7F JLE SHORT GameServ.0042CD8C

0042CD0D 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8]

0042CD10 0FBE42 0E MOVSX EAX,BYTE PTR DS:[EDX+E]

0042CD14 85C0 TEST EAX,EAX

0042CD16 75 74 JNZ SHORT GameServ.0042CD8C

0042CD18 68 18316600 PUSH GameServ.00663118

0042CD1D 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]

0042CD20 83C1 0E ADD ECX,0E

0042CD23 51 PUSH ECX

0042CD24 E8 F75A1300 CALL GameServ.00562820

0042CD29 83C4 08 ADD ESP,8

0042CD2C C685 38EEFFFF>MOV BYTE PTR SS:[EBP-11C8],0

0042CD33 B9 FF030000 MOV ECX,3FF

0042CD38 33C0 XOR EAX,EAX

0042CD3A 8DBD 39EEFFFF LEA ED

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值