建立我们自己的Non-pk服务器

只要修改其中的判断条件和跳转条件就可以实现限制几个地图pk的目的
还可以实现魔头不可以继续杀人
对懂汇编的朋友来说这个不是难事
比如把:
00454FE0   . 83FA 0B        CMP EDX,0B  
改为
00454FE0   . 83FA 00        CMP EDX,00  
就可以实现所有地图禁止pk了

0045501A   > 833D D4780407  00>CMP DWORD PTR DS:[<LanguageCode>],0      
改为
0045501A   > 833D D4780407  03>CMP DWORD PTR DS:[<LanguageCode>],3  
可以实现魔头不可以继续杀人
不过pkcount可能会出现问题:)  
声明:条件有限,我没有进行测试
如果测试没有通过的话,请回帖说明一下

希望有人可以写出修改程序来,方便那些不会汇编的朋友
时间有限,请大家原谅
另::[<IsNonPK>]永远为0
我这里复制的机器码有一部分没有复制过来,请参照左边的地址

00454F99   . 83F9 05        CMP ECX,5
比较对方人物等级
00454F9C   . 7F 07          JG SHORT GameServ.00454FA5    
等级大于5,则
00454F9E   > 33C0           XOR EAX,EAX
清0
00454FA0   . E9 8B130000    JMP GameServ.00456330
直接返回,不pk
00454FA5   > 833D 38790407 >CMP DWORD PTR DS:[<IsNonPK>],0                          
判断是否为Non-PK服务器
00454FAC   . 74 10          JE SHORT GameServ.00454FBE
如果是则,
00454FAE   . 833D D4780407 >CMP DWORD PTR DS:[<LanguageCode>],0                      
判断语言代码,0为kor
00454FB5   . 75 07          JNZ SHORT GameServ.00454FBE
如果国家代码为0,则
00454FB7   . 33C0           XOR EAX,EAX
00454FB9   . E9 72130000    JMP GameServ.00456330
直接返回
00454FBE   > 8B55 08        MOV EDX,DWORD PTR SS:[EBP+8]
00454FC1   . 33C0           XOR EAX,EAX
00454FC3   . 8A82 D9000000  MOV AL,BYTE PTR DS:[EDX+D9]
00454FC9   . 83F8 09        CMP EAX,9                                                
如果是在恶魔广场,则不允许pk
00454FCC   . 75 07          JNZ SHORT GameServ.00454FD5
00454FCE   . 33C0           XOR EAX,EAX
00454FD0   . E9 5B130000    JMP GameServ.00456330
00454FD5   > 8B4D 08        MOV ECX,DWORD PTR SS:[EBP+8]
00454FD8   . 33D2           XOR EDX,EDX
00454FDA   . 8A91 D9000000  MOV DL,BYTE PTR DS:[ECX+D9]
00454FE0   . 83FA 0B        CMP EDX,0B                                              
如果在血色城堡,则不能pk
00454FE3   . 7D 0C          JGE SHORT GameServ.00454FF1
00454FE5   . C785 60FFFFFF >MOV DWORD PTR SS:[EBP-A0],0
00454FEF   . EB 19          JMP SHORT GameServ.0045500A                              
判断地图号,从11到16,不允许pk
00454FF1   > 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00454FF4   . 33C9           XOR ECX,ECX
00454FF6   . 8A88 D9000000  MOV CL,BYTE PTR DS:[EAX+D9]
00454FFC   . 33D2           XOR EDX,EDX
00454FFE   . 83F9 10        CMP ECX,10
10,即10进制的16,16号地图为血6
00455001   . 0F9EC2         SETLE DL
00455004   . 8995 60FFFFFF  MOV DWORD PTR SS:[EBP-A0],EDX
0045500A   > 83BD 60FFFFFF >CMP DWORD PTR SS:[EBP-A0],0
00455011   . 74 07          JE SHORT GameServ.0045501A
00455013   . 33C0           XOR EAX,EAX
00455015   . E9 16130000    JMP GameServ.00456330
0045501A   > 833D D4780407 >CMP DWORD PTR DS:[<LanguageCode>],0                      
在韩国,或者日本,魔头不可以杀人
00455021   . 74 09          JE SHORT GameServ.0045502C
00455023   . 833D D4780407 >CMP DWORD PTR DS:[<LanguageCode>],2
0045502A   . 75 4A          JNZ SHORT GameServ.00455076
0045502C   > 8B45 D8        MOV EAX,DWORD PTR SS:[EBP-28]
0045502F   . 0FBE88 CD00000>MOVSX ECX,BYTE PTR DS:[EAX+CD]
00455036   . 83F9 06        CMP ECX,6
判断pklevel是否大于6
00455039   . 7C 16          JL SHORT GameServ.00455051
0045503B   . 8B55 D8        MOV EDX,DWORD PTR SS:[EBP-28]
0045503E   . 0FBE82 CC00000>MOVSX EAX,BYTE PTR DS:[EDX+CC]
00455045   . 83F8 03        CMP EAX,3
判断pkcount是否大于3
00455048   . 7C 07          JL SHORT GameServ.00455051
0045504A   . 33C0           XOR EAX,EAX
0045504C   . E9 DF120000    JMP GameServ.00456330
00455051   > 8B4D D4        MOV ECX,DWORD PTR SS:[EBP-2C]
00455054   . 0FBE91 CD00000>MOVSX EDX,BYTE PTR DS:[ECX+CD]
0045505B   . 83FA 06        CMP EDX,6
0045505E   . 7C 16          JL SHORT GameServ.00455076
00455060   . 8B45 D4        MOV EAX,DWORD PTR SS:[EBP-2C]
00455063   . 0FBE88 CC00000>MOVSX ECX,BYTE PTR DS:[EAX+CC]
0045506A   . 83F9 03        CMP ECX,3
0045506D   . 7C 07          JL SHORT GameServ.00455076
0045506F   . 33C0           XOR EAX,EAX
00455071   . E9 BA120000    JMP GameServ.00456330
。。。。 后面代码即为pk的计算 本文出自 7j45 > 奇迹一条龙