东方猫
代码崇拜
展开
-
文件下载和指南
这将开始下载基本客户端所需的所有数据。您可以创建所需的怪物和物品来正确清除错误,这是通过将相关数据添加到数据库来完成的,或者您可以关闭数据库检查。如果没有任何形式的数据库,服务器默认不会运行(启动时您会收到各种错误,指示服务器无法启动的原因)。尽管这现在并不重要,但如果您要使用服务器,这会阻止人们使用修改后的客户端连接到您的服务器。下面的文件和指南只是简单的下载,其中包括启动您自己的 Mir 服务器所需的所有文件。一旦您完成了所有 3 个错误阶段中的步骤,您的服务器现在将启动,不会标记任何错误!原创 2023-12-27 15:40:21 · 975 阅读 · 0 评论 -
韩版传奇 2 源码分析与 Unity 重制(五)地图对象的行为处理
总的来说,用户的当前行为取决于 CurrentAction,当行为队列为空时,CurrentAction 会被设置为 Idle 类状态,否则会从队列中依次取出行为执行,那么哪些行为会引起 ActionFeed 被消费(即调用 SetAction)呢?对于移动逻辑本身而言,Walking 只是沿着瓦片地图的 X 或者 Y 方向行走步长 Step 个 Cell,但对于客户端渲染而言,行走是一个帧动画,我们需要将行走过程连贯的渲染出来,否则角色的移动就像是在地图上进行瞬移。原创 2023-12-27 15:35:42 · 758 阅读 · 0 评论 -
韩版传奇 2 源码分析与 Unity 重制(四)服务端地图对象管理
通过上述分析我们了解了瓦片地图的加载过程,其中包含动态部分和静态部分,静态部分包含了地图尺寸和瓦片类型,动态部分上面只涵盖了安全区、刷怪点、传送点和道具限制等这些基础属性,除此之外,地图上的玩家, 怪物和 NPC 等对象才是地图的核心数据。这里再补充一点,上述基于 Timer 和 Tick 的刷怪点有哪些不同呢?到这里我们已经分析完了地图的加载和基础的地图对象维护逻辑,但其中还有很多细节没有深入,例如人物和怪物的移动,技能的释放,物品的掉落等,这些内容会在接下来的文章中一一分析。原创 2023-12-27 15:34:25 · 718 阅读 · 0 评论 -
韩版传奇 2 源码分析与 Unity 重制(三)客户端渲染管线
需要注意的是循环中的 x, y 实际上是 Tile 坐标,在绘制时我们需要将其换算为屏幕坐标,换算的过程很简单,只需要将 Tile 坐标乘以 CellWH 即可。在上一篇文章中我们提到,客户端的事件循环会逐帧调用 UpdateEnviroment 和 RenderEnvironment,其中前者用于处理网络数据包和更新状态,后者用于渲染,在这里我们重点来看 RenderEnvironment 的实现。在接下来的文章中我们将继续深入客户端渲染,分析装备、技能和动画的渲染方式。原创 2023-12-27 15:31:42 · 1598 阅读 · 0 评论 -
韩版传奇 2 源码分析与 Unity 重制(二)客户端启动与交互流程
数据完整性检查与 Connected 数据包类似,首先客户端发送 hash 到服务端,服务端校验后将结果返回到客户端,这是一个初级的逆向对抗策略,可通过修改发送的 hash 或忽略返回的错误跳过。到这里整个客户端的启动流程就分析完了,接下来的逻辑主要集中在服务端向客户端同步状态和客户端发送角色行为,在接下来的文章中我们将深入分析这些交互的处理过程。因此上面的 Draw 方法其实会将登录页面绘制出来,我们这里先跳过 GUI 相关的部分,直接来看一下当用户输入完账号密码后是如何建立连接和发起登录的。原创 2023-12-25 10:01:58 · 1934 阅读 · 0 评论 -
韩版传奇 2 源码分析与 Unity 重制(一)服务端 TCP 状态管理
该专题将会分析 LOMCN 基于韩版传奇 2,使用 .NET 重写的传奇源码(服务端 + 客户端),分析数据交互、状态管理和客户端渲染等技术,此外笔者还会分享将客户端部分移植到 Unity 和服务端用现代编程语言重写的全过程。本文重点介绍了服务端的启动链路、网络初始化和连接处理这三个过程,并简要分析的游戏循环的实现与数据包处理,在下一篇文章中,我们会从客户端角度分析从游戏启动、登录、游戏开始和基础游戏交互的全流程。原创 2023-12-25 09:47:26 · 1942 阅读 · 0 评论