游戏外挂制作研究的中文网络平台

前往游戏开发制作 http://www.gameres.com

 


  声明:GameRes严禁各类外挂、私服等商业行为,更不会以GameRes名义进行任何商业销售,请勿信任任何出售、购买、招聘内容,谨防受骗!不要轻易运行下载的可执行文件,谨防恶意发布的木马病毒。

剑侠情缘——游戏与账号数据库的Socket层通讯协议定义 - 游戏外挂研究院
注册GameRes用户 登录 找回密码 |  精华区索引 | 新帖快速索引 | 本版精华区欢迎访问本论坛!

游戏外挂研究院 » 游戏外挂制作 » 剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

  声明:此资讯仅供参考,不代表本站观点,请明辨信息正确性,如果信息错误、虚假,请给我们来信,我们将进行查处。

本主题共有25张帖子, 被点击17987 发表新主题发表回复发布新投票
fccy309
Exp:19

新成员
 发表于: 2005-6-2 21:07:00

{threadNotes} 剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

希望大家一起来研究,来破金山的神话.
一、数据包字节顺序结构:

8 bits


 64 bits


 变长的(unfixed)


 
Tag(=0)


 KLoginStructHead


 Data


 

32 bits


 32 bits


 
Size(DWORD)


 Param(int)


 

其中Size是除掉标记位(Tag)后的数据包的大小,其单位为Byte。

二、参数宏、结构体定义:

#define       LOGIN_ACCOUNT_MIN_LEN           4

#define       LOGIN_ACCOUNT_MAX_LEN                  30

#define       LOGIN_PASSWORD_MIN_LEN                  6

#define       LOGIN_PASSWORD_MAX_LEN       30


//login action return value

//the folloin' value is used in login connect operaion

#define       LOGIN_ACTION_FILTER                   0xffff0000  //登陆过程中的操作类型过滤数值

// Parameters from client to server

#define       LOGIN_A_CONNECT                          0x010000   //连接

#define       LOGIN_A_NEWACCOUNT                 0x020000   //新建账号

#define       LOGIN_A_SERVERLIST                       0x030000   //获取服务器列表

#define       LOGIN_A_REPORT                              0x040000   //通知服务器在线(定期向服务器发送)

#define       LOGIN_A_LOGIN                                 0x050000   //登陆服务器

#define       LOGIN_A_LOGOUT                             0x060000   //注销


// Parameters from server to client

#define       LOGIN_R_CONNECT                           LOGIN_A_CONNECT

#define       LOGIN_R_NEWACCOUNT                 LOGIN_A_ NEWACCOUNT

#define       LOGIN_R_SERVERLIST                       LOGIN_A_SERVERLIST

#define       LOGIN_R_LOGIN                                 LOGIN_A_LOGIN

#define       LOGIN_R_REPORT                              LOGIN_A_REPORT

#define       LOGIN_R_LOGOUT                             LOGIN_A_LOGOUT

#define       LOGIN_R_REQUEST                                     0x0    //when the login request is send from client to server

#define       LOGIN_R_SUCCESS                             0x1

#define       LOGIN_R_FAILED                                0x2

#define       LOGIN_R_ACCOUNT_OR_PASSWORD_ERROR       0x3

#define       LOGIN_R_ACCOUNT_EXIST             0x4

#define       LOGIN_R_TIMEOUT                                    0x5

#define       LOGIN_R_IN_PROGRESS                    0x6

#define       LOGIN_R_NO_IN_PROGRESS            0x7

#define       LOGIN_R_VALID                                  0x8    //合法用户

#define       LOGIN_R_INVALID                              0x9    //非法用户


struct KLoginStructHead

{

         DWORD   Size;           // size of the struct, if the struct is been inherit,the size is ref the the derive struct

         int              Param;        // be one of the LOGIN_R_* define value combin with a LOGIN_A_* value.

};

struct KLoginAccountInfo : KLoginStructHead

{

         char   Account[32];                //account

         char   Password[32];              //password

};

struct KLoginGameServer

         char   Title[32];             //服务器文字说明

         DWORD   Address;    //服务器域名地址

         DWORD   ID;             //服务器ID

};

struct KLoginServerList : KLoginStructHead

{

         DWORD                      Count;        //此次传送的服务器项的数目

         KLoginGameServer*    Server;        //服务器信息(变长数组)

};


三、示范

*   登陆流程及数据包字节顺序

Step1: 客户端——〉服务器

发送请求数据包

Tag(=0)


 KLoginAccountInfo


 

其中KLoginStructHead::Param = LOGIN_A_LOGIN。

字节顺序如下:

8 bits


 32 bits


 32 bits


 8*32 bits


 8*32 bits


 
Tag(=0)


 Size(=72 bytes)


 Param


 Account


 Password


 

如上Size的计算方法为:Size = 32 + 32 + 8*32 + 8*32 = 576 bits = 72 bytes,也就是除掉标记(Tag)位后的数据包的大小。


Step2:服务器——〉客户端

反馈请求响应数据

如果成功,发送数据包

Tag(=0)


 KLoginServerList


 

其中KLoginServerList::Param = LOGIN_R_LOGIN | LOGIN_R_VALID(服务器信息还未全部反馈),

或者KLoginServerList::Param = LOGIN_R_LOGIN | LOGIN_R_SUCCESS(服务器信息已全部发送完毕)。

字节顺序如下:

8 bits


 32 bits


 32 bits


 32 bits


 Count * 64 bits


 
Tag(=0)


 Size


 Param


 Count(所含服务器项数目)


 KLoginGameServer


 


如果失败,发送数据包

Tag(=0)


 KLoginStructHead


 

其中 KLoginStructHead::Param = LOGIN_R_LOGIN | LOGIN_R_FAILED 

或者 KLoginStructHead::Param

= LOGIN_R_LOGIN | LOGIN_R_ACCOUNT_OR_PASSWORD_ERROR。


Step3:客户端——〉服务器

1、如果登陆成功并选择好游戏服务器后

定期向服务器发送在线消息,发送数据包如下

Tag(=0)


 KLoginAccountInfo


 DWORD(游戏服务器ID)


 

其中KLoginAccountInf:Param = LOGIN_A_REPORT。

2、如果退出游戏

发送数据包如下

Tag(=0)


 KLoginAccountInfo


 

其中 KLoginAccountInf:Param = LOGIN_A_LOGOUT。

Step4:服务器——〉客户端

返回数据包

Tag(=0)


 KLoginStructHead


 

其中如果该用户合法,相应的有

1、KLoginStructHead::Param = LOGIN_R_REPORT | LOGIN_R_VALID,

2、KLoginStructHead::Param = LOGIN_R_LOGOUT | LOGIN_R_VALID

否则

1、KLoginStructHead::Param = LOGIN_R_REPORT | LOGIN_R_INVALID,

2、KLoginStructHead::Param = LOGIN_R_LOGOUT | LOGIN_R_INVALID。

Step5:客户端

如果收到成功消息——1、重复Step3;2、通讯结束。

如果失败——错误处理,通讯结束。


*   申请新账号流程及数据包字节顺序

Step1:客户端——〉服务器

发送数据包

Tag(=0)


 KLoginAccountInfo


 

其中 KLoginAccountInf:Param = LOGIN_A_NEWACCOUNT。

Step2:服务器——〉客户端

发送数据包

Tag(=0)


 KLoginStructHead


 

如果创建信账号成功

KLoginStructHead::Param = LOGIN_R_NEWACCOUNT | LOGIN_R_SUCCESS;

如果创建新账号失败

KLoginStructHead::Param = LOGIN_R_NEWACCOUNT | LOGIN_R_FAILED 或者

KLoginStructHead::Param = LOGIN_R_NEWACCOUNT | LOGIN_R_ACCOUNT_EXIST。(账号已经被其它用户申请)

Step3:客户端——〉服务器

收到创建账号成功消息

索取游戏服务器列表,发送数据包

Tag(=0)


 KLoginAccountInfo


 

其中 KLoginAccountInf:Param = LOGIN_A_SERVERLIST。

Step4:服务器——〉客户端

如果成功

Tag(=0)


 KLoginServerList


 

其中KLoginServerList::Param = LOGIN_R_SERVERLIST | LOGIN_R_VALID(服务器信息还未全部反馈),

或者KLoginServerList::Param = LOGIN_R_SERVERLIST | LOGIN_R_SUCCESS(服务器信息已全部发送完毕)。

字节顺序如下:

8 bits


 32 bits


 32 bits


 32 bits


 Count * 64 bits


 
Tag(=0)


 Size


 Param


 Count(所含服务器项数目)


 KLoginGameServer


 


如果失败,发送数据包

Tag(=0)


 KLoginStructHead


 

其中 KLoginStructHead::Param = LOGIN_R_SERVERLIST | LOGIN_R_FAILED,

或者 KLoginStructHead::Param = LOGIN_R_SERVERLIST | LOGIN_R_INVALID。

Step5以后步骤:类似登陆流程Step3以后步骤。



本主题包含附件: sf_20056221640.rar (16663bytes)
此文件由用户上传,GameRes.com无法确定其安全性,请慎重使用!

fccy309 2005-6-5 0:34:24

 注册: 2005-5    状态: Offline 1   Top
dhzyf
Exp:82

侦察兵
 发表于: 2005-6-2 23:45:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

好样的,一起努力

 注册: 2005-3    状态: Offline 2   Top
shoooo
Exp:1082

中士
 发表于: 2005-6-3 8:59:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

楼主的另一篇
"剑侠情缘启动关闭及配置"

http://hack.gameres.com/showthread.asp?threadid=30181

shoooo 2005-6-6 8:59:50

 注册: 2005-1    状态: Offline 3   Top
writer15
Exp:215

下士
 发表于: 2005-6-3 12:56:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

哪搞出来的?还是自己写的文档。我没玩过剑侠-o-

 注册: 2004-2    状态: Offline 4   Top
aspeden
Exp:51

侦察兵
 发表于: 2005-6-3 13:12:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

好资料

 注册: 2005-4    状态: Offline 5   Top
btq
Exp:219

下士
 发表于: 2005-6-8 13:10:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

-o- 又有人准备做脱机了?

 注册: 2004-4    状态: Offline 6   Top
600019629
Exp:109

侦察兵
 发表于: 2005-6-11 23:48:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

是从私服上找到的吧

 注册: 2004-8    状态: Offline 7   Top
jerrywhang
Exp:3

新成员
 发表于: 2005-6-12 21:49:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

这是登陆方面的代码。对修改数据封包有用吗?

 注册: 2005-6    状态: Offline 8   Top
月牙兒
Exp:16

新成员
 发表于: 2005-6-13 23:31:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

晕。。。别讲得那么深奥行不行,,

 注册: 2005-6    状态: Offline 9   Top
btq
Exp:219

下士
 发表于: 2005-6-21 16:55:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

外挂技术,本来就是很深奥的嘛...

 注册: 2004-4    状态: Offline 10   Top
ysjhuuuu
Exp:211

下士
 发表于: 2005-6-22 7:28:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

这是官方的文档

 注册: 2004-10    状态: Offline 11   Top
north
Exp:11

新成员
 发表于: 2005-6-24 11:22:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

汗,官方文档搞来了?
另外,这是剑1 还是 剑2

 注册: 2005-6    状态: Offline 12   Top
greatlikan
Exp:1

新成员
 发表于: 2005-7-21 23:30:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

太深奥了~~~~

 注册: 2005-7    状态: Offline 13   Top
undeadbird
Exp:3

新成员
 发表于: 2005-7-26 22:28:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

呵呵 真不知道那里搞出来的


 注册: 2005-7    状态: Offline 14   Top
dhzyf
Exp:82

侦察兵
 发表于: 2005-9-10 14:13:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

经过1月实验,没有什么进展

 注册: 2005-3    状态: Offline 15   Top
ghostcn
Exp:53

侦察兵
 发表于: 2005-11-23 21:04:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

hoho~

 注册: 2005-1    状态: Offline 16   Top
you
Exp:10

新成员
 发表于: 2006-1-20 23:28:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

支持。

 注册: 2006-1    状态: Offline 17   Top
King_s
Exp:-101

新成员
 发表于: 2006-2-2 1:17:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

顶上去

 注册: 2006-2    状态: Offline 18   Top
huyan722
Exp:3

新成员
 发表于: 2006-2-16 16:06:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

顶上去

 注册: 2006-2    状态: Offline 19   Top
wooeng
Exp:44

侦察兵
 发表于: 2006-12-2 12:05:00

{threadNotes} Re:剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

支持。


 注册: 2006-9    状态: Offline 20   Top
共2页,选择:   1    [2]  

主题管理:   删除关闭/取消置顶/取消精华/取消移动编辑主题 |  [提问/交流/原创/作品/业内/关闭/清除]

游戏外挂研究院 » 游戏外挂制作 » 剑侠情缘——游戏与账号数据库的Socket层通讯协议定义

您尚未登录论坛,可以同通过这里进行登录,如果您不是GameRes用户,可以点击这里立即注册

关于本站 | 投稿指南 | 广告服务 | 联系本站

未经书面许可,请勿转载、链接本站内容,否则非法引用所造成的后果自负;
本站不对所提供的所有资讯正确性负责,若因资讯导致的任何损失本站概不负责,请自行斟酌。
闽ICP备05005107号
Copyright © 2001-2008 GameRes游戏开发资源网 All Rights Reserved.