commit 118aaadf110e0b8ef19f21738c46f0a8ddebb00d Author: github-actions[bot] Date: Wed Dec 3 13:11:14 2025 +0000 Update latest branch with build outputs diff --git a/FunGame.Core.deps.json b/FunGame.Core.deps.json new file mode 100644 index 0000000..cb9b16d --- /dev/null +++ b/FunGame.Core.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v10.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v10.0": { + "FunGame.Core/2.0.0-dev-1203": { + "runtime": { + "FunGame.Core.dll": {} + } + } + } + }, + "libraries": { + "FunGame.Core/2.0.0-dev-1203": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/FunGame.Core.dll b/FunGame.Core.dll new file mode 100644 index 0000000..37e65bc Binary files /dev/null and b/FunGame.Core.dll differ diff --git a/FunGame.Core.xml b/FunGame.Core.xml new file mode 100644 index 0000000..19b3ca9 --- /dev/null +++ b/FunGame.Core.xml @@ -0,0 +1,10834 @@ + + + + FunGame.Core + + + + + 需要配合 使用 + 如果是 的数据请求,则配合 使用 + 确保已添加对应的枚举 + + + + + 数据请求结果 + + + + + 详细错误信息 + + + + + 是否已经关闭 + + + + + 私有的实现类 + + + + + 私有的实现类(这是局内请求的) + + + + + 指示关闭的变量 + + + + + 基于本地已连接的 创建新的数据请求 + 使用 中的 创建一个新的请求 + 插件则使用 中的 创建一个新的请求 + + + + + + + + + 基于本地已连接的 创建新的数据请求 + 使用 中的 创建一个新的请求 + 插件则使用 中的 创建一个新的请求 + 此数据请求只能调用异步方法 请求数据 + + + + + + + + + 基于本地已连接的 创建新的局内()数据请求 + 使用 中的 创建一个新的请求 + 此构造方法是给 提供的 + + + + + + + + + 基于本地已连接的 创建新的局内()数据请求 + 使用 中的 创建一个新的请求 + 此构造方法是给 提供的 + 此数据请求只能调用异步方法 请求数据 + + + + + + + + + 添加数据 + + + + + + + 长时间运行的数据请求需要在使用完毕后自行关闭 + + + + + 关闭时 + + + + + + 向服务器发送数据请求 + 警告: 调用此方法将抛出异常。请调用并等待 + + + + + + + 异步向服务器发送数据请求 + + + + + + 获取指定key对应的反序列化对象 + + + + + + + + 常规数据请求 + + + + + 游戏局内请求 + + + + + 反序列化Dictionary中的Json对象 + + + + + + + + + 邮件服务内部ID + + + + + Smtp客户端信息 + + + + + 上一个邮件发送的结果 + + + + + 上一个邮件的发送错误信息(如果发送失败) + + + + 内部变量 + + + + 创建邮件服务 + + + + + + + + + + + 创建完整邮件对象 + + + + + + + + + + + + + 发送邮件 + + + + + + + 关闭邮件服务 + + + + + 关闭邮件服务 + + + + + + 数据库助手类。这是一个抽象类,需要在Server中继承此类实现 + + + + + FunGame 类型 + + + + + 使用的数据库类型 + + + + + SQL 脚本 + + + + + 命令类型 + + + + + 数据库事务 + + + + + 执行结果 + + + + + SQL 服务器信息 + + + + + 上一次执行命令影响的行数 + + + + + 上一次执行的命令是 Insert 时,返回的自增 ID,大于 0 有效 + + + + + 上一次执行命令的查询结果集 + + + + + SQL 语句参数 + + + + + 上一次执行命令是否成功 + + + + + 是否在每次执行命令后清除参数,默认为 true + + + + + 执行现有命令() + + 影响的行数 + + + + 执行一个指定的命令 + + 命令 + 影响的行数 + + + + 异步执行现有命令() + + 影响的行数 + + + + 异步执行一个指定的命令 + + 命令 + 影响的行数 + + + + 执行现有命令()查询 DataSet + + 结果集 + + + + 执行指定的命令查询 DataSet + + 命令 + 结果集 + + + + 异步执行现有命令()查询 DataSet + + 结果集 + + + + 异步执行指定的命令查询 DataSet + + 命令 + 结果集 + + + + 执行现有命令()查询 DataRow(可选实现) + + 结果行 + + + + 执行指定的命令查询 DataRow(可选实现) + + 命令 + 结果行 + + + + 异步执行现有命令()查询 DataRow(可选实现) + + 结果行 + + + + 异步执行指定的命令查询 DataRow(可选实现) + + 命令 + 结果行 + + + + 查询数据库是否存在 + + + + + + 执行一个 sql 脚本文件 + + + + + + 异步执行一个 sql 脚本文件 + + + + + + 关闭连接 + + + + + 创建一个SQL事务 + + + + + 提交事务 + + + + + 回滚事务 + + + + + 释放资源 + + + + + 此标记意味着属性允许初始设定,但不是强制的。适用于 + + + + + 此标记意味着属性需要经过初始设定。适用于 + + + + + 此标记意味着字段需要满足 x.x.x 的格式。适用于 的版本号 + + + + + 目前的Model数量 + + + + + 最大接受的Model数量 + + + + + 可参与高并发的字典,但添加效率较低 + + + + + Init ModelManager + + MaxModel + + + + 获取Model对象 + + Model的Key + Model对象 + + + + 向Model管理器中添加Model + + Model的Key + Model对象 + True:操作成功 + + + + 从Model管理器中移除Model + + Model的Key + True:操作成功 + + + + 将Model移除,并取得这个Model + + Model的Key + Model对象 + 被移除的Model + + + + 将Model移除,并取得这个Model + + Model的Key + 被移除的Model + + + + 判断是否存在指定的Model + + + + + + + 清空Model管理器 + + + + + 获取Model对象的列表 + + + + + 从 中获取指定键的值,并将其转换为指定的类型。 + + 要转换的目标类型 + 要从中获取值的字典 + 要获取值的键 + 转换后的值,如果键不存在或转换失败,则返回默认值。 + + + + 简易的实体模组配置文件生成器,适用范围:动态扩展技能和物品、保存玩家的存档 + 仅支持继承了 的实体类型,每个 仅保存一种实体类型的数据 + 文件会保存为:程序目录/configs//.json + + + 新建一个配置文件,文件会保存为:程序目录/configs//.json + + + + + + + 简易的实体模组配置文件生成器,适用范围:动态扩展技能和物品、保存玩家的存档 + 仅支持继承了 的实体类型,每个 仅保存一种实体类型的数据 + 文件会保存为:程序目录/configs//.json + + + 新建一个配置文件,文件会保存为:程序目录/configs//.json + + + + + + + 模组的名称 + + + + + 配置文件的名称(后缀将是.json) + + + + + 使用索引器给指定key赋值,不存在key会新增 + + + + + + + 获取指定key的value + + + + + + + 添加一个配置,如果已存在key会覆盖 + + + + + + + 从配置文件中读取配置。 + + + + + 将配置保存到配置文件。调用此方法会覆盖原有的.json,请注意备份 + + + + + 支持动态扩展的工厂实例 + + + + + 注册工厂方法 + + + + + + + 构造一个实体实例 + + + + + + + + + + + 此方法使用 取得一个实体字典 + + + + + + + + + 使用 构造一个实体字典并保存 + + + + + + + + + + 注册工厂方法 [SQLHelper] + + + + + + 构造一个 SQLHelper 实例 + + + + + + 注册工厂方法 [MailSender] + + + + + + 构造一个 MailSender 实例 + + + + + + 获取角色实例 + + + + + + 获取库存实例 + + + + + + 获取技能实例 + + + + + + 获取技能特效实例 + + + + + + 获取物品实例 + + + + + + 获取房间实例 + + 房间内部序列号 + 房间号 + 创建时间 + 房主 + 房间类型 + 游戏模组 + + 房间状态 + + 房间密码 + 人数上限 + + + + + 通过DataSet获取房间实例 + + + + + + + + 通过DataSet获取房间列表 + + + + + + + + 获取大厅(-1号房) + + + + + + 获取用户实例 + + + + + + 获取用户实例 + + + + + + + + + + + + + + + + + 获取用户实例 + + + + + + + 获取用户实例 + + + + + + + 适用于客户端的模组集 + + + + + 适用于服务器的模组集 + + + + + 游戏地图集 + + + + + 角色表 + + + + + 技能表 + + + + + 物品表 + + + + + 已加载的模组DLL名称对应的路径 + + + + + 传入 类型来创建指定端的模组读取器 + runtime = 时,仅读取 + runtime = 时,仅读取 + 都会读取 + + 传入 类型来创建指定端的模组读取器 + 用于构建 + 其他需要传入给插件初始化的对象 + + + + + 获取对应名称的模组实例 + 如果需要取得服务器模组的实例,请调用 + + + + + + + 获取对应名称的服务器模组实例 + + + + + + + 获取对应名称的游戏地图 + + + + + + + 网络服务工具箱 + + + + + 判断字符串是否是IP地址 + + + + + + + 判断字符串是否为邮箱地址 + + + + + + + 判断字符串是否是正常的用户名(只有中英文和数字) + + + + + + + 判断字符串是否是全中文的字符 + + + + + + + 获取用户名长度 + + + + + + + 判断字符串是否是一个FunGame可接受的服务器地址 + 此方法可以解析域名 + + + + + 返回地址验证结果,同时输出服务器地址和端口号 + + + + 判断参数是否是一个FunGame可接受的服务器地址 + + + + + + + + 获取服务器的延迟 + + 服务器IP地址 + + + + + 解析域名为IP地址 + + + + + + + + 返回目标对象的Json字符串 + + + + + + + + 返回目标对象的Json字符串 可指定反序列化选项 + + + + + + + + + 反序列化Json对象 + + + + + + + + 反序列化Json对象 使用 可指定反序列化选项 + + + + + + + + + 反序列化Json对象 可指定反序列化选项 + + + + + + + + + 反序列化Hashtable中的Json对象 + + + + + + + + + 反序列化Dictionary中的Json对象 + + + + + + + + + 反序列化IEnumerable中的Json对象 + + + + + + + + + 反序列化IEnumerable中的Json对象 可指定反序列化选项 + + + + + + + + + + 反序列化Hashtable中的Json对象 可指定反序列化选项 + + + + + + + + + + 发送 GET 请求 + + + + + + + 发送 POST 请求 + + + + + + + + + 时间服务工具箱 + + + + + 获取系统时间 + + 格式化类型 + + + + + 通过字符串转换为DateTime对象 + + 时间字符串 + 转换失败返回当前时间 + + + + 获取系统时间并转为字符串 + + 格式化类型 + + + + + 获取系统时间并转为字符串 + + 格式化字符串 + + + + + 获取系统短时间 + + 时:分:秒 + + + + 获取系统日期 + + + + + + 获取 DLL 编译时间 + + + + + + + 获取下一次可交易的时间 + + + + + + 加密服务工具箱 + + + + + 使用 HMAC-SHA512 算法对文本进行加密 + + 需要加密的文本 + 用于加密的秘钥 + 加密后的 HMAC-SHA512 哈希值 + + + + 使用 HMAC-SHA256 算法对文本进行加密 + + 需要加密的文本 + 用于加密的秘钥 + 加密后的 HMAC-SHA256 哈希值 + + + + 使用 SHA256 算法对文本进行加密 + + 需要加密的文本 + 加密后的 SHA256 哈希值 + + + + 计算文件的 SHA-256 哈希值 + + 要计算哈希值的文件路径 + 文件的 SHA-256 哈希值 + + + + 使用 RSA 算法加密 + + 明文 + 公钥 + + + + + 使用 RSA 算法解密 + + 密文 + 私钥 + + + + + 使用 MD5 算法加密 + + + + + + + 生成随机字符串 + + + + + + + 验证码服务工具箱 + + + + + 生成验证码 + + 类型 + 长度 + + + + + 数字验证码 + + + + + + + 字母验证码 + + + + + + + 混合验证码 + + + + + + + Web API 自定义 Token 验证器 + + + + + 添加自定义 Token 验证器 + + + + + + 对自定义 Token 进行验证 + + + + + + + 多线程服务工具箱 + + + + + 开启一个异步任务。调用返回对象的 OnCompleted() 方法可以执行后续操作 + + + + + + 开启一个异步任务。调用返回对象的 OnCompleted() 方法可以执行后续操作 + + + + + + 开启一个计时器任务 + + + + + + + 添加任务计划,使用 的时分秒。如果用 ,请直接在 中添加 + + + + + + + + 添加循环任务。如果用 ,请直接在 中添加 + + + + + + + + + + + 计算服务工具箱 + + + + + 四舍五入计算 + + + + + + + + 四舍五入保留2位小数 + + + + + + + 四舍五入保留4位小数 + + + + + + + 此方法检查一个 百分比(%) 数值是否存在于 [0,1] 区间 + + + 如果低于0,则返回0;超过1则返回1。 + + + + 检查 是否约等于 0 + + + + + + + + See: , , + + + + + 获取FunGame.Implement.dll中接口的实现方法 + + 程序集 + 接口代号 + + + + + 获取接口实现类类名 + + 接口类型 + + + + + 获取接口方法名(支持属性) + + 方法 + + + + + 公开方法:获取FunGame.Implement.DLL中指定方法(属性)的返回值 + + 接口代号 + 方法代号(支持属性) + 是否是方法(如是属性请传入false) + + + + + Json工具类 + 此工具类拥有单独的序列化选项,支持添加自定义转换器 + 继承自 + + + + + 默认的序列化选项 + + + + + 序列化选项 + + + + + 创建一个Json工具类 + 此工具类拥有单独的序列化选项,支持添加自定义转换器 + 继承自 + + + + + 注册一个自定义转换器,支持 + + + + + + 注册多个自定义转换器,支持 + + + + + + 获取Json字符串 + + + + + + + + 反序列化Json对象 + + + + + + + + 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别 + + + + + + + 反序列化Hashtable中Key对应的Json对象 + + + + + + + + + 反序列化Dictionary中Key对应的Json对象 + + + + + + + + + 反序列化IEnumerable中的Json对象 可指定反序列化选项 + + + + + + + + + 反序列化多个Json对象 + 注意必须是相同的Json对象才可以使用此方法解析 + + + + + + + + 视觉小说文本配置器 + 文件会保存为:程序目录/(通常是 novels)//.json + + + 新建一个配置文件,文件会保存为:程序目录/(通常是 novels)//.json + + + + + + + 视觉小说文本配置器 + 文件会保存为:程序目录/(通常是 novels)//.json + + + 新建一个配置文件,文件会保存为:程序目录/(通常是 novels)//.json + + + + + + + 配置文件存放的根目录 + + + + + 是否允许 + + + + + 模组的名称 + + + + + 配置文件的名称(后缀将是.json) + + + + + 断言方法字典 + 都有显示的条件,反序列化 json 文件时,会根据其名称来分配具体的断言方法 + + + + + 使用索引器给指定key赋值,不存在key会新增 + + + + + + + 获取指定key的value + + + + + + + 添加一个配置,如果已存在key会覆盖 + + + + + + + 从指定路径加载配置文件,并根据其文件名,转换为本框架所需的文件 + 为 false 时将不会复制此文件至配置文件目录并且不允许 + 需要注意: 用于检查加载的文件名是否在配置文件目录中已经存在 + 如果不使用此检查,使用 时可能会覆盖原有文件(程序目录/(通常是 novels)//[所选的文件名].json) + + + + + + + + + + + + + + 从配置文件中读取配置。 + + 传入定义好的条件字典 + + + + 根据断言方法字典重新生成小说的字典 + + + + + + + 将配置保存到配置文件。调用此方法会覆盖原有的.json,请注意备份 + + + + + 检查配置文件目录是否存在 + + + + + + + 检查配置文件目录是否存在,不存在则创建 + + + + + + + 检查配置文件目录中是否存在指定文件 + + + + + + + + 简易的插件配置文件生成器 + 仅支持部分基本类型(, , , , )及其数组(List<long>, List<double>, List<decimal>, List<string>, List<bool>long[], double[], decimal[], string[], bool[]) + 文件会保存为:程序目录/(通常是 configs)//.json + + + 新建一个配置文件,文件会保存为:程序目录/(通常是 configs)//.json + + + + + + + 简易的插件配置文件生成器 + 仅支持部分基本类型(, , , , )及其数组(List<long>, List<double>, List<decimal>, List<string>, List<bool>long[], double[], decimal[], string[], bool[]) + 文件会保存为:程序目录/(通常是 configs)//.json + + + 新建一个配置文件,文件会保存为:程序目录/(通常是 configs)//.json + + + + + + + 配置文件存放的根目录 + + + + + 插件的名称 + + + + + 配置文件的名称(后缀将是.json) + + + + + 使用索引器给指定key赋值,不存在key会新增 + + + + + + + 如果保存了对象,请使用此方法转换 + + + + + + + 获取指定key的value + + + + + + + 使用泛型获取指定key的value + + + + + + + + 添加一个配置,如果已存在key会覆盖 + + + + + + + 从配置文件中读取配置。 + 注意:所有保存时为数组的对象都会变成对象,并且不支持类型 + + + + + 将配置保存到配置文件。调用此方法会覆盖原有的.json,请注意备份 + + + + + Json反序列化的方法 + + + + + + + JSON 数组反序列化的方法,支持特定类型数组和混合类型数组(包括嵌套对象和数组)。 + + 字典的键 + JSON 数组的枚举器 + + + + 递归解析 JSON 对象 + + + + + 递归解析 JSON 数组 + + + + + 已读取的插件列表 + key 是 + + + + + 已加载的插件DLL名称对应的路径 + + + + + 构建一个插件读取器并读取插件 + + 用于构建 + 其他需要传入给插件初始化的对象 + + + + + 已读取的插件列表 + key 是 + + + + + 已加载的插件DLL名称对应的路径 + + + + + 构建一个插件读取器并读取插件 + + 用于构建 + 其他需要传入给插件初始化的对象 + + + + + 单例表:表中的对象以类名作为Key保存,并以Key获取该对象,Key具有唯一约束 + 用于储存单例对象使用 + + + + + 查询目标的类是否已经有实例 + + 单例对象 + + + + + 将目标和目标的类添加至单例表,如果存在,将更新此类单例 + + 单例对象 + 存入基类 + + + + + 将目标和目标的类从单例表中移除 + + 单例对象 + + + + + 获取单例对象 + + 目标类 + + + + + 获取单例对象 + + 目标类 + + + + + 为字符串(string)添加扩展方法 + + + + + 使用 HMAC-SHA512 算法对文本进行加密 + + 需要加密的文本 + 用于加密的秘钥 + 加密后的 HMAC-SHA512 哈希值 + + + + 任务计划管理器实例,可以直接使用 + + + + + 创建一个轻量级的任务计划管理器 + + + + + 添加一个任务计划 + + + + + + + + + 添加一个循环任务 + + + + + + + + + + 移除任务计划 + + + + + + 获取任务计划上一次执行时间 + + + + + + + + 获取任务计划下一次执行时间 + + + + + + + + 执行任务 + + + + + 默认的配置文件名称 + + + + + 写入ini文件 + + Section + 键 + 值 + 文件名,缺省为FunGame.ini + + + + 读取ini文件 + + Section + 键 + 文件名,缺省为FunGame.ini + 读取到的值 + + + + 查询ini文件是否存在 + + 文件名,缺省为FunGame.ini + 是否存在 + + + + 初始化ini模板文件 + + + + + 读取TXT文件内容 + + 文件名(需要包含扩展名) + 相对路径 + 内容 + + + + 写入TXT文件内容(如不存在文件会创建) + 选项用于覆盖或追加文本 + + + 文件名(需要包含扩展名) + 相对路径 + 是否覆盖 + + + + 写入并覆盖TXT文件内容 + + + 文件名(需要包含扩展名) + 相对路径 + + + + 追加错误日志 默认写入logs文件夹下的当日日期.log文件 + + + + + + 追加错误日志 默认写入logs文件夹下的当日日期.log文件 + + + + + + Aka. 2FA 双重认证 双因素身份验证 + + + + + SQLHelper 允许为空 + + + + + 不使用SQL模式 + + + + + 使用SQL模式 记录对应账号的密文到数据库中 + + + + + + 检查账号是否需要2FA + + + + + + + 2FA验证 + + + + + + + + 每30秒刷新 + + + + + 6位数字2FA验证码 + + + + + ----- PUBLIC KEY ----- + + + + + ----- SECRET SIGN ----- + + + + + 创键私钥,用于绑定账号,并生成两个文件,需要用户保存 + + + + + 生成随机秘钥字符串 + + + + + + + 生成基于当前时间戳的6位数字2FA验证码 + + + + + + + 获取当前时间节点 + + + + + + 生成验证码 + + + + + + + + 拆分字符串中的密文和私钥 + + + + + + + + 已读取的插件列表 + key 是 + + + + + 已加载的插件DLL名称对应的路径 + + + + + 构建一个插件读取器并读取插件 + + 用于构建 + 其他需要传入给插件初始化的对象 + + + + + 这个控制器在 Base 的基础上添加了 DataRequest + + + + + + 基于本地已连接的Socket创建新的数据请求 + + + + + 基于本地已连接的Socket创建长时间运行的数据请求 + + + + + 基于本地已连接的Socket创建新的局内数据请求 + + + + + 基于本地已连接的Socket创建长时间运行的局内数据请求 + + + + + 基于本地已连接的Socket创建新的数据请求 + 此方法只允许插件调用,如果是模组和模组服务器调用此方法将抛出异常 + + + + + + + + 基于本地已连接的Socket创建长时间运行的数据请求 + 此方法只允许插件调用,如果是模组和模组服务器调用此方法将抛出异常 + + + + + + + + 基于本地已连接的Socket创建新的局内()数据请求 + 此方法是给 提供的,但是 也能调用 + 模组服务器调用此方法将抛出异常 + + + + + + + + + 基于本地已连接的Socket创建长时间运行的局内()数据请求 + 此方法是给 提供的,但是 也能调用 + 模组服务器调用此方法将抛出异常 + + + + + + + + + 新建一个AddonController + + + + + + + AI的核心决策方法,根据当前游戏状态为角色选择最佳行动。 + + 当前行动的AI角色。 + 角色的起始格子。 + 从起始格子可达的所有移动格子(包括起始格子本身)。 + 角色所有可用的技能(已过滤CD和EP/MP)。 + 角色所有可用的物品(已过滤CD和EP/MP)。 + 场上所有敌人。 + 场上所有队友。 + 场上能够选取的敌人。 + 场上能够选取的队友。 + 包含最佳行动的AIDecision对象。 + + + + 选择技能的最佳目标 + + + + + + + + + + 评估普通攻击的价值 + + + + + + + + 评估技能的价值 + + + + + + + + + + 评估物品的价值 + + + + + + + + + + 辅助函数:计算单个目标在某个技能下的价值 + + + + + + + + 这是通用的控制器,仅提供基本功能 + + Addon的类型,如 或者 / / + + + + 控制器的本体 + + + + + 输出系统消息 + + + + + 输出错误消息 + + + + + 输出系统消息 + + + + + + + + + 输出错误消息 + + + + + + + JSON 工具类对象 + + + + + 新建一个BaseAddonController + + + + + + + 默认的输出错误消息方法 + + + + + + + + + + 输出错误消息 + + + + + + + 此类实现服务器连接、断开连接、心跳检测、创建数据请求等功能 + -- 需要继承并实现部分方法 -- + + + + + 与服务器的连接套接字实例 + + + + + 与服务器的连接套接字实例(WebSocket) + + + + + 套接字是否已经连接 + + + + + 接收服务器信息的线程 + + + + + 用于类内赋值 + + + + + 用于类内赋值 + + + + + 是否正在接收服务器信息 + + + + + 断开服务器连接 + + + + + + 发送结束游戏反馈 + + + + + + 连接服务器 [ 可选参数需要根据连接方式提供 ] + 建议使用异步版,此方法为兼容性处理 + + + + + + + + + + + 连接服务器 [ 异步版,可选参数需要根据连接方式提供 ] + + + + + + + + + + + 使用 Socket 方式连接服务器 + + + + + + + + + 使用 WebSocket 方式连接服务器 + + + + + + + + + + + 获取服务器地址 + + string:服务器地址;int:端口号 + + + + + 此方法将在连接服务器前触发 + 客户端可以重写此方法 + + 服务器地址 + 服务器端口 + 重写时可以提供额外的连接参数 + false:中止连接 + + + + 此方法将在连接服务器后触发(Connect结果返回前) + 客户端可以重写此方法 + + 连接服务器后返回的一些数据,可以使用也可以修改它们 + + + + + 客户端需要自行实现自动登录的事务 + + + + + 关闭 Socket 连接 + + + + + + 关闭 WebSocket 连接 + + + + + + 输出消息 + + + + + + + + 自定处理异常的方法 + -- 一般放在catch中 -- + + + + + + 基于本地已连接的Socket创建新的数据请求 + + + + + + + + 基于本地已连接的Socket创建长时间运行的数据请求 + + + + + + + + 基于本地已连接的Socket创建新的数据请求 + 加载项专用( / ) + + + + + + + + 基于本地已连接的Socket创建长时间运行的数据请求 + 加载项专用( / ) + + + + + + + + 基于本地已连接的Socket创建新的局内()数据请求 + 加载项专用:此方法是给 提供的 + + + + + + + + 基于本地已连接的Socket创建长时间运行的局内()数据请求 + 加载项专用:此方法是给 提供的 + + + + + + + + 开始接收服务器信息 [ Socket Only ] + + + + + 获取服务器已发送的信息为SocketObject数组 [ Socket Only ] + + + + + + 具体接收服务器信息以及处理信息的方法 [ Socket Only ] + + + + + + 处理接收到的信息 + + + + + + + + 客户端接收服务器断开连接的通知 + + + + + + 客户端接收并处理服务器系统消息 + + + + + + 客户端接收并处理服务器心跳 + + + + + + 客户端接收强制退出登录的通知 + + + + + + 客户端接收并处理聊天信息 + + + + + + 客户端接收并处理更换房主信息 + + + + + + 客户端接收并处理匹配房间成功信息 + + + + + + 客户端接收并处理开始游戏信息 + + + + + + 客户端接收并处理游戏结束信息 + + + + + + 客户端接收并处理局内消息 + + + + + + 客户端接收并处理匿名服务器的消息 + + + + + + 这个控制器在 Base 的基础上添加了 SQLHelper 和 MailSender + + + + 新建一个ServerAddonController + + + + + + + 这个控制器在 Base 的基础上添加了 SQLHelper 和 MailSender + + + + 新建一个ServerAddonController + + + + + + + 数据库连接器 [ 后台长连接仅查询专用,请勿用于事务、更新和新增,对应需求请使用: ] + + + + + 邮件发送器 + + + + + 获取一个可以用来进行事务操作、更新/新增数据的数据库连接器 [ 请使用 using Controller.GetSQLHelper() 来让它能够自动释放 ] + + + + + + 新建 SQLHelper [ 后台长连接仅查询专用,请勿用于事务、更新和新增,对应需求请使用: ] + + + + + 新建 MailSender + + + + + 关闭插件的服务 + + + + + 继承 AsyncAwaiter 用法: + 1、调用Socket.Send()前,请设置为等待状态:SetWorking(); + 2、调用Socket.Send() == Success后,请等待任务完成:WaitForWorkDone(); + 3、在其他任何地方修改Working状态,均会使任务终止。 + + + + + 接收到的SocketObject实例 + + + + + Socket + + + + + WebSocket + + + + + 继承请调用base构造 + + Socket + + + + 继承请调用base构造 + + Socket + + + + 继承请重写此方法 + + SocketObject + + + + 判断是否已经Disposed + + + + + 公开的Dispose方法 + + + + + 关闭时 + + + + + + 关闭事件 + + + + + Controller关闭时事件 + 不建议new Dispose()方法,建议使用事件 + 事件会在base.Dispose()执行前触发 + + + + + 触发关闭事件 + + + + + 实体的数字 ID + + + + + 实体的唯一 ID + + + + + 实体的名称 + + + + + 实体的当前状态(关联数据库操作) + + + + + 实体所用的游戏平衡常数 + + + + + 比较两个实体是否相同 + + + + + + + 获取实体的 Id.Name + + + + + + 用于记录对哪个角色造成了多少伤害 + + + + + 此详情类属于哪个角色 + + + + + 对敌人造成的伤害 + + + + + 最后一次造成伤害的时间 + + + + + 对某角色最后一次友方非伤害辅助的时间 + + + + + 初始化一个助攻详情类 + + + + + + + 获取和设置对 的伤害,并设置时间 + + + + + + + + 获取对 的伤害 + + + 目标的 的百分比形式 + + + + 获取对 造成伤害的最后时间 + + + 意味着没有时间 + + + + 获取对某角色友方非伤害辅助的最后时间 + + + 意味着没有时间 + + + + 角色需要使用 Factory.Get 的方式来构造,并赋值 标记的属性 + 在使用时仅需要调用 方法即可获得相同对象 + + + + + 唯一标识符 + + + + + 角色的姓 + + + + + 角色的名字 + + + + + 角色的昵称 + + + + + 角色所属的玩家 + + + + + 角色的详细资料 + + + + + 角色的装备 + + + + + 魔法属性 + + + + + 角色定位1 + + + + + 角色定位2 + + + + + 角色定位3 + + + + + 角色评级 + + + + + 晋升点数 + + + + + 核心属性 + + + + + 等级 + + + + + 经验值 + + + + + 等级突破进度 [ 对应 中的索引 ] + + + + + 角色目前所处的状态 [ 战斗相关 ] + + + + + 角色目前被特效施加的状态 [ 用于设置角色的状态,这些状态会影响角色的行动 ] + + + + + 角色目前被特效施加的控制效果 [ 用于特效在不同的钩子中更改角色的行为 ] + 我们需要明确控制效果不一定能造成角色的状态改变(影响角色的行动),但是这些控制状态需要由特效在不同的地方改变角色的行为 + + + + + 角色目前被特效施加的免疫状态 [ 战斗相关 ] + + + + + 角色是否是中立的 [ 战斗相关 ] + + + + + 角色是否是不可选中的 [ 战斗相关 ] + + + + + 角色是否具备免疫状态 [ 战斗相关 ] + + + + + 初始生命值 [ 初始设定 ] + + + + + 基础生命值 [ 与初始设定和等级相关 ] [ 与基础力量相关 ] + + + + + 额外生命值 [ 与额外力量相关 ] + + + + + 额外生命值2 [ 与技能和物品相关 ] + + + + + 额外生命值3 [ 额外生命值% ] + + + + + 额外生命值% [ 与技能和物品相关 ] + + + + + 最大生命值 = 基础生命值 + 额外生命值 + 额外生命值2 + 额外生命值3 + + + + + 当前生命值 [ 战斗相关 ] + + + + + 是否有魔法值 [ 初始设定 ] + + + + + 初始魔法值 [ 初始设定 ] + + + + + 基础魔法值 [ 与初始设定和等级相关 ] [ 与基础智力相关 ] + + + + + 额外魔法值 [ 与额外智力相关 ] + + + + + 额外魔法值2 [ 与技能和物品相关 ] + + + + + 额外魔法值3 [ 额外魔法值% ] + + + + + 额外魔法值% [ 与技能和物品相关 ] + + + + + 最大魔法值 = 基础魔法值 + 额外魔法值 + 额外魔法值2 + 额外魔法值3 + + + + + 当前魔法值 [ 战斗相关 ] + + + + + 当前爆发能量 [ 战斗相关 ] + + + + + 初始攻击力 [ 初始设定 ] + + + + + 基础攻击力 [ 与初始设定和等级相关 ] [ 与核心属性相关 ] + + + + + 额外攻击力 [ 与额外核心属性相关 ] + + + + + 额外攻击力2 [ 与技能和物品相关 ] + + + + + 额外攻击力3 [ 额外攻击力% ] + + + + + 额外攻击力% [ 与技能和物品相关 ] + + + + + 攻击力 = 基础攻击力 + 额外攻击力 + 额外攻击力2 + 额外攻击力3 + + + + + 初始物理护甲 [ 初始设定 ] + + + + + 基础物理护甲 [ 与初始设定相关 ] [ 与基础力量相关 ] + + + + + 额外物理护甲 [ 与额外力量相关 ] + + + + + 额外物理护甲2 [ 与技能和物品相关 ] + + + + + 额外物理护甲3 [ 额外物理护甲% ] + + + + + 额外物理护甲% [ 与技能和物品相关 ] + + + + + 物理护甲 = 基础物理护甲 + 额外物理护甲 + 额外物理护甲2 + 额外物理护甲3 + + + + + 物理伤害减免(%) = [ 与物理护甲相关 ] + 额外物理伤害减免(%) + + + + + 额外物理伤害减免(%) [ 与技能和物品相关 ] + + + + + 魔法抗性(%) [ 与技能和物品相关 ] + + + + + 物理穿透(%) [ 与技能和物品相关 ] + + + + + 魔法穿透(%) [ 与技能和物品相关 ] + + + + + 初始生命回复力 [ 初始设定 ] + + + + + 生命回复力 = [ 与初始设定相关 ] [ 与力量相关 ] + 额外生命回复力 + + + + + 额外生命回复力 [ 与技能和物品相关 ] + + + + + 初始魔法回复力 [ 初始设定 ] + + + + + 魔法回复力 = [ 与初始设定相关 ] [ 与智力相关 ] + 额外魔法回复力 + + + + + 额外魔法回复力 [ 与技能和物品相关 ] + + + + + 能量回复力 [ 与技能和物品相关 ] + + + + + 核心属性的值 [ 核心属性相关 ] + + + + + 基础核心属性的值 [ 核心属性相关 ] + + + + + 额外核心属性的值 [ 核心属性相关 ] + + + + + 初始力量 [ 初始设定 ] + + + + + 初始敏捷 [ 初始设定 ] + + + + + 初始智力 [ 初始设定 ] + + + + + 基础力量 [ 与初始设定和等级相关 ] + + + + + 基础敏捷 [ 与初始设定和等级相关 ] + + + + + 基础智力 [ 与初始设定和等级相关 ] + + + + + 额外力量 [ 与技能和物品相关 ] + + + + + 额外敏捷 [ 与技能和物品相关 ] + + + + + 额外智力 [ 与技能和物品相关 ] + + + + + 额外力量2 [ 额外力量% ] + + + + + 额外敏捷2 [ 额外敏捷% ] + + + + + 额外智力2 [ 额外智力% ] + + + + + 额外力量% [ 与技能和物品相关 ] + + + + + 额外敏捷% [ 与技能和物品相关 ] + + + + + 额外智力% [ 与技能和物品相关 ] + + + + + 力量 = 基础力量 + 额外力量 + 额外力量2 + + + + + 敏捷 = 基础敏捷 + 额外敏捷 + 额外敏捷2 + + + + + 智力 = 基础智力 + 额外智力 + 额外智力2 + + + + + 力量成长值(+BaseSTR/Lv) + + + + + 敏捷成长值(+BaseAGI/Lv) + + + + + 智力成长值(+BaseINT/Lv) + + + + + 行动速度 [ 初始设定 ] + + + + + 行动速度 = [ 与初始设定相关 ][ 与敏捷相关 ] + 额外行动速度 + + + + + 额外行动速度 [ 与技能和物品相关 ] + + + + + 行动系数(%) = [ 与速度相关 ] + 额外行动系数(%) + + + + + 额外行动系数(%) [ 与技能和物品相关 ] + + + + + 加速系数(%) = [ 与智力相关 ] + 额外加速系数(%) + + + + + 额外加速系数(%) [ 与技能和物品相关 ] + + + + + 冷却缩减(%) = [ 与智力相关 ] + 额外冷却缩减(%) + + + + + 额外冷却缩减(%) [ 与技能和物品相关 ] + + + + + 攻击距离 [ 与武器相关 ] [ 单位:格(半径) ] + + + + + 额外攻击距离 [ 与技能和物品相关 ] [ 单位:格(半径) ] + + + + + 行动力/可移动距离 [ 与第一定位相关 ] [ 单位:格(半径) ] + + + + + 行动力/可移动距离 [ 与技能和物品相关 ] [ 单位:格(半径) ] + + + + + 暴击率(%) = [ 与敏捷相关 ] + 额外暴击率(%) + + + + + 额外暴击率(%) [ 与技能和物品相关 ] + + + + + 暴击伤害(%) = [ 与力量相关 ] + 额外暴击伤害(%) + + + + + 额外暴击伤害(%) [ 与技能和物品相关 ] + + + + + 闪避率(%) = [ 与敏捷相关 ] + 额外闪避率(%) + + + + + 额外闪避率(%) [ 与技能和物品相关 ] + + + + + 生命偷取 [ 与技能和物品相关 ] + + + + + 护盾值 [ 与技能和物品相关 ] + + + + + 普通攻击对象 + + + + + 角色的技能列表 + + + + + 角色的持续性特效列表 + + + + + 角色携带的物品 + + + + ===== 私有变量 ===== + + 等级 + + + + + 生命值 + + + + + 魔法值 + + + + + 能量值 + + + + + 物理穿透 + + + + + 魔法穿透 + + + + + 回复状态至满 + + + + + + 按时间回复状态 + + + + + + + 按当前百分比回复状态(一般在属性变化时调用) + + + + + + + + + 为角色装备物品(必须使用此方法而不是自己去给EquipSlot里的物品赋值) + 此方法装备到指定栏位,并返回被替换的装备(如果有的话) + + + + + + + + 为角色装备物品(必须使用此方法而不是自己去给EquipSlot里的物品赋值) + 此方法为根据物品类型,优先空位自动装备 + + + + + + 为角色装备物品(必须使用此方法而不是自己去给EquipSlot里的物品赋值) + 此方法为根据物品类型,优先空位自动装备 + 此方法可返回被替换的装备(如果有的话) + + + + + + + 取消装备,返回被取消的物品对象 + + + + + + + 设置角色等级,并默认完全回复状态 + + 新的等级 + false 为按百分比回复 + + + + 角色升级 + + + + + + + 角色突破,允许继续升级 + + + + + 角色的属性发生变化,会影响特殊效果的计算 + + + + + 比较一个角色(只比较 ) + + + + + + + 获取角色实例的昵称以及所属玩家,如果没有昵称,则用名字代替 + + + + + + 获取角色实例的名字、昵称 + + + + + + 获取角色实例的名字、昵称以及所属玩家 + + + + + + 获取角色实例的名字、昵称以及所属玩家,包含等级 + + + + + + 获取角色实例的名字、昵称以及等级 + + + + + + 获取角色的名字 + + + 如果 = false,返回 ;反之,返回 + + + + + 获取角色的详细信息 + + + + + + 获取角色的简略信息 + + + + + + 获取战斗状态的信息 + + + + + + + 获取战斗状态的信息(简略版) + + + + + + + 获取角色的技能信息 + + + + + + 获取角色的物品信息 + + + + + + 获取角色装备栏信息 + + + + + + 获取角色背包信息 + + + + + + 获取魔法抗性信息 + + + + + + 更新角色的状态,参见 用法 + + + + + + 复制一个角色 + [ 推荐从模组中复制后使用对象 ] + + + + + + 复活此角色,回复出厂状态 + 注意:此方法仅用于角色的复活,如果需要完全重构相同角色,请使用 + + 需要一个原始的角色用于还原状态 + + + + + 基于初始属性创建角色构建器 + + + + + + + + + + + + + + + + + + + + + + + 基于模板角色创建角色构建器 + + + + + + 基于初始条件构建新的角色 + 需要传入技能、物品,可选构建装备 + + + + + + + + + 构建的新角色 + + + + 使用 角色构建 + 新角色将获得参考角色的等级、技能、装备和身上的物品 + + + + + 高危数据警告:传入此项会修改库存中物品的角色引用 + 对于动态扩展的物品而言,传入已定义的物品表,不使用被复制物品的数据 + 对于动态扩展的技能而言,传入已定义的技能表,不使用被复制技能的数据 + + + 构建的新角色 + + + + 角色的一些个人信息 + + + + + + + + 角色的一些个人信息 + + + + + + + + 角色的姓 + + + + + 角色的名字 + + + + + 角色的昵称 + + + + + 角色的出生地 + + + + + 角色的出生日期 + + + + + 角色的身份 + + + + + 角色的隶属 + + + + + 角色的性别 + + + + + 角色的身高 + + + + + 角色的体重 + + + + + 角色的故事 + + + + + 复制一个角色资料 + + + + + + 角色的装备槽位 + + + + + 角色的装备槽位 + + + + + 魔法卡包 + + + + + 武器 + + + + + 防具 + + + + + 鞋子 + + + + + 饰品1 + + + + + 饰品2 + + + + + 上一次装备的饰品槽 + + + + + 是否有任意装备 + + + + + + 角色的魔法抗性,对不同的魔法类型有不同抗性 + + + + + 无属性魔法抗性 + + + + + 星痕魔法抗性 + + + + + 纯粹结晶魔法抗性 + + + + + 纯现代结晶魔法抗性 + + + + + 光魔法抗性 + + + + + 影魔法抗性 + + + + + 元素魔法抗性 + + + + + 紫宛魔法抗性 + + + + + 时空魔法抗性 + + + + + 平均魔法抗性 + + + + + 获取或设置抗性值 + + + + + + + 增加所有抗性,传入负数来减少 + + + + + + 复制一个魔法抗性对象 + + + + + + 角色的护盾,对不同的魔法类型有不同值 + + + + + 绑定到特效的护盾对象。键为特效,值为对应的护盾对象。 + + + + + 物理护盾 + + + + + 无属性魔法护盾 + + + + + 星痕魔法护盾 + + + + + 纯粹结晶护盾 + + + + + 纯现代结晶护盾 + + + + + 光护盾 + + + + + 影护盾 + + + + + 元素护盾 + + + + + 紫宛护盾 + + + + + 时空护盾 + + + + + 混合护盾 + + + + + 总计混合护盾 + + + + + 总计物理护盾 + + + + + 总计魔法护盾 + + + + + 获取或设置护盾值 + + + + + + + + 添加一个绑定到特效的护盾,注意:如果特效已经存在护盾,则会覆盖原有护盾。 + + + + + + 移除某个特效的护盾 + + + + + + 计算并更新特效的护盾值,如果护盾值小于等于 0,则移除该特效的护盾。 + + + + + + + + 复制一个护盾对象。注意:不会复制绑定到特效的护盾对象。 + + + + + + 绑定到特效的护盾对象。这个类没有 JSON 转换器支持。 + + + + + + + + + 绑定到特效的护盾对象。这个类没有 JSON 转换器支持。 + + + + + + + + + 是一个用于描述生物的单元对象(单位),而 是一种高级单位(单位单位/英雄单位) + 和单位一样,使用 标记的需要初始赋值的属性 + + + + + 单位名称 + + + + + 获取单位名称以及所属玩家 + + + + + + 获取单位名称以及所属玩家,包含等级 + + + + + + 获取单位的详细信息 + + + + + + 获取单位的简略信息 + + + + + + 获取战斗状态的信息 + + + + + + + 获取战斗状态的信息(简略版) + + + + + + + 获取单位的技能信息 + + + + + + 获取单位的物品信息 + + + + + + 和 一样,需要继承构造 + + + + + 唯一标识符 + + + + + 物品的描述 + + + + + 物品的通用描述 + + + + + 物品的背景故事 + + + + + 物品类型 + + + + + 是否是装备 + + + + + 锁定后无法被出售和交易且不能被手动移出库存 + + + + + 是否允许装备 + [ 注意:这个不是用来判断是不是装备类型的,判断装备类型时,请判断他们的 ] + + + + + 是否允许取消装备 + [ 注意:这个不是用来判断是不是装备类型的,判断装备类型时,使用 ] + + + + + 当前装备的槽位 + + + + + 武器类型(如果是武器) + + + + + 品质类型 + + + + + 稀有度类型 + + + + + 物品评级 + + + + + 快捷键 + + + + + 是否是主动物品 + + + + + 是否可用(涉及冷却和禁用等) + + + + + 是否是局内使用的物品(局内是指对角色生效的物品) + + + + + 是否允许购买 + + + + + 物品的价格 + + + + + 是否允许出售 + + + + + 下次可出售的时间 + + + + + 是否允许交易 + + + + + 下次可交易的时间 + + + + + 剩余使用次数 + 对于永久性主动物品而言,如果是 物品,可以不设置此值;反之,强烈建议设置为 1. + + + + + 使用后减少使用次数 + + + + + 用完后删除物品 + + + + + 物品所属的角色(只有装备物品,才需要设置) + + + + + 所属的玩家 + + + + + 物品拥有的技能 + + + + + 其他内容 + + + + + 当装备物品时 + + + + + 当取消装备物品时 + + + + + 设置游戏内的行动顺序表实例 + + + + + + 局内使用物品触发 + + + + + + 局外(库存)使用物品触发 + + + + + + 使用后减少使用次数或删除物品 + + + + + 当物品被角色使用时 + + + + + + + + + 当物品被玩家使用时 + + + + + + + + + 当物品被装备时 + + + + + + + + 当物品被取消装备时 + + + + + + + + 物品完成复制后触发 + + + + + 显示物品的详细信息 + + + + + + 显示物品的详细信息 + + 是否显示通用描述,而不是描述 + 是否在商店中显示 + + + + + 判断两个物品是否相同 检查Id.Name + + + + + + + 设置一些属性给从工厂构造出来的 对象 + + + + + + 复制一个物品 + + + + + + 设置所有技能的等级 + + + + + + 设置所有魔法的等级 + + + + + + 所属的角色 + + + + + 用于动态扩展物品 + + + + + 物品只有一个主动技能,但是可以有很多个被动技能 + 魔法卡包具有很多个魔法技能 + + + + + 唯一的主动技能 + + + + + 被动技能组 + + + + + 魔法技能组 + + + + + 特殊效果类,需要继承 + + + + + 所属的技能 + + + + + 特殊效果类型 + 注意:如果技能特效没有原生施加控制效果,请始终保持此属性为 。 + + + + + 持续性的 + 配合 使用,而不是 。 + + + + + 持续时间 + 配合 使用。 + + + + + 持续时间(回合) + 使用此属性需要将 设置为 false。 + + + + + 剩余持续时间 + + + + + 剩余持续时间(回合) + + + + + 是否是没有具体持续时间的持续性特效 + + + + + 附属于某个特效 + + + + + 是否是某个特效的附属 + + + + + 是否强制在状态栏中隐藏 + + + + + 是否显示在状态栏 + + + + + 特效是否生效 + + + + + 魔法类型 + + + + + 驱散性 [ 能驱散什么特效,默认无驱散 ] + + + + + 被驱散性 [ 能被什么驱散类型驱散,默认弱驱散 ] + + + + + 是否是负面效果 + + + + + 驱散性和被驱散性的具体说明 + + + + + 是否具备弱驱散功能(强驱散包含在内) + + + + + 是否具备强驱散功能 + + + + + 是否是临时驱散 [ 需注意持续性驱散是在持续时间内将特效无效化而不是移除,适用临时驱散机制 ] + + + + + 是否处于临时被驱散状态 [ 如果使用后不手动恢复为 false,那么行动顺序表会在时间流逝时恢复它 ] + 注意看标准实现,需要配合 使用 + + + + + 无视免疫类型 + + + + + 效果描述 + + + + + 等级,跟随技能的等级 + + + + + 此特效的施加者,用于溯源 + + + + + 游戏中的行动顺序表实例,在技能效果被触发时,此实例会获得赋值,使用时需要判断其是否存在 + + + + + 用于动态扩展特效的参数 + + + + + 输出文本或日志 + + + + + Values 构造动态特效参考这个构造函数 + + + + + + + 获得此特效时 + + + + + + 失去此特效时 + + + + + + 在伤害计算前修改伤害类型 + + + + + + + + + + 在伤害计算前修改预期伤害 + + + + + + + + + 返回伤害增减值 + + + + 在伤害计算完成后修改实际伤害 [ 允许取消伤害 ] + + + + + + + + + + + 返回伤害增减值 + + + + 在应用真实伤害前修改伤害 [ 允许取消伤害 ] + + + + + + + 返回 true 取消伤害 + + + + 伤害应用时触发 + + + + + + + + + + + + + + + 在完成普通攻击动作之后修改硬直时间 + + + + + + + + 在完成释放技能动作之后修改硬直时间 + + + + + + + + + 在造成伤害时,修改获得的能量 + + + + + + + 在受到伤害时,修改获得的能量 + + + + + + + 技能开始吟唱时 [ 爆发技插队可触发此项 ] + + + + + + + 技能吟唱被打断时 + + + + + + + + 吟唱结束后释放技能(魔法)/ 直接释放技能(战技/爆发技) + + + + + + + + 对目标触发技能效果(局外) + + + + + + + + 时间流逝时 + + + + + + + 时间流逝时 [ 地图用 ] + + + + + + + 在完成伤害结算后 + + + + + + + + + + + + + 在治疗结算前修改治疗值 + + + + + + + 返回治疗增减值 + + + + 在特效持有者的回合开始前 + + + + + + + + + + 在特效持有者的回合结束后 + + + + + + 技能被升级时 + + + + + + + 特效持有者升级时 + + + + + + + 在完成死亡结算后 [ 全体广播 ] + + + + + + + + + 闪避检定前触发 + + + + + 返回 false 表示不进行闪避检定 + + + + 在触发闪避时 + + + + + 返回 true 表示无视闪避 + + + + 暴击检定前触发 + + + + + 返回 false 表示不进行暴击检定 + + + + 在触发暴击时 + + + + + + + + 角色属性发生变化 + + + + + + 行动开始前,修改可选择的 , , 列表 + 注意 是副本,修改无效 + + + + + + + + + + + 开始选择移动目标前 + + + + + + + + + + 开始选择目标前,修改可选择的 , 列表 + 有两种,使用时注意判断是 还是 + + + + + + + + + 行动开始前,指定角色的行动,而不是使用顺序表自带的逻辑;或者修改对应的操作触发概率 + + + + + + + + + + + + + + 可重写对某个特效的驱散实现,适用于特殊驱散类型 + + + + + + + + + 当特效被驱散时的 + + + + + + 返回 false 可以阻止驱散 + + + + 当角色触发生命偷取后 + + + + + + + + + 在角色护盾结算前触发 + + + + + + + + + 返回 false 可以跳过护盾结算 + + + + 在角色护盾有效防御时 [ 破碎本身不会触发此钩子,但破碎后化解可触发 ] + + + + + + + + + + + 当角色护盾破碎时 [ 非绑定特效,只有同种类型的总护盾值小于等于 0 时触发 ] + + + + + + 返回 false 可以阻止后续扣除角色生命值 + + + + 当角色护盾破碎时 [ 绑定特效的护盾值小于等于 0 时便会触发 ] + + + + + + 返回 false 可以阻止后续扣除角色生命值 + + + + 在免疫检定时 + + + + + + false:免疫检定不通过 + + + + 在伤害免疫检定时 + + + + + + + + false:免疫检定不通过 + + + + 对敌人造成技能伤害 [ 强烈建议使用此方法造成伤害而不是自行调用 ] + + + + + + + + + + + 治疗一个目标 [ 强烈建议使用此方法而不是自行调用 ] + + + + + + + + + 打断施法 [ 尽可能的调用此方法而不是直接调用 ,以防止中断性变更 ] + + + + + + + 打断施法 [ 用于使敌人目标丢失 ] [ 尽可能的调用此方法而不是直接调用 ,以防止中断性变更 ] + + + + + + 将特效状态设置到角色上 [ 尽可能的调用此方法而不是自己实现 ] + + + + + + + 将特效控制效果设置到角色上 [ 尽可能的调用此方法而不是自己实现 ] + 施加 EffectType 的同时也会施加 CharacterState,参见 + + + + + + + 将免疫状态设置到角色上 [ 尽可能的调用此方法而不是自己实现 ] + + + + + + + 将特效状态从角色身上移除 [ 尽可能的调用此方法而不是自己实现 ] + + + + + + 将特效控制效果从角色身上移除 [ 尽可能的调用此方法而不是自己实现 ] + + + + + + 将免疫状态从角色身上移除 [ 尽可能的调用此方法而不是自己实现 ] + + + + + + 从角色身上消除特效类型 [ 如果重写了 ,则尽可能的调用此方法而不是自己实现 ] + + + + + + + 从角色身上消除状态类型 [ 如果重写了 ,则尽可能的调用此方法而不是自己实现 ] + + + + + + 驱散目标 [ 尽可能的调用此方法而不是自己实现 ] + 此方法会触发 + + + + + + + + 修改角色的硬直时间 [ 尽可能的调用此方法而不是自己实现 ] + + 角色 + 加值 + 是否是百分比 + 是否使用插队保护机制 + + + + 设置角色为 AI 控制 [ 系统控制 ] + + + + + + + + 检查角色是否在 AI 控制状态 + + + + + + + 添加角色应用的特效类型到回合记录中 + + + + + + + 返回特效详情 + + + + + + 复制一个特效 + + + + + + 比较两个特效 + + + + + + + 获取驱散描述 + + + + + + + 驱散描述 + + + + + 普通攻击名称 + + + + + 普通攻击说明 + + + + + 普通攻击的通用说明 + + + + + 所属的角色 + + + + + 基础普通攻击伤害倍率 [ 武器类型相关 ] + + + + + 普通攻击的伤害 + + + + + 额外普通攻击伤害 [ 技能和物品相关 ] + + + + + 额外普通攻击伤害% [ 技能和物品相关 ] + + + + + 普通攻击等级 + + + + + 是否是魔法伤害 + + + + + 魔法伤害需要指定魔法类型 + + + + + 是否可用 + + + + + 是否在持续生效,为 true 时不允许再次使用。普通攻击始终为 false + + + + + 无视免疫类型 + + + + + 硬直时间 [ 武器类型相关 ] + + + + + 额外硬直时间 [ 技能和物品相关 ] + + + + + 额外硬直时间% [ 技能和物品相关 ] + + + + + 实际硬直时间 + + + + + 可选取自身 + + + + + 可选取敌对角色 + + + + + 可选取友方角色 + + + + + 选取所有敌对角色,优先级大于 + + + + + 选取所有友方角色,优先级大于 ,默认包含自身 + + + + + 可选取的作用目标数量 + + + + + 可选取的作用范围 [ 单位:格 ] + + + + + 普通攻击没有魔法消耗 + + + + + 普通攻击没有吟唱时间 + + + + + 普通攻击没有能量消耗 + + + + + 普通攻击没有冷却时间 + + + + + 普通攻击没有冷却时间 + + + + + 游戏中的行动顺序表实例,使用时需要判断其是否存在 + + + + + 绑定到特效的普通攻击扩展。键为特效,值为对应的普攻扩展对象。 + + + + + 获取可选择的目标列表 + + + + + + + + + 实际可选取的目标数量 + + + + + 选取普攻目标 + + + + + + + + + 对目标(或多个目标)发起普通攻击 + + + + + + + + 修改基础伤害类型。不一定转换成功,要看是否有特效覆盖 + + + + + + + + 修改伤害类型。不一定转换成功,要看是否有其他特效覆盖 + + + + + + + 移除特效对伤害类型的更改 + + + + + + + 计算是否是魔法伤害和当前的魔法类型 + + + + + 比较两个普攻对象 + + + + + + + 输出信息 + + + + + + + 输出信息 + + + + + + 等级 + + + + + 是否是魔法伤害 [ 生效型 ] + + + + + 魔法类型 [ 生效型 ] + + + + + 是否是魔法伤害 [ 修改型 ] + + + + + 魔法类型 [ 修改型 ] + + + + + 绑定到特效的普通攻击扩展。这个类没有 JSON 转换器支持。 + + + + + 绑定到特效的普通攻击扩展。这个类没有 JSON 转换器支持。 + + + + + 用于动态扩展技能, 返回所有特效的描述 + + + + + 与 不同,构造技能时,建议继承此类再构造 + + + + + 唯一标识符 [ 只有物品技能需要赋值,用于表示与其关联的物品: ] + 其他情况请保持此属性为 + + + + + 此技能所属的角色 + + + + + 技能描述 + + + + + 技能的通用描述 + + + + + 驱散性和被驱散性的描述 + + + + + 释放技能时的口号 + + + + + 技能等级,等于 0 时可以称之为尚未学习 + + + + + 技能类型 [ 此项为最高优先级 ] + + + + + 是否是主动技能 [ 此项为高优先级 ] + + + + + 是否可用 [ 此项为高优先级 ] + + + + + 效果持续生效中 [ 此项为高优先级 ] [ 此项设置为true后不允许再次释放,防止重复释放 ] + + + + + 是否是爆发技 [ 此项为高优先级 ] + + + + + 是否属于魔法 [ 必须为 true ],反之为战技 + + + + + 是否无视施法距离(全图施法),魔法默认为 true,战技默认为 false + + + + + 施法距离 [ 单位:格 ] + + + + + 可选取自身 + + + + + 可选取敌对角色 + + + + + 可选取友方角色 + + + + + 选取所有敌对角色,优先级大于 + + + + + 选取所有友方角色,优先级大于 ,默认包含自身 + + + + + 可选取的作用目标数量 + + + + + 可选取的作用范围 [ 单位:格 ] + + + + + 如果为 true,表示非指向性技能,可以任意选取一个范围( = 0 时为单个格子)。 + 如果为 false,表示必须选取一个角色作为目标,当 > 0 时,技能作用范围将根据目标位置覆盖 形状的区域;= 0 时正常选取目标。 + + + + + 作用范围形状 + - 菱形。默认的曼哈顿距离正方形 + - 圆形。基于欧几里得距离的圆形 + - 正方形 + - 施法者与目标之前的直线 + - 施法者与目标所在的直线,贯穿至地图边缘 + - 扇形 + 注意,该属性不影响选取目标的范围。选取目标的范围由 决定。 + + + + + 选取角色的条件 + + + + + 实际魔法消耗 [ 魔法 ] + + + + + 魔法消耗 [ 魔法 ] + + + + + 吟唱时间 [ 魔法 ] + + + + + 实际吟唱时间 [ 魔法 ] + + + + + 实际能量消耗 [ 战技 ] + + + + + 能量消耗 [ 战技 ] + + + + + 消耗所有能量 [ 战技 ] + + + + + 消耗所有能量的最小能量限制 [ 战技 ] 默认值:100 + + + + + 上一次释放此技能消耗的魔法 [ 魔法 ] + + + + + 上一次释放此技能消耗的能量 [ 战技 ] + + + + + 实际冷却时间 + + + + + 冷却时间 + + + + + 剩余冷却时间 [ 建议配合 属性使用 ] + + + + + 硬直时间 + + + + + 额外硬直时间 [ 技能和物品相关 ] + + + + + 额外硬直时间% [ 技能和物品相关 ] + + + + + 实际硬直时间 + + + + + 效果列表 + + + + + 用于动态扩展技能的参数 + + + + + 游戏中的行动顺序表实例,在技能效果被触发时,此实例会获得赋值,使用时需要判断其是否存在 + + + + + 技能是否属于某个物品 + + + + + 继承此类实现时,调用基类的构造函数 + + + + + + + 用于构造 JSON + + + + + 设置一些属性给从工厂构造出来的 对象 + + + + + + 触发技能升级 + + + + + 当获得技能时 + + + + + + 在技能持有者的回合开始前 + + + + + + + + + + 获取可选择的目标列表 + + + + + + + + + 实际可选取的目标数量 + + + + + 选取技能目标 + + + + + + + + + 技能开始吟唱时 [ 吟唱魔法、释放战技和爆发技、预释放爆发技均可触发 ] + + + + + + + + 技能效果触发前 + + + + + 触发技能效果 [ 局内版 ] + + + + + + + + 对目标触发技能效果 + + + + + + + 检查角色是否在 AI 控制状态 + + + + + + + 被动技能,需要重写此方法,返回被动特效给角色 [ 此方法会在技能学习时触发 ] + + + + + + 返回技能的详细说明 + + + + + + + + + 返回技能的详细说明 + + + + + + 返回技能的详细说明,有选项 + + + + + + + + + 判断两个技能是否相同 检查Id.Name + + + + + + + 复制一个技能 + + + + + + 等级 + + + + + 施法距离 + + + + + 技能和它的目标结构体 + + + + + + + 技能和它的目标结构体 + + + + + + + 技能实例 + + + + + 技能的目标列表 + + + + + 记录 的生涯、赛季统计数据 + Key为赛季(long),每个key代表第key赛季,key = 0时为生涯数据。 + + + + + 库存 ID 与用户 ID 绑定 + + + + + 库存的名称,默认为 “的库存”;可更改 + + + + + 库存属于哪个玩家 + + + + + 玩家持有 的数量 + + + + + 玩家持有 的数量 + + + + + 玩家拥有的角色 + + + + + 玩家拥有的物品 + + + + + 主战角色 + + + + + 小队 + + + + + 练级中的角色 + + + + + 头像链接 + + + + + 签名 + + + + + 性别 + + + + + 生日 + + + + + 关注者 + + + + + 正在关注 + + + + + 头衔 + + + + + 用户组 + + + + + 回合制游戏的基础队列 + + + + + 使用的游戏平衡常数 + + + + + 用于文本输出 + + + + + 原始的角色字典 + + + + + 参与本次游戏的所有角色列表 + + + + + 当前的行动顺序 + + + + + 上回合记录 + + + + + 所有回合的记录 + + + + + 当前已死亡的角色顺序(第一个是最早死的) + + + + + 角色数据 + + + + + 游戏运行的时间 + + + + + 游戏运行的回合 + 对于某角色而言,在其行动的回合叫 Turn,而所有角色行动的回合,都称之为 Round。 + + + + + 使用的地图 + + + + + 显示队列信息 + + + + + 处理回合动作 + + + + + + + 造成伤害 + + + + + + + + + + + + 治疗一个目标 + + + + + + + + + 计算物理伤害 + + + + + + + + + + + + 计算魔法伤害 + + + + + + + + + + + + + 死亡结算 + + + + + + + 打断施法 + + + + + + + 打断施法 [ 用于使敌人目标丢失 ] + + + + + + 使用物品 + + + + + + + + + + + + 角色移动 + + + + + + + + + 选取移动目标 + + + + + + + + + + + 选取技能目标 + + + + + + + + + + + 选取普通攻击目标 + + + + + + + + + + + 判断目标对于某个角色是否是队友 + + + + + + + + 获取目标对于某个角色是否是队友的字典 + + + + + + + + 设置角色为 AI 控制 + + + + + + 检查角色是否在 AI 控制状态 + + + + + + 修改角色的硬直时间 + + 角色 + 加值 + 是否是百分比 + 是否使用插队保护机制 + + + + 计算角色的数据 + + + + + + + + + + 服务器实例是否在运行 + + + + + 客户端的套接字实例 + + + + + 客户端的数据库连接实例 + + + + + 客户端的邮件服务实例 + + + + + 客户端的用户实例,在用户登录后有效 + + + + + 客户端的名称,默认是客户端的IP地址 + + + + + 客户端是否启动了开发者模式 + + + + + 客户端所在的房间 + + + + + 客户端的游戏模组服务器 + + + + + 向客户端发送消息 + + + + + + + + 向客户端发送系统消息 + + + + + + + + + + 踢下线 + + + + + + + 强制退出登录 + + + + + + + 获取客户端的名称,通常未登录时显示为客户端的IP地址,登录后显示为账号名 + + + + + + 监听器的名称 + + + + + 已连接的客户端列表 + + + + + 已登录的用户列表 + + + + + 黑名单IP地址列表 + + + + + 关闭监听 + + + + + 实体的数字标识符 + + + + + 实体的唯一标识符 + + + + + 实体的名称 + + + + + 获取实体的 Id.Name + + + + + + ISkill 是技能的通用接口,包含一些基本属性,实现类: + + + + + 所属的行动顺序表实例 + + + + + 此技能所属的角色 + + + + + 技能描述 + + + + + 技能的通用描述 + + + + + 技能等级,等于 0 时可以称之为尚未学习 + + + + + 是否可用 [ 此项为高优先级 ] + + + + + 效果持续生效中 [ 此项为高优先级 ] [ 此项设置为true后不允许再次释放,防止重复释放 ] + + + + + 可选取自身 + + + + + 可选取敌对角色 + + + + + 可选取友方角色 + + + + + 选取所有敌对角色,优先级大于 + + + + + 选取所有友方角色,优先级大于 ,默认包含自身 + + + + + 可选取的作用目标数量 + + + + + 可选取的作用范围 [ 单位:格 ] + + + + + 实际魔法消耗 [ 魔法 ] + + + + + 实际吟唱时间 [ 魔法 ] + + + + + 实际能量消耗 [ 战技 ] + + + + + 实际冷却时间 + + + + + 剩余冷却时间 + + + + + 实际硬直时间 + + + + + 获取可选择的目标列表 + + + + + + + + + 实际可选取的目标数量 + + + + + + + + 窗体继承这些接口便能实现事件,或为插件预留。 + + + + + 局内事件的接口,与 配套使用 + + + + + 这是最基本的接口,要求客户端实现 + + + + + 服务器需要实现此接口 + + + + + 一个服务器标识秘钥 + + + + + 模组名称 + + + + + 模组描述 + + + + + 模组版本 + + + + + 模组作者 + + + + + 此模组中包含的角色 + + + + + 加载标记 + + + + + 加载模组 + + + + + 注册工厂 + + + + + 模组加载后需要做的事 + + + + + 允许返回false来阻止加载此模组 + + + + + + 建议使用一个类来存储常量,方便重用 + + + + + 模组:必须继承基类: + 继承事件接口并实现其方法来使模组生效。例如继承: + + + + + 模组服务器:必须继承基类: + 使用switch块分类处理 。 + + + + + 注意:服务器模组的名称必须和模组名称相同。除非你指定了 + + + + + 创建一个工作类,接收服务器启动参数的同时,还能定义一些需要的属性 + + + + + + 创建一个工作类,接收服务器启动参数的同时,还能定义一些需要的属性 + + + + + + 匿名服务器示例 + + + + + + + + 接收并处理匿名服务器消息 + + + + + + + + 地图:必须继承基类: + + + + + 角色:必须继承基类: + + + + + 技能:必须继承基类: + + + + + 物品:必须继承基类: + + + + + 必须继承基类: + 继承事件接口并实现其方法来使插件生效。例如继承: + + + + + 地图名称 + + + + + 地图描述 + + + + + 地图版本 + + + + + 地图作者 + + + + + 长度 + + + + + 宽度 + + + + + 高度 + + + + + 格子大小 + + + + + 格子集 + + + + + 格子集(基于坐标) + + + + + 角色集 + + + + + 使用坐标获取格子,0号格子的坐标是(0, 0),如果你还有高度的话,则是(0, 0, 0) + + + + + + + + + 使用编号获取格子,从0号开始 + + + + + + + 加载标记 + + + + + 加载地图 + + + + + + + 地图完全加载后需要做的事 + + + + + 允许返回false来阻止加载此地图 + + + + + + 初始化游戏队列,要求返回一个新的地图实例,而不是 this + + + + + + 获取角色当前所在的格子 + + + + + + + 强制设置角色当前所在的格子 + + + + + + + + 将角色从地图中移除 + + + + + + + 获取以某个格子为中心,一定范围内的格子(曼哈顿距离),只考虑同一平面的格子。 + + + + + + + + + 获取以某个格子为中心,最远距离的格子(曼哈顿距离),只考虑同一平面的格子。 + + + + + + + + + 获取以某个格子为中心,一定半径内的格子(圆形范围,欧几里得距离),只考虑同一平面的格子。 + + + + + + + + + 获取以某个格子为中心,最远距离的格子(圆形范围,欧几里得距离),只考虑同一平面的格子。 + + + + + + + + + 设置角色移动 + + + + + 移动的步数,只算平面移动步数 + + + + 设置角色移动。如果不能达到目标格子,则移动到离目标格子最近的一个可达格子上。 + + + + + 移动的步数,只算平面移动步数 + + + + 计算两个格子之间的曼哈顿距离 + + + + 两个格子之间的曼哈顿距离 + + + + 在事件流逝前处理 + + + + + + 在事件流逝后处理 + + + + + + 时间流逝时,处理格子上的特效 + + + + + + 模组名称 + + + + + 模组描述 + + + + + 模组版本 + + + + + 模组作者 + + + + + 默认地图 + + + + + 模组的依赖集合 + + + + + 适用的房间模式 + + + + + 模组的容纳人数 + + + + + 是否隐藏主界面 + + + + + 是否连接其他的服务器模组 + + + + + 如果将 设置为true,那么此属性必须指定一个存在的服务器模组的 名称。 + + + + + 包含了一些常用方法的控制器 + + + + + base控制器,没有DataRequest + + + + + 控制器内部变量 + + + + + 必须重写此方法,游戏的主要逻辑写在这里面 + 此方法会在 时调用 + + + + + + + + 如模组有界面,请重写此方法 + + + + + + + 加载标记 + + + + + 加载模组 + + + + + 模组完全加载后需要做的事 + + + + + 允许返回false来阻止加载此模组 + + + + + + 传递委托以便让模组调用 + + + + + Session对象 + + + + + Config对象 + + + + + 关联的服务器模组名称 + + + + + 绑定事件。在后触发 + + + + + 模组的依赖集合 + (地图名称()的数组) + (角色模组名称()的数组) + (技能模组名称()的数组) + (物品模组名称()的数组) + + + + + 模组的依赖集合 + (地图名称()的数组) + (角色模组名称()的数组) + (技能模组名称()的数组) + (物品模组名称()的数组) + + + + + 模组所使用的地图组 + + + + + 模组所使用的角色组 + + + + + 模组所使用的技能组 + + + + + 模组所使用的物品组 + + + + + 实际使用的地图组对象 + 请使用 自动填充,不要自己添加 + + + + + 实际使用的角色组对象 + 请使用 自动填充,不要自己添加 + + + + + 实际使用的技能组对象 + 请使用 自动填充,不要自己添加 + + + + + 实际使用的物品组对象 + 请使用 自动填充,不要自己添加 + + + + + 获得所有的依赖项 + 此方法会自动填充 + + + + + 服务器模组的名称 + 如果服务器模组配合一个相关联的模组使用,那么它们的 名称必须相同。 + + + + + 模组描述 + + + + + 模组版本 + + + + + 模组作者 + + + + + 默认地图 + + + + + 模组的依赖集合 + + + + + 是否是匿名服务器 + + + + + 包含了一些常用方法的控制器 + + + + + base控制器 + + + + + 控制器内部变量 + + + + + 此模组所有正在运行的游戏对象 + + + + + 启动服务器监听 请在此处实现服务器逻辑。注意,此方法必须立即返回 + + + + + + + + 接收并处理GamingMessage + + 发送此消息的客户端 + 消息类型 + 消息参数 + 底层会将字典中的数据发送给客户端 + + + + 启动匿名服务器监听 + + + + + + + + 结束匿名服务器监听 + + + + + + + 接收并处理匿名服务器监听消息 + 此方法为可选实现,可以帮助 RESTful API 处理不需要验证的 WebSocket 请求 + + 发送此消息的客户端 + 消息参数 + 底层会将字典中的数据发送给客户端 + + + + 加载标记 + + + + + 加载模组 + + + + + 模组完全加载后需要做的事 + + + + + 允许返回false来阻止加载此模组 + + + + + + 给所有客户端发送游戏结束通知 + + + + + + 给客户端发送局内消息 + + + + + 发送失败的客户端 + + + + 给客户端发送消息 + + + + + 发送失败的客户端 + + + + 给客户端发送匿名服务器消息 + + + + 发送失败的客户端 + + + + 空格子 + + + + + 格子编号 + + + + + 格子在地图中的x坐标 + + + + + 格子在地图中的y坐标 + + + + + 格子在地图中的z坐标 + + + + + 是谁站在这格子上? + + + + + 此格子目前受到了什么影响? + + + + + 此格子呈现的颜色(默认为 ) + + + + + 默认的字符串表示形式 + + + + + + 模组名称 + + + + + 模组描述 + + + + + 模组版本 + + + + + 模组作者 + + + + + 此模组中包含的物品 + + + + + 加载标记 + + + + + 加载模组 + + + + + 注册工厂 + + + + + 模组加载后需要做的事 + + + + + 允许返回false来阻止加载此模组 + + + + + + 插件名称 + + + + + 插件描述 + + + + + 插件版本 + + + + + 插件作者 + + + + + 包含了一些常用方法的控制器 + + + + + base控制器,没有DataRequest + + + + + 控制器内部变量 + + + + + 加载标记 + + + + + 加载插件 + + + + + 插件完全加载后需要做的事 + + + + + 允许返回false来阻止加载此插件 + + + + + + 传递一些插件可以用参数 + + + + + Session对象 + + + + + Config对象 + + + + + 绑定事件。在后触发 + + + + + 插件名称 + + + + + 插件描述 + + + + + 插件版本 + + + + + 插件作者 + + + + + 包含了一些常用方法的控制器 + + + + + base控制器 + + + + + 控制器内部变量 + + + + + 加载标记 + + + + + 加载插件 + + + + + 接收服务器控制台的输入 + + + + + + 插件完全加载后需要做的事 + + + + + 允许返回false来阻止加载此插件 + + + + + + 绑定事件。在后触发 + + + + + 模组名称 + + + + + 模组描述 + + + + + 模组版本 + + + + + 模组作者 + + + + + 此模组中包含的技能 + + + + + 加载标记 + + + + + 加载模组 + + + + + 注册工厂 + + + + + 注册工厂(特效类) + + + + + 模组加载后需要做的事 + + + + + 允许返回false来阻止加载此模组 + + + + + + 插件名称 + + + + + 插件描述 + + + + + 插件版本 + + + + + 插件作者 + + + + + 包含了一些常用方法的控制器 + + + + + base控制器 + + + + + 控制器内部变量 + + + + + 加载标记 + + + + + 加载插件 + + + + + 接收服务器控制台的输入 + + + + + + 插件完全加载后需要做的事 + + + + + 允许返回false来阻止加载此插件 + + + + + + 当 Web API 服务启动完成后触发 + + + + + + 绑定事件。在后触发 + + + + + 继承这个类可以获得异步等待的功能 + 参考实现 + + + + + 接收到的实例 + + + + + 是否处于等待的状态 + + + + + 异步操作前,请设置为等待状态 + + + + + 等待任务完成(需要自己异步) + + + + + 异步等待任务完成 + + + + + 任务的等待器,可以设置在任务完成后需要的操作 + + + + + 任务是否完成 + + + + + 捕获到的异常 + + + + + 内部实现类 + 实现参见 + + + + + 构造一个等待器 + + + + + + 返回 TaskAwaiter 可以进一步等待并执行方法 + 注意事项:async () 委托的后续 OnCompleted 方法将不会进一步等待,而是直接执行,因为它是异步的 + + 这意味着你不能这样操作: + + TaskUtility.NewTask(() => + { + Console.WriteLine(0); + }).OnCompleted(async () => + { + await Task.Delay(3000); + Console.WriteLine(1); + }).OnCompleted(() => + { + Console.WriteLine(2); + }); + + 上述代码将导致:任务输出 0 之后,2 不会等待 1 的完成,因此会直接输出 2,再输出 1. + + + + + + + + 在捕获到异常时,将触发Error事件 + + + + + + + 发送 GET 请求 + + + + + + + 发送 POST 请求 + + + + + + + + + 发件人邮箱 + + + + + 发件人名称 + + + + + 邮件主题 + + + + + 邮件内容 + + + + + 邮件优先级 + + + + + 内容是否支持HTML + + + + + 收件人列表 + + + + + 抄送列表 + + + + + 密送列表 + + + + + 使用MailSender工具类创建邮件对象 + + + + + + 使用地址和名称创建邮件对象 + + + + + + + 使用地址和名称创建邮件对象,同时写主题、内容、单个收件人 + + + + + + + + + 使用地址和名称创建邮件对象,同时写主题、内容、单个收件人、单个抄送 + + + + + + + + + + 完整的创建邮件对象 + + + + + + + + + + + + + 发送邮件 + -- 适合创建一次性邮件并发送 -- + + + + + + + 添加收件人 + + + + + + 添加多个收件人 + + + + + + 添加抄送 + + + + + + 添加多个抄送 + + + + + + 添加密送 + + + + + + 添加多个密送 + + + + + + 唯一指定的通信数据结构 + + + + + 通信类型 + + + + + 通信令牌 + + + + + 参数列表 + + + + + 参数数量 + + + + + 从参数列表中获取指定索引的参数的Json对象 + -- 此索引器仅返回Json对象,获取实例请使用反序列化方法GetParam[T]() -- + -- 当然也可以自己反序列化 -- + -- 基本类型可能有效,但仍建议使用反序列化方法 -- + + + + 索引超过数组上限 + + + + 构建通信数据对象 + + + + + + + + 从参数列表中获取指定类型和索引的参数 + + 类型 + 索引 + 类型的参数 + 索引超过数组上限 + + + + 配合 使用,也别忘了修改 + + + + + 需要同步更新 + + + + + 将通信类型的枚举转换为字符串 + + 通信类型 + 等效字符串 + + + + 需要同步更新 + + + + RunTime + + + Main + + + Register + + + Login + + + Room + + + UserCenter + + + Inventory + + + + 获取Type的等效字符串 + + + + + + + 获取Type的等效字符串 + + + + + + + 获取Type的等效字符串 + + + + + + + 获取字符串对应的枚举 + + + + + + + 添加-debug启动项将开启DebugMode(仅适用于Desktop或Console) + 目前支持禁用心跳检测功能 + + + + + 核心库的版本号 + + + + + 此类保存常用的对象常量 + + + + + 支持动态扩展的工厂实例 + + + + + 空的实体类 用于object返回 + + + + + 默认的未知用户 + + + + + 游客用户 + + + + + 本地用户 + + + + + 大厅(空房间)实例 + + + + + 默认的字符编码 + + + + + 默认的时间格式 yyyy-MM-dd HH:mm:ss.fff + + + + + yyyy年MM月dd日 HH:mm:ss + + + + + HH:mm:ss + + + + + 默认的时间值(1970年8月1日8点0分0秒) + + + + + 游戏平衡常数 + + + + + 最多自动重试连接次数 + + + + + 1C2G推荐的任务数量 + + + + + 2C2G推荐的任务数量 + + + + + 4C4G推荐的任务数量 + + + + + 默认Socket数据包大小 + + + + + 默认Stream传输大小 + + + + + ��� ʹ�ã�Ҳ�������޸� + + + + + 角色目前所处的状态 + + + + + 可以行动 [ 战斗相关 ] [ 常态 ] + + + + + 完全行动不能 [ 战斗相关 ] [ 控制态 ] + + + + + 行动受限 [ 战斗相关 ] [ 控制态 ] + + + + + 战斗不能 [ 战斗相关 ] [ 控制态 ] + + + + + 技能受限 [ 战斗相关 ] [ 控制态 ] + + + + + 攻击受限 [ 战斗相关 ] [ 控制态 ] + + + + + 处于吟唱中 [ 战斗相关 ] [ 技能相关 ] [ 吟唱态 ] + + + + + 预释放爆发技(插队) [ 战斗相关 ] [ 技能相关 ] [ 吟唱态 ] + + + + + 配合 使用,也别忘了修改 + + + + + 配合 使用 + + + + + 需要同步更新 + + + + + 需要同步更新 + + + + + 需要同步更新 + + + + + 魔法,编号 1xxx + + + + + 战技,编号 2xxx + + + + + 爆发技,编号 3xxx + + + + + 被动,编号 4xxx(物品被动从5xxx开始) + + + + + 物品的主动技能,编号 6xxx + + + + + 注意:具有控制效果的特效,应该和技能本身的特效(一般此项为None)区分开来。此效果被赋值会改变一些判断的结果。 + 关联方法: + + + + + + + + + 无特殊效果 + + + + + 这是来自装备的特效 + + + + + 标记,目标受到某些技能的标记 + + + + + 眩晕,目标无法行动 + + + + + 冰冻,目标无法行动 + + + + + 沉默,目标无法使用技能 + + + + + 定身 + + + + + 恐惧 + + + + + 睡眠,目标暂时无法行动,受到伤害后会苏醒 + + + + + 击退 + + + + + 击倒,目标被击倒在地,暂时无法行动 + + + + + 嘲讽,目标被迫攻击施法者 + + + + + 减速,目标行动速度或加速系数降低 + + + + + 衰弱,目标的攻击和防御降低 + + + + + 中毒,目标在一段时间内持续受到伤害 + + + + + 燃烧,目标受到伤害,持续一段时间 + + + + + 流血,目标持续受到伤害 + + + + + 致盲,目标无法准确攻击,命中率降低 + + + + + 致残,减少目标的行动或攻击能力 + + + + + 护盾,减少受到的伤害或抵消部分伤害 + + + + + 持续治疗,逐步恢复生命值 + + + + + 加速,提升行动速度 + + + + + 无敌,暂时不会受到任何伤害 + + + + + 不可选中,无法成为普攻和技能的目标 + + + + + 伤害提升,增加攻击输出 + + + + + 物理护甲/魔法抗性提升,减少所受伤害 + + + + + 暴击提升,增加暴击率或暴击伤害 + + + + + 魔法恢复,增加魔法值回复速度 + + + + + 破甲,提高物理/魔法穿透 + + + + + 降低魔法抗性,目标更容易受到魔法伤害 + + + + + 诅咒,降低目标的属性或给予负面效果 + + + + + 疲劳,减少目标的攻击或技能效果 + + + + + 魔力燃烧,消耗目标的魔法值 + + + + + 魅惑,控制目标替施法者作战 + + + + + 缴械,目标无法进行普通攻击 + + + + + 混乱,目标的行动变得随机化 + + + + + 石化,目标无法行动 + + + + + 法术沉默,目标无法施放魔法技能 + + + + + 放逐,目标暂时无法被攻击,也无法行动 + + + + + 毁灭,目标在倒计时结束后受到大量伤害或死亡 + + + + + 物理免疫 + + + + + 魔法免疫 + + + + + 技能免疫 + + + + + 完全免疫:物理免疫 + 技能免疫 + + + + + 闪避提升 + + + + + 生命偷取 + + + + + 重伤,目标受到的治疗效果降低 + + + + + 持续性弱驱散 + + + + + 持续性强驱散 + + + + + 恢复 + + + + + 易伤 + + + + + 迟滞,硬直时间延长 + + + + + 魔法卡包 编号 10xxx + + + + + 武器 编号 11xxx + + + + + 防具 编号 12xxx + + + + + 鞋子 编号 13xxx + + + + + 饰品 编号 14xxx + + + + + 消耗品 编号 15xxx + + + + + 魔法卡 编号 16xxx + + + + + 收藏品 编号 17xxx + + + + + 特殊物品 编号 18xxx + + + + + 任务物品 编号 19xxx + + + + + 礼包 编号 20xxx + + + + + 其他 编号 21xxx + + + + + 指示物品在哪个栏位上 + + + + + 不是武器 + + + + + 单手剑 + + + + + 双手重剑 + + + + + 弓 + + + + + 手枪 + + + + + 步枪 + + + + + 双持短刀 + + + + + 法器 + + + + + 法杖 + + + + + 长柄 + + + + + 拳套 + + + + + 暗器 + + + + + 报价发起方修改报价, + 如果当前状态为 (已创建) 和 (协商中), + 则状态转为 (等待发起方确认) + + + + + 报价发起方确认报价,状态转为 (发起方已确认) + + + + + 报价发起方发送报价,状态转为 (已发送) + + + + + 报价接收方修改报价,状态转为 (等待接收方确认) + + + + + 报价接收方确认报价,状态转为 (接收方已确认) + + + + + 报价接收方发送报价,状态转为 (协商中) + + + + + 报价发起方同意接收方的协商,状态转为 (协商已接受) + + + + + 报价发起方手动取消了报价,状态转为 (已取消) + + + + + 报价接收方同意报价,状态转为 (已完成) + + + + + 报价接收方拒绝报价,状态转为 (已拒绝) + + + + + 无驱散 [ 默认,不能驱散其他特效 ] + + + + + 弱驱散 + + + + + 持续性弱驱散 + + + + + 临时弱驱散 + + + + + 强驱散 + + + + + 持续性强驱散 + + + + + 临时强驱散 + + + + + 特殊驱散 + + + + + 可弱驱散 [ 默认 ] + + + + + 需强驱散 + + + + + 需特殊驱散 + + + + + 不可驱散 [ 最高优先级 ] + + + + + 标准实现的免疫类型 + + + + Commands + + + + 行动顺序表管理器,对 的封装 + + + + + 按房间类型创建行动顺序表 + + + + + + + + + 游戏平衡常数 + + + + + 游戏货币名称 + + + + + 游戏材料名称(第二货币) + + + + + 游戏时间名称(如技能冷却、硬直) + + + + + 晋升点数上限 + + + + + 使用的魔法类型 + + + + + 初始生命值 + + + + + 初始魔法值 + + + + + 角色最高等级 + + + + + 经验值上限 + + + + + 使用等级突破机制 + + + + + 使用等级突破机制后,角色处于这些等级时需要突破才能继续升级 + + + + + 魔法最高等级 + + + + + 战技最高等级 + + + + + 爆发技最高等级 + + + + + 被动最高等级 + + + + + 普通攻击最高等级 + + + + + 最大能量值 + + + + + 初始攻击力 + + + + + 初始物理护甲 + + + + + 初始力量 + + + + + 初始敏捷 + + + + + 初始智力 + + + + + 力量成长 + + + + + 敏捷成长 + + + + + 智力成长 + + + + + 初始暴击率 + + + + + 初始暴击伤害 + + + + + 初始闪避率 + + + + + 每级增加基础生命值 + + + + + 生命值增长因子 + + + + + 每级增加基础魔法值 + + + + + 魔法值增长因子 + + + + + 每级增加基础攻击力 + + + + + 攻击力增长因子 + + + + + 物理伤害减免因子 + + + + + 行动速度上限 + + + + + 每 1 点力量增加生命值 + + + + + 每 1 点力量增加生命回复力 + + + + + 每 1 点力量增加物理护甲 + + + + + 每 1 点力量增加暴击伤害 + + + + + 每 1 点智力增加魔法值 + + + + + 每 1 点智力增加冷却缩减 + + + + + 每 1 点智力增加魔法回复力 + + + + + 每 1 点智力减少魔法消耗 + + + + + 每 1 点智力减少能量消耗 + + + + + 每 1 点智力增加加速系数 + + + + + 每 1 点敏捷增加行动速度 + + + + + 每 1 点敏捷增加暴击率 + + + + + 每 1 点敏捷增加闪避率 + + + + + 造成伤害获得能量值因子 + + + + + 造成伤害获得能量值上限 + + + + + 受到伤害获得能量值因子 + + + + + 受到伤害获得能量值上限 + + + + + 单手剑的基础伤害倍率 + + + + + 单手剑的基础伤害倍率成长 + + + + + 双手剑的基础伤害倍率 + + + + + 双手剑的基础伤害倍率成长 + + + + + 弓的基础伤害倍率 + + + + + 弓的基础伤害倍率成长 + + + + + 手枪的基础伤害倍率 + + + + + 手枪的基础伤害倍率成长 + + + + + 步枪的基础伤害倍率 + + + + + 步枪的基础伤害倍率成长 + + + + + 双持短刀的基础伤害倍率 + + + + + 双持短刀的基础伤害倍率成长 + + + + + 法器的基础伤害倍率 + + + + + 法器的基础伤害倍率成长 + + + + + 法杖的基础伤害倍率 + + + + + 法杖的基础伤害倍率成长 + + + + + 长柄武器的基础伤害倍率 + + + + + 长柄武器的基础伤害倍率成长 + + + + + 拳套的基础伤害倍率 + + + + + 拳套的基础伤害倍率成长 + + + + + 暗器的基础伤害倍率 + + + + + 暗器的基础伤害倍率成长 + + + + + 单手剑的硬直时间 + + + + + 双手剑的硬直时间 + + + + + 弓的硬直时间 + + + + + 手枪的硬直时间 + + + + + 步枪的硬直时间 + + + + + 双持短刀的硬直时间 + + + + + 法器的硬直时间 + + + + + 法杖的硬直时间 + + + + + 长柄武器的硬直时间 + + + + + 拳套的硬直时间 + + + + + 暗器的硬直时间 + + + + + 单手剑的攻击距离 + + + + + 双手剑的攻击距离 + + + + + 弓的攻击距离 + + + + + 手枪的攻击距离 + + + + + 步枪的攻击距离 + + + + + 双持短刀的攻击距离 + + + + + 法器的攻击距离 + + + + + 法杖的攻击距离 + + + + + 长柄武器的攻击距离 + + + + + 拳套的攻击距离 + + + + + 暗器的攻击距离 + + + + + 核心角色的移动距离 + + + + + 先锋角色的移动距离 + + + + + 近卫角色的移动距离 + + + + + 支援角色的移动距离 + + + + + 治疗角色的移动距离 + + + + + 应用此游戏平衡常数给实体 + + + + + + 是否自动连接服务器 + + + + + 是否自动登录 + + + + + 是否在匹配中 + + + + + 是否连接上服务器 + + + + + 是否正在重连 + + + + + 是否自动重连 + + + + + 是否在房间中 + + + + + 当前所处的房间类型 + + + + + 服务器名称 + + + + + 公告 + + + + + 自动登录的账号 + + + + + 自动登录的密码 + + + + + 自动登录的秘钥 + + + + + 游戏局内类 + 客户端需要使用创建此类单例 + + + + + 使用的模组实例 + + + + + 游戏的参数 + + + + + 此实例所属的玩家 + + + + + 传入游戏所需的参数,构造一个Gaming实例 + + + + + + + + + + + + 需在RunTimeController的SocketHandler_Gaming方法中调用此方法 + 客户端也可以参照此方法自行实现 + 此方法目的是为了触发 的局内事件实现 + + 消息类型 + 接收到的数据 + + + + 提供一个基础的回合制游戏队列基类实现,可继承扩展 + 该默认实现为混战模式 + + + + + 使用的游戏平衡常数 + + + + + 用于文本输出 + + + + + 参与本次游戏的所有角色列表 + + + + + 原始的角色字典 + + + + + 当前的行动顺序 + + + + + 硬直时间表 + + + + + 当前已死亡的角色顺序(第一个是最早死的) + + + + + 角色是否在 AI 控制下 + + + + + 角色数据 + + + + + 游戏运行的时间 + + + + + 游戏运行的回合 + 对于某角色而言,在其行动的回合叫 Turn,而所有角色行动的回合,都称之为 Round。 + + + + + 第一滴血获得者 + + + + + 最大复活次数 [ 不为 0 时开启死斗模式 ] + 0:不复活 / -1:无限复活 + + + + + 复活次数统计 + + + + + 复活倒计时 + + + + + 最大获胜积分 + 设置一个大于0的数以启用 + + + + + 上回合记录 + + + + + 所有回合的记录 + + + + + 回合奖励 + + + + + 是否使用插队保护机制 + + + + + 插队保护机制检查的最多被插队次数:-1 为默认,即队列长度,最少为 5;0 为不保护 + + + + + 自定义数据 + + + + + 金币奖励记录 + + + + + 使用的地图 + + + + + 参与本次游戏的所有角色列表 + + + + + 原始的角色字典 + + + + + 当前的行动顺序 + + + + + 当前已死亡的角色顺序(第一个是最早死的) + + + + + 角色是否在 AI 控制下 [ 系统控制 ] + + + + + 角色是否在 AI 控制下 [ 玩家手动设置 ] + + + + + 硬直时间表 + + + + + 角色正在吟唱的技能(通常是魔法) + + + + + 角色预释放的爆发技 + + + + + 角色即将使用的物品 + + + + + 角色目前赚取的金钱 + + + + + 角色最高连杀数 + + + + + 角色目前的连杀数 + + + + + 角色被插队次数 + + + + + 助攻伤害 + + + + + 角色数据 + + + + + 复活次数统计 + + + + + 复活倒计时 + + + + + 当前回合死亡角色 + + + + + 回合奖励 + + + + + 回合奖励的特效工厂 + + + + + 最多被插队次数,-1 为默认,即队列长度,最少为 5 + + + + + 游戏是否结束 + + + + + 是否在回合内 + + + + + 使用的地图 + + + + + 新建一个基础回合制游戏队列 + + 用于文本输出 + 游戏地图 + + + + 新建一个基础回合制游戏队列并初始化角色 + + 参与本次游戏的角色列表 + 用于文本输出 + 游戏地图 + + + + 加载地图 + + + + + + 初始化角色表 + + + + + + 初始化行动顺序表 + + + + + 将角色加入行动顺序表 + + + + + + + + 清空行动队列 + + + + + 从行动顺序表取出第一个角色 + + + + + + 时间进行流逝,减少硬直时间,减少技能冷却时间,角色也会因此回复状态 + + 流逝的时间 + + + + 显示当前所有角色的状态和硬直时间 + + + + + 角色 的回合进行中 + + + 是否结束游戏 + + + + 处理角色死亡 + + + + + + 获取某角色的团队成员 + + + + + + + 角色行动后触发 + + + + + + + 死亡结算时触发 + + + + + + + 死亡结算完成后触发 + + + + + + + 获取复活时间 + + + + + + + + 回合开始前触发 + + + + + + 回合结束后触发 + + + + + + 对敌人造成伤害 + + + + + + + + + + + + 死亡结算 + + + + + + + 死亡结算,击杀队友的情况 + + + + + + + + 治疗一个目标 + + + + + + + + + 需要处理复活和解除施法等 + + + + + + + + 使用物品实际逻辑 + + + + + + + + + + + + 角色移动实际逻辑 + + + + + + + + + 通过概率计算角色要干嘛 + + + + + + + + + 选取移动目标 + + + + + + + + + + + 选取技能目标 + + + + + + + + + + + 选取普通攻击目标 + + + + + + + + + + + 检查是否可以释放技能 + + + + + + + + + 检查是否可以释放技能(物品版) + + + + + + + + + + 计算物理伤害 + + + + + + + + + + + + 计算魔法伤害 + + + + + + + + + + + + + 获取EP + + 参数1 + 参数2 + 最大获取量 + + + + 判断目标对于某个角色是否是队友(不包括自己) + + + + + + + + 获取目标对于某个角色是否是友方的字典(包括自己) + + + + + + + + 对角色设置仅移动的硬直时间 + + + + + + + 初始化回合奖励 + + 最大回合数 + 每个奖励回合生成多少技能 + key: 特效的数字标识符;value: 是否是主动技能的特效 + 通过数字标识符来获取构造特效的参数 + + + + + 获取回合奖励 + + + + + + + + 移除回合奖励 + + + + + + + 是否在回合外释放爆发技插队(仅自动化,手动设置请调用:) + + + + + + 打断施法 + + + + + + + 打断施法 [ 用于使敌人目标丢失 ] + + + + + + 设置角色复活 + + + + + + 设置角色将预释放爆发技 + + + + + + + 设置角色对目标们的非伤害辅助时间 + + + + + + + 修改角色的硬直时间 + + 角色 + 加值 + 是否是百分比 + 是否使用插队保护机制 + + + + 设置角色为 AI 控制 + + + + + + + + 设置角色为 AI 控制 [ 玩家手动设置 ] + + + + + + + 检查角色是否在 AI 控制状态 + + + + + + + 检查角色是否在 AI 控制状态 [ 系统控制 ] + + + + + + + 检查角色是否在 AI 控制状态 [ 玩家手动设置 ] + + + + + + + 免疫检定 + + + + + + + + + + 计算角色的数据 + + + + + 装备物品 + + + + + + + 装备物品到指定栏位,并返回被替换的装备(如果有的话) + + + + + + + + + 取消装备,并返回被替换的装备(如果有的话) + + + + + + + + 回合开始事件 + + + + + 回合开始事件 + + + + + + + + + + + 回合结束事件 + + + + + 回合结束事件 + + + + + + + 决定角色的行动事件 + + + + + 决定角色的行动事件 + + + + + + + + + + + 角色需要选择一个技能 + + + + + 角色需要选择一个技能 + + + + + + + + 角色需要选择一个物品 + + + + + 角色需要选择一个物品 + + + + + + + + 选取移动目标事件 + + + + + 选取移动目标事件 + + + + + + + + + + + 选取技能目标事件 + + + + + 选取技能目标事件 + + + + + + + + + + + 选取普通攻击目标事件 + + + + + 选取普通攻击目标事件 + + + + + + + + + + + 打断施法事件 + + + + + 打断施法事件 + + + + + + + + + 死亡结算事件 + + + + + 死亡结算事件 + + + + + + + + 死亡结算(击杀队友)事件 + + + + + 死亡结算(击杀队友)事件 + + + + + + + + 角色死亡事件,此事件位于 之后 + + + + + 角色死亡事件,此事件位于 之后 + + + + + + + + 治疗事件 + + + + + 治疗事件 + + + + + + + + + + 造成伤害事件 + + + + + 造成伤害事件 + + + + + + + + + + + + + + 角色普通攻击事件 + + + + + 角色普通攻击事件 + + + + + + + + 角色吟唱技能事件(包括直接释放战技) + + + + + 角色吟唱技能事件(包括直接释放战技) + + + + + + + + 角色释放技能事件 + + + + + 角色释放技能事件 + + + + + + + + + 角色使用物品事件 + + + + + 角色使用物品事件 + + + + + + + + + 角色释放物品的技能事件 + + + + + 角色释放物品的技能事件 + + + + + + + + + + + 角色免疫事件 + + + + + 角色免疫事件 + + + + + + + + + + 角色主动结束回合事件(区别于放弃行动,这个是主动的) + + + + + 角色主动结束回合事件(区别于放弃行动,这个是主动的) + + + + + + + 角色放弃行动事件 + + + + + 角色放弃行动事件 + + + + + + + 角色移动事件 + + + + + 角色移动事件 + + + + + + + + 游戏结束事件 + + + + + 游戏结束事件 + + + + + + + 行动顺序表更新事件 + + + + + 行动顺序表更新事件 + + + + + + + + + + + 混战游戏队列,增强版混战模式 + + + + + 死亡结算后 + + + + + + + + 游戏结束信息 + + + + + 创建一个混战游戏队列 + + + + + + 创建一个混战游戏队列并初始化角色 + + + + + + + 任务名称 + + + + + 循环执行间隔 + + + + + 任务执行逻辑 + + + + + 记录上一次运行时间 + + + + + 记录下一次运行时间 + + + + + 最后一次运行时发生的错误 + + + + + 捕获异常后,触发的回调函数 + + + + + 任务名称 + + + + + 每天的目标时间 + + + + + 任务执行逻辑 + + + + + 记录上一次运行时间 + + + + + 当天是否已经运行 + + + + + 最后一次运行时发生的错误 + + + + + 捕获异常后,触发的回调函数 + + + + + 服务器地址 + + + + + 服务器端口号 + + + + + SocketToken + + + + + LoginKey + + + + + 已登录的用户 + + + + + 已登录用户名 + + + + + 所处的房间 + + + + + 团队游戏队列,团队模式 + + + + + 当前团灭的团队顺序(第一个是最早死的) + + + + + 团队及其成员 + + + + + 当前团灭的团队顺序(第一个是最早死的) + + + + + 团队及其成员 + + + + + 添加一个团队 + + + + + + + 获取角色的团队 + + + + + + 从已淘汰的团队中获取角色的团队 + + + + + + 获取某角色的团队成员 + + + + + + 角色行动后 + + + + + + + + 死亡结算时 + + + + + + + + 死亡结算后 + + + + + + + + 游戏结束信息 [ 团队版 ] + + + + + 创建一个团队游戏队列 + + + + + + 创建一个团队游戏队列并初始化角色 + + + + + + + 游戏结束事件(团队版) + + + + + 游戏结束事件(团队版) + + + + + + + 已加载的插件DLL名称对应的路径 + + + + + 已加载的模组DLL名称对应的路径 + + + + + 从plugins目录加载所有插件 + + + + + + + + + 从plugins目录加载所有Server插件 + + + + + + + + + 从plugins目录加载所有WebAPI插件 + + + + + + + + + 从modules目录加载所有模组 + + + + + + + + + + + + 从modules目录加载所有适用于服务器的模组 + + + + + + + + + + + + 从maps目录加载所有地图 + + + + + + + + 添加构造好的模组类实例到字典中 + + 加载的类型 + 循环程序集的类型 + 实例的字典 + 加载时触发的检查方法,返回false不添加 + + + + 实际的 监听实例 [ 单例 ] + + + + + 开始监听 + 当 = "*" 时,需要管理员权限 + + + + + + + + + + 客户端连接远程 WebSocket 服务器 + + + + + + + 客户端向服务器发送消息 + + + + + + + + 服务器向客户端发送消息 + + + + + + + + 服务器接受一个 HTTP 的 WebSocket 升级请求 + + [0]客户端IP地址;[1]客户端的WebSocket实例 + + + + 服务器接收客户端消息 + + + + + + + 客户端接收服务器消息 + + + + + + + 将收到的消息反序列为 + + + + + + + + + 默认的序列化选项 + + + + + 获取Json字符串 + + + + + + + + 获取Json字符串 + + + + + + + + + 反序列化Json对象 + + + + + + + + 反序列化Json对象,使用 + + + + + + + + + 反序列化Json对象 + + + + + + + + + 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别 + + + + + + + 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别 + + + + + + + + 反序列化SocketObject中索引为index的Json对象 + + + + + + + + + + 反序列化Hashtable中Key对应的Json对象 + + + + + + + + + 反序列化Dictionary中Key对应的Json对象 + + + + + + + + + 反序列化IEnumerable中的Json对象 + + + + + + + + + 反序列化IEnumerable中的Json对象 + + + + + + + + + + 反序列化Hashtable中Key对应的Json对象 + + + + + + + + + + 反序列化Dictionary中Key对应的Json对象 + + + + + + + + + + 反序列化多个Json对象 + 注意必须是相同的Json对象才可以使用此方法解析 + + + + + + + + 反序列化多个Json对象 + 注意必须是相同的Json对象才可以使用此方法解析 + + + + + + + + + 检查字符串是否为完整的JSON对象 + + + + + + + 用于保存Smtp客户端 + 一个邮件服务对应一个Smtp客户端 + + + + + 用于保存邮件服务 + 允许服务器同时存在多个服务 + + + + + 获取某个已经保存过的邮件服务 + + + + + + + 统一调用此方法发送邮件 + + + + + + + + + 关闭邮件服务 + + + + + + + 客户端专用Socket + + + + + 服务器端专用Socket + + + + + 创建服务器监听Socket + + 监听端口号 + 最大连接数量 + 服务器端专用Socket + + + + 创建一个监听到客户端Socket + + 客户端IP地址[0]和客户端Socket[1] + + + + 创建客户端Socket + + 服务器IP地址 + 服务器监听端口 + 客户端专用Socket + + + + 用于服务器端向客户端Socket发送信息 + + 客户端Socket + Socket信息容器 + 通信结果 + + + + 用于服务器端向客户端Socket发送信息 [ 异步版 ] + + 客户端Socket + Socket信息容器 + 通信结果 + + + + 用于客户端向服务器Socket发送信息 + + Socket信息容器 + 通信结果 + + + + 用于客户端向服务器Socket发送信息 [ 异步版 ] + + Socket信息容器 + 通信结果 + + + + 接收数据流中的信息 + 如果是服务器接收信息需要传入客户端Socket + + 如果是服务器接收信息需要传入客户端Socket + SocketObjects + + + + 接收数据流中的信息 [ 异步版 ] + 如果是服务器接收信息需要传入客户端Socket + + 如果是服务器接收信息需要传入客户端Socket + SocketObjects + + + + 监听事件的委托 + + SocketObject + + + + 监听事件 + + + + + 触发异步监听事件 + + SocketObject + + + + 开启一个任务:调用返回对象的 OnCompleted() 方法可以执行后续操作,支持异步 + + + + + + + 开启一个任务:调用返回对象的 OnCompleted() 方法可以执行后续操作,支持异步 + + + + + + + 内部实现类 + + + + + 返回 ITaskAwaiter 可以进一步等待并执行方法 + 注意事项:async () 委托的后续 OnCompleted 方法将不会进一步等待,而是直接执行,因为它是异步的 + + + + + + + 在捕获到异常时,将触发 Error 事件 + + + + + +