玩传奇论坛

 找回密码
立即注册

扫一扫,访问移动社区

论坛喇叭+ 发布

01-25 10:01
系统通知全站压缩包解压密码:www.wanmirbbs.com
01-25 10:01
01-25 10:01
查看: 2709|回复: 0
打印 上一主题 下一主题

[文本教程] 传奇客户端微端分析

[复制链接]
跳转到指定楼层
楼主
发表于 2021-5-11 18:31:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,以游结友!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
核心单元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
///////////////////////////////////////////


法律声明:
1. 本站所有资源和素材来源于网络收集,如有侵权内容请联系站长删除处理!
2. 本站大部分下载资源收集于网络,版权归原作者所有,如有侵权请联系删除。
3. 本站提供的素材、源码、等等其他资源,都不包含技术服务支持!
4. 若因线路和服务器问题非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5. 注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
收藏收藏1 分享分享 分享淘帖 支持支持 反对反对
懒得打字嘛,点击右侧快捷回复 【乱回复纯数字纯字母将禁言】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

必备工具

地图查看分析转换三合一

目前地图转换 单纯的OB真彩地图转换编...号想必很多人都会, 也有很多工具

南宫地图编辑器v5.0

使用方法,放置传奇客户端DATA文件夹...

Tiles转换工具,支持支持255

支持255地图转换工具!

关于本站

玩传奇论坛 - 专业提供游戏素材、游戏工具、传奇单机、传奇服务端,致力于打造最精品的版本素材分享平台!

Archiver|小黑屋|玩传奇吉ICP备18002996号-1) |网站地图 

GMT+8, 2024-12-23 03:04 , Processed in 0.036563 second(s), 39 queries , Gzip On. 

 Powered by Discuz! X3.2

 © 2001-2013 Comsenz Inc.

返回顶部