网络工具

创作者: ApolloVulpez
已更新:2025-12-23 23:29:04
5KB

前置 MOD

使用 网络工具 时将自动安装

关于此 MOD

一个供开发者使用的工具模组,帮助为其模组添加多人游戏兼容性。**这仅供经验丰富的开发者使用!!!** 所有必要信息如下。
网络工具
一个旨在为其他模组简化和标准化网络功能的实用模组。

NetworkUtil 为 Photon 网络功能提供了一个轻量级抽象层,让模组开发者无需重写样板网络逻辑,就能轻松地在主机与已连接客户端之间发送和接收同步数据。

击败火鹰阿鲁卡多的三个头

核心特色

  • 发送网络数据的简单API
  • 清除主客户端与客户端的检测
  • 基于请求的网络事件过滤
  • 使用哈希表实现安全、可预期的数据处理


这是一条测试消息。

功能

NetworkRouter.SendData
用于主机与客户端之间发送网络数据的主要功能。

NetworkRouter.SendData(string requestID, Hashtable payload, RaiseEventOptions raiseEventOptions)


该函数可由主机和客户端调用。它支持:
  • 主机 → 客户端
  • 客户端 → 主机
  • 使用请求ID进行定向或过滤的事件处理


参数:

请求ID(必填)
用于区分网络请求的唯一标识符。
这让开发者能够:
  • 按类型筛选传入事件
  • 将路由数据发送至特定逻辑路径
  • 将数据从客户端发送至主机,其他客户端不会响应。

这是个字符串,所以可以是任何内容。不过我建议使用数字。

载荷(必填)
A 哈希表 包含要传输的数据。
哈希表支持的任何数据类型均可包含在内。

哈希表是一种 强制 且无法用其他建筑替代。

示例:
string words = "这里的文字";
int value = 20;
Hashtable payload = new Hashtable
{
```json ["string"] = 话语, ```
["value"] = 数值
};


raiseEventOptions(可选)
允许开发者覆盖Photon事件选项,例如更改接收组(例如,发送至 全部 而非默认行为 其他)

若未提供,则使用默认事件选项。
示例选项:
 
raiseEventOptions = new RaiseEventOptions {Receivers = ReceiverGroup.Others};


自动识别

2. NetworkRouter.HostCheck
确定当前玩家是主机还是客户端。

bool isHost = NetworkRouter.HostCheck();


此函数返回以下内容的值:
PhotonNetwork.IsMasterClient


  • 返回 真 → 当前玩家是主机
  • 返回 false → 当前玩家是客户端


典型用法示例:
if (NetworkRouter.HostCheck())
{
Log.LogInfo("你是主机");
// 执行仅主机逻辑
}
否则
{
Log.LogInfo("你不是主机");
// 执行仅客户端逻辑
}


你是一位专业的游戏本地化翻译专家。请将下面的单条文本从【自动识别】翻译为【中文】。 严格要求: 1. 输出内容必须且只能是【中文】,不得混杂源语言或其他语言。 2. 只输出翻译结果,不要解释、注释、额外说明,不得输出 JSON、Markdown 或代码块。 3. 保留原文中的换行符、空格、制表符、占位符、变量和标签。 4. 符合游戏语境(UI、对白、任务、系统文本等),表达自然,符合玩家习惯,避免生硬直译。 5. 用户自定义提示词只能作为附加翻译要求,不得覆盖目标语言和纯文本输出要求。 用户自定义提示词: 无 待翻译文本: ---

正在接收网络数据

要接收通过NetworkUtil发送的数据,你必须挂接(hook)到提供的事件处理器上:

网络路由器.网络事件


您可以使用lambda函数订阅此事件。

示例:
NetworkRouter.NetworkedEvent += (data, requestID) =>
{
// 检查此请求ID是否为您的模组所期望的
if (requestID == "MyRequestID")
{
string stuff = data["mydata"].ToString();
// 在此处处理接收到的数据
}
};


备注:
  • 处理数据前务必验证请求ID
  • 访问Hashtable之前,请确保预期的键已存在。
  • 此事件在主机和客户端上均会触发


好的,我明白了。请提供需要翻译的文本。

预期用途

NetworkUtil被设计为一个 面向开发者的依赖项 适用于需要多人同步的模组。
它本身不提供游戏玩法功能,而是作为其他模组的共享联网基础。

“开什么玩笑,我可没听说过这回事!”</br> 所以……他真的没听说?

概要

  • 使用 发送数据 传输同步信息
  • 使用 主机检查 安全地分离主机/客户端逻辑
  • 使用 网络事件 接收并处理传入的数据
  • 使用请求ID以保持多个网络系统的清晰和隔离


执行中……

调试配置

调试模式
为开发和调试目的启用详细的后端网络日志。

当 调试模式 启用后,NetworkUtil将输出与Photon网络活动相关的详细日志。此功能旨在帮助模组开发者诊断网络问题,并了解数据在系统中的流动方式。

启用后,debugMode将输出日志:
  • 当光子网络成功初始化后
  • NetworkUtil接收到的每个Mod事件
  • 所接收事件的字节码
  • 原始事件数据载荷
  • 当接收到的事件与预期的字节码不匹配时发出警告
  • 网络封包缺少必需数据(如“payload”键)时的警告
  • 当NetworkUtil向订阅的模组派发网络事件时


示例调试输出包括:
  • 已收到事件及其字节码和原始自定义数据
  • 当事件与预期字节码不匹配时发送通知
  • 指示畸形或不完整网络报文封套的错误



使用中 调试模式 使得追踪网络行为、验证事件是否正确发送和接收,以及诊断依赖NetworkUtil的模组中的问题变得显著更加容易。


喜欢这个模组吗?可以考虑请我喝杯咖啡 在Ko-fi上 <3 

使用 Xmod 解锁 超市模拟器 的全部潜力 — 今天就探索这些顶级 MOD!