依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

【好消息,好消息,好消息】VIP会员可以发表文章赚积分啦 !
查看: 5|回复: 0

[游戏架设教程] [传奇技术]Legend客户端微端分析

[复制链接] 主动推送

1万

主题

1万

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12498
发表于 3 小时前 | 显示全部楼层 |阅读模式
[传奇技术]Legend客户端微端分析
核心单元PatchUnit
就两个类

TPatchClientManager 管理类并维护一个m_xObjectListT(PatchClient)
负责初始化socket 和 发送资源请求
并在ProcOnIdle 执行 ExecSendBuffer ExecRecvBuffer
AssignedWMImages 用于存储服务端发送的wzl清单
/////////////////////////////////////
TPatchClient 实际的数据收发操作
m_ClientSocket: TClientSocket; 客户端socket
构造函数传递了一个TPatchClientManager对象

此函数处理接收的socket数据
ProcRecvBuffer 处理接收数据分析(pMsgHeader)并通过
AddProcRecvMsg添加到list(m_xProcRecvList) 交由ExecRecvBuffer处理
------------------------------------------
TPatchData 消息包格式
----------------------------------------
//////////////////////////////////////////////////////////////////////////////////
ExecSendBuffer //需要判断是否是第一次链接m_fFirstGetCrc
激活socket 从m_xTempProcSendList取出请求 发送数据请求
前段分析 实际是把请求的消息添加到m_xProcSendList
后段 从m_xProcSendList取出判断pPatchData.dwDelay 超时就删除请求
取出成功后分配内存 m_ClientSocket.Socket.SendBuf 发送请求
超时的交由end else begin
      m_ClientSocket.Socket.SendBuf(PatchData.tHdr, SizeOf(TMsgHeader)); //可能是重新请求?

-----------------------------------------
ExecRecvBuffer
从m_xProcRecvList取出数据
成功后 后面分析包

PM_CRC //crc返回 m_fFirstGetCrc 为真 //首包? 并获取整个资源列表
前段 判断全部为空 清理所有请求的消息列表
获取的列表格式 wzl为单个图片
wzl/wav/map
wzl 文件之间 | 分割其它类似 wzl,crc 逗号分隔
校验通过
按请求的图片
m_PatchClientManager.m_xWMImageList.IndexOf(szFileName)
放入m_nSvrWzlFileList(文件名,图片序号)
wav map类似 只不过是整个文件
-------------------------------------------------------
接下来向服务端返回本地校验?后来发现是个半成品。。
PatchData.tHdr.nSocket CRC文件数量
CnCRC32.FileCRC32(ParamStr(0), dwCRC); mir2.exe的crc
-------------------------------------------------------

PM_INDEX
校验通过将打开wzl wzx文件
同时更新本地图片计数 和服务器一致

PM_DATA解析具体数据
////////////////////////////////////////////////////////

SendProcMsg 发送请求包下载数据 map wzl wav直接的请求函数调用这个就行了
首次请求 消息加入m_xTempProcSendList
然后按类型文件名读取crc
通过CRC(pPatchData.tHdr.nSocket)
再次请求具体数据 消息加入m_xProcSendList

///////////////////////////////////////////

相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员6折;永久VIP4折
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2025-1-24 14:46

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表