From 5f9cb39244f13dac0b4a93ab50a6d3a5a2e069e9 Mon Sep 17 00:00:00 2001 From: JianboQin <279250819@qq.com> Date: Sat, 26 Sep 2026 22:15:41 +0800 Subject: [PATCH 1/6] Add Simplified Chinese admin panel and plugin resources --- .../Properties/ModelResources.zh-CN.resx | 6166 +++++++++++++++++ .../Properties/Resources.Designer.cs | 102 + src/DataModel/Properties/Resources.resx | 55 + src/DataModel/Properties/Resources.zh-CN.resx | 246 + src/GameLogic/Properties/ModelResources.resx | 131 + .../Properties/ModelResources.zh-CN.resx | 131 + .../Properties/PlugInResources.Designer.cs | 357 + src/GameLogic/Properties/PlugInResources.resx | 119 + .../Properties/PlugInResources.zh-CN.resx | 1547 +++++ .../Properties/PlugInResources.Designer.cs | 6 + .../Properties/PlugInResources.resx | 2 + .../Properties/PlugInResources.zh-CN.resx | 2427 +++++++ .../Properties/ModelResources.zh-CN.resx | 451 ++ .../Properties/PlugInResources.zh-CN.resx | 85 + src/Network/Properties/Resources.zh-CN.resx | 131 + .../Properties/PlugInResources.Designer.cs | 540 ++ .../Properties/PlugInResources.resx | 180 + .../Properties/PlugInResources.zh-CN.resx | 338 + .../Properties/Resources.Designer.cs | 288 + src/Web/AdminPanel/Properties/Resources.resx | 96 + .../Properties/Resources.zh-CN.resx | 1350 ++++ .../Properties/PlugInPointResources.resx | 267 + .../PlugInPointResources.zh-CN.resx | 267 + .../Shared/Properties/Resources.Designer.cs | 543 ++ src/Web/Shared/Properties/Resources.resx | 181 + .../Shared/Properties/Resources.zh-CN.resx | 496 ++ 26 files changed, 16502 insertions(+) create mode 100644 src/DataModel/Properties/ModelResources.zh-CN.resx create mode 100644 src/DataModel/Properties/Resources.zh-CN.resx create mode 100644 src/GameLogic/Properties/ModelResources.resx create mode 100644 src/GameLogic/Properties/ModelResources.zh-CN.resx create mode 100644 src/GameLogic/Properties/PlugInResources.zh-CN.resx create mode 100644 src/GameServer/Properties/PlugInResources.zh-CN.resx create mode 100644 src/Interfaces/Properties/ModelResources.zh-CN.resx create mode 100644 src/Network/Properties/PlugInResources.zh-CN.resx create mode 100644 src/Network/Properties/Resources.zh-CN.resx create mode 100644 src/Persistence/Initialization/Properties/PlugInResources.zh-CN.resx create mode 100644 src/Web/AdminPanel/Properties/Resources.zh-CN.resx create mode 100644 src/Web/Shared/Properties/PlugInPointResources.resx create mode 100644 src/Web/Shared/Properties/PlugInPointResources.zh-CN.resx create mode 100644 src/Web/Shared/Properties/Resources.zh-CN.resx diff --git a/src/DataModel/Properties/ModelResources.zh-CN.resx b/src/DataModel/Properties/ModelResources.zh-CN.resx new file mode 100644 index 0000000000..789c009afd --- /dev/null +++ b/src/DataModel/Properties/ModelResources.zh-CN.resx @@ -0,0 +1,6166 @@ + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 游戏账号 + + + 游戏账号列表 + + + + + + 登录名 + + + + + + 密码哈希值 + + + + + + 安全码 + + + + + + 电子邮箱 + + + + + + 游戏消息语言 + + + 游戏内服务器消息使用的语言代码,例如 en 或 zh。需要对应的消息翻译资源;不影响后台语言或客户端界面语言。 + + + 禁言截止时间 + + + + + + 已解锁职业 + + + 账号已获得创建资格的特殊职业。默认开放的基础职业无需列在这里,不会改变已有角色的职业。 + + + 注册时间 + + + + + + 账号状态 + + + + + + 时区偏移(小时) + + + 相对于 UTC 的小时偏移量,用于显示游戏内信件时间。北京时间请填 8,0 表示 UTC 时间。 + + + 仓库密码 + + + + + + 仓库 + + + 同一账号下角色共用的游戏仓库,与各角色独立的背包不同。 + + + 已开启扩展仓库 + + + 开启后,账号仓库容量扩展为原来的两倍,需要客户端支持扩展仓库。 + + + 模板账号 + + + 用于测试或体验的模板账号。游戏内的正常存档流程不会保存进度,并限制丢弃物品、玩家交易和个人商店买卖。 + + + 角色列表 + + + + + + 账号属性列表 + + + 供同一账号下角色使用的属性。同一种属性同时存在于账号和角色时,优先使用角色的值,不会相加。 + + + 账号状态 + + + + + + 正常 + + + + + + 观战者 + + + + + + 游戏管理员 + + + + + + 隐身游戏管理员 + + + + + + 封禁 + + + + + + 临时封禁 + + + + + + 聚合根特性 + + + 聚合根特性列表 + + + + + + 外观数据 + + + 外观数据列表 + + + + + + 角色职业 + + + + + + 角色状态 + + + + + + 姿势 + + + + + + 已装备完整套装 + + + + + + 已装备物品 + + + + + + 范围技能设置 + + + 范围技能设置 + + + + + + 使用视锥范围过滤 + + + + + + 视锥起始宽度 + + + + + + 视锥末端宽度 + + + + + + 视锥距离 + + + + + + 使用目标区域过滤 + + + + + + 目标区域直径 + + + + + + 使用延迟命中 + + + + + + 每单位距离延迟 + + + + + + 命中间隔 + + + + + + 每个目标最少命中次数 + + + + + + 每个目标最多命中次数 + + + + + + 每次攻击最多命中次数 + + + + + + 命中概率随距离变化的倍率 + + + + + + 可分配扩展 + + + 可分配扩展 + + + + + + 属性要求 + + + 属性要求列表 + + + + + + 属性 + + + + + + 最小值 + + + + + + 对战类型 + + + + + + 正常 + + + + + + 战盟足球 + + + + + + 对战区域 + + + 对战区域 + + + + + + 类型 + + + + + + 左队出生点 X 坐标 + + + + + + 左队出生点 Y 坐标 + + + + + + 右队出生点 X 坐标 + + + + + + 右队出生点 Y 坐标 + + + + + + 场地 + + + + + + 左侧球门 + + + + + + 右侧球门 + + + + + + 角色 + + + 角色列表 + + + + + + ID + + + + + + 角色名称 + + + + + + 角色职业 + + + + + + 角色栏位编号 + + + 角色在账号选择界面中的栏位编号,从 0 开始。 + + + 创建时间(UTC) + + + 角色的创建时间,以 UTC 时间保存。 + + + 经验值 + + + + + + 大师经验值 + + + + + + 未分配属性点 + + + 尚未分配给力量、敏捷等属性的升级点数。 + + + 未分配大师技能点 + + + 尚未分配给大师技能的点数。 + + + 当前地图 + + + + + + X 坐标 + + + + + + Y 坐标 + + + + + + 击杀玩家次数 + + + + + + 善恶状态剩余时间(秒) + + + 当前非正常善恶状态的剩余持续时间,单位为秒。 + + + 善恶状态 + + + 角色的英雄、正常、杀人警告或红名等状态,与角色是否封禁或拥有 GM 权限无关。 + + + 角色状态 + + + 角色的正常、封禁或游戏管理员(GM)状态。 + + + 姿势 + + + + + + 果实累计增加点数 + + + 通过果实累计增加的属性点数,不是使用果实的次数。 + + + 果实累计减少点数 + + + 通过果实累计减少的属性点数,不是使用果实的次数。 + + + 已开启背包扩展数量 + + + 该角色已开启的背包扩展数量,与账号仓库扩展无关。 + + + 按键配置数据 + + + 由游戏客户端生成并保存的原始按键配置数据。可输入十六进制字符串或上传配置数据文件。 + + + 奇迹助手配置数据 + + + 由游戏客户端生成并保存的原始奇迹助手配置数据。可输入十六进制字符串或上传配置数据文件。 + + + 个人商店名称 + + + 角色摆摊时显示的个人商店名称。 + + + 个人商店已开启 + + + 表示该角色的个人商店是否处于营业状态。 + + + 角色属性列表 + + + 角色的属性数据,例如力量、敏捷等。 + + + 信件列表 + + + + + + 已学技能 + + + + + + 背包 + + + 该角色独立使用的随身背包,与同一账号下角色共用的仓库不同。 + + + 物品掉落组列表 + + + 参与该角色击杀怪物时掉落计算的物品组,不是角色背包中的物品。 + + + 任务状态列表 + + + + + + 角色职业 + + + 角色职业 + + + + + + 编号 + + + + + + 名称 + + + + + + 允许创建 + + + + + + 创建所需等级 + + + + + + 创建许可标记 + + + + + + 转职后的职业 + + + + + + 大师职业 + + + + + + 传送等级要求降低百分比 + + + + + + 果实计算方式 + + + + + + 基础能力属性 + + + + + + 属性组合 + + + + + + 基础属性值 + + + + + + 出生地图 + + + + + + 技能连击 + + + + + + 角色姿势 + + + + + + 站立 + + + + + + 坐下 + + + + + + 倚靠 + + + + + + 悬挂 + + + + + + 角色任务状态 + + + 角色任务状态列表 + + + + + + 组 + + + + + + 已执行客户端操作 + + + + + + 最近完成的任务 + + + + + + 当前任务 + + + + + + 任务要求完成进度 + + + + + + 角色状态 + + + + + + 正常 + + + + + + 封禁 + + + + + + 游戏管理员 + + + + + + 聊天服务器 + + + 聊天服务器列表 + + + + + + 服务器 ID + + + + + + 说明 + + + + + + 最大连接数 + + + + + + 客户端超时时间 + + + + + + 客户端清理间隔 + + + + + + 聊天室清理间隔 + + + + + + 端点列表 + + + + + + 聊天服务器端点 + + + 聊天服务器端点列表 + + + + + + 组合加成要求 + + + 组合加成要求列表 + + + + + + 属性类型 + + + + + + 子属性类型 + + + + + + 最少数量 + + + + + + 配置更新 + + + 配置更新列表 + + + + + + 版本 + + + + + + 名称 + + + + + + 说明 + + + + + + 创建时间 + + + + + + 安装时间 + + + + + + 配置更新状态 + + + 配置更新状态列表 + + + + + + 初始化键 + + + + + + 当前已安装版本 + + + + + + 连接服务器 + + + 连接服务器列表 + + + + + + ID + + + + + + 配置 ID + + + + + + 服务器 ID + + + + + + 说明 + + + + + + 客户端 + + + + + + 收到未知数据包时断开连接 + + + + + + 最大接收大小 + + + + + + 客户端监听端口 + + + + + + 超时时间 + + + + + + 当前补丁版本 + + + + + + 补丁地址 + + + + + + 每个地址最大连接数 + + + + + + 检查每个地址的最大连接数 + + + + + + 最大连接数 + + + + + + 监听等待队列长度 + + + + + + 最大 FTP 请求数 + + + + + + 最大 IP 请求数 + + + + + + 最大服务器列表请求数 + + + + + + 伤害类型 + + + + + + 无 + + + + + + 物理 + + + + + + 魔法 + + + + + + 诅咒 + + + + + + 召唤兽 + + + + + + 炎狼兽 + + + + + + 全部 + + + + + + 方向 + + + + + + 未定义 + + + + + + 西 + + + + + + 西南 + + + + + + 南 + + + + + + 东南 + + + + + + 东 + + + + + + 东北 + + + + + + 北 + + + + + + 西北 + + + + + + 物品掉落组 + + + 物品掉落组列表 + + + + + + 说明 + + + + + + 概率 + + + + + + 最低怪物等级 + + + + + + 最高怪物等级 + + + + + + 怪物 + + + + + + 物品等级 + + + + + + 物品类型 + + + + + + 可选物品 + + + + + + 决斗区域 + + + 决斗区域列表 + + + + + + 索引 + + + + + + 第一名玩家传送门 + + + + + + 第二名玩家传送门 + + + + + + 观战者传送门 + + + + + + 决斗配置 + + + 决斗配置列表 + + + + + + 最高分数 + + + + + + 入场费 + + + + + + 最低角色等级 + + + + + + 每个决斗房间的最大观战人数 + + + + + + 出口 + + + + + + 决斗区域列表 + + + + + + 入口传送门 + + + 入口传送门列表 + + + + + + 目标传送门 + + + + + + 等级要求 + + + + + + 编号 + + + + + + 错误 + + + 错误列表 + + + + + + 出口传送门 + + + 出口传送门列表 + + + + + + 方向 + + + + + + 地图 + + + + + + 出生传送门 + + + + + + 果实计算策略 + + + + + + 默认 + + + + + + 魔剑士 + + + + + + 圣导师 + + + + + + 游戏客户端 + + + 游戏客户端列表 + + + + + + 版本系列(Season) + + + + + + 版本篇章(Episode) + + + + + + 语言 + + + + + + 版本 + + + + + + 序列号 + + + + + + 说明 + + + + + + 游戏配置 + + + 游戏配置列表 + + + + + + 最高等级 + + + + + + 最高大师等级 + + + + + + 经验倍率 + + + + + + 大师经验倍率 + + + + + + 防止经验溢出 + + + + + + 获取大师经验的最低怪物等级 + + + + + + 信息可见范围 + + + + + + 范围技能可命中玩家 + + + + + + 背包金币上限 + + + + + + 仓库金币上限 + + + + + + 拾取金币时限制为上限 + + + + + + 经验公式 + + + + + + 大师经验公式 + + + + + + 恢复间隔 + + + + + + 信件数量上限 + + + + + + 发送信件费用 + + + + + + 每个账号的角色数量上限 + + + + + + 角色名称正则表达式 + + + + + + 密码长度上限 + + + + + + 队伍人数上限 + + + + + + 允许掉落金币 + + + + + + 掉落物品保留时间 + + + + + + 掉落物品追加属性等级上限 + + + + + + 每消耗一点物品耐久度所需伤害 + + + + + + 每消耗一点宠物耐久度所需伤害 + + + + + + 每消耗一点物品耐久度所需命中次数 + + + + + + 决斗配置 + + + + + + 宝石合成配置 + + + + + + 传送列表 + + + + + + 物品掉落组列表 + + + + + + 技能列表 + + + + + + 角色职业列表 + + + + + + 物品列表 + + + + + + 物品等级加成表列表 + + + + + + 物品栏位类型列表 + + + + + + 物品属性列表 + + + + + + 物品属性类型列表 + + + + + + 套装组列表 + + + + + + 物品属性组合加成列表 + + + + + + 地图列表 + + + + + + 怪物列表 + + + + + + 属性列表 + + + + + + 魔法效果列表 + + + + + + 大师技能根节点列表 + + + + + + 插件配置列表 + + + + + + 活动副本列表 + + + + + + 游戏配置辅助工具 + + + 游戏配置辅助工具列表 + + + + + + 游戏地图 + + + 游戏地图列表 + + + + + + 编号 + + + + + + 名称 + + + + + + 地形数据 + + + + + + 怪物刷新配置 + + + + + + 入口传送门列表 + + + + + + 经验倍率 + + + + + + 区分标记 + + + + + + 安全区地图 + + + + + + 对战区域 + + + + + + 出口传送门列表 + + + + + + 物品掉落组列表 + + + + + + 地图进入要求 + + + + + + 角色属性加成 + + + + + + 游戏服务器配置 + + + 游戏服务器配置列表 + + + + + + 最大玩家数 + + + + + + 地图列表 + + + + + + 游戏服务器 + + + 游戏服务器列表 + + + + + + 服务器 ID + + + + + + 说明 + + + + + + 经验倍率 + + + + + + 允许 PvP + + + + + + 服务器配置 + + + + + + 游戏配置 + + + + + + 端点列表 + + + + + + 游戏服务器端点 + + + 游戏服务器端点列表 + + + + + + 对外发布的替代端口 + + + + + + 传送门 + + + 传送门列表 + + + + + + X1 + + + + + + Y1 + + + + + + X2 + + + + + + Y2 + + + + + + 战盟 + + + 战盟列表 + + + + + + ID + + + + + + 成员列表 + + + + + + 战盟成员 + + + 战盟成员列表 + + + + + + ID + + + + + + 战盟 ID + + + + + + 状态 + + + + + + 善恶状态 + + + + + + 新角色 + + + + + + 英雄 + + + + + + 英雄(消退中) + + + 英雄状态即将消退的阶段,持续时间结束后恢复正常。 + + + 正常 + + + + + + 杀人警告 + + + + + + 红名(第一阶段) + + + + + + 红名(第二阶段) + + + + + + 创建时隐藏特性 + + + 创建时隐藏特性列表 + + + + + + 可升级物品属性 + + + 可升级物品属性列表 + + + + + + 等级类型 + + + + + + 权重 + + + + + + 各等级属性 + + + + + + 背包常量 + + + 背包常量 + + + + + + 物品 + + + 物品列表 + + + + + + 物品栏位 + + + + + + 物品定义 + + + + + + 耐久度 + + + + + + 等级 + + + + + + 附带技能 + + + + + + 物品属性列表 + + + + + + 套装组列表 + + + + + + 镶嵌孔数量 + + + + + + 个人商店售价 + + + + + + 宠物经验值 + + + + + + 物品外观 + + + 物品外观列表 + + + + + + 物品栏位 + + + + + + 物品定义 + + + + + + 等级 + + + + + + 可见属性 + + + + + + 物品基础加成 + + + 物品基础加成 + + + + + + 目标属性 + + + + + + 基础值元素 + + + + + + 各等级加成表 + + + + + + 基础值 + + + + + + 聚合类型 + + + + + + 物品合成 + + + 物品合成列表 + + + + + + 编号 + + + + + + 名称 + + + + + + 物品合成处理器类名 + + + + + + 简单合成设置 + + + + + + 合成所需物品 + + + 合成所需物品列表 + + + + + + 可选物品 + + + + + + 最低物品等级 + + + + + + 最高物品等级 + + + + + + 所需物品属性 + + + + + + 最少数量 + + + + + + 最多数量 + + + + + + 成功结果 + + + + + + 失败结果 + + + + + + NPC 价格除数 + + + + + + 增加百分比 + + + + + + 引用 + + + + + + 合成产出物品 + + + 合成产出物品列表 + + + + + + 产出物品 + + + + + + 随机最低等级 + + + + + + 随机最高等级 + + + + + + 耐久度 + + + + + + 引用 + + + + + + 增加等级 + + + + + + 物品定义 + + + 物品列表 + + + + + + 编号 + + + + + + 物品栏位 + + + + + + 宽度 + + + + + + 高度 + + + + + + 可由怪物掉落 + + + + + + 弹药 + + + + + + 绑定角色 + + + + + + 每个角色存储数量上限 + + + + + + 名称 + + + + + + 掉落等级 + + + + + + 最高掉落等级 + + + + + + 最高物品等级 + + + + + + 耐久度 + + + + + + 组 + + + + + + 数值 + + + + + + 宠物经验公式 + + + + + + 使用效果 + + + + + + 镶嵌孔数量上限 + + + + + + 技能 + + + + + + 适用职业 + + + + + + 可选套装组 + + + + + + 可选物品属性 + + + + + + 要求 + + + + + + 基础加成属性 + + + + + + 掉落物品 + + + + + + 物品掉落效果 + + + + + + 未定义 + + + + + + 烟花 + + + + + + 圣诞烟花 + + + + + + 号角音效 + + + + + + 旋涡 + + + + + + 物品开启掉落组 + + + 物品开启掉落组列表 + + + + + + 来源物品等级 + + + + + + 金币数量 + + + + + + 最低等级 + + + + + + 最高等级 + + + + + + 所需角色等级 + + + + + + 掉落效果 + + + + + + 物品扩展 + + + 物品扩展 + + + + + + 物品等级加成表 + + + 物品等级加成表列表 + + + + + + 名称 + + + + + + 说明 + + + + + + 每级加成 + + + + + + 套装物品 + + + 套装物品列表 + + + + + + 套装区分标记 + + + + + + 套装组 + + + + + + 物品定义 + + + + + + 额外属性 + + + + + + 名称 + + + + + + 物品属性 + + + 物品属性列表 + + + + + + 编号 + + + + + + 子属性类型 + + + + + + 属性类型 + + + + + + 属性加成 + + + + + + 物品属性组合加成 + + + 物品属性组合加成 + + + + + + 说明 + + + + + + 编号 + + + + + + 可多次生效 + + + + + + 要求 + + + + + + 加成 + + + + + + 物品属性定义 + + + 物品属性列表 + + + + + + 名称 + + + + + + 随机添加 + + + + + + 添加概率 + + + + + + 每件物品属性数量上限 + + + + + + 可选属性 + + + + + + 物品属性关联 + + + 物品属性关联列表 + + + + + + 物品属性 + + + + + + 等级 + + + + + + 索引 + + + + + + 指定等级的物品属性 + + + 指定等级的物品属性列表 + + + + + + 等级 + + + + + + 所需物品等级 + + + + + + 属性加成 + + + + + + 物品属性类型 + + + 物品属性类型列表 + + + + + + ID + + + + + + 名称 + + + + + + 说明 + + + + + + 可见 + + + + + + 物品属性类型 + + + 物品属性类型列表 + + + + + + 卓越 + + + + + + 翅膀 + + + + + + 幸运 + + + + + + 追加属性 + + + + + + 强化属性 + + + + + + 套装属性 + + + + + + 套装加成 + + + + + + 守护属性 + + + + + + 镶嵌属性 + + + + + + 镶嵌加成属性 + + + + + + 蓝色炎狼兽 + + + + + + 黑色炎狼兽 + + + + + + 金色炎狼兽 + + + + + + 黑王马 + + + + + + 套装组 + + + 套装组列表 + + + + + + 名称 + + + + + + 始终生效 + + + + + + 按不同物品计数 + + + + + + 最少物品数量 + + + + + + 套装等级 + + + + + + 属性列表 + + + + + + 物品列表 + + + + + + 物品栏位类型 + + + 物品栏位类型列表 + + + + + + 说明 + + + + + + 物品栏位列表 + + + + + + 物品存储 + + + 物品存储列表 + + + + + + 物品列表 + + + + + + 金币 + + + + + + 宝石合成配置 + + + 宝石合成配置列表 + + + + + + 编号 + + + + + + 单颗宝石 + + + + + + 宝石组合 + + + + + + 击杀目标 + + + + + + 任意对象 + + + + + + 任意怪物 + + + + + + 指定目标 + + + + + + 信件正文 + + + 信件正文列表 + + + + + + ID + + + + + + 信件信息 + + + + + + 正文 + + + + + + 旋转角度 + + + + + + 动画 + + + + + + 发件人外观 + + + + + + 等级加成 + + + 等级加成 + + + + + + 等级 + + + + + + 附加值 + + + + + + 等级相关伤害 + + + 等级相关伤害列表 + + + + + + 等级 + + + + + + 伤害 + + + + + + 等级类型 + + + + + + 追加属性等级 + + + + + + 物品等级 + + + + + + 魔法效果 + + + 魔法效果列表 + + + + + + 编号 + + + + + + 名称 + + + + + + 子类型 + + + + + + 通知观察者 + + + + + + 死亡时终止 + + + + + + 发送持续时间 + + + + + + 持续时间取决于目标等级 + + + + + + 怪物目标等级除数 + + + + + + 玩家目标等级除数 + + + + + + 概率 + + + + + + PvP 生效概率 + + + + + + 持续时间 + + + + + + PvP 持续时间 + + + + + + 属性加成 + + + + + + PvP 属性加成 + + + + + + 大师技能 + + + 大师技能列表 + + + + + + 根节点 + + + + + + 前置大师技能 + + + + + + 阶级 + + + + + + 最高等级 + + + + + + 最低等级 + + + + + + 数值公式 + + + + + + 显示数值公式 + + + + + + 目标属性 + + + + + + 聚合方式 + + + + + + 替换的技能 + + + + + + 延长持续时间 + + + + + + 大师技能根节点 + + + 大师技能根节点列表 + + + + + + ID + + + + + + 名称 + + + + + + 聚合成员特性 + + + 聚合成员特性列表 + + + + + + 副本变更事件 + + + 副本变更事件列表 + + + + + + 索引 + + + + + + 说明 + + + + + + 消息 + + + + + + 目标 + + + + + + 最低目标等级 + + + + + + 击杀数量 + + + + + + 击杀数量乘以玩家数 + + + + + + 目标列表 + + + + + + 刷新区域 + + + + + + 地形变更 + + + + + + 活动副本 + + + 活动副本列表 + + + + + + 类型 + + + + + + 名称 + + + + + + 说明 + + + + + + 副本等级 + + + + + + 地图创建策略 + + + + + + 入场阶段时长 + + + + + + 进行阶段时长 + + + + + + 离场阶段时长 + + + + + + 最大玩家数 + + + + + + 保存排名统计 + + + + + + 要求大师职业 + + + + + + 最低角色等级 + + + + + + 最高角色等级 + + + + + + 特殊职业最低等级 + + + + + + 特殊职业最高等级 + + + + + + 入场券物品等级 + + + + + + 入场费 + + + + + + 允许红名玩家进入 + + + + + + 允许组队 + + + + + + 入口 + + + + + + 入场券物品 + + + + + + 奖励列表 + + + + + + 刷新波次列表 + + + + + + 变更事件列表 + + + + + + 副本地图创建策略 + + + + + + 每支队伍一个实例 + + + + + + 每名玩家一个实例 + + + + + + 共享实例 + + + + + + 副本排名记录 + + + 副本排名记录列表 + + + + + + 副本实例 ID + + + + + + 时间戳 + + + + + + 分数 + + + + + + 排名 + + + + + + 角色 + + + + + + 活动副本 + + + + + + 副本奖励 + + + 副本奖励列表 + + + + + + 奖励名次 + + + + + + 奖励类型 + + + + + + 奖励数量 + + + + + + 所需胜负条件 + + + + + + 物品奖励 + + + + + + 所需击杀目标 + + + + + + 副本奖励类型 + + + + + + 未定义 + + + + + + 金币 + + + + + + 经验值 + + + + + + 按剩余秒数奖励经验 + + + + + + 物品 + + + + + + 物品掉落 + + + + + + 分数 + + + + + + 副本刷新波次 + + + 副本刷新波次列表 + + + + + + 波次编号 + + + + + + 说明 + + + + + + 消息 + + + + + + 开始时间 + + + + + + 结束时间 + + + + + + 副本胜负标记 + + + + + + 无 + + + + + + 获胜者 + + + + + + 获胜队伍 + + + + + + 获胜者或获胜队伍成员 + + + + + + 失败者 + + + + + + 存活 + + + + + + 死亡 + + + + + + 存在获胜者 + + + + + + 不存在获胜者 + + + + + + 副本地形变更 + + + 副本地形变更列表 + + + + + + 地形属性 + + + + + + 设置地形属性 + + + + + + 需要更新客户端 + + + + + + 起始 X 坐标 + + + + + + 起始 Y 坐标 + + + + + + 结束 X 坐标 + + + + + + 结束 Y 坐标 + + + + + + 副本类型 + + + + + + 未定义 + + + + + + 恶魔广场 + + + + + + 血色城堡 + + + + + + 赤色要塞 + + + + + + 幻影寺院 + + + + + + 镜像世界 + + + + + + 合成结果 + + + + + + 消失 + + + + + + 保持原样 + + + + + + 玛雅武器和一代翅膀随机降级 + + + + + + 三代翅膀随机降级 + + + + + + 模型资源提供器 + + + 模型资源提供器列表 + + + + + + 怪物属性 + + + 怪物属性列表 + + + + + + 属性定义 + + + + + + 数值 + + + + + + 怪物 + + + 怪物列表 + + + + + + 编号 + + + + + + 怪物名称 + + + + + + 移动范围 + + + + + + 攻击范围 + + + + + + 视野范围 + + + + + + 移动间隔 + + + + + + 攻击间隔 + + + + + + 重生间隔 + + + + + + 属性 + + + + + + 最多掉落物品数量 + + + + + + NPC 窗口 + + + + + + 对象类型 + + + + + + AI 类型名称 + + + + + + 攻击技能 + + + + + + 商店商品 + + + + + + 物品合成列表 + + + + + + 物品掉落组列表 + + + + + + 属性列表 + + + + + + 任务列表 + + + + + + 索引器 + + + + + + 怪物刷新区域 + + + 怪物刷新区域列表 + + + + + + 怪物 + + + + + + 游戏地图 + + + + + + X1 + + + + + + Y1 + + + + + + X2 + + + + + + Y2 + + + + + + 方向 + + + + + + 数量 + + + + + + 刷新触发方式 + + + + + + 波次编号 + + + + + + 覆盖最大生命值 + + + + + + NPC 对象类型 + + + + + + 怪物 + + + + + + 被动 NPC + + + + + + 守卫 + + + + + + 陷阱 + + + + + + 传送门 + + + + + + 雕像 + + + + + + 足球 + + + + + + 可破坏对象 + + + + + + NPC 窗口 + + + + + + 未定义 + + + + + + 商人 + + + + + + 商人 1 + + + + + + 存储 + + + + + + 仓库存储 + + + + + + 玛雅合成 + + + + + + 恶魔广场 + + + + + + 血色城堡 + + + + + + 驯兽师 + + + + + + 宝石合成(赛尔维斯) + + + + + + 长老(罗兰峡谷) + + + + + + 再生宝石提炼(艾尔菲丝) + + + + + + 进化宝石提炼(奥斯本) + + + + + + 强化还原(杰瑞敦) + + + + + + 幻影寺院 + + + + + + 玛雅卡片合成 + + + + + + 樱花树枝兑换 + + + + + + 荧之石管理员 + + + + + + 荧之石研究员 + + + + + + 属性点重置 + + + + + + 幸运币登记(Delgado) + + + + + + 决斗观战(Titus) + + + + + + 镜像世界入口(Lugard) + + + + + + 帝国要塞入口(Jerint) + + + + + + 市场服务器传送(Julia) + + + + + + 战盟管理员 + + + + + + 幸运装备合成 + + + + + + NPC 对话 + + + + + + 传统任务 + + + + + + 属性加成 + + + 属性加成 + + + + + + 目标属性 + + + + + + 增益 + + + + + + 属性加成值 + + + 属性加成值列表 + + + + + + 固定值 + + + + + + 关联值 + + + + + + 最大值 + + + + + + 任务 + + + 任务列表 + + + + + + 任务发布者 + + + + + + 名称 + + + + + + 组 + + + + + + 编号 + + + + + + 起始编号 + + + + + + 拒绝编号 + + + + + + 可重复 + + + + + + 需要客户端操作 + + + + + + 接取任务所需金币 + + + + + + 最低角色等级 + + + + + + 最高角色等级 + + + + + + 适用职业 + + + + + + 所需怪物击杀目标 + + + + + + 所需物品 + + + + + + 奖励列表 + + + + + + 任务物品要求 + + + 任务物品要求列表 + + + + + + 物品 + + + + + + 物品掉落组 + + + + + + 最少数量 + + + + + + 任务怪物击杀要求 + + + 任务怪物击杀要求列表 + + + + + + 怪物 + + + + + + 最少数量 + + + + + + 任务怪物击杀进度 + + + 任务怪物击杀进度列表 + + + + + + 要求 + + + + + + 击杀数量 + + + + + + 任务奖励 + + + 任务奖励列表 + + + + + + 奖励类型 + + + + + + 数值 + + + + + + 物品奖励 + + + + + + 属性奖励 + + + + + + 技能奖励 + + + + + + 任务奖励类型 + + + + + + 未定义 + + + + + + 经验值 + + + + + + 金币 + + + + + + 物品 + + + + + + 家族归属 + + + + + + 升级属性点 + + + + + + 第一次转职 + + + + + + 第二次转职 + + + + + + 属性 + + + + + + 技能 + + + + + + 矩形 + + + 矩形列表 + + + + + + X1 + + + + + + Y1 + + + + + + X2 + + + + + + Y2 + + + + + + 资源 + + + 资源 + + + + + + 资源管理器 + + + + + + 语言区域 + + + + + + 系统配置:自动启动说明 + + + + + + 系统配置:自动启动名称 + + + + + + 系统配置:自动更新数据库结构说明 + + + + + + 系统配置:自动更新数据库结构名称 + + + + + + 系统配置说明 + + + + + + 系统配置:IP 解析器说明 + + + + + + 系统配置:IP 解析器名称 + + + + + + 系统配置:IP 解析器参数说明 + + + + + + 系统配置:IP 解析器参数名称 + + + + + + 系统配置名称 + + + + + + 系统配置:读取控制台输入说明 + + + + + + 系统配置:读取控制台输入名称 + + + + + + 产出物品选择方式 + + + + + + 任意 + + + + + + 全部 + + + + + + 服务器端点 + + + 服务器端点列表 + + + + + + 网络端口 + + + + + + 客户端 + + + + + + 简单合成设置 + + + 简单合成设置 + + + + + + 金币 + + + + + + 每 1% 最终成功率所需金币 + + + + + + NPC 价格除数 + + + + + + 成功率 + + + + + + 成功率上限 + + + + + + 允许多个 + + + + + + 所需物品 + + + + + + 产出物品列表 + + + + + + 产出物品选择方式 + + + + + + 幸运属性增加的成功率 + + + + + + 卓越物品增加的成功率 + + + + + + 套装物品增加的成功率 + + + + + + 守护属性物品增加的成功率 + + + + + + 镶嵌物品增加的成功率 + + + + + + 产出物品附带幸运属性的概率 + + + + + + 产出物品附带技能的概率 + + + + + + 产出物品附带卓越属性的概率 + + + + + + 产出物品卓越属性数量上限 + + + + + + 技能 + + + 技能列表 + + + + + + 编号 + + + + + + 名称 + + + + + + 攻击伤害 + + + + + + 要求 + + + + + + 消耗要求 + + + + + + 属性关联 + + + + + + 范围 + + + + + + 伤害类型 + + + + + + 技能类型 + + + + + + 目标 + + + + + + 隐式目标范围 + + + + + + 目标限制 + + + + + + 移动至目标 + + + + + + 移动目标 + + + + + + 元素修正目标 + + + + + + 魔法效果定义 + + + + + + 适用职业 + + + + + + 大师技能配置 + + + + + + 范围技能设置 + + + + + + 技能连击 + + + 技能连击列表 + + + + + + 名称 + + + + + + 最长完成时间 + + + + + + 步骤列表 + + + + + + 技能连击步骤 + + + 技能连击步骤列表 + + + + + + 顺序 + + + + + + 最终步骤 + + + + + + 技能 + + + + + + 技能记录 + + + 技能记录列表 + + + + + + 技能 + + + + + + 等级 + + + + + + 属性加成 + + + + + + PvP 属性加成 + + + + + + 加成持续时间 + + + + + + PvP 加成持续时间 + + + + + + 加成生效概率 + + + + + + PvP 加成生效概率 + + + + + + 属性列表 + + + + + + 技能目标 + + + + + + 未定义 + + + + + + 显式目标 + + + + + + 隐式目标:队伍 + + + + + + 隐式目标:范围内玩家 + + + + + + 隐式目标:范围内 NPC + + + + + + 隐式目标:范围内所有对象 + + + + + + 显式目标及范围内隐式目标 + + + + + + 隐式目标:玩家自身 + + + + + + 技能目标限制 + + + + + + 未定义 + + + + + + 自身 + + + + + + 队伍 + + + + + + 玩家 + + + + + + 技能类型 + + + + + + 直接命中 + + + + + + 攻城战特殊技能 + + + + + + 攻城战技能 + + + + + + 范围技能自动命中 + + + + + + 范围技能显式命中 + + + + + + 范围技能显式目标 + + + + + + 增益效果 + + + + + + 恢复 + + + + + + 被动加成 + + + + + + 召唤怪物 + + + + + + 其他 + + + + + + 刷新触发方式 + + + + + + 自动 + + + + + + 活动期间自动刷新 + + + + + + 活动开始时刷新一次 + + + + + + 波次期间自动刷新 + + + + + + 波次开始时刷新一次 + + + + + + 活动手动刷新 + + + + + + 游荡 + + + + + + 特殊物品类型 + + + + + + 无 + + + + + + 套装 + + + + + + 卓越 + + + + + + 随机物品 + + + + + + 镶嵌物品 + + + + + + 金币 + + + + + + 基础能力属性 + + + 基础能力属性 + + + + + + 属性 + + + + + + 基础值 + + + + + + 玩家可升级 + + + + + + 系统配置 + + + 系统配置列表 + + + + + + IP 地址解析方式 + + + + + + 自定义 IP / 主机名 + + + + + + 自动启动 + + + + + + 自动更新数据库结构 + + + + + + 读取控制台输入 + + + + + + 地形属性类型 + + + + + + 安全区 + + + + + + 角色 + + + + + + 不可通行 + + + + + + 无地面 + + + + + + 水域 + + + + + + 非持久化特性 + + + 非持久化特性列表 + + + + + + 传送信息 + + + 传送信息列表 + + + + + + 索引 + + + + + + 名称 + + + + + + 费用 + + + + + + 等级要求 + + + + + + 传送门 + + + + + + 机器人账号 + + + 记录游戏通信数据 + + + 每次攻击降低命中概率前的命中次数 + + + 弹道数量 + + + 效果范围 + + + 跳过元素修正 + + + 每次攻击命中次数 + + + 服务器时区 + + + 实时缓冲区大小 + + + 通信数据归档路径 + + + 单个会话文件大小上限(MB) + + + 归档总大小上限(MB) + + + 归档保留天数 + + + 魔法效果 + + + 最低等级 + + + 最高等级 + + + 阶段 + + + 星期 + + + 小时 + + + 分钟 + + + 卓越物品掉落等级偏移 + + + 全局属性组合 + + + 全局基础属性值 + + + 攻城战配置 + + + 启用 + + + 职印登录所需时间(秒) + + + 报名所需最低等级 + + + 报名所需最少战盟成员数 + + + 城主标识物品 + + + 城主标识物品等级 + + + 获取参与奖励的最短时间(秒) + + + 进攻战盟数量上限 + + + 攻城战战盟积分 + + + 攻城战成员积分 + + + 城门重建费用(金币) + + + 守护石像重建费用(金币) + + + 城门每点生命值修复费用(金币) + + + 守护石像每点生命值修复费用(金币) + + + 每级防御或恢复升级的修复附加费(金币) + + + 攻城战地图 + + + 魔炼之地地图 + + + 奖励物品 + + + 阶段时间安排 + + + NPC 配置列表 + + + 城门防御升级 + + + 城门生命升级 + + + 守护石像防御升级 + + + 守护石像生命升级 + + + 守护石像恢复升级 + + + 进攻方攻城器械区域 + + + 防守方攻城器械区域 + + + 防守方重生区域 + + + 进攻方重生区域 + + + 升级等级 + + + 升级所需守护宝石数量(颗) + + + 升级所需金币 + + + 本级属性值 + + + X1 + + + Y1 + + + X2 + + + Y2 + + + 怪物定义 + + + 实例 ID + + + 保存至数据库 + + + 默认阵营 + + + 刷新点 X 坐标 + + + 刷新点 Y 坐标 + + + 方向 + + + 增益效果列表 + + + 任务物品 + + + ID + + + 怪物编号 + + + 实例 ID + + + 防御等级 + + + 恢复等级 + + + 生命等级 + + + 当前生命值 + + + ID + + + 战盟 ID + + + 战盟名称 + + + 阵营 + + + 分数 + + + 同盟主战盟 + + + ID + + + 战盟 ID + + + 战盟名称 + + + 城主标识数量 + + + 报名顺序 + + + ID + + + 占领战盟 ID + + + 已被占领 + + + 玛雅合成税率 + + + 个人商店税率 + + + 魔炼之地入场费 + + + 开放魔炼之地 + + + 累计税金 + + + NPC 状态列表 + + + 战盟列表 + + + ID + + + 角色 ID + + + 物品定义 ID + + + 增益效果 + + + 增益效果列表 + + + 攻城战阶段安排 + + + 攻城战阶段安排列表 + + + 攻城战配置 + + + 攻城战配置列表 + + + 攻城战升级配置 + + + 攻城战升级配置列表 + + + 攻城战区域 + + + 攻城战区域列表 + + + 攻城战 NPC 配置 + + + 攻城战 NPC 配置列表 + + + 攻城战 NPC 状态 + + + 攻城战 NPC 状态列表 + + + 攻城战战盟 + + + 攻城战战盟列表 + + + 攻城战报名 + + + 攻城战报名列表 + + + 攻城战数据 + + + 攻城战数据列表 + + + 待发放攻城战奖励 + + + 待发放攻城战奖励列表 + + + 休战阶段 1 + + + 战盟报名 + + + 休战阶段 2 + + + 登记城主标识 + + + 休战阶段 3 + + + 公布名单 + + + 准备 + + + 进行中 + + + 结束 + + + 周期结束 + + + 未定义 + + + 防御 + + + 生命 + + + 恢复 + + + 重新购买已被摧毁的城门所需的金币。 + + + 重新购买已被摧毁的守护石像所需的金币。 + + + 每恢复 1 点城门生命值所需的金币。修复总费用还包括防御升级等级对应的附加费用。 + + + 每恢复 1 点守护石像生命值所需的金币。修复总费用还包括防御和恢复升级等级对应的附加费用。 + + + 每次修复时,城门按防御等级计算附加费,守护石像按防御等级与恢复等级之和计算附加费。生命升级等级不计入。此项是修复附加费,不是升级费用。 + + + 0 表示未升级的基础状态,1~3 表示对应的升级等级。 + + + 执行本级升级所需的守护宝石数量,与所需金币分别计算。 + + + 执行本级升级所需的金币,与所需守护宝石分别计算。 + + + 达到本级后对应的属性数值,具体含义取决于所属的防御、生命或恢复升级配置。 + + + 攻城方盟主在罗伦之冠上完成职印登录所需的时间,默认 30 秒。 + + diff --git a/src/DataModel/Properties/Resources.Designer.cs b/src/DataModel/Properties/Resources.Designer.cs index 7dfd43b6df..daae840960 100644 --- a/src/DataModel/Properties/Resources.Designer.cs +++ b/src/DataModel/Properties/Resources.Designer.cs @@ -334,5 +334,107 @@ public static string SystemConfiguration_NetworkObservationRetentionDays_Descrip return ResourceManager.GetString("SystemConfiguration_NetworkObservationRetentionDays_Description", resourceCulture); } } + /// + /// Looks up a localized string similar to {0} on {1} at {2:D2}:{3:D2}. + /// + public static string CastleSiegeScheduleSummary { + get { + return ResourceManager.GetString("CastleSiegeScheduleSummary", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Level {0}: Value={1}, Jewels={2}, Zen={3}. + /// + public static string CastleSiegeUpgradeSummary { + get { + return ResourceManager.GetString("CastleSiegeUpgradeSummary", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} / {1} to {2} / {3}. + /// + public static string CastleSiegeZoneSummary { + get { + return ResourceManager.GetString("CastleSiegeZoneSummary", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} Items, {1} Money. + /// + public static string ItemStorageSummary { + get { + return ResourceManager.GetString("ItemStorageSummary", resourceCulture); + } + } + + /// Gets the localized SpawnPointSummary text. + public static string SpawnPointSummary => ResourceManager.GetString("SpawnPointSummary", resourceCulture)!; + + /// Gets the localized SpawnAreaSummary text. + public static string SpawnAreaSummary => ResourceManager.GetString("SpawnAreaSummary", resourceCulture)!; + + /// Gets the localized SpawnWaveSummary text. + public static string SpawnWaveSummary => ResourceManager.GetString("SpawnWaveSummary", resourceCulture)!; + + /// Gets the localized EnterGateSummary text. + public static string EnterGateSummary => ResourceManager.GetString("EnterGateSummary", resourceCulture)!; + + /// Gets the localized WaveSummary text. + public static string WaveSummary => ResourceManager.GetString("WaveSummary", resourceCulture)!; + + /// Gets the localized LevelValueSummary text. + public static string LevelValueSummary => ResourceManager.GetString("LevelValueSummary", resourceCulture)!; + + /// Gets the localized RectangleSummary text. + public static string RectangleSummary => ResourceManager.GetString("RectangleSummary", resourceCulture)!; + + /// Gets the localized BattleZoneSummary text. + public static string BattleZoneSummary => ResourceManager.GetString("BattleZoneSummary", resourceCulture)!; + + /// Gets the localized CastleNpcSummary text. + public static string CastleNpcSummary => ResourceManager.GetString("CastleNpcSummary", resourceCulture)!; + + /// Gets the localized DuelConfigSummary text. + public static string DuelConfigSummary => ResourceManager.GetString("DuelConfigSummary", resourceCulture)!; + + /// Gets the localized GameServerConfigSummary text. + public static string GameServerConfigSummary => ResourceManager.GetString("GameServerConfigSummary", resourceCulture)!; + + /// Gets the localized RandomItemSummary text. + public static string RandomItemSummary => ResourceManager.GetString("RandomItemSummary", resourceCulture)!; + + /// Gets the localized OptionRequirementSummary text. + public static string OptionRequirementSummary => ResourceManager.GetString("OptionRequirementSummary", resourceCulture)!; + + /// Gets the localized SkillRewardSummary text. + public static string SkillRewardSummary => ResourceManager.GetString("SkillRewardSummary", resourceCulture)!; + + /// Gets the localized AttributeRewardSummary text. + public static string AttributeRewardSummary => ResourceManager.GetString("AttributeRewardSummary", resourceCulture)!; + + /// Gets the localized TerrainChangeSummary text. + public static string TerrainChangeSummary => ResourceManager.GetString("TerrainChangeSummary", resourceCulture)!; + + /// Gets the localized TerrainSet text. + public static string TerrainSet => ResourceManager.GetString("TerrainSet", resourceCulture)!; + + /// Gets the localized TerrainRemove text. + public static string TerrainRemove => ResourceManager.GetString("TerrainRemove", resourceCulture)!; + + /// Gets the localized TerrainWithClientUpdate text. + public static string TerrainWithClientUpdate => ResourceManager.GetString("TerrainWithClientUpdate", resourceCulture)!; + + /// Gets the localized TerrainWithoutClientUpdate text. + public static string TerrainWithoutClientUpdate => ResourceManager.GetString("TerrainWithoutClientUpdate", resourceCulture)!; + + /// Gets the localized ChatServerSummary text. + public static string ChatServerSummary => ResourceManager.GetString("ChatServerSummary", resourceCulture)!; + + /// Gets the localized ServerEndpointSummary text. + public static string ServerEndpointSummary => ResourceManager.GetString("ServerEndpointSummary", resourceCulture)!; + } } diff --git a/src/DataModel/Properties/Resources.resx b/src/DataModel/Properties/Resources.resx index 4e856da2e0..6fc9199f14 100644 --- a/src/DataModel/Properties/Resources.resx +++ b/src/DataModel/Properties/Resources.resx @@ -193,4 +193,59 @@ or behind a firewall) and you want to use it within your computer or private net The number of days after which an archived session is removed. A value of 0 means that the sessions are kept forever. + + {0} on {1} at {2:D2}:{3:D2} + + + Level {0}: Value={1}, Jewels={2}, Zen={3} + + + {0} / {1} to {2} / {3} + + + {0} Items, {1} Money + + + Sunday + + + Monday + + + Tuesday + + + Wednesday + + + Thursday + + + Friday + + + Saturday + + {0} - Qty: {1} @ {2}/{3} + {0} - Qty: {1} @ {2}/{3} to {4}/{5} + - Wave: {0} + {0} ({1}) (Level {2}) to {3} + Wave {0}: {1} + Level {0}: {1} + {0} / {1} to {2} / {3} + Battle Zone ({0}) + {0} #{1} at ({2},{3}) + Duel Configuration {0} Arenas, Exit: {1} + Default ({0} players) + Random Item + {0}: SubOption Type {1}, Min. Count {2} + Skill: {0} + Attribute: {0} x {1} + {0} attribute '{1}' from ({2}, {3}) to ({4}, {5}); {6} + Set + Remove + with client update + without client update + [ChatServerDefinition ServerID={0}, Description={1}] + Client: {0}; Port: {1} \ No newline at end of file diff --git a/src/DataModel/Properties/Resources.zh-CN.resx b/src/DataModel/Properties/Resources.zh-CN.resx new file mode 100644 index 0000000000..08b05720ce --- /dev/null +++ b/src/DataModel/Properties/Resources.zh-CN.resx @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 指定服务器如何确定向游戏客户端返回的自身 IP 地址。客户端选择游戏服务器或使用游戏内聊天时会使用该地址。如果公网 IP 无法从外部访问(例如共享 IPv4 地址或受防火墙限制),可通过此设置在本机或局域网中使用服务器。 + + + IP 地址解析方式 + + + 当 IP 地址解析方式设为“自定义”时使用的参数。 + + + 自定义 IP / 主机名 + + + 自动启动 + + + 服务器进程启动时自动启动各子服务。此设置仅适用于一体化服务器(MUnique.OpenMU.Startup)。 + + + 允许在服务器控制台中输入命令。此设置仅适用于一体化服务器(MUnique.OpenMU.Startup),用于替代“-deamon”启动参数。 + + + 读取控制台输入 + + + 服务器时区 + + + 用于解释定时活动(例如入侵、血色城堡、恶魔广场)时间的时区 ID。建议使用 IANA 时区 ID,例如“Asia/Shanghai”。留空时使用 UTC。 + + + 系统配置 + + + 这些设置对整个系统生效,但可能被启动参数或环境变量覆盖。更多信息请参阅 Startup 的 README 文档。 + + + 自动更新数据库结构 + + + 一体化服务器(MUnique.OpenMU.Startup)启动时自动更新数据库结构。分布式部署需要通过管理后台手动执行更新。 + + + 栏位 + + + 卓越 + + + 技能 + + + 幸运 + + + 孔 + + + 网络分析器 + + + 实时缓冲区大小 + + + 网络分析器为每个受监测连接保留在内存中的数据包数量。超过此数量时,最旧的数据包将被移除。 + + + 通信数据归档路径 + + + 已开启通信记录的账号的数据包归档路径。相对路径以应用程序目录为基准。归档可能包含玩家隐私和游戏通信内容,请勿放在可公开访问的 Web 目录中。 + + + 单个会话文件大小上限(MB) + + + 每个归档会话文件的最大大小,单位为 MB。超过上限后,会话数据将继续写入新文件。 + + + 归档总大小上限(MB) + + + 流量归档的总大小上限,单位为 MB。超过上限时删除最旧的会话。设为 0 表示不限制大小。 + + + 归档保留天数 + + + 归档会话保留的天数,超过后自动删除。设为 0 表示永久保留。 + + + {0}:{1} {2:D2}:{3:D2} + + + 等级 {0}:属性值 {1},升级所需守护宝石 {2} 颗、金币 {3} + + + ({0}, {1}) 至 ({2}, {3}) + + + {0} 件物品,{1} 金币 + + + 星期日 + + + 星期一 + + + 星期二 + + + 星期三 + + + 星期四 + + + 星期五 + + + 星期六 + + {0} - 数量:{1},坐标:{2}/{3} + {0} - 数量:{1},区域:{2}/{3} 至 {4}/{5} + - 波次:{0} + {0}({1}),所需等级:{2},目标:{3} + 第 {0} 波:{1} + 等级 {0}:{1} + {0} / {1} 至 {2} / {3} + 战斗区域({0}) + {0} #{1},坐标:({2},{3}) + 决斗配置:{0} 个场地,出口:{1} + 默认({0} 名玩家) + 随机物品 + {0}:子属性类型 {1},最少数量 {2} + 技能:{0} + 属性:{0} × {1} + {0}地形属性“{1}”,区域:({2}, {3}) 至 ({4}, {5});{6} + 设置 + 移除 + 同步至客户端 + 不同步至客户端 + [聊天服务器 编号={0},说明={1}] + 客户端:{0};端口:{1} + diff --git a/src/GameLogic/Properties/ModelResources.resx b/src/GameLogic/Properties/ModelResources.resx new file mode 100644 index 0000000000..c59faef8ed --- /dev/null +++ b/src/GameLogic/Properties/ModelResources.resx @@ -0,0 +1,131 @@ + + + Kanturu Transition Definition + Kanturu Transition Definitions + Cinematic Duration + Entry Point X + Entry Point Y + Warp Animation Delay + Kanturu Nightmare Hp Phase + Kanturu Nightmare Hp Phases + Health Percentage + Teleport Target X + Teleport Target Y + Message Key + Kanturu Terrain Area + Kanturu Terrain Areas + Start X + Start Y + End X + End Y + Kanturu Phase Definition + Kanturu Phase Definitions + Name + Kind + State + Detail State + Time Limit + Spawn Wave Number + Start Delay + Kill Target + Counted Monsters + Duration + Start Message Key + Completed Message Key + Standby Duration + Transition + Nightmare + Kanturu Event Definition + Kanturu Event Definitions + Intro Spawn Wave Number + Intro Message Key + Intro State + Intro Detail State + Intro Duration + Maya Attack Interval + Phases + Required Item Durability Loss Interval + Required Item Durability Loss + Required Item Destroyed Message Key + Barrier Opening Message Key + Victory Cinematic Duration + Barrier Areas + Tower Of Refinement Duration + Tower Closing Warning Offset + Tower Conquered Message Key + Tower Closing Warning Message Key + Tower Closed Message Key + Victory Message Key + Defeat Message Key + Kanturu Nightmare Definition + Kanturu Nightmare Definitions + Monster + Spawn Timeout + Health Check Interval + Teleport Delay + Special Attack Skill Number + Special Attack Interval + Battle Detail State + Hp Phases + Doppelganger Path Area + Doppelganger Path Areas + X1 + Y1 + X2 + Y2 + Doppelganger Herd Size + Doppelganger Herd Sizes + Starts After + Base Count + Doppelganger Event Definition + Doppelganger Event Definitions + Maximum Goal Count + Play Info Interval + Herd Interval + Herd Monsters + Herd Sizes + Attack First Chance + Always Attacking Monsters + Additional Spawns + Ice Walker + Ice Walker Spawn Time + Ice Walker Mission Duration + Ice Walker Minimum Position + Ice Walker Maximum Position + Ice Walker Mission Failed Multiplier + Monster Scalings + Interim Chest Monsters + Interim Reward Chest + Interim Chest Count + Interim Chest Duration + Larva Chance + Larva + Final Reward Chest + Paths + Doppelganger Path + Doppelganger Paths + Map Number + Areas + Doppelganger Monster Spawn + Doppelganger Monster Spawns + Spawn Time + Monsters + Doppelganger Monster Scaling + Doppelganger Monster Scalings + Maximum Player Level + Level Multipliers + Health Multipliers + Damage Multipliers + Defense Multipliers + RandomMap + AllMaps + MonsterWave + Transition + Nightmare + None + Standby + MayaBattle + NightmareBattle + Tower + End + diff --git a/src/GameLogic/Properties/ModelResources.zh-CN.resx b/src/GameLogic/Properties/ModelResources.zh-CN.resx new file mode 100644 index 0000000000..7c60af7fe9 --- /dev/null +++ b/src/GameLogic/Properties/ModelResources.zh-CN.resx @@ -0,0 +1,131 @@ + + + 坎特鲁过渡阶段 + 坎特鲁过渡阶段列表 + 过场动画时长 + 入场 X 坐标 + 入场 Y 坐标 + 传送动画延迟 + 咒怨魔王生命值阶段 + 咒怨魔王生命值阶段列表 + 生命值比例 + 瞬移目标 X 坐标 + 瞬移目标 Y 坐标 + 消息资源键 + 坎特鲁地形区域 + 坎特鲁地形区域列表 + 起点 X 坐标 + 起点 Y 坐标 + 终点 X 坐标 + 终点 Y 坐标 + 坎特鲁阶段 + 坎特鲁阶段列表 + 名称 + 阶段类型 + 状态 + 详细状态 + 时间限制 + 刷新波次编号 + 开始延迟 + 目标击杀数 + 计入击杀数的怪物 + 持续时间 + 开始消息资源键 + 完成消息资源键 + 等待时长 + 过渡阶段配置 + 咒怨魔王配置 + 坎特鲁副本配置 + 坎特鲁副本配置列表 + 开场刷新波次编号 + 开场消息资源键 + 开场状态 + 开场详细状态 + 开场时长 + 玛雅攻击动画间隔 + 阶段列表 + 入场物品耐久消耗间隔 + 每次消耗的耐久度 + 入场物品损毁消息资源键 + 屏障开启消息资源键 + 胜利动画时长 + 屏障区域 + 提炼之塔开放时长 + 提炼之塔关闭提前提醒时间 + 提炼之塔开放消息资源键 + 提炼之塔关闭提醒资源键 + 提炼之塔关闭消息资源键 + 胜利消息资源键 + 失败消息资源键 + 咒怨魔王配置 + 咒怨魔王配置列表 + 怪物 + 刷新超时时间 + 生命值检查间隔 + 瞬移延迟 + 特殊攻击技能编号 + 特殊攻击间隔 + 战斗详细状态 + 生命值阶段配置 + 镜像世界路径区域 + 镜像世界路径区域列表 + 起点 X 坐标 + 起点 Y 坐标 + 终点 X 坐标 + 终点 Y 坐标 + 镜像世界怪物群规模 + 镜像世界怪物群规模列表 + 开始时间偏移 + 基础数量 + 镜像世界配置 + 镜像世界配置列表 + 最多允许突破终点的怪物数 + 副本信息更新间隔 + 怪物群刷新间隔 + 怪物群成员 + 怪物群规模配置 + 优先攻击概率 + 始终主动攻击的怪物 + 额外刷新配置 + 冰霜行者 + 冰霜行者刷新时间 + 冰霜行者任务时限 + 冰霜行者最小路径位置 + 冰霜行者最大路径位置 + 冰霜行者任务失败倍率 + 怪物属性缩放配置 + 中途宝箱生成怪物 + 中途奖励宝箱 + 中途宝箱数量 + 中途宝箱保留时间 + 幼虫出现概率 + 幼虫 + 最终奖励宝箱 + 行进路线 + 镜像世界行进路线 + 镜像世界行进路线列表 + 地图编号 + 区域列表 + 镜像世界怪物刷新 + 镜像世界怪物刷新列表 + 刷新时间 + 怪物列表 + 镜像世界怪物属性缩放 + 镜像世界怪物属性缩放列表 + 最高玩家等级 + 等级倍率列表 + 生命值倍率列表 + 伤害倍率列表 + 防御倍率列表 + 随机地图 + 所有地图 + 怪物波次 + 过渡阶段 + 咒怨魔王战斗 + 无 + 待机 + 玛雅战斗 + 咒怨魔王战斗 + 提炼之塔开放 + 结束 + diff --git a/src/GameLogic/Properties/PlugInResources.Designer.cs b/src/GameLogic/Properties/PlugInResources.Designer.cs index 02d82f39d8..a37683d13b 100644 --- a/src/GameLogic/Properties/PlugInResources.Designer.cs +++ b/src/GameLogic/Properties/PlugInResources.Designer.cs @@ -3616,5 +3616,362 @@ public static string CastleSiegeLifeStoneConsumeHandlerPlugIn_Name { return ResourceManager.GetString("CastleSiegeLifeStoneConsumeHandlerPlugIn_Name", resourceCulture); } } + /// Gets the localized BotConfiguration_Display1_Name text. + public static string BotConfiguration_Display1_Name => ResourceManager.GetString("BotConfiguration_Display1_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display1_Description text. + public static string BotConfiguration_Display1_Description => ResourceManager.GetString("BotConfiguration_Display1_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display2_Name text. + public static string BotConfiguration_Display2_Name => ResourceManager.GetString("BotConfiguration_Display2_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display2_Description text. + public static string BotConfiguration_Display2_Description => ResourceManager.GetString("BotConfiguration_Display2_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display3_Name text. + public static string BotConfiguration_Display3_Name => ResourceManager.GetString("BotConfiguration_Display3_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display3_Description text. + public static string BotConfiguration_Display3_Description => ResourceManager.GetString("BotConfiguration_Display3_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display4_Name text. + public static string BotConfiguration_Display4_Name => ResourceManager.GetString("BotConfiguration_Display4_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display4_Description text. + public static string BotConfiguration_Display4_Description => ResourceManager.GetString("BotConfiguration_Display4_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display5_Name text. + public static string BotConfiguration_Display5_Name => ResourceManager.GetString("BotConfiguration_Display5_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display5_Description text. + public static string BotConfiguration_Display5_Description => ResourceManager.GetString("BotConfiguration_Display5_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display6_Name text. + public static string BotConfiguration_Display6_Name => ResourceManager.GetString("BotConfiguration_Display6_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display6_Description text. + public static string BotConfiguration_Display6_Description => ResourceManager.GetString("BotConfiguration_Display6_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display7_Name text. + public static string BotConfiguration_Display7_Name => ResourceManager.GetString("BotConfiguration_Display7_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display7_Description text. + public static string BotConfiguration_Display7_Description => ResourceManager.GetString("BotConfiguration_Display7_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display8_Name text. + public static string BotConfiguration_Display8_Name => ResourceManager.GetString("BotConfiguration_Display8_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display8_Description text. + public static string BotConfiguration_Display8_Description => ResourceManager.GetString("BotConfiguration_Display8_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display9_Name text. + public static string BotConfiguration_Display9_Name => ResourceManager.GetString("BotConfiguration_Display9_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display9_Description text. + public static string BotConfiguration_Display9_Description => ResourceManager.GetString("BotConfiguration_Display9_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display10_Name text. + public static string BotConfiguration_Display10_Name => ResourceManager.GetString("BotConfiguration_Display10_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display10_Description text. + public static string BotConfiguration_Display10_Description => ResourceManager.GetString("BotConfiguration_Display10_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display11_Name text. + public static string BotConfiguration_Display11_Name => ResourceManager.GetString("BotConfiguration_Display11_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display11_Description text. + public static string BotConfiguration_Display11_Description => ResourceManager.GetString("BotConfiguration_Display11_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display12_Name text. + public static string BotConfiguration_Display12_Name => ResourceManager.GetString("BotConfiguration_Display12_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display12_Description text. + public static string BotConfiguration_Display12_Description => ResourceManager.GetString("BotConfiguration_Display12_Description", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display13_Name text. + public static string BotConfiguration_Display13_Name => ResourceManager.GetString("BotConfiguration_Display13_Name", resourceCulture)!; + + /// Gets the localized BotConfiguration_Display13_Description text. + public static string BotConfiguration_Display13_Description => ResourceManager.GetString("BotConfiguration_Display13_Description", resourceCulture)!; + + /// Gets the localized BotSelfDefensePlugIn_Display1_Name text. + public static string BotSelfDefensePlugIn_Display1_Name => ResourceManager.GetString("BotSelfDefensePlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized BotSelfDefensePlugIn_Display1_Description text. + public static string BotSelfDefensePlugIn_Display1_Description => ResourceManager.GetString("BotSelfDefensePlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized BotRevengePlugIn_Display1_Name text. + public static string BotRevengePlugIn_Display1_Name => ResourceManager.GetString("BotRevengePlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized BotRevengePlugIn_Display1_Description text. + public static string BotRevengePlugIn_Display1_Description => ResourceManager.GetString("BotRevengePlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized BotSkillProgressionPlugIn_Display1_Name text. + public static string BotSkillProgressionPlugIn_Display1_Name => ResourceManager.GetString("BotSkillProgressionPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized BotSkillProgressionPlugIn_Display1_Description text. + public static string BotSkillProgressionPlugIn_Display1_Description => ResourceManager.GetString("BotSkillProgressionPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized BotFeaturePlugIn_Display1_Name text. + public static string BotFeaturePlugIn_Display1_Name => ResourceManager.GetString("BotFeaturePlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized BotFeaturePlugIn_Display1_Description text. + public static string BotFeaturePlugIn_Display1_Description => ResourceManager.GetString("BotFeaturePlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized MaximumConnectionsPerIpPlugIn_Display1_Name text. + public static string MaximumConnectionsPerIpPlugIn_Display1_Name => ResourceManager.GetString("MaximumConnectionsPerIpPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized MaximumConnectionsPerIpPlugIn_Display1_Description text. + public static string MaximumConnectionsPerIpPlugIn_Display1_Description => ResourceManager.GetString("MaximumConnectionsPerIpPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized SpeedHackDetectPlugIn_Display1_Name text. + public static string SpeedHackDetectPlugIn_Display1_Name => ResourceManager.GetString("SpeedHackDetectPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized SpeedHackDetectPlugIn_Display1_Description text. + public static string SpeedHackDetectPlugIn_Display1_Description => ResourceManager.GetString("SpeedHackDetectPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized KanturuGatewayPlugIn_Display1_Name text. + public static string KanturuGatewayPlugIn_Display1_Name => ResourceManager.GetString("KanturuGatewayPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized KanturuGatewayPlugIn_Display1_Description text. + public static string KanturuGatewayPlugIn_Display1_Description => ResourceManager.GetString("KanturuGatewayPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized SymbolOfKundunStackedPlugIn_Display1_Name text. + public static string SymbolOfKundunStackedPlugIn_Display1_Name => ResourceManager.GetString("SymbolOfKundunStackedPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized SymbolOfKundunStackedPlugIn_Display1_Description text. + public static string SymbolOfKundunStackedPlugIn_Display1_Description => ResourceManager.GetString("SymbolOfKundunStackedPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized DuelSpawnGatePlugIn_Display1_Name text. + public static string DuelSpawnGatePlugIn_Display1_Name => ResourceManager.GetString("DuelSpawnGatePlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized DuelSpawnGatePlugIn_Display1_Description text. + public static string DuelSpawnGatePlugIn_Display1_Description => ResourceManager.GetString("DuelSpawnGatePlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized SoccerSpawnGatePlugIn_Display1_Name text. + public static string SoccerSpawnGatePlugIn_Display1_Name => ResourceManager.GetString("SoccerSpawnGatePlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized SoccerSpawnGatePlugIn_Display1_Description text. + public static string SoccerSpawnGatePlugIn_Display1_Description => ResourceManager.GetString("SoccerSpawnGatePlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized PetExperiencePlugIn_Display1_Name text. + public static string PetExperiencePlugIn_Display1_Name => ResourceManager.GetString("PetExperiencePlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized PetExperiencePlugIn_Display1_Description text. + public static string PetExperiencePlugIn_Display1_Description => ResourceManager.GetString("PetExperiencePlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized PeriodicInvasionConfiguration_Display1_Name text. + public static string PeriodicInvasionConfiguration_Display1_Name => ResourceManager.GetString("PeriodicInvasionConfiguration_Display1_Name", resourceCulture)!; + + /// Gets the localized PeriodicInvasionConfiguration_Display2_Name text. + public static string PeriodicInvasionConfiguration_Display2_Name => ResourceManager.GetString("PeriodicInvasionConfiguration_Display2_Name", resourceCulture)!; + + /// Gets the localized WhiteWizardInvasionPlugIn_Display1_Name text. + public static string WhiteWizardInvasionPlugIn_Display1_Name => ResourceManager.GetString("WhiteWizardInvasionPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized WhiteWizardInvasionPlugIn_Display1_Description text. + public static string WhiteWizardInvasionPlugIn_Display1_Description => ResourceManager.GetString("WhiteWizardInvasionPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized ItemRegistrationConfiguration_Display1_Name text. + public static string ItemRegistrationConfiguration_Display1_Name => ResourceManager.GetString("ItemRegistrationConfiguration_Display1_Name", resourceCulture)!; + + /// Gets the localized ItemRegistrationConfiguration_Display1_Description text. + public static string ItemRegistrationConfiguration_Display1_Description => ResourceManager.GetString("ItemRegistrationConfiguration_Display1_Description", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display1_Name text. + public static string NpcItemRegistrationRule_Display1_Name => ResourceManager.GetString("NpcItemRegistrationRule_Display1_Name", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display1_Description text. + public static string NpcItemRegistrationRule_Display1_Description => ResourceManager.GetString("NpcItemRegistrationRule_Display1_Description", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display2_Name text. + public static string NpcItemRegistrationRule_Display2_Name => ResourceManager.GetString("NpcItemRegistrationRule_Display2_Name", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display2_Description text. + public static string NpcItemRegistrationRule_Display2_Description => ResourceManager.GetString("NpcItemRegistrationRule_Display2_Description", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display3_Name text. + public static string NpcItemRegistrationRule_Display3_Name => ResourceManager.GetString("NpcItemRegistrationRule_Display3_Name", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display3_Description text. + public static string NpcItemRegistrationRule_Display3_Description => ResourceManager.GetString("NpcItemRegistrationRule_Display3_Description", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display4_Name text. + public static string NpcItemRegistrationRule_Display4_Name => ResourceManager.GetString("NpcItemRegistrationRule_Display4_Name", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display4_Description text. + public static string NpcItemRegistrationRule_Display4_Description => ResourceManager.GetString("NpcItemRegistrationRule_Display4_Description", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display5_Name text. + public static string NpcItemRegistrationRule_Display5_Name => ResourceManager.GetString("NpcItemRegistrationRule_Display5_Name", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display5_Description text. + public static string NpcItemRegistrationRule_Display5_Description => ResourceManager.GetString("NpcItemRegistrationRule_Display5_Description", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display6_Name text. + public static string NpcItemRegistrationRule_Display6_Name => ResourceManager.GetString("NpcItemRegistrationRule_Display6_Name", resourceCulture)!; + + /// Gets the localized NpcItemRegistrationRule_Display6_Description text. + public static string NpcItemRegistrationRule_Display6_Description => ResourceManager.GetString("NpcItemRegistrationRule_Display6_Description", resourceCulture)!; + + /// Gets the localized ChaosCastleStartPlugIn_Display1_Name text. + public static string ChaosCastleStartPlugIn_Display1_Name => ResourceManager.GetString("ChaosCastleStartPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized ChaosCastleStartPlugIn_Display1_Description text. + public static string ChaosCastleStartPlugIn_Display1_Description => ResourceManager.GetString("ChaosCastleStartPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized KanturuStartPlugIn_Display1_Name text. + public static string KanturuStartPlugIn_Display1_Name => ResourceManager.GetString("KanturuStartPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized KanturuStartPlugIn_Display1_Description text. + public static string KanturuStartPlugIn_Display1_Description => ResourceManager.GetString("KanturuStartPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized BloodCastleStartPlugIn_Display1_Name text. + public static string BloodCastleStartPlugIn_Display1_Name => ResourceManager.GetString("BloodCastleStartPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized BloodCastleStartPlugIn_Display1_Description text. + public static string BloodCastleStartPlugIn_Display1_Description => ResourceManager.GetString("BloodCastleStartPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized DevilSquareStartPlugIn_Display1_Name text. + public static string DevilSquareStartPlugIn_Display1_Name => ResourceManager.GetString("DevilSquareStartPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized DevilSquareStartPlugIn_Display1_Description text. + public static string DevilSquareStartPlugIn_Display1_Description => ResourceManager.GetString("DevilSquareStartPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized PKClearChatCommandPlugIn_Display1_Name text. + public static string PKClearChatCommandPlugIn_Display1_Name => ResourceManager.GetString("PKClearChatCommandPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized PKClearChatCommandPlugIn_Display1_Description text. + public static string PKClearChatCommandPlugIn_Display1_Description => ResourceManager.GetString("PKClearChatCommandPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized PKClearChatCommandPlugIn_Display2_Name text. + public static string PKClearChatCommandPlugIn_Display2_Name => ResourceManager.GetString("PKClearChatCommandPlugIn_Display2_Name", resourceCulture)!; + + /// Gets the localized PKClearChatCommandPlugIn_Display2_Description text. + public static string PKClearChatCommandPlugIn_Display2_Description => ResourceManager.GetString("PKClearChatCommandPlugIn_Display2_Description", resourceCulture)!; + + /// Gets the localized LostMapDroppedPlugIn_Display1_Name text. + public static string LostMapDroppedPlugIn_Display1_Name => ResourceManager.GetString("LostMapDroppedPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized LostMapDroppedPlugIn_Display1_Description text. + public static string LostMapDroppedPlugIn_Display1_Description => ResourceManager.GetString("LostMapDroppedPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized ItemBoxDroppedPlugIn_Display1_Name text. + public static string ItemBoxDroppedPlugIn_Display1_Name => ResourceManager.GetString("ItemBoxDroppedPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized ItemBoxDroppedPlugIn_Display1_Description text. + public static string ItemBoxDroppedPlugIn_Display1_Description => ResourceManager.GetString("ItemBoxDroppedPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized ResetConfiguration_Display1_Name text. + public static string ResetConfiguration_Display1_Name => ResourceManager.GetString("ResetConfiguration_Display1_Name", resourceCulture)!; + + /// Gets the localized ResetConfiguration_Display2_Name text. + public static string ResetConfiguration_Display2_Name => ResourceManager.GetString("ResetConfiguration_Display2_Name", resourceCulture)!; + + /// Gets the localized ResetConfiguration_Display3_Name text. + public static string ResetConfiguration_Display3_Name => ResourceManager.GetString("ResetConfiguration_Display3_Name", resourceCulture)!; + + /// Gets the localized ResetConfiguration_Display4_Name text. + public static string ResetConfiguration_Display4_Name => ResourceManager.GetString("ResetConfiguration_Display4_Name", resourceCulture)!; + + /// Gets the localized ResetConfiguration_Display5_Name text. + public static string ResetConfiguration_Display5_Name => ResourceManager.GetString("ResetConfiguration_Display5_Name", resourceCulture)!; + + /// Gets the localized ResetConfiguration_Display6_Name text. + public static string ResetConfiguration_Display6_Name => ResourceManager.GetString("ResetConfiguration_Display6_Name", resourceCulture)!; + + /// Gets the localized ResetConfiguration_Display7_Name text. + public static string ResetConfiguration_Display7_Name => ResourceManager.GetString("ResetConfiguration_Display7_Name", resourceCulture)!; + + /// Gets the localized ActorHitRecorderPlugIn_Display1_Name text. + public static string ActorHitRecorderPlugIn_Display1_Name => ResourceManager.GetString("ActorHitRecorderPlugIn_Display1_Name", resourceCulture)!; + + /// Gets the localized ActorHitRecorderPlugIn_Display1_Description text. + public static string ActorHitRecorderPlugIn_Display1_Description => ResourceManager.GetString("ActorHitRecorderPlugIn_Display1_Description", resourceCulture)!; + + /// Gets the localized MonsterAttributeScalerConfiguration_HealthPercentage_Caption text. + public static string MonsterAttributeScalerConfiguration_HealthPercentage_Caption => ResourceManager.GetString("MonsterAttributeScalerConfiguration_HealthPercentage_Caption", resourceCulture)!; + + /// Gets the localized MonsterAttributeScalerConfiguration_DefensePercentage_Caption text. + public static string MonsterAttributeScalerConfiguration_DefensePercentage_Caption => ResourceManager.GetString("MonsterAttributeScalerConfiguration_DefensePercentage_Caption", resourceCulture)!; + + /// Gets the localized MonsterAttributeScalerConfiguration_DefenseRatePercentage_Caption text. + public static string MonsterAttributeScalerConfiguration_DefenseRatePercentage_Caption => ResourceManager.GetString("MonsterAttributeScalerConfiguration_DefenseRatePercentage_Caption", resourceCulture)!; + + /// Gets the localized MonsterAttributeScalerConfiguration_AttackRatePercentage_Caption text. + public static string MonsterAttributeScalerConfiguration_AttackRatePercentage_Caption => ResourceManager.GetString("MonsterAttributeScalerConfiguration_AttackRatePercentage_Caption", resourceCulture)!; + + /// Gets the localized MonsterAttributeScalerConfiguration_DamagePercentage_Caption text. + public static string MonsterAttributeScalerConfiguration_DamagePercentage_Caption => ResourceManager.GetString("MonsterAttributeScalerConfiguration_DamagePercentage_Caption", resourceCulture)!; + + /// Gets the localized MonsterAttributeScalerConfiguration_ScaleAllPercentage_Caption text. + public static string MonsterAttributeScalerConfiguration_ScaleAllPercentage_Caption => ResourceManager.GetString("MonsterAttributeScalerConfiguration_ScaleAllPercentage_Caption", resourceCulture)!; + + /// Gets the localized MaximumConnectionsPerIpPlugInConfiguration_MaximumConnectionsPerIp_Caption text. + public static string MaximumConnectionsPerIpPlugInConfiguration_MaximumConnectionsPerIp_Caption => ResourceManager.GetString("MaximumConnectionsPerIpPlugInConfiguration_MaximumConnectionsPerIp_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_AttackSpeedMinIntervalMs_Caption text. + public static string SpeedHackDetectConfiguration_AttackSpeedMinIntervalMs_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_AttackSpeedMinIntervalMs_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_AttackSpeedScalingFactor_Caption text. + public static string SpeedHackDetectConfiguration_AttackSpeedScalingFactor_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_AttackSpeedScalingFactor_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_AttackSpeedBaseDelayMs_Caption text. + public static string SpeedHackDetectConfiguration_AttackSpeedBaseDelayMs_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_AttackSpeedBaseDelayMs_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_MaxAttackTokens_Caption text. + public static string SpeedHackDetectConfiguration_MaxAttackTokens_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_MaxAttackTokens_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_MaxAllowedWalkStartOffset_Caption text. + public static string SpeedHackDetectConfiguration_MaxAllowedWalkStartOffset_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_MaxAllowedWalkStartOffset_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_WalkSpeedToleranceMs_Caption text. + public static string SpeedHackDetectConfiguration_WalkSpeedToleranceMs_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_WalkSpeedToleranceMs_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_WarningHistoryHours_Caption text. + public static string SpeedHackDetectConfiguration_WarningHistoryHours_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_WarningHistoryHours_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_AlertDebounceSeconds_Caption text. + public static string SpeedHackDetectConfiguration_AlertDebounceSeconds_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_AlertDebounceSeconds_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_MaxWarnings_Caption text. + public static string SpeedHackDetectConfiguration_MaxWarnings_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_MaxWarnings_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_DisconnectOnViolation_Caption text. + public static string SpeedHackDetectConfiguration_DisconnectOnViolation_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_DisconnectOnViolation_Caption", resourceCulture)!; + + /// Gets the localized SpeedHackDetectConfiguration_AutoBan_Caption text. + public static string SpeedHackDetectConfiguration_AutoBan_Caption => ResourceManager.GetString("SpeedHackDetectConfiguration_AutoBan_Caption", resourceCulture)!; + + /// Gets the localized InvasionSpawnConfiguration_Y_Caption text. + public static string InvasionSpawnConfiguration_Y_Caption => ResourceManager.GetString("InvasionSpawnConfiguration_Y_Caption", resourceCulture)!; + + /// Gets the localized InvasionSpawnConfiguration_X_Caption text. + public static string InvasionSpawnConfiguration_X_Caption => ResourceManager.GetString("InvasionSpawnConfiguration_X_Caption", resourceCulture)!; + + /// Gets the localized InvasionSpawnConfiguration_IsSpawnOnAllMaps_Caption text. + public static string InvasionSpawnConfiguration_IsSpawnOnAllMaps_Caption => ResourceManager.GetString("InvasionSpawnConfiguration_IsSpawnOnAllMaps_Caption", resourceCulture)!; + + /// Gets the localized InvasionSpawnConfiguration_AnnounceDeath_Caption text. + public static string InvasionSpawnConfiguration_AnnounceDeath_Caption => ResourceManager.GetString("InvasionSpawnConfiguration_AnnounceDeath_Caption", resourceCulture)!; + + /// Gets the localized InvasionSpawnConfiguration_MapStrategy_Caption text. + public static string InvasionSpawnConfiguration_MapStrategy_Caption => ResourceManager.GetString("InvasionSpawnConfiguration_MapStrategy_Caption", resourceCulture)!; + + /// Gets the localized InvasionSpawnConfiguration_MapIds_Caption text. + public static string InvasionSpawnConfiguration_MapIds_Caption => ResourceManager.GetString("InvasionSpawnConfiguration_MapIds_Caption", resourceCulture)!; + + /// Gets the localized InvasionSpawnConfiguration_Count_Caption text. + public static string InvasionSpawnConfiguration_Count_Caption => ResourceManager.GetString("InvasionSpawnConfiguration_Count_Caption", resourceCulture)!; + + /// Gets the localized InvasionSpawnConfiguration_MonsterId_Caption text. + public static string InvasionSpawnConfiguration_MonsterId_Caption => ResourceManager.GetString("InvasionSpawnConfiguration_MonsterId_Caption", resourceCulture)!; + + /// Gets the localized KanturuStartConfiguration_EventDefinition_Caption text. + public static string KanturuStartConfiguration_EventDefinition_Caption => ResourceManager.GetString("KanturuStartConfiguration_EventDefinition_Caption", resourceCulture)!; + + /// Gets the localized BlessJewelConsumeHandlerPlugInConfiguration_RepairTargetItems_Caption text. + public static string BlessJewelConsumeHandlerPlugInConfiguration_RepairTargetItems_Caption => ResourceManager.GetString("BlessJewelConsumeHandlerPlugInConfiguration_RepairTargetItems_Caption", resourceCulture)!; + } } diff --git a/src/GameLogic/Properties/PlugInResources.resx b/src/GameLogic/Properties/PlugInResources.resx index a5b2ce76ae..79ec46f965 100644 --- a/src/GameLogic/Properties/PlugInResources.resx +++ b/src/GameLogic/Properties/PlugInResources.resx @@ -1302,4 +1302,123 @@ Configures the run of the doppelganger event, e.g. its monsters, their paths and multipliers. + Enabled + If enabled, bots are spawned after the server has started. + Reset bots + Deletes all bot accounts and characters on the next start, then regenerates them. Clears itself afterwards. + Purge bots + Deletes all bot accounts and characters and turns the bot feature off, without generating new ones. Clears itself afterwards. + Start as fresh characters + Newly generated bots start at level 1 with level-0 starter equipment, like a freshly created player character, instead of with a random level, reset history and upgraded gear. + Presence rotation + Bots log in and out over the day (fewest at night, most in the evening) instead of all being online 24/7. + Min. online share % + Percentage of the bot population which stays online at the quietest hour (100 = no rotation effect). + Number of accounts + How many bot accounts to maintain. + Characters per account + How many characters each bot account holds (max 5). + Bot capacity % + Share of a game server's maximum player count which its bots may occupy; the rest stays reserved for real players. + Bots pay reset costs + If enabled, bots consume the configured zen/item costs for their resets like human players (default: free bot resets). + Jewel stock per kind + How many Jewels of Bless/Soul/Life a bot keeps of each kind; above this it stops picking them up and sells the surplus. + Potion stock (charges) + How many healing and mana potion charges a bot buys up to at a merchant. + Extra accounts to animate + Comma separated login names of existing accounts to animate as bots, in addition to the generated population. + Bot self defense + Makes server-side bots fight back when a player attacks them. + Bot revenge + Makes server-side bots return to their death site and take revenge on the player who killed them. + Bot skill progression + Invests level-up stat points and teaches server-side bots new class- and level-appropriate skills as they level up. + Bots + Spawns server-side bots which hunt monsters on the maps. Configure the accounts to animate and enable the feature. + Maximum Connections Per IP + Limits the maximum number of parallel connections from the same IP address. + Speedhack Anti-Cheat + Detects and prevents player walk and attack speedhacking. + KanturuGatewayPlugIn + Handles the Kanturu Gateway Machine NPC for event entry. + SymbolOfKundunStackedPlugIn + This plugin transforms a stack of symbol of kundun into a lost map. + DuelSpawnGatePlugIn + Spawns a player which is in a duel at its side of the duel area. + SoccerSpawnGatePlugIn + Spawns a player of a running soccer match on the soccer ground. + PetExperiencePlugIn + Gives the trainable pets of a player a share of the experience which the player gained for a kill. + Force Single Map + Monster Spawns + White Wizard Invasion + Enables the White Wizard Invasion feature. + NPC Registration Rules + Configure item registration rules for different NPCs. + NPC Number + The NPC definition number (e.g. 236 for Golden Archer). + Accepted Item Group + Group of the accepted item (e.g. 14 for event items). + Accepted Item Number + Number of the accepted item (e.g. 21 for Rena). + Required Items Count + Number of items required to receive a reward. + Reward Zen + Zen awarded upon reaching the required item count. + Reward Drop Item Group + The DropItemGroup used to generate the item reward drop. If empty, no item drops (Zen reward only). + ChaosCastleStartPlugIn + Chaos Castle event + KanturuStartPlugIn + Kanturu Refinery Tower event + BloodCastleStartPlugIn + Blood Castle event + DevilSquareStartPlugIn + Devil Square event + Zen Cost Per Kill + The amount of Zen required to clear one PK count. + Allow Regular Players + Allows regular players to use this command to clear their own PK status for Zen. + LostMapDroppedPlugIn + This plugin handles the drop of the lost map item. It creates the gate to the kalima map. + ItemBoxDroppedPlugIn + This plugin handles the drop of an item box, e.g. box of kundun. + Required reset item + Item cost tiers + Point tiers + Minimum reset count + Points granted + Minimum reset count + Required item amount + Test actor hit recorder + Records hits dealt and received by scripted test actors in their event stream. + Health Percentage + Defense Percentage + Defense Rate Percentage + Attack Rate Percentage + Damage Percentage + Scale All Percentage + Maximum Connections Per Ip + Attack Speed Min Interval Ms + Attack Speed Scaling Factor + Attack Speed Base Delay Ms + Max Attack Tokens + Max Allowed Walk Start Offset + Walk Speed Tolerance Ms + Warning History Hours + Alert Debounce Seconds + Max Warnings + Disconnect On Violation + Auto Ban + Y + X + Is Spawn On All Maps + Announce Death + Map Strategy + Map Ids + Count + Monster Id + Event Definition + Repair Target Items diff --git a/src/GameLogic/Properties/PlugInResources.zh-CN.resx b/src/GameLogic/Properties/PlugInResources.zh-CN.resx new file mode 100644 index 0000000000..987d7d1391 --- /dev/null +++ b/src/GameLogic/Properties/PlugInResources.zh-CN.resx @@ -0,0 +1,1547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 攻城战城门机关 + + + 打开攻城战城门机关的操作界面。 + + + 攻城战战争机器 + + + 为具有使用权限的玩家打开攻城战战争机器。 + + + 攻城战 + + + 推进每周攻城战的阶段循环。 + + + 攻城战待领奖励发放 + + + 角色进入游戏时发放待领取的攻城战参与奖励。 + + + 攻城战守卫 + + + 显示魔炼之地是否开放及适用的入场费用。 + + + 奇迹助手 + + + 提供奇迹助手功能的配置。 + + + 装备变更时更新宠物指令 + + + 装备或卸下宠物后,更新玩家的宠物指令管理器。 + + + 战盟足球击杀计分 + + + 发生击杀时增加战盟足球比赛的得分。 + + + 定时保存游戏进度 + + + 定期保存已进入游戏世界(EnteredWorld)的玩家进度。 + + + 死亡经验损失 + + + 玩家被怪物击杀后扣除经验值。 + + + 任务怪物击杀统计 + + + 增加进行中任务的怪物击杀计数。 + + + 正当防卫 + + + 更新正当防卫系统的状态。 + + + 防护值恢复暂停 + + + 更新和重置防护值恢复暂停属性。 + + + 玩家上线公告 + + + 玩家进入游戏时向所有玩家发送公告。 + + + 移动后更新安全区状态 + + + 更新玩家是否位于安全区的属性,例如据此启用生命值和防护值自动恢复。 + + + 天气更新 + + + 随机更新各托管地图的天气状态。 + + + 守门人交互 + + + 处理守门人 NPC 的交互请求。 + + + 角色转生 NPC 交互 + + + 处理角色转生 NPC 的交互请求。 + + + 转生命令 + + + 处理聊天命令 /reset。 + + + 转生信息命令 + + + 处理 /resetinfo 命令,显示下次转生的费用和可获得的属性点。 + + + 角色转生 + + + 提供角色转生功能的配置。 + + + 离开地图时结束决斗 + + + 决斗者离开决斗地图时结束决斗;观战者离开时将其从观战列表移除。 + + + 决斗计分 + + + 发生击杀时增加决斗得分。 + + + 酒使用 + + + 处理酒的使用和消耗。 + + + 解毒剂使用 + + + 处理解毒剂的使用和消耗。 + + + 苹果使用 + + + 处理苹果的使用和消耗。 + + + 祝福宝石使用 + + + 处理祝福宝石的使用和消耗。 + + + 果实使用 + + + 处理果实的使用和消耗。 + + + 再生宝石使用 + + + 处理再生宝石的使用和消耗。 + + + 高级进化宝石使用 + + + 处理高级进化宝石的使用和消耗。 + + + 大型复合药水使用 + + + 处理大型复合药水的使用和消耗。 + + + 大型治疗药水使用 + + + 处理大型治疗药水的使用和消耗。 + + + 大型魔力药水使用 + + + 处理大型魔力药水的使用和消耗。 + + + 大型防护药水使用 + + + 处理大型防护药水的使用和消耗。 + + + 生命宝石使用 + + + 处理生命宝石的使用和消耗。 + + + 低级进化宝石使用 + + + 处理低级进化宝石的使用和消耗。 + + + 中型复合药水使用 + + + 处理中型复合药水的使用和消耗。 + + + 中型治疗药水使用 + + + 处理中型治疗药水的使用和消耗。 + + + 中型魔力药水使用 + + + 处理中型魔力药水的使用和消耗。 + + + 中型防护药水使用 + + + 处理中型防护药水的使用和消耗。 + + + 攻城药水使用 + + + 处理攻城药水的使用和消耗。 + + + 小型复合药水使用 + + + 处理小型复合药水的使用和消耗。 + + + 小型治疗药水使用 + + + 处理小型治疗药水的使用和消耗。 + + + 小型魔力药水使用 + + + 处理小型魔力药水的使用和消耗。 + + + 小型防护药水使用 + + + 处理小型防护药水的使用和消耗。 + + + 灵魂宝石使用 + + + 处理灵魂宝石的使用和消耗。 + + + 召唤石使用 + + + 处理召唤石的使用和消耗。 + + + 回城卷轴使用 + + + 处理回城卷轴的使用和消耗。 + + + 链雷咒技能 + + + 处理召唤术师的链雷咒技能,除当前目标外最多再命中两个目标。 + + + 格斗家范围技能(Dragon Roar) + + + 处理格斗家的格斗家范围技能(Dragon Roar),除当前目标外最多再命中七个目标。 + + + 摄魂咒技能 + + + 处理召唤术师的摄魂咒技能,造成伤害时恢复自身生命值。 + + + 地裂技能 + + + 处理黑王马的地裂技能,将目标击退。 + + + 火舞旋风技能 + + + 处理圣导师的火舞旋风技能,有概率对目标周围一定范围内的目标造成额外爆炸伤害。 + + + 冲击技能 + + + 处理圣导师的冲击技能。 + + + 冲击波强化技能 + + + 处理圣导师的冲击波强化技能。 + + + 星辰一怒蓄力 + + + 处理魔法师星辰一怒技能的开始蓄力。 + + + 星辰一怒释放 + + + 处理魔法师星辰一怒技能的停止蓄力。 + + + 格斗家武器技能(Phoenix Shot) + + + 处理格斗家的武器技能(Phoenix Shot),除当前目标外最多再命中七个目标。 + + + 血色风暴技能 + + + 处理炎狼兽的血色风暴技能,随机将目标一件已装备物品的耐久度减半。 + + + 幻兽技能 + + + 处理召唤术师的幻兽技能(污灵之书),有概率将目标向远离攻击者的方向击退两格。 + + + 安魂弥撒技能 + + + 处理召唤术师的安魂弥撒技能(异灵之书),有概率使目标眩晕。 + + + 精通守护之魂 + + + 处理神导师的精通守护之魂技能。 + + + 强化守护之魂 + + + 处理神导师的强化守护之魂技能。 + + + 星云召唤技能 + + + 处理圣导师召唤队友的技能。 + + + 精通旋风斩 + + + 处理剑士的精通旋风斩技能,有概率将目标向远离攻击者的方向击退两格。 + + + 增加敏捷命令 + + + 为角色增加指定数量的敏捷点数。 + + + 增加统率命令 + + + 为角色增加指定数量的统率点数。 + + + 增加智力命令 + + + 为角色增加指定数量的智力点数。 + + + 增加力量命令 + + + 为角色增加指定数量的力量点数。 + + + 增加体力命令 + + + 为角色增加指定数量的体力点数。 + + + 封禁账号命令 + + + 处理 /banacc <acc>,封禁指定游戏账号。 + + + 封禁角色账号命令 + + + 处理 /banchar <char>,封禁指定角色所属的账号。 + + + 切换语言命令 + + + 处理 /language <isoCode>,更改账号使用的语言。 + + + 角色信息命令 + + + 处理 /charinfo <char>,向请求者返回指定角色的信息。 + + + 禁言命令 + + + 处理 /chatban <characterName> <durationMinutes>,将指定角色所属账号禁言指定分钟数。 + + + 解除禁言命令 + + + 处理 /chatunban <characterName>,解除指定角色所属账号的禁言。 + + + 创建怪物命令 + + + 处理 /createmonster <number> <intelligent>,创建可由游戏管理员远程控制的怪物。 + + + 断开连接命令 + + + 处理 /disconnect <char>,断开指定玩家与游戏服务器的连接。 + + + 战盟足球命令 + + + 处理 /battlesoccer <guildname>,向目标战盟盟主发送足球比赛邀请。 + + + 战盟成员下线命令 + + + 处理 /guilddisconnect <guild>,断开指定战盟成员的连接。 + + + 战盟传送命令 + + + 处理 /guildmove <guild> <map> <x?> <y?>,将指定战盟的角色传送到指定地图和坐标。 + + + 战盟宣战命令 + + + 处理 /war <guild>,向目标战盟盟主发送战盟战邀请。 + + + 命令帮助 + + + 处理 /help <command>,显示指定命令的说明。 + + + 隐身命令 + + + 处理 /hide,使其他玩家看不到自己。 + + + 生成物品命令 + + + 处理 /item <group> <number> <lvl?> <exc?> <sk?> <lu?> <opt?> <anc?> <ancBonuslvl?>,在角色旁生成指定物品。 + + + 清除地图怪物命令 + + + 处理 /killall,击杀当前地图上的所有怪物。 + + + 命令列表 + + + 列出所有命令。 + + + 传送命令 + + + 处理 /move <target> <mapIdOrName?> <x?> <y?>,将角色传送到指定目的地。 + + + 移动受控怪物命令 + + + 处理 /movemonster <id> <x> <y>,移动此前创建、可由游戏管理员远程控制的怪物。 + + + 金色公告命令 + + + 处理 /goldnotice message,向所有玩家发送全局金色公告。 + + + 打开商店命令 + + + 打开商人 NPC 的商店。 + + + 在线人数命令 + + + 处理 /online,获取在线游戏管理员和玩家的人数。 + + + 打开仓库命令 + + + 打开仓库。 + + + 设置 PK 状态命令 + + + 处理 /pk <char> <pk_lvl> <pk_count>,设置角色的 PK 等级和杀人数。 + + + 清除 PK 记录命令 + + + 处理 /pkclear <char>,清除角色的杀人数。 + + + 全服喊话命令 + + + 处理 /post message,向所有玩家发送全局蓝色系统消息。 + + + 移除 NPC 命令 + + + 处理 /removenpc <id>。 + + + 烟花命令 + + + 处理 /fireworks <x> <y>,在指定坐标显示烟花效果。 + + + 圣诞烟花命令 + + + 处理 /xmasfireworks <x> <y>,在指定坐标显示圣诞烟花效果。 + + + 变身命令 + + + 处理 /skin <number>,将游戏管理员角色的外观设为指定怪物。 + + + 跳过副本等待命令 + + + 处理 /skipwait,跳过副本当前的等待阶段(入场、倒计时、待机);被跳过的等待按已完成处理。 + + + 开启血色城堡命令 + + + 处理 /startbc,在下一个允许的时机开启血色城堡。 + + + 开启赤色要塞命令 + + + 处理 /startcc,在下一个允许的时机开启赤色要塞。 + + + 开启恶魔广场命令 + + + 处理 /startds,在下一个允许的时机开启恶魔广场。 + + + 开启坎特鲁副本命令 + + + 处理 /startkanturu,在下一个允许的时机开启坎特鲁副本。 + + + 坐标瞬移命令 + + + 处理 /teleport <x> <y>,将游戏管理员传送至指定坐标。 + + + 追踪玩家命令 + + + 处理 /trace <char>,将游戏管理员传送至指定角色所在位置。 + + + 召来玩家命令 + + + 处理 /track <char>,将指定玩家传送至游戏管理员所在位置。 + + + 解封账号命令 + + + 处理 /unbanacc <acc>,解除指定游戏账号的封禁。 + + + 解封角色账号命令 + + + 处理 /unbanchar <char>,解除指定角色所属账号的封禁。 + + + 解除隐身命令 + + + 处理 /unhide,使其他玩家重新看到自己。 + + + 受控怪物行走命令 + + + 处理 /walkmonster <id> <x> <y>,让此前创建、可由游戏管理员远程控制的怪物走向指定坐标。 + + + 黄金部队入侵 + + + 处理黄金部队入侵活动。 + + + 红龙入侵 + + + 处理红龙入侵活动。 + + + 欢乐时光 + + + 处理欢乐时光活动。 + + + 250 级解锁圣导师 + + + 账号中首个角色达到 250 级时解锁圣导师职业。 + + + 220 级解锁魔剑士 + + + 账号中首个角色达到 220 级时解锁魔剑士职业。 + + + 150 级解锁格斗家 + + + 账号中首个角色达到 150 级时解锁格斗家职业。 + + + 1 级解锁召唤术师 + + + 账号中首个角色达到 1 级时解锁召唤术师职业。 + + + 流浪商人 + + + 生成和移动流浪商人。 + + + 死亡金币损失 + + + 玩家被怪物击杀后扣除金币(Zen)。 + + + 技能学习物品使用 + + + 处理技能学习物品的消耗,例如魔法书和技能石。 + + + 指向技能默认处理 + + + 为指向技能提供默认的兜底处理。 + + + 分配属性点命令 + + + 处理 /add (ene|agi|vit|str|cmd) (amount),为角色的指定属性分配指定数量的属性点。 + + + 清空背包命令 + + + 清空背包。用法:/clearinv [character],角色参数可省略。 + + + 查询等级命令 + + + 查询玩家的等级。用法:/getlevel [character],角色参数可省略。 + + + 查询升级属性点命令 + + + 查询玩家的升级属性点。用法:/getleveluppoints [character],角色参数可省略。 + + + 查询大师等级命令 + + + 查询玩家的大师等级。用法:/getmasterlevel [character],角色参数可省略。 + + + 查询大师技能点命令 + + + 查询玩家的大师技能点。用法:/getmasterleveluppoints [character],角色参数可省略。 + + + 查询金币命令 + + + 查询玩家的金币。用法:/getmoney [character],角色参数可省略。 + + + 查询转生次数命令 + + + 查询玩家的转生次数。用法:/getresets [character],角色参数可省略。 + + + 查询属性点命令 + + + 查询属性点。用法:/get (ene|agi|vit|str|cmd) [character],角色参数可省略。 + + + 设置等级命令 + + + 设置玩家的等级。用法:/setlevel (level) [character],角色参数可省略。 + + + 设置升级属性点命令 + + + 设置玩家的升级属性点。用法:/setleveluppoints (points) [character],角色参数可省略。 + + + 设置大师等级命令 + + + 设置玩家的大师等级。用法:/setmasterlevel (level) [character],角色参数可省略。 + + + 设置大师技能点命令 + + + 设置玩家的大师技能点。用法:/setmasterleveluppoints (points) [character],角色参数可省略。 + + + 设置金币命令 + + + 设置玩家的金币。用法:/setmoney (amount) [character],角色参数可省略。 + + + 设置转生次数命令 + + + 设置玩家的转生次数。用法:/setresets (resets) [character],角色参数可省略。 + + + 设置属性点命令 + + + 设置属性点。用法:/set (ene|agi|vit|str|cmd) (amount) [character],角色参数可省略。 + + + 成功率(%) + + + 物品强化升级的成功率,以百分比表示。 + + + 幸运属性增加的成功率(%) + + + 物品具有幸运属性时额外增加的成功率。 + + + 最低物品强化等级 + + + 使用宝石前,物品必须达到的最低强化等级。 + + + 最高物品强化等级 + + + 允许使用宝石的最高物品强化等级。 + + + 增加的强化等级 + + + 尝试为物品增加强化等级的次数,最高不超过允许的强化等级。 + + + 失败归零的最低强化等级 + + + 达到此强化等级后,强化失败会使物品的强化等级归零。 + + + 允许强化的物品 + + + 指定允许强化的物品;留空时允许除“禁止强化的物品”之外的所有物品。 + + + 禁止强化的物品 + + + 指定禁止强化的物品。 + + + 金币费用 + + + 清空背包所需的金币,游戏管理员除外。默认值为 0。 + + + 需要二次确认 + + + 启用后,玩家需在 10 秒内再次执行命令才能确认清空背包,游戏管理员除外。 + + + 确认提示 + + + 提示玩家在 10 秒内再次执行命令以确认清空背包的消息。 + + + 金币不足提示 + + + 玩家金币不足、无法执行命令时显示的消息。 + + + 背包已清空提示 + + + 背包清空后显示的消息。 + + + NPC 编号 + + + 打开商店所使用的 NPC 编号,默认值为 253(药水商人)。 + + + 最低 VIP 等级 + + + 使用命令所需的最低 VIP 等级,默认值为 0。 + + + VIP 等级不足提示 + + + 玩家未达到命令要求的 VIP 等级时显示的消息,游戏管理员除外。 + + + 最低 VIP 等级 + + + 使用命令所需的最低 VIP 等级,游戏管理员除外。默认值为 0。 + + + VIP 等级不足提示 + + + 玩家未达到命令要求的 VIP 等级时显示的消息,游戏管理员除外。 + + + 显示 NPC 编号命令 + + + 处理 /showids。 + + + 各阶段费用系数 + + + 每个扣费间隔按此系数乘以角色总等级计算费用。 + + + 扣费间隔 + + + 阶段间隔 + + + 每经过一个间隔进入下一阶段,费用通常随阶段增加。 + + + 最低角色等级 + + + 最高角色等级 + + + 总恢复比例 + + + 每级药水增加的恢复比例 + + + 每级药水减少的恢复延迟比例 + + + 取值大于 0 且小于 1。若设为 1,则药水从 1 级起便会瞬间恢复。 + + + 额外恢复基数(减去角色等级) + + + 额外恢复量的基数,实际计算时减去角色等级。 + + + 使用冷却时间 + + + 再次使用物品前需要等待的冷却时间。 + + + 恢复步骤 + + + 未配置恢复步骤时立即完成恢复。 + + + 正当防卫持续时间 + + + 提示消息 + + + 各等级损失配置 + + + 最低等级 + + + 大师等级 + + + 背包金币损失比例(%) + + + 仓库金币损失比例(%) + + + 各等级损失配置 + + + 最低等级 + + + 大师等级 + + + 各阶段损失配置 + + + 状态 + + + 经验损失比例(%) + + + 保存间隔 + + + 时间安排 + + + 开始前消息延迟 + + + 最短活动持续时间 + + + 开始公告 + + + 活动开始时在游戏中以金色公告显示的文字。 + + + 结束公告 + + + 活动结束时在游戏中以金色公告显示的文字。 + + + 转生次数上限 + + + 所需等级 + + + 转生后的等级 + + + 所需金币 + + + 金币费用乘以转生次数 + + + 基础属性重置为职业初始值 + + + 每次转生获得的属性点 + + + 属性点乘以转生次数 + + + 用转生总点数替换升级属性点 + + + 返回出生地 + + + 退出游戏 + + + 入口开放公告 + + + 入口关闭公告 + + + 经验倍率 + + + 最短出现时间 + + + 最长出现时间 + + + [{mapName}] 怪物入侵! + + + 离线练级命令 + + + 允许玩家通过 /offlevel 开始离线练级。客户端断开后角色仍留在游戏世界中,玩家重新登录时停止离线练级。 + + + 自动重返队伍 + + + 玩家进入游戏时自动重新加入之前的队伍。 + + + 怪物属性调整 + + + 按可配置的百分比增加所有怪物的基础属性。 + + + 属性重置 + + + 提供属性重置功能的配置。 + + + 重置属性命令 + + + 处理 /resetstats。 + + + 所需等级 + + + 所需金币 + + + 重置所需物品 + + + 启用聊天命令 + + + 返回出生地 + + + 退出游戏 + + + 攻城战生命石使用 + + + 攻城战期间成功放置生命石后消耗该物品。 + + + 镜像世界奖励宝箱 + + + 玩家与宝箱交互时打开镜像世界的奖励宝箱。 + + + 次元碎片合成 + + + 将叠满的次元碎片转换为次元之镜。 + + + 镜像世界 + + + 配置镜像世界的怪物、行进路线和倍率等内容。 + + + 启用 + + + 启用后,服务器启动时生成机器人。 + + + 重建机器人 + + + 下次启动时删除所有机器人账号和角色并重新生成,完成后自动关闭此选项。 + + + 清除机器人 + + + 删除所有机器人账号和角色并关闭机器人功能,不再生成新机器人,完成后自动关闭此选项。 + + + 以新角色状态开始 + + + 新生成的机器人以 1 级、未强化的初始装备开始,如同新建玩家角色,不使用随机等级、转生记录和强化装备。 + + + 轮换在线 + + + 机器人按时段轮流上下线,深夜在线最少、晚间最多,不再全天全部在线。 + + + 最低在线比例(%) + + + 最冷清时段保持在线的机器人占比;设为 100 时不产生轮换效果。 + + + 账号数量 + + + 需要维持的机器人账号数量。 + + + 每个账号的角色数 + + + 每个机器人账号拥有的角色数,最多 5 个。 + + + 机器人名额占比(%) + + + 机器人最多可占用服务器玩家容量的比例,其余名额留给真人玩家。 + + + 机器人支付转生费用 + + + 启用后,机器人转生时与真人玩家一样支付配置的金币和物品费用;默认免费转生。 + + + 每种宝石储备量 + + + 机器人分别保留的祝福、灵魂、生命宝石数量;超过后停止拾取并出售多余部分。 + + + 药水储备量(使用次数) + + + 机器人在商店补充治疗和魔力药水时,分别补足的可使用次数。 + + + 额外托管账号 + + + 除自动生成的机器人外,额外托管为机器人的现有账号登录名,以逗号分隔。 + + + 机器人自卫 + + + 玩家攻击服务器机器人时,机器人会反击。 + + + 机器人复仇 + + + 服务器机器人返回死亡地点,向击杀自己的玩家复仇。 + + + 机器人成长 + + + 服务器机器人升级时分配属性点,并学习适合其职业和等级的新技能。 + + + 机器人 + + + 生成在地图上打怪的服务器机器人。配置需要托管的账号并启用此功能。 + + + 每个 IP 的最大连接数 + + + 限制同一 IP 地址的最大同时连接数。 + + + 移动与攻击加速检测 + + + 检测并阻止玩家使用移动或攻击加速作弊。 + + + 坎特鲁入口机器 + + + 处理坎特鲁入口机器 NPC 的副本入场交互。 + + + 昆顿印记合成 + + + 将叠满的昆顿印记转换为失落的地图。 + + + 决斗出生点选择 + + + 将决斗中的玩家生成在决斗区域中所属的一侧。 + + + 战盟足球出生点选择 + + + 将正在参加足球比赛的玩家生成在足球场上。 + + + 宠物经验分配 + + + 将玩家击杀所得经验的一部分分配给可培养的宠物。 + + + 强制在同一地图刷新 + + + 怪物刷新配置 + + + 白魔法师入侵 + + + 启用白魔法师入侵活动。 + + + NPC 物品登记规则 + + + 配置不同 NPC 接收物品登记的规则。 + + + NPC 编号 + + + NPC 定义编号,例如黄金弓箭手为 236。 + + + 接收物品的分组 + + + 允许登记的物品分组,例如活动物品为 14。 + + + 接收物品的编号 + + + 允许登记的物品编号,例如蕾娜为 21。 + + + 所需物品数量 + + + 领取奖励所需登记的物品数量。 + + + 奖励金币 + + + 登记物品达到要求数量时奖励的金币。 + + + 奖励物品掉落组 + + + 用于生成物品奖励的掉落组。留空时不掉落物品,仅奖励金币。 + + + 赤色要塞定时开启 + + + 赤色要塞活动。 + + + 坎特鲁副本定时开启 + + + 坎特鲁提炼之塔活动。 + + + 血色城堡定时开启 + + + 血色城堡活动。 + + + 恶魔广场定时开启 + + + 恶魔广场活动。 + + + 每点杀人数清除费用(金币) + + + 清除一点杀人数所需的金币。 + + + 允许普通玩家使用 + + + 允许普通玩家支付金币,使用此命令清除自身 PK 状态。 + + + 失落的地图入口生成 + + + 处理丢弃失落的地图的操作,创建通往卡利玛神庙的入口。 + + + 宝箱掉落处理 + + + 处理丢弃宝箱的操作,例如昆顿宝箱。 + + + 转生所需物品 + + + 物品费用档位 + + + 属性点档位 + + + 最低转生次数 + + + 发放属性点 + + + 最低转生次数 + + + 所需物品数量 + + + 测试角色攻击记录 + + + 将脚本测试角色造成和受到的攻击记录到其事件流中。 + + 最大生命值增幅(%) + 防御力增幅(%) + 防御成功率增幅(%) + 攻击成功率增幅(%) + 伤害增幅(%) + 全部属性增幅(%) + 每个 IP 的最大同时连接数 + 最短攻击间隔(毫秒) + 攻击速度换算系数 + 攻击基础间隔(毫秒) + 攻击令牌上限 + 允许的最大移动起点偏差 + 移动速度容差(毫秒) + 警告记录保留时间(小时) + 告警最小间隔(秒) + 警告次数上限 + 违规时断开连接 + 自动封禁 + Y 坐标 + X 坐标 + 在所有选中地图上刷新 + 公告怪物死亡 + 地图选择方式 + 地图 ID 列表 + 数量 + 怪物 ID + 副本定义 + 修复目标物品 + diff --git a/src/GameServer/Properties/PlugInResources.Designer.cs b/src/GameServer/Properties/PlugInResources.Designer.cs index c95bd29cfc..8715c4f9cd 100644 --- a/src/GameServer/Properties/PlugInResources.Designer.cs +++ b/src/GameServer/Properties/PlugInResources.Designer.cs @@ -7151,5 +7151,11 @@ public static string CastleSiegeLifeStoneStatePlugIn_Name { return ResourceManager.GetString("CastleSiegeLifeStoneStatePlugIn_Name", resourceCulture); } } + /// Gets the localized EnterMarketPlace_Name text. + public static string EnterMarketPlace_Name => ResourceManager.GetString("EnterMarketPlace_Name", resourceCulture)!; + + /// Gets the localized EnterMarketPlace_Description text. + public static string EnterMarketPlace_Description => ResourceManager.GetString("EnterMarketPlace_Description", resourceCulture)!; + } } diff --git a/src/GameServer/Properties/PlugInResources.resx b/src/GameServer/Properties/PlugInResources.resx index 5b4e5b0a49..73862cccc2 100644 --- a/src/GameServer/Properties/PlugInResources.resx +++ b/src/GameServer/Properties/PlugInResources.resx @@ -2481,4 +2481,6 @@ Sends Castle Siege Life Stone creation progress to the game client. + Enter Market Place Handler + Handler which warps a player between Lorencia and the Loren Market when using the 'Warp' button of Market Union Member Julia. diff --git a/src/GameServer/Properties/PlugInResources.zh-CN.resx b/src/GameServer/Properties/PlugInResources.zh-CN.resx new file mode 100644 index 0000000000..f0b37e34be --- /dev/null +++ b/src/GameServer/Properties/PlugInResources.zh-CN.resx @@ -0,0 +1,2427 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 动作处理 + + + 处理动作相关数据包。 + + + 范围技能攻击处理 + + + 处理范围技能攻击相关数据包。 + + + 范围技能攻击处理(0.75) + + + 处理范围技能攻击相关数据包(版本 0.75)。 + + + 范围技能攻击处理(0.95) + + + 处理范围技能攻击相关数据包(版本 0.95)。 + + + 范围技能命中处理 + + + 处理范围技能命中相关数据包。 + + + 范围技能命中处理(0.75) + + + 处理范围技能命中相关数据包。 + + + 范围技能命中处理(0.95) + + + 处理范围技能命中相关数据包。 + + + 角色移动处理 + + + 处理角色移动相关数据包。 + + + 角色移动处理(0.75) + + + 处理角色移动相关数据包(版本 0.75)。 + + + 角色行走处理 + + + 处理角色行走相关数据包。 + + + 角色行走处理(0.75) + + + 处理角色行走相关数据包。 + + + 聊天消息处理 + + + 处理聊天消息相关数据包。 + + + 关闭 NPC 对话处理 + + + 处理关闭 NPC 对话相关数据包。 + + + 守门人入场处理 + + + 处理守门人入场相关数据包(EnterOnGatekeeperRequest)。 + + + 狼人入场处理 + + + 处理狼人入场相关数据包(EnterOnWerewolfRequest)。 + + + 攻击命中处理 + + + 处理攻击命中相关数据包。 + + + 攻击命中处理(0.75) + + + 处理攻击命中相关数据包。 + + + 取消魔法效果处理 + + + 处理取消魔法效果相关数据包。 + + + NPC 对话处理 + + + 处理NPC 对话相关数据包。 + + + NPC 对话处理(0.75) + + + 处理NPC 对话相关数据包。 + + + 指向技能处理 + + + 处理指向技能相关数据包。 + + + 指向技能处理(0.75) + + + 处理指向技能相关数据包(版本 0.75)。 + + + 指向技能处理(0.95) + + + 处理指向技能相关数据包(版本 0.95)。 + + + 队友传送处理 + + + 处理队友传送技能的目标传送数据包。 + + + 传送门处理(0.75) + + + 处理传送门相关数据包。 + + + 传送门处理 + + + 处理传送门相关数据包。 + + + 地图传送处理 + + + 处理地图传送相关数据包。 + + + 私聊消息处理 + + + 处理私聊消息相关数据包。 + + + 角色外观序列化 + + + 角色外观的默认序列化实现,很可能仅适用于 Season 6。 + + + 角色外观序列化(0.75) + + + 适用于 0.75 版客户端的角色外观序列化实现。 + + + 角色外观序列化(0.95) + + + 适用于 0.95 版客户端的角色外观序列化实现。 + + + 角色外观序列化(扩展版) + + + 角色外观的扩展序列化实现。 + + + 聊天消息显示 + + + 向玩家发送聊天消息的显示插件。 + + + 特殊物品消耗通知 + + + IConsumeSpecialItemPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品序列化 + + + 默认物品序列化实现,很可能仅适用于 Season 6。 + + + 物品序列化(0.75) + + + 适用于 0.75 版客户端的物品序列化实现。 + + + 物品序列化(0.95) + + + 适用于 0.95 版客户端的物品序列化实现。 + + + 物品序列化(扩展版) + + + 扩展物品序列化实现,很可能仅适用于 Season 6。 + + + 消息显示 + + + IShowMessagePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 取消创建战盟处理 + + + 处理取消创建战盟相关数据包(CancelGuildCreation)。 + + + 创建战盟处理 + + + 处理创建战盟相关数据包。 + + + 创建战盟处理(0.75) + + + 处理创建战盟相关数据包。 + + + 战盟信息请求处理 + + + 处理战盟信息请求相关数据包。 + + + 战盟踢人处理 + + + 处理战盟踢人相关数据包。 + + + 战盟列表请求处理 + + + 处理战盟列表请求相关数据包。 + + + 盟主答复处理 + + + 处理盟主答复相关数据包。 + + + 入盟申请答复处理 + + + 处理入盟申请答复相关数据包。 + + + 入盟申请处理 + + + 处理入盟申请相关数据包。 + + + 战盟战答复处理 + + + 处理战盟战答复相关数据包。 + + + 战盟关系变更请求处理 + + + 处理战盟关系变更请求,包括联盟和敌对申请。 + + + 战盟关系变更答复处理 + + + 处理战盟关系变更答复,即目标战盟盟主的答复。 + + + 联盟列表请求处理 + + + 处理联盟列表请求相关数据包。 + + + 联盟协议分组处理 + + + 处理联盟协议分组相关数据包(0xEB 标识)。 + + + 移除联盟战盟处理 + + + 处理移除联盟战盟相关数据包。 + + + NPC 物品购买处理 + + + 处理NPC 物品购买相关数据包。 + + + 玛雅合成处理 + + + 处理玛雅合成相关数据包。 + + + 使用物品处理 + + + 处理使用物品相关数据包。 + + + 使用物品处理(0.75) + + + 处理使用物品相关数据包(版本 0.75)。 + + + 丢弃物品处理 + + + 处理丢弃物品相关数据包。 + + + 移动物品处理(扩展版) + + + 处理移动物品相关数据包。 + + + 移动物品处理 + + + 处理移动物品相关数据包。 + + + 修理物品处理 + + + 处理修理物品相关数据包。 + + + 宝石合成处理 + + + 处理宝石合成相关数据包。 + + + 坎特鲁入场请求处理 + + + 处理 0xD1/0x01(KanturuEnterRequest)并将玩家传送进坎特鲁副本。 + + + 坎特鲁协议分组处理 + + + 将 0xD1 坎特鲁客户端数据包分发至对应子处理器。 + + + 坎特鲁信息请求处理 + + + 响应 0xD1/0x00(KanturuInfoRequest),返回最新的副本状态信息。 + + + 拾取物品处理 + + + 处理拾取物品相关数据包。 + + + 拾取物品处理(0.75) + + + 处理拾取物品相关数据包(版本 0.75)。 + + + 出售物品给 NPC 处理 + + + 处理出售物品给 NPC 相关数据包。 + + + 登录处理 + + + 处理登录相关数据包。 + + + 退出登录处理 + + + 处理退出登录相关数据包。 + + + 添加好友处理 + + + 处理添加好友相关数据包。 + + + 在线状态变更处理 + + + 处理在线状态变更相关数据包。 + + + 聊天请求处理 + + + 处理聊天请求相关数据包。 + + + 聊天室邀请请求处理 + + + 处理玩家邀请其他玩家加入现有聊天室的请求。 + + + 删除好友处理 + + + 处理删除好友相关数据包。 + + + 添加好友答复处理 + + + 处理添加好友答复相关数据包。 + + + 删除信件处理 + + + 处理删除信件相关数据包。 + + + 读取信件请求处理 + + + 处理读取信件请求相关数据包。 + + + 发送信件处理 + + + 处理发送信件相关数据包。 + + + 血色城堡入场处理 + + + 处理血色城堡入场相关数据包。 + + + 赤色要塞入场处理 + + + 处理赤色要塞入场相关数据包。 + + + 恶魔广场入场处理 + + + 处理恶魔广场入场相关数据包。 + + + 活动副本开放状态请求处理 + + + 处理活动副本开放状态请求相关数据包。 + + + 奇迹助手数据保存处理 + + + 处理奇迹助手数据保存相关数据包。 + + + 奇迹助手状态变更处理 + + + 处理奇迹助手状态变更相关数据包。 + + + 队伍踢人处理 + + + 处理队伍踢人相关数据包。 + + + 队伍列表请求处理 + + + 处理队伍列表请求相关数据包。 + + + 组队请求处理 + + + 处理组队请求相关数据包。 + + + 组队答复处理 + + + 处理组队答复相关数据包。 + + + 宠物指令请求处理 + + + 处理宠物指令请求相关数据包。 + + + 宠物信息请求处理 + + + 处理宠物信息请求相关数据包。 + + + 个人商店协议分组处理 + + + 处理个人商店协议分组相关数据包。 + + + 交易申请答复处理 + + + 玩家答复交易申请时调用的数据包处理器。 + + + 交易按钮处理 + + + 处理交易按钮相关数据包。 + + + 取消交易处理 + + + 处理取消交易相关数据包。 + + + 交易金币处理 + + + 处理交易金币相关数据包。 + + + 交易请求处理 + + + 处理交易请求相关数据包。 + + + 关闭仓库处理 + + + 处理关闭仓库相关数据包。 + + + 仓库金币处理 + + + 处理仓库金币相关数据包。 + + + 增加经验通知(扩展版) + + + IAddExperiencePlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 增加经验通知 + + + IAddExperiencePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 应用快捷键配置 + + + IUpdateVaultMoneyPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 角色选中通知 + + + ICharacterFocusedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 果实使用结果通知 + + + IFruitConsumptionResponsePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 大师技能等级变更通知 + + + IMasterSkillLevelChangedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 创建角色失败提示 + + + IShowCharacterCreationFailedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 删除角色结果显示 + + + IShowCharacterDeleteResponsePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 角色列表显示(扩展版) + + + IShowCharacterListPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 角色列表显示 + + + IShowCharacterListPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 角色列表显示(0.75) + + + IShowCharacterListPlugIn 的实现,通过专用数据包将相关信息发送至游戏客户端。适用于 0.75 版本。 + + + 角色列表显示(0.95) + + + IShowCharacterListPlugIn 的实现,通过专用数据包将相关信息发送至游戏客户端。适用于 0.75 版本。 + + + 新建角色显示 + + + IShowCreatedCharacterPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 对话框显示 + + + IShowDialogPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 特效显示 + + + IShowEffectPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品掉落特效显示 + + + ShowItemDropEffectPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 技能列表显示 + + + ISkillListViewPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 技能列表显示(0.75) + + + ISkillListViewPlugIn 的实现,通过专用数据包将相关信息发送至游戏客户端。适用于 0.75 版本。 + + + 技能列表显示(0.95) + + + ISkillListViewPlugIn 的实现,通过专用数据包将相关信息发送至游戏客户端。适用于 0.95 版本。 + + + 属性加点结果通知(扩展版) + + + IStatIncreaseResultPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 属性加点结果通知 + + + IStatIncreaseResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 角色基础属性更新(扩展版) + + + IUpdateCharacterBaseStatsPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 角色红名状态更新 + + + IUpdateCharacterHeroStatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 角色属性更新(扩展版) + + + IUpdateCharacterStatsPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 角色属性更新 + + + IUpdateCharacterStatsPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 角色属性更新(0.75) + + + IUpdateCharacterStatsPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。适用于 0.75 版本。 + + + 角色属性更新(0.97) + + + IUpdateCharacterStatsPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 等级更新(扩展版) + + + IUpdateLevelPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 等级更新 + + + IUpdateLevelPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 大师技能更新 + + + IUpdateMasterSkillsPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 大师属性更新(扩展版) + + + IUpdateMasterStatsPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 大师属性更新 + + + IUpdateMasterStatsPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 属性更新(扩展版) + + + IUpdateStatsPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 属性更新 + + + IUpdateStatsPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗结束通知 + + + IDuelEndedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗完成通知 + + + IDuelFinishedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗生命值更新 + + + IDuelHealthUpdatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗观战者加入通知 + + + IDuelSpectatorAddedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗观战列表更新 + + + IDuelSpectatorListUpdatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗观战者离开通知 + + + IDuelSpectatorRemovedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗状态更新 + + + IDuelStatusUpdatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗初始化 + + + IInitializeDuelPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗邀请显示 + + + IShowDuelRequestPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗邀请结果显示 + + + IShowDuelRequestResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 决斗比分更新 + + + IShowDuelScoreUpdatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 玩家战盟归属通知 + + + IAssignPlayersToGuildPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 玩家战盟归属通知(0.75) + + + IAssignPlayersToGuildPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 入盟结果通知 + + + IGuildJoinResponsePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟踢人结果通知 + + + IGuildKickResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟战比分更新 + + + IGuildWarScoreUpdatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 玩家退盟通知 + + + IPlayerLeftGuildPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 创建战盟结果显示 + + + IShowGuildCreateResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 创建战盟对话框显示 + + + IShowGuildCreationDialogPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟信息显示 + + + IShowGuildInfoPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 入盟申请显示 + + + IShowGuildJoinRequestPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟列表显示 + + + IShowGuildListPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟列表显示(0.75) + + + IShowGuildListPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟管理员对话框显示 + + + IShowGuildMasterDialogPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 宣战通知显示 + + + IShowGuildWarDeclaredPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟战邀请显示 + + + IShowGuildWarRequestPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟战结果显示 + + + IShowGuildWarResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟关系变更结果显示 + + + IGuildRelationshipChangeResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟关系申请显示 + + + IShowGuildRelationshipRequestPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 联盟列表显示 + + + IShowAllianceListPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 战盟战邀请结果显示 + + + IShowShowGuildWarRequestResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + NPC 物品购买失败通知 + + + IBuyNpcItemFailedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品出现通知 + + + IItemAppearPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 丢弃物品结果通知 + + + IItemDropResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品耐久度变更通知 + + + IItemDurabilityChangedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品移动通知 + + + IItemMovedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品移动失败通知 + + + IItemMoveFailedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品拾取失败通知 + + + IItemPickUpFailedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品定价结果通知 + + + IItemPriceSetResponsePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品移除通知 + + + IItemRemovedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 个人商店售出通知 + + + IItemSoldByPlayerShopPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 向 NPC 出售物品通知 + + + IItemSoldToNpcPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品强化通知 + + + IItemUpgradedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + NPC 物品购买通知 + + + INpcItemBoughtPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 个人商店购买结果通知(扩展版) + + + IPlayerShopBuyRequestResultPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 个人商店购买结果通知 + + + IPlayerShopBuyRequestResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品使用失败通知(扩展版) + + + IRequestedItemConsumptionFailedPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品使用失败通知 + + + IRequestedItemConsumptionFailedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 背包列表更新 + + + IUpdateInventoryListPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 金币更新 + + + IUpdateMoneyPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 退出登录通知 + + + ILogoutPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 登录结果显示 + + + IShowLoginResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 登录窗口显示 + + + IShowLoginWindowPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 信件列表追加 + + + IAddToLetterListPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 聊天室创建通知 + + + IChatRoomCreatedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 好友添加通知 + + + IFriendAddedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 好友删除通知 + + + IFriendDeletedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 好友状态更新 + + + IFriendStateUpdatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 好友系统初始化 + + + IInitializeMessengerPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 信件删除通知 + + + ILetterDeletedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 信件发送结果通知 + + + ILetterSendResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 好友邀请结果显示 + + + IShowFriendInvitationResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 好友申请显示 + + + IShowFriendRequestPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 信件显示(扩展版) + + + IShowLetterPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 信件显示 + + + IShowLetterPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 血色城堡积分榜显示 + + + 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 血色城堡状态显示 + + + 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 地形属性变更通知 + + + 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 赤色要塞状态显示 + + + 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 镜像世界入场请求处理 + + + 处理镜像世界入场请求相关数据包。 + + + 镜像世界状态显示 + + + 向客户端发送镜像世界数据包(0xBF 0x0F - 0x14)。 + + + 坎特鲁副本状态显示 + + + 向客户端发送坎特鲁副本的状态、结果及界面信息数据包(0xD1 分组)。 + + + 活动副本积分榜显示 + + + 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 活动副本入场结果显示 + + + IShowMiniGameEnterResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 活动副本开放状态显示 + + + IShowMiniGameOpeningStatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 活动副本状态更新 + + + IUpdateMiniGameStateViewPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 奇迹助手配置更新 + + + 向客户端发送新的奇迹助手状态。 + + + 奇迹助手状态更新 + + + 向客户端发送奇迹助手状态更新。 + + + NPC 对话关闭通知(0.75) + + + INpcDialogClosedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + NPC 窗口打开通知 + + + IOpenNpcWindowPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 物品合成结果显示 + + + IShowItemCraftingResultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 商人商品列表显示 + + + IShowMerchantStoreItemListPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 对象消息显示 + + + IShowMessageOfObjectPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 队伍生命值显示 + + + 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 队员移除通知 + + + IPartyMemberRemovedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 组队邀请显示 + + + IShowPartyRequestPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 队伍列表更新 + + + IUpdatePartyListPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 队伍列表更新(0.75) + + + IUpdatePartyListPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 宠物攻击显示 + + + 显示宠物攻击的插件。 + + + 宠物行为变更显示 + + + 通知宠物行为变更的显示插件。 + + + 宠物信息显示 + + + IPetInfoViewPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 个人商店关闭通知 + + + IPlayerShopClosedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 个人商店开张通知 + + + IPlayerShopOpenedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 个人商店物品列表显示(扩展版) + + + IShowShopItemListPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 个人商店物品列表显示 + + + IShowShopItemListPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 玩家商店显示 + + + IShowShopsOfPlayersPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 进行中任务显示 + + + ICurrentlyActiveQuestsPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 旧版任务奖励通知 + + + ILegacyQuestRewardPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 旧版任务状态对话框 + + + ILegacyQuestStateDialogPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 任务取消通知 + + + IQuestCancelledPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 任务完成结果通知 + + + IQuestCompletionResponsePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 活动任务答复 + + + IQuestEventResponsePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 任务进度显示(扩展版) + + + IQuestProgressPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 任务进度显示 + + + IQuestProgressPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 任务开始通知 + + + IQuestStartedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 任务状态答复(扩展版) + + + IQuestStateResponsePlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 任务状态答复 + + + IQuestStateResponsePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 任务步骤信息显示 + + + IQuestStepInfoPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 可接任务显示 + + + IShowAvailableQuestsPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 交易按钮状态变更 + + + IChangeTradeButtonStatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 交易金币设置确认 + + + IRequestedTradeMoneyHasBeenSetPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 交易金币设置通知 + + + ISetTradeMoneyPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 交易邀请答复显示 + + + IShowTradeRequestAnswerPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 交易邀请显示 + + + IShowTradeRequestPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 交易完成通知 + + + ITradeFinishedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 交易物品出现通知 + + + ITradeItemAppearPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 交易物品移除通知 + + + ITradeItemDisappearPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 仓库关闭通知 + + + ICloseVaultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 仓库锁变更结果显示 + + + IShowVaultLockChangeResponse 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 仓库显示 + + + IShowVaultPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 仓库金币更新 + + + IUpdateVaultMoneyPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 仓库状态更新 + + + IUpdateVaultStatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 角色外观变更通知 + + + IAppearanceChangedPlugIn 的默认实现,通过专用数据包将其他玩家的外观变化发送至游戏客户端。 + + + 魔法效果启用与取消 + + + IActivateMagicEffectPlugIn、IDeactivateMagicEffectPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 魔法效果启用与取消(0.75) + + + IActivateMagicEffectPlugIn、IDeactivateMagicEffectPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 掉落物品消失通知 + + + IDroppedItemsDisappearedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 地图切换通知 + + + IMapChangePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 地图切换通知(0.75) + + + IMapChangePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 地图事件状态更新 + + + IMapEventStateUpdatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 视野内新增 NPC 通知 + + + INewNpcsInScopePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 视野内新增 NPC 通知(0.75) + + + INewNpcsInScopePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。适用于 0.75 版本。 + + + 视野内新增 NPC 通知(0.95) + + + INewNpcsInScopePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。适用于 0.75 版本。 + + + 视野内新增玩家通知(扩展版) + + + INewPlayersInScopePlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 视野内新增玩家通知 + + + INewPlayersInScopePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 视野内新增玩家通知(0.75) + + + INewPlayersInScopePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。适用于 0.75 版本。 + + + 视野内新增玩家通知(0.95) + + + INewPlayersInScopePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。适用于 0.75 版本。 + + + 对象死亡通知 + + + IObjectGotKilledPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 对象移动通知 + + + IObjectMovedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 对象移动通知(0.75) + + + IObjectMovedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 对象移动通知(扩展版) + + + IObjectMovedPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 对象离开视野通知 + + + IObjectsOutOfScopePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 死亡后复活通知(扩展版) + + + IRespawnAfterDeathPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 死亡后复活通知 + + + IRespawnAfterDeathPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 死亡后复活通知(0.75) + + + IRespawnAfterDeathPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 死亡后复活通知(0.95) + + + IRespawnAfterDeathPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 动作显示 + + + IShowAnimationPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 动作显示(0.75) + + + IShowAnimationPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 范围技能动作显示 + + + IShowAreaSkillAnimationPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 范围技能动作显示(0.75) + + + IShowAreaSkillAnimationPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 范围技能动作显示(0.95) + + + IShowAreaSkillAnimationPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 链雷咒显示 + + + IShowChainLightningPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 掉落物品显示 + + + IShowDroppedItemsPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 攻击命中显示(扩展版) + + + IShowHitPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 攻击命中显示 + + + IShowHitPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 金币掉落显示(0.75) + + + IShowMoneyDropPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 金币掉落显示(扩展版) + + + IShowMoneyDropPlugIn 的扩展实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 金币掉落显示 + + + IShowMoneyDropPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 格斗家攻击显示 + + + IShowRageAttackPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 格斗家攻击范围显示 + + + IShowRageAttackRangePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 技能动作显示 + + + IShowSkillAnimationPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 技能动作显示(0.75) + + + IShowSkillAnimationPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 技能动作显示(0.95) + + + IShowSkillAnimationPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 技能阶段更新 + + + 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 瞬移通知 + + + ITeleportPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 瞬移通知(0.75) + + + ITeleportPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 朝向更新 + + + IUpdateRotationPlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 天气状态更新 + + + IWeatherStatusUpdatePlugIn 的默认实现,通过专用数据包将相关信息发送至游戏客户端。 + + + 关闭合成窗口请求处理 + + + 处理关闭玛雅哥布林合成窗口的数据包。 + + + NPC 操作协议分组处理 + + + 处理NPC 操作协议分组相关数据包(0xD0 标识)。 + + + 格斗家范围技能攻击处理 + + + 处理格斗家的范围攻击技能数据包(Dark Side)。 + + + 格斗家范围技能攻击请求处理 + + + 处理格斗家的范围攻击技能数据包(Dark Side)。 + + + 大师技能加点处理 + + + 处理大师技能加点相关数据包(0xF3, 0x52 标识)。 + + + 客户端就绪处理 + + + 处理切换地图后发送的客户端就绪数据包(0xF3, 0x12)。 + + + 创建角色处理 + + + 处理创建角色相关数据包(0xF3, 0x01 标识)。 + + + 删除角色处理 + + + 处理删除角色相关数据包(0xF3, 0x02 标识)。 + + + 选中角色处理 + + + 处理选中角色相关数据包(0xF3, 0x15 标识)。 + + + 角色协议分组处理 + + + 处理角色协议分组相关数据包(0xF3 标识)。 + + + 攻城战协议分组处理 + + + 将攻城战协议分组中的子协议分发至对应处理器。 + + + 魔炼之地协议分组处理 + + + 处理魔炼之地的分组数据包。 + + + 攻城战战争机器协议分组处理 + + + 将攻城战战争机器协议分组中的子协议分发至对应处理器。 + + + 战争机器发射处理 + + + 处理战争机器发射。 + + + 战争机器界面显示 + + + 向游戏客户端发送战争机器界面信息。 + + + 战争机器落点区域通知 + + + 向游戏客户端发送战争机器落点区域信息。 + + + 战争机器发射结果显示 + + + 向游戏客户端发送战争机器发射结果信息。 + + + 攻城战防御设施购买处理 + + + 处理攻城战防御设施购买。 + + + 攻城战防御设施修复处理 + + + 处理攻城战防御设施修复。 + + + 攻城战防御设施升级处理 + + + 处理攻城战防御设施升级。 + + + 攻城战城门列表请求处理 + + + 处理攻城战城门列表请求。 + + + 攻城战城门开关处理 + + + 处理攻城战城门开关。 + + + 攻城战 NPC 协议分组处理 + + + 将攻城战 NPC 协议分组中的子协议分发至对应处理器。 + + + 守护石像列表请求处理 + + + 处理守护石像列表请求。 + + + 攻城战防御设施列表显示 + + + 向游戏客户端发送攻城战防御设施列表信息。 + + + 攻城战防御设施操作结果显示 + + + 向游戏客户端发送攻城战防御设施操作结果信息。 + + + 攻城战战盟报名处理 + + + 处理攻城战战盟报名。 + + + 攻城战取消报名处理 + + + 处理攻城战取消报名。 + + + 攻城战报名状态请求处理 + + + 处理攻城战报名状态请求。 + + + 城主标识登记处理 + + + 处理城主标识登记。 + + + 城主标识登记结果显示 + + + 向游戏客户端发送城主标识登记结果信息。 + + + 攻城战报名结果显示 + + + 向游戏客户端发送攻城战报名结果信息。 + + + 攻城战报名状态显示 + + + 向游戏客户端发送攻城战报名状态信息。 + + + 攻城战入选战盟列表请求处理 + + + 处理攻城战入选战盟列表请求。 + + + 攻城战已报名战盟列表请求处理 + + + 处理攻城战已报名战盟列表请求。 + + + 攻城战入选战盟列表显示 + + + 向游戏客户端发送攻城战入选战盟列表信息。 + + + 攻城战已报名战盟列表显示 + + + 向游戏客户端发送攻城战已报名战盟列表信息。 + + + 攻城战阵营分配显示 + + + 向游戏客户端发送攻城战阵营分配信息。 + + + 角色快捷键配置处理 + + + 处理角色快捷键配置相关数据包(0xF3, 0x30 标识)。 + + + 角色列表请求处理 + + + 处理角色列表请求相关数据包(0xF3, 0x00 标识)。 + + + 角色选择处理 + + + 处理角色选择相关数据包(0xF3, 0x03 标识)。 + + + 角色属性加点处理 + + + 处理角色属性加点相关数据包(0xF3, 0x06 标识)。 + + + 加入决斗观战请求处理 + + + 处理观战者发送的加入决斗频道请求(新版决斗系统)。 + + + 退出决斗观战请求处理 + + + 处理观战者发送的退出决斗频道请求(新版决斗系统)。 + + + 决斗协议分组处理 + + + 处理决斗协议分组相关数据包(new system)。 + + + 开始决斗请求处理 + + + 处理开始决斗请求(新版决斗系统)。 + + + 决斗邀请答复处理 + + + 处理决斗邀请答复(新版决斗系统)。 + + + 停止决斗请求处理 + + + 处理停止决斗请求(新版决斗系统)。 + + + 登录退出协议分组处理 + + + 处理登录和退出登录数据包的分组(0xF1)。 + + + 作弊检测退出处理 + + + 处理作弊检测退出相关数据包(by cheat)。 + + + 奇迹助手协议分组处理 + + + 处理奇迹助手协议分组相关数据包(0xBF 标识)。 + + + 个人商店购买请求处理 + + + 处理个人商店购买请求(3F 06)。 + + + 关闭个人商店处理 + + + 处理关闭个人商店请求(3F 03)。 + + + 开启个人商店处理 + + + 处理开启个人商店请求(3F 02)。 + + + 个人商店物品列表请求处理 + + + 处理获取其他玩家商店物品列表的请求(3F 05)。 + + + 个人商店物品定价处理 + + + 处理个人商店物品定价请求(3F 01)。 + + + 进行中任务列表请求处理 + + + 处理进行中任务列表请求相关数据包(0xF3, 0x15 标识)。 + + + 可接任务请求处理 + + + 处理可接任务请求相关数据包(0xF6, 0x30 标识)。 + + + 增益效果请求处理 + + + 处理增益效果请求相关数据包(elf soldier;0xF6, 0x31 标识)。 + + + 活动任务状态请求处理 + + + 处理活动任务状态请求相关数据包(0xF6, 0x21 标识)。 + + + 取消任务请求处理 + + + 处理取消任务请求相关数据包(0xF6, 0x0F 标识)。 + + + 任务客户端操作处理 + + + 处理任务客户端操作相关数据包(0xF6, 0x10 标识)。 + + + 完成任务请求处理 + + + 处理完成任务请求相关数据包(0xF6, 0x0D 标识)。 + + + 任务协议分组处理 + + + 处理任务协议分组相关数据包(0xF6 标识)。 + + + 推进任务请求处理 + + + 处理推进任务请求相关数据包(0xF6, 0x0B 标识)。 + + + 选择任务请求处理 + + + 处理选择任务请求相关数据包(0xF6, 0x0A 标识)。 + + + 旧版任务状态列表请求处理 + + + 处理旧版任务系统的任务状态列表请求(0xA0)。 + + + 任务状态请求处理 + + + 处理任务状态请求相关数据包(0xF6, 0x1B 标识)。 + + + 旧版任务状态设置请求处理 + + + 处理旧版任务系统的任务状态设置请求(0xA2)。 + + + 移除仓库密码处理 + + + 处理移除仓库密码相关数据包(0x83, 0x02 标识)。 + + + 设置仓库密码处理 + + + 处理设置仓库密码相关数据包(0x83, 0x01 标识)。 + + + 解锁仓库处理 + + + 处理解锁仓库相关数据包(0x83, 0x00 标识)。 + + + 仓库锁协议分组处理 + + + 处理仓库锁协议分组相关数据包(0x83 标识)。 + + + 角色外观变更通知(扩展版) + + + IAppearanceChangedPlugIn 的扩展实现,通过专用数据包将其他玩家的外观变化发送至游戏客户端。 + + + 奇迹助手设置初始化 + + + 玩家进入游戏世界时初始化奇迹助手设置。 + + + 聊天命令列表显示 + + + 向客户端发送玩家可用的聊天命令,使客户端能够在界面中提供这些命令。 + + + 聊天命令协议分组处理 + + + 处理聊天命令相关的数据包(0xF5)。 + + + 聊天命令列表请求处理 + + + 处理获取玩家可用聊天命令列表的请求。 + + + 攻城战职印状态显示 + + + 向游戏客户端发送攻城战职印状态信息。 + + + 攻城战职印登录进度显示 + + + 向游戏客户端发送攻城战职印登录进度信息。 + + + 攻城战开关占领信息显示 + + + 向游戏客户端发送攻城战开关占领信息信息。 + + + 攻城战城主变更显示 + + + 向游戏客户端发送攻城战城主变更信息。 + + + 攻城战税率与国库信息请求处理 + + + 处理攻城战税率与国库信息请求。 + + + 攻城战税率修改处理 + + + 处理攻城战税率修改。 + + + 攻城战国库金币提取处理 + + + 处理攻城战国库金币提取。 + + + 魔炼之地开放设置处理 + + + 处理魔炼之地开放设置。 + + + 魔炼之地入场请求处理 + + + 处理魔炼之地入场请求。 + + + 攻城战税率与国库信息显示 + + + 向游戏客户端发送攻城战税率与国库信息信息。 + + + 攻城战税率修改结果显示 + + + 向游戏客户端发送攻城战税率修改结果信息。 + + + 攻城战国库金币提取结果显示 + + + 向游戏客户端发送攻城战国库金币提取结果信息。 + + + 魔炼之地入场信息显示 + + + 向游戏客户端发送魔炼之地入场信息信息。 + + + 魔炼之地请求结果显示 + + + 向游戏客户端发送魔炼之地请求结果信息。 + + + 攻城战生命石创建进度显示 + + + 向游戏客户端发送攻城战生命石创建进度信息。 + + 进入罗兰市场处理器 + 处理市场联盟成员茱莉娅的传送请求,让玩家在勇者大陆与罗兰市场之间传送。 + diff --git a/src/Interfaces/Properties/ModelResources.zh-CN.resx b/src/Interfaces/Properties/ModelResources.zh-CN.resx new file mode 100644 index 0000000000..afedfd430d --- /dev/null +++ b/src/Interfaces/Properties/ModelResources.zh-CN.resx @@ -0,0 +1,451 @@ + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 信件信息 + + + 信件信息列表 + + + + + + ID + + + + + + 发件人名称 + + + + + + 收件人名称 + + + + + + 主题 + + + + + + 发送时间 + + + + + + 已读 + + + + + + 战盟成员记录 + + + 战盟成员记录列表 + + + + + + 玩家名称 + + + + + + 服务器 ID + + + + + + 战盟职位 + + + + + + 战盟 + + + 战盟列表 + + + + + + 名称 + + + + + + 徽标 + + + + + + 分数 + + + + + + 公告 + + + + + + 敌对战盟 + + + + + + 同盟战盟 + + + + + + 好友 + + + 好友列表 + + + + + + ID + + + + + + 角色 ID + + + + + + 好友 ID + + + + + + 已接受 + + + + + + 待处理请求 + + + + + + 战盟成员状态 + + + 战盟成员状态列表 + + + + + + 战盟 ID + + + + + + 职位 + + + + + + 聊天服务器认证信息 + + + 聊天服务器认证信息列表 + + + + + + 索引 + + + + + + 房间 ID + + + + + + 客户端名称 + + + + + + 认证令牌 + + + + + + 主机地址 + + + + + + 认证截止时间 + + + + + + 好友显示记录 + + + 好友显示记录列表 + + + + + + 角色名称 + + + + + + 好友名称 + + + + + + 可本地化异常 + + + 可本地化异常列表 + + + + + + 内部异常 + + + + + + 特殊服务器 ID + + + + + + 离线 + + + + + + 隐身 + + + + + + 无操作配置变更发布器 + + + 无操作配置变更发布器列表 + + + + + + 战盟职位 + + + + + + 未定义 + + + + + + 普通成员 + + + + + + 盟主 + + + + + + 战斗队长 + + + + + + 可本地化异常基类 + + + 可本地化异常基类列表 + + + + + + 格式参数 + + + + + + 资源键 + + + + + + 特殊服务器 ID + + + 特殊服务器 ID 列表 + + + + + + 服务器类型 + + + + + + 未定义 + + + + + + 游戏服务器 + + + + + + 连接服务器 + + + + + + 聊天服务器 + + + + + + 服务器状态 + + + + + + 已停止 + + + + + + 正在启动 + + + + + + 运行中 + + + + + + 正在停止 + + + + + + 超时 + + + + + + 消息类型 + + + + + + 金色居中消息 + + + + + + 蓝色普通消息 + + + + + + 战盟公告 + + + + + diff --git a/src/Network/Properties/PlugInResources.zh-CN.resx b/src/Network/Properties/PlugInResources.zh-CN.resx new file mode 100644 index 0000000000..1d5b8160f5 --- /dev/null +++ b/src/Network/Properties/PlugInResources.zh-CN.resx @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 网络加密:Season 6 Episode 3 开源客户端 + + + 为 Season 6 Episode 3 的英文开源客户端(2.04d 版)提供网络加密和解密器。 + + + 网络加密:Season 6 之前版本 + + + 为 Season 6 之前的客户端提供网络加密和解密器。 + + + 网络加密:Season 6 Episode 3 英文版 1.04d + + + 为 Season 6 Episode 3 的英文客户端(1.04d 版)提供网络加密和解密器。 + + + 网络加密:0.75 版 + + + 为 0.75 版客户端(服务端版本 0.65)提供网络加密和解密器。 + + diff --git a/src/Network/Properties/Resources.zh-CN.resx b/src/Network/Properties/Resources.zh-CN.resx new file mode 100644 index 0000000000..da264e23f9 --- /dev/null +++ b/src/Network/Properties/Resources.zh-CN.resx @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 自动 + + + 根据运行环境自动检测 IP 地址,无需参数。 + + + 公网 + + + 通过外部服务(https://www.ipify.org/)查询本机公网 IP,无需参数。适用于需要通过互联网访问的服务器;防火墙需允许游戏、连接和聊天服务器使用的端口。 + + + 局域网 + + + 通过 DNS 查询本机主机名并使用返回的第一个 IP 地址,无需参数。适用于家庭等局域网环境。 + + + 本机回环 + + + 使用 127.127.127.127,无需参数。适用于服务器与客户端均在同一台电脑上运行的场景,例如本地开发。 + + + 自定义 + + + 手动指定 IP 地址或主机名。当其他方式不适用时,可使用此选项。 + + diff --git a/src/Persistence/Initialization/Properties/PlugInResources.Designer.cs b/src/Persistence/Initialization/Properties/PlugInResources.Designer.cs index ba2e2defc2..5a2fa095f6 100644 --- a/src/Persistence/Initialization/Properties/PlugInResources.Designer.cs +++ b/src/Persistence/Initialization/Properties/PlugInResources.Designer.cs @@ -347,5 +347,545 @@ public static string DataInitialization095d_Name { return ResourceManager.GetString("DataInitialization095d_Name", resourceCulture); } } + /// Gets the localized AddCrescentMoonSlashForDarkKnight_Display1_Name text. + public static string AddCrescentMoonSlashForDarkKnight_Display1_Name => ResourceManager.GetString("AddCrescentMoonSlashForDarkKnight_Display1_Name", resourceCulture)!; + + /// Gets the localized AddCrescentMoonSlashForDarkKnight_Display1_Description text. + public static string AddCrescentMoonSlashForDarkKnight_Display1_Description => ResourceManager.GetString("AddCrescentMoonSlashForDarkKnight_Display1_Description", resourceCulture)!; + + /// Gets the localized AddStarfallForFairyElf_Display1_Name text. + public static string AddStarfallForFairyElf_Display1_Name => ResourceManager.GetString("AddStarfallForFairyElf_Display1_Name", resourceCulture)!; + + /// Gets the localized AddStarfallForFairyElf_Display1_Description text. + public static string AddStarfallForFairyElf_Display1_Description => ResourceManager.GetString("AddStarfallForFairyElf_Display1_Description", resourceCulture)!; + + /// Gets the localized AddManaRaysForMagicGladiator_Display1_Name text. + public static string AddManaRaysForMagicGladiator_Display1_Name => ResourceManager.GetString("AddManaRaysForMagicGladiator_Display1_Name", resourceCulture)!; + + /// Gets the localized AddManaRaysForMagicGladiator_Display1_Description text. + public static string AddManaRaysForMagicGladiator_Display1_Description => ResourceManager.GetString("AddManaRaysForMagicGladiator_Display1_Description", resourceCulture)!; + + /// Gets the localized AddFireBlastForDarkLord_Display1_Name text. + public static string AddFireBlastForDarkLord_Display1_Name => ResourceManager.GetString("AddFireBlastForDarkLord_Display1_Name", resourceCulture)!; + + /// Gets the localized AddFireBlastForDarkLord_Display1_Description text. + public static string AddFireBlastForDarkLord_Display1_Description => ResourceManager.GetString("AddFireBlastForDarkLord_Display1_Description", resourceCulture)!; + + /// Gets the localized AddSpiralSlashForMagicGladiator_Display1_Name text. + public static string AddSpiralSlashForMagicGladiator_Display1_Name => ResourceManager.GetString("AddSpiralSlashForMagicGladiator_Display1_Name", resourceCulture)!; + + /// Gets the localized AddSpiralSlashForMagicGladiator_Display1_Description text. + public static string AddSpiralSlashForMagicGladiator_Display1_Description => ResourceManager.GetString("AddSpiralSlashForMagicGladiator_Display1_Description", resourceCulture)!; + + /// Gets the localized FixWeaponRisePercentagePlugInSeason6_Name text. + public static string FixWeaponRisePercentagePlugInSeason6_Name => ResourceManager.GetString("FixWeaponRisePercentagePlugInSeason6_Name", resourceCulture)!; + + /// Gets the localized FixWeaponRisePercentagePlugInSeason6_Description text. + public static string FixWeaponRisePercentagePlugInSeason6_Description => ResourceManager.GetString("FixWeaponRisePercentagePlugInSeason6_Description", resourceCulture)!; + + /// Gets the localized FixAreaSkillsUpdatePlugIn_Name text. + public static string FixAreaSkillsUpdatePlugIn_Name => ResourceManager.GetString("FixAreaSkillsUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized FixAreaSkillsUpdatePlugIn_Description text. + public static string FixAreaSkillsUpdatePlugIn_Description => ResourceManager.GetString("FixAreaSkillsUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddMissingMerchantStoresPlugIn_Name text. + public static string AddMissingMerchantStoresPlugIn_Name => ResourceManager.GetString("AddMissingMerchantStoresPlugIn_Name", resourceCulture)!; + + /// Gets the localized AddMissingMerchantStoresPlugIn_Description text. + public static string AddMissingMerchantStoresPlugIn_Description => ResourceManager.GetString("AddMissingMerchantStoresPlugIn_Description", resourceCulture)!; + + /// Gets the localized FixEventItemsDropFromMonstersUpdatePlugInSeason6_Name text. + public static string FixEventItemsDropFromMonstersUpdatePlugInSeason6_Name => ResourceManager.GetString("FixEventItemsDropFromMonstersUpdatePlugInSeason6_Name", resourceCulture)!; + + /// Gets the localized FixEventItemsDropFromMonstersUpdatePlugInSeason6_Description text. + public static string FixEventItemsDropFromMonstersUpdatePlugInSeason6_Description => ResourceManager.GetString("FixEventItemsDropFromMonstersUpdatePlugInSeason6_Description", resourceCulture)!; + + /// Gets the localized InfinityArrowSkillOnQuestCompletionPlugIn_Name text. + public static string InfinityArrowSkillOnQuestCompletionPlugIn_Name => ResourceManager.GetString("InfinityArrowSkillOnQuestCompletionPlugIn_Name", resourceCulture)!; + + /// Gets the localized InfinityArrowSkillOnQuestCompletionPlugIn_Description text. + public static string InfinityArrowSkillOnQuestCompletionPlugIn_Description => ResourceManager.GetString("InfinityArrowSkillOnQuestCompletionPlugIn_Description", resourceCulture)!; + + /// Gets the localized RegenerationsRefactorPlugInBase_Name text. + public static string RegenerationsRefactorPlugInBase_Name => ResourceManager.GetString("RegenerationsRefactorPlugInBase_Name", resourceCulture)!; + + /// Gets the localized RegenerationsRefactorPlugInBase_Description text. + public static string RegenerationsRefactorPlugInBase_Description => ResourceManager.GetString("RegenerationsRefactorPlugInBase_Description", resourceCulture)!; + + /// Gets the localized AddDuelConfigurationPlugIn_Name text. + public static string AddDuelConfigurationPlugIn_Name => ResourceManager.GetString("AddDuelConfigurationPlugIn_Name", resourceCulture)!; + + /// Gets the localized AddDuelConfigurationPlugIn_Description text. + public static string AddDuelConfigurationPlugIn_Description => ResourceManager.GetString("AddDuelConfigurationPlugIn_Description", resourceCulture)!; + + /// Gets the localized FixBloodCastleMonsterAttributesUpdatePlugIn_Name text. + public static string FixBloodCastleMonsterAttributesUpdatePlugIn_Name => ResourceManager.GetString("FixBloodCastleMonsterAttributesUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized FixBloodCastleMonsterAttributesUpdatePlugIn_Description text. + public static string FixBloodCastleMonsterAttributesUpdatePlugIn_Description => ResourceManager.GetString("FixBloodCastleMonsterAttributesUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddDoppelgangerDataUpdatePlugIn_Name text. + public static string AddDoppelgangerDataUpdatePlugIn_Name => ResourceManager.GetString("AddDoppelgangerDataUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized AddDoppelgangerDataUpdatePlugIn_Description text. + public static string AddDoppelgangerDataUpdatePlugIn_Description => ResourceManager.GetString("AddDoppelgangerDataUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized ConfigureCastleSiegeRegistrationUpdatePlugIn_Name text. + public static string ConfigureCastleSiegeRegistrationUpdatePlugIn_Name => ResourceManager.GetString("ConfigureCastleSiegeRegistrationUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized ConfigureCastleSiegeRegistrationUpdatePlugIn_Description text. + public static string ConfigureCastleSiegeRegistrationUpdatePlugIn_Description => ResourceManager.GetString("ConfigureCastleSiegeRegistrationUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddKanturuMapContentUpdatePlugIn_Name text. + public static string AddKanturuMapContentUpdatePlugIn_Name => ResourceManager.GetString("AddKanturuMapContentUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized AddKanturuMapContentUpdatePlugIn_Description text. + public static string AddKanturuMapContentUpdatePlugIn_Description => ResourceManager.GetString("AddKanturuMapContentUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FinishSummonerMasterTreePlugIn_Name text. + public static string FinishSummonerMasterTreePlugIn_Name => ResourceManager.GetString("FinishSummonerMasterTreePlugIn_Name", resourceCulture)!; + + /// Gets the localized FinishSummonerMasterTreePlugIn_Description text. + public static string FinishSummonerMasterTreePlugIn_Description => ResourceManager.GetString("FinishSummonerMasterTreePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddMaximumAllianceSizeUpdatePlugInSeason6_Name text. + public static string AddMaximumAllianceSizeUpdatePlugInSeason6_Name => ResourceManager.GetString("AddMaximumAllianceSizeUpdatePlugInSeason6_Name", resourceCulture)!; + + /// Gets the localized AddMaximumAllianceSizeUpdatePlugInSeason6_Description text. + public static string AddMaximumAllianceSizeUpdatePlugInSeason6_Description => ResourceManager.GetString("AddMaximumAllianceSizeUpdatePlugInSeason6_Description", resourceCulture)!; + + /// Gets the localized FixAncientDiscriminatorsUpdatePlugIn_Name text. + public static string FixAncientDiscriminatorsUpdatePlugIn_Name => ResourceManager.GetString("FixAncientDiscriminatorsUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized FixAncientDiscriminatorsUpdatePlugIn_Description text. + public static string FixAncientDiscriminatorsUpdatePlugIn_Description => ResourceManager.GetString("FixAncientDiscriminatorsUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddSummonerBuffSkillsPlugIn_Name text. + public static string AddSummonerBuffSkillsPlugIn_Name => ResourceManager.GetString("AddSummonerBuffSkillsPlugIn_Name", resourceCulture)!; + + /// Gets the localized AddSummonerBuffSkillsPlugIn_Description text. + public static string AddSummonerBuffSkillsPlugIn_Description => ResourceManager.GetString("AddSummonerBuffSkillsPlugIn_Description", resourceCulture)!; + + /// Gets the localized AddIsQuestItemFlagPlugIn_Name text. + public static string AddIsQuestItemFlagPlugIn_Name => ResourceManager.GetString("AddIsQuestItemFlagPlugIn_Name", resourceCulture)!; + + /// Gets the localized AddIsQuestItemFlagPlugIn_Description text. + public static string AddIsQuestItemFlagPlugIn_Description => ResourceManager.GetString("AddIsQuestItemFlagPlugIn_Description", resourceCulture)!; + + /// Gets the localized WizEnhanceAndRagefighterSkillsUpdatePlugIn_Name text. + public static string WizEnhanceAndRagefighterSkillsUpdatePlugIn_Name => ResourceManager.GetString("WizEnhanceAndRagefighterSkillsUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized WizEnhanceAndRagefighterSkillsUpdatePlugIn_Description text. + public static string WizEnhanceAndRagefighterSkillsUpdatePlugIn_Description => ResourceManager.GetString("WizEnhanceAndRagefighterSkillsUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixJeweleryPetsDamageCalcsPlugInBase_Name text. + public static string FixJeweleryPetsDamageCalcsPlugInBase_Name => ResourceManager.GetString("FixJeweleryPetsDamageCalcsPlugInBase_Name", resourceCulture)!; + + /// Gets the localized FixJeweleryPetsDamageCalcsPlugInBase_Description text. + public static string FixJeweleryPetsDamageCalcsPlugInBase_Description => ResourceManager.GetString("FixJeweleryPetsDamageCalcsPlugInBase_Description", resourceCulture)!; + + /// Gets the localized FixChaosMixesPlugInBase_Name text. + public static string FixChaosMixesPlugInBase_Name => ResourceManager.GetString("FixChaosMixesPlugInBase_Name", resourceCulture)!; + + /// Gets the localized FixChaosMixesPlugInBase_Description text. + public static string FixChaosMixesPlugInBase_Description => ResourceManager.GetString("FixChaosMixesPlugInBase_Description", resourceCulture)!; + + /// Gets the localized FixDamageAbsorbItemsUpdatePlugIn_Name text. + public static string FixDamageAbsorbItemsUpdatePlugIn_Name => ResourceManager.GetString("FixDamageAbsorbItemsUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized FixDamageAbsorbItemsUpdatePlugIn_Description text. + public static string FixDamageAbsorbItemsUpdatePlugIn_Description => ResourceManager.GetString("FixDamageAbsorbItemsUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddHarmonyOptionWeightsUpdateSeason6_Name text. + public static string AddHarmonyOptionWeightsUpdateSeason6_Name => ResourceManager.GetString("AddHarmonyOptionWeightsUpdateSeason6_Name", resourceCulture)!; + + /// Gets the localized AddHarmonyOptionWeightsUpdateSeason6_Description text. + public static string AddHarmonyOptionWeightsUpdateSeason6_Description => ResourceManager.GetString("AddHarmonyOptionWeightsUpdateSeason6_Description", resourceCulture)!; + + /// Gets the localized AddQuestItemLimitPlugIn_Name text. + public static string AddQuestItemLimitPlugIn_Name => ResourceManager.GetString("AddQuestItemLimitPlugIn_Name", resourceCulture)!; + + /// Gets the localized AddQuestItemLimitPlugIn_Description text. + public static string AddQuestItemLimitPlugIn_Description => ResourceManager.GetString("AddQuestItemLimitPlugIn_Description", resourceCulture)!; + + /// Gets the localized FinishDarkKnightMasterTreePlugInSeason6_Name text. + public static string FinishDarkKnightMasterTreePlugInSeason6_Name => ResourceManager.GetString("FinishDarkKnightMasterTreePlugInSeason6_Name", resourceCulture)!; + + /// Gets the localized FinishDarkKnightMasterTreePlugInSeason6_Description text. + public static string FinishDarkKnightMasterTreePlugInSeason6_Description => ResourceManager.GetString("FinishDarkKnightMasterTreePlugInSeason6_Description", resourceCulture)!; + + /// Gets the localized AddLorenMarketJuliaWarpPlugIn_Name text. + public static string AddLorenMarketJuliaWarpPlugIn_Name => ResourceManager.GetString("AddLorenMarketJuliaWarpPlugIn_Name", resourceCulture)!; + + /// Gets the localized AddLorenMarketJuliaWarpPlugIn_Description text. + public static string AddLorenMarketJuliaWarpPlugIn_Description => ResourceManager.GetString("AddLorenMarketJuliaWarpPlugIn_Description", resourceCulture)!; + + /// Gets the localized LimitWhiteWizardDropsUpdatePlugIn_Name text. + public static string LimitWhiteWizardDropsUpdatePlugIn_Name => ResourceManager.GetString("LimitWhiteWizardDropsUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized LimitWhiteWizardDropsUpdatePlugIn_Description text. + public static string LimitWhiteWizardDropsUpdatePlugIn_Description => ResourceManager.GetString("LimitWhiteWizardDropsUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized ChaosCastleDataUpdatePlugIn_Name text. + public static string ChaosCastleDataUpdatePlugIn_Name => ResourceManager.GetString("ChaosCastleDataUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized ChaosCastleDataUpdatePlugIn_Description text. + public static string ChaosCastleDataUpdatePlugIn_Description => ResourceManager.GetString("ChaosCastleDataUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FinishDarkLordMasterTreePlugIn_Name text. + public static string FinishDarkLordMasterTreePlugIn_Name => ResourceManager.GetString("FinishDarkLordMasterTreePlugIn_Name", resourceCulture)!; + + /// Gets the localized FinishDarkLordMasterTreePlugIn_Description text. + public static string FinishDarkLordMasterTreePlugIn_Description => ResourceManager.GetString("FinishDarkLordMasterTreePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixWingsAndCapesCraftingsUpdatePlugIn_Name text. + public static string FixWingsAndCapesCraftingsUpdatePlugIn_Name => ResourceManager.GetString("FixWingsAndCapesCraftingsUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized FixWingsAndCapesCraftingsUpdatePlugIn_Description text. + public static string FixWingsAndCapesCraftingsUpdatePlugIn_Description => ResourceManager.GetString("FixWingsAndCapesCraftingsUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddRenaItemUpdatePlugIn_Name text. + public static string AddRenaItemUpdatePlugIn_Name => ResourceManager.GetString("AddRenaItemUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized AddRenaItemUpdatePlugIn_Description text. + public static string AddRenaItemUpdatePlugIn_Description => ResourceManager.GetString("AddRenaItemUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddCrestOfMonarchDropGroupUpdateSeason6_Name text. + public static string AddCrestOfMonarchDropGroupUpdateSeason6_Name => ResourceManager.GetString("AddCrestOfMonarchDropGroupUpdateSeason6_Name", resourceCulture)!; + + /// Gets the localized AddCrestOfMonarchDropGroupUpdateSeason6_Description text. + public static string AddCrestOfMonarchDropGroupUpdateSeason6_Description => ResourceManager.GetString("AddCrestOfMonarchDropGroupUpdateSeason6_Description", resourceCulture)!; + + /// Gets the localized FixSummonerCurseSkillsPlugIn_Name text. + public static string FixSummonerCurseSkillsPlugIn_Name => ResourceManager.GetString("FixSummonerCurseSkillsPlugIn_Name", resourceCulture)!; + + /// Gets the localized FixSummonerCurseSkillsPlugIn_Description text. + public static string FixSummonerCurseSkillsPlugIn_Description => ResourceManager.GetString("FixSummonerCurseSkillsPlugIn_Description", resourceCulture)!; + + /// Gets the localized AddAreaSkillSettingsUpdatePlugIn_Name text. + public static string AddAreaSkillSettingsUpdatePlugIn_Name => ResourceManager.GetString("AddAreaSkillSettingsUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized AddAreaSkillSettingsUpdatePlugIn_Description text. + public static string AddAreaSkillSettingsUpdatePlugIn_Description => ResourceManager.GetString("AddAreaSkillSettingsUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FinishDarkWizardMasterTreePlugIn_Name text. + public static string FinishDarkWizardMasterTreePlugIn_Name => ResourceManager.GetString("FinishDarkWizardMasterTreePlugIn_Name", resourceCulture)!; + + /// Gets the localized FinishDarkWizardMasterTreePlugIn_Description text. + public static string FinishDarkWizardMasterTreePlugIn_Description => ResourceManager.GetString("FinishDarkWizardMasterTreePlugIn_Description", resourceCulture)!; + + /// Gets the localized RemoveJewelDropLevelGapPlugInBase_Name text. + public static string RemoveJewelDropLevelGapPlugInBase_Name => ResourceManager.GetString("RemoveJewelDropLevelGapPlugInBase_Name", resourceCulture)!; + + /// Gets the localized RemoveJewelDropLevelGapPlugInBase_Description text. + public static string RemoveJewelDropLevelGapPlugInBase_Description => ResourceManager.GetString("RemoveJewelDropLevelGapPlugInBase_Description", resourceCulture)!; + + /// Gets the localized FixSetBonusesPlugIn_Name text. + public static string FixSetBonusesPlugIn_Name => ResourceManager.GetString("FixSetBonusesPlugIn_Name", resourceCulture)!; + + /// Gets the localized FixSetBonusesPlugIn_Description text. + public static string FixSetBonusesPlugIn_Description => ResourceManager.GetString("FixSetBonusesPlugIn_Description", resourceCulture)!; + + /// Gets the localized AddElfSoldierBuffPlugIn_Name text. + public static string AddElfSoldierBuffPlugIn_Name => ResourceManager.GetString("AddElfSoldierBuffPlugIn_Name", resourceCulture)!; + + /// Gets the localized AddElfSoldierBuffPlugIn_Description text. + public static string AddElfSoldierBuffPlugIn_Description => ResourceManager.GetString("AddElfSoldierBuffPlugIn_Description", resourceCulture)!; + + /// Gets the localized FixSocketSeedCraftingUpdatePlugIn_Name text. + public static string FixSocketSeedCraftingUpdatePlugIn_Name => ResourceManager.GetString("FixSocketSeedCraftingUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized FixSocketSeedCraftingUpdatePlugIn_Description text. + public static string FixSocketSeedCraftingUpdatePlugIn_Description => ResourceManager.GetString("FixSocketSeedCraftingUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixWarriorMorningStarPlugIn_Name text. + public static string FixWarriorMorningStarPlugIn_Name => ResourceManager.GetString("FixWarriorMorningStarPlugIn_Name", resourceCulture)!; + + /// Gets the localized FixWarriorMorningStarPlugIn_Description text. + public static string FixWarriorMorningStarPlugIn_Description => ResourceManager.GetString("FixWarriorMorningStarPlugIn_Description", resourceCulture)!; + + /// Gets the localized SpawnFixesUpdatePlugIn_Name text. + public static string SpawnFixesUpdatePlugIn_Name => ResourceManager.GetString("SpawnFixesUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized SpawnFixesUpdatePlugIn_Description text. + public static string SpawnFixesUpdatePlugIn_Description => ResourceManager.GetString("SpawnFixesUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixJeweleryPetsDamageCalcsPlugInSeason6_Name text. + public static string FixJeweleryPetsDamageCalcsPlugInSeason6_Name => ResourceManager.GetString("FixJeweleryPetsDamageCalcsPlugInSeason6_Name", resourceCulture)!; + + /// Gets the localized FixJeweleryPetsDamageCalcsPlugInSeason6_Description text. + public static string FixJeweleryPetsDamageCalcsPlugInSeason6_Description => ResourceManager.GetString("FixJeweleryPetsDamageCalcsPlugInSeason6_Description", resourceCulture)!; + + /// Gets the localized RemoveDuplicateStatAttributesPlugInBase_Name text. + public static string RemoveDuplicateStatAttributesPlugInBase_Name => ResourceManager.GetString("RemoveDuplicateStatAttributesPlugInBase_Name", resourceCulture)!; + + /// Gets the localized RemoveDuplicateStatAttributesPlugInBase_Description text. + public static string RemoveDuplicateStatAttributesPlugInBase_Description => ResourceManager.GetString("RemoveDuplicateStatAttributesPlugInBase_Description", resourceCulture)!; + + /// Gets the localized FixItemRequirementsPlugIn2_Name text. + public static string FixItemRequirementsPlugIn2_Name => ResourceManager.GetString("FixItemRequirementsPlugIn2_Name", resourceCulture)!; + + /// Gets the localized FixItemRequirementsPlugIn2_Description text. + public static string FixItemRequirementsPlugIn2_Description => ResourceManager.GetString("FixItemRequirementsPlugIn2_Description", resourceCulture)!; + + /// Gets the localized FixWeaponRisePercentagePlugInBase_Name text. + public static string FixWeaponRisePercentagePlugInBase_Name => ResourceManager.GetString("FixWeaponRisePercentagePlugInBase_Name", resourceCulture)!; + + /// Gets the localized FixWeaponRisePercentagePlugInBase_Description text. + public static string FixWeaponRisePercentagePlugInBase_Description => ResourceManager.GetString("FixWeaponRisePercentagePlugInBase_Description", resourceCulture)!; + + /// Gets the localized FixItemRequirementsPlugIn_Name text. + public static string FixItemRequirementsPlugIn_Name => ResourceManager.GetString("FixItemRequirementsPlugIn_Name", resourceCulture)!; + + /// Gets the localized FixItemRequirementsPlugIn_Description text. + public static string FixItemRequirementsPlugIn_Description => ResourceManager.GetString("FixItemRequirementsPlugIn_Description", resourceCulture)!; + + /// Gets the localized AddCastleSiegeDataUpdatePlugIn_Name text. + public static string AddCastleSiegeDataUpdatePlugIn_Name => ResourceManager.GetString("AddCastleSiegeDataUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized AddCastleSiegeDataUpdatePlugIn_Description text. + public static string AddCastleSiegeDataUpdatePlugIn_Description => ResourceManager.GetString("AddCastleSiegeDataUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixAttackSpeedCalculationUpdate_Name text. + public static string FixAttackSpeedCalculationUpdate_Name => ResourceManager.GetString("FixAttackSpeedCalculationUpdate_Name", resourceCulture)!; + + /// Gets the localized FixAttackSpeedCalculationUpdate_Description text. + public static string FixAttackSpeedCalculationUpdate_Description => ResourceManager.GetString("FixAttackSpeedCalculationUpdate_Description", resourceCulture)!; + + /// Gets the localized FixItemOptionsAndAttackSpeedPlugInBase_Name text. + public static string FixItemOptionsAndAttackSpeedPlugInBase_Name => ResourceManager.GetString("FixItemOptionsAndAttackSpeedPlugInBase_Name", resourceCulture)!; + + /// Gets the localized FixItemOptionsAndAttackSpeedPlugInBase_Description text. + public static string FixItemOptionsAndAttackSpeedPlugInBase_Description => ResourceManager.GetString("FixItemOptionsAndAttackSpeedPlugInBase_Description", resourceCulture)!; + + /// Gets the localized FinishDarkKnightMasterTreePlugInBase_Name text. + public static string FinishDarkKnightMasterTreePlugInBase_Name => ResourceManager.GetString("FinishDarkKnightMasterTreePlugInBase_Name", resourceCulture)!; + + /// Gets the localized FinishDarkKnightMasterTreePlugInBase_Description text. + public static string FinishDarkKnightMasterTreePlugInBase_Description => ResourceManager.GetString("FinishDarkKnightMasterTreePlugInBase_Description", resourceCulture)!; + + /// Gets the localized AddGlobalMoneyAmountRateAttributePlugInBase_Name text. + public static string AddGlobalMoneyAmountRateAttributePlugInBase_Name => ResourceManager.GetString("AddGlobalMoneyAmountRateAttributePlugInBase_Name", resourceCulture)!; + + /// Gets the localized AddGlobalMoneyAmountRateAttributePlugInBase_Description text. + public static string AddGlobalMoneyAmountRateAttributePlugInBase_Description => ResourceManager.GetString("AddGlobalMoneyAmountRateAttributePlugInBase_Description", resourceCulture)!; + + /// Gets the localized FixDamageCalcsPlugInBase_Name text. + public static string FixDamageCalcsPlugInBase_Name => ResourceManager.GetString("FixDamageCalcsPlugInBase_Name", resourceCulture)!; + + /// Gets the localized FixDamageCalcsPlugInBase_Description text. + public static string FixDamageCalcsPlugInBase_Description => ResourceManager.GetString("FixDamageCalcsPlugInBase_Description", resourceCulture)!; + + /// Gets the localized ConfigureCastleSiegeParticipationUpdatePlugIn_Name text. + public static string ConfigureCastleSiegeParticipationUpdatePlugIn_Name => ResourceManager.GetString("ConfigureCastleSiegeParticipationUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized ConfigureCastleSiegeParticipationUpdatePlugIn_Description text. + public static string ConfigureCastleSiegeParticipationUpdatePlugIn_Description => ResourceManager.GetString("ConfigureCastleSiegeParticipationUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixEventItemsDropFromMonstersUpdatePlugIn095d_Name text. + public static string FixEventItemsDropFromMonstersUpdatePlugIn095d_Name => ResourceManager.GetString("FixEventItemsDropFromMonstersUpdatePlugIn095d_Name", resourceCulture)!; + + /// Gets the localized FixEventItemsDropFromMonstersUpdatePlugIn095d_Description text. + public static string FixEventItemsDropFromMonstersUpdatePlugIn095d_Description => ResourceManager.GetString("FixEventItemsDropFromMonstersUpdatePlugIn095d_Description", resourceCulture)!; + + /// Gets the localized AddItemDropGroupForJewelsUpdate075_Name text. + public static string AddItemDropGroupForJewelsUpdate075_Name => ResourceManager.GetString("AddItemDropGroupForJewelsUpdate075_Name", resourceCulture)!; + + /// Gets the localized AddItemDropGroupForJewelsUpdate075_Description text. + public static string AddItemDropGroupForJewelsUpdate075_Description => ResourceManager.GetString("AddItemDropGroupForJewelsUpdate075_Description", resourceCulture)!; + + /// Gets the localized FixCharStatsForceWavePlugInBase_Name text. + public static string FixCharStatsForceWavePlugInBase_Name => ResourceManager.GetString("FixCharStatsForceWavePlugInBase_Name", resourceCulture)!; + + /// Gets the localized FixCharStatsForceWavePlugInBase_Description text. + public static string FixCharStatsForceWavePlugInBase_Description => ResourceManager.GetString("FixCharStatsForceWavePlugInBase_Description", resourceCulture)!; + + /// Gets the localized FinishElfMasterTreePlugIn_Name text. + public static string FinishElfMasterTreePlugIn_Name => ResourceManager.GetString("FinishElfMasterTreePlugIn_Name", resourceCulture)!; + + /// Gets the localized FinishElfMasterTreePlugIn_Description text. + public static string FinishElfMasterTreePlugIn_Description => ResourceManager.GetString("FinishElfMasterTreePlugIn_Description", resourceCulture)!; + + /// Gets the localized ConfigureCastleSiegeLifeStoneUpdatePlugIn_Name text. + public static string ConfigureCastleSiegeLifeStoneUpdatePlugIn_Name => ResourceManager.GetString("ConfigureCastleSiegeLifeStoneUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized ConfigureCastleSiegeLifeStoneUpdatePlugIn_Description text. + public static string ConfigureCastleSiegeLifeStoneUpdatePlugIn_Description => ResourceManager.GetString("ConfigureCastleSiegeLifeStoneUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddItemRegistrationAttributesUpdatePlugIn_Name text. + public static string AddItemRegistrationAttributesUpdatePlugIn_Name => ResourceManager.GetString("AddItemRegistrationAttributesUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized AddItemRegistrationAttributesUpdatePlugIn_Description text. + public static string AddItemRegistrationAttributesUpdatePlugIn_Description => ResourceManager.GetString("AddItemRegistrationAttributesUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized ConfigureCastleSiegeEconomyUpdatePlugIn_Name text. + public static string ConfigureCastleSiegeEconomyUpdatePlugIn_Name => ResourceManager.GetString("ConfigureCastleSiegeEconomyUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized ConfigureCastleSiegeEconomyUpdatePlugIn_Description text. + public static string ConfigureCastleSiegeEconomyUpdatePlugIn_Description => ResourceManager.GetString("ConfigureCastleSiegeEconomyUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixWingsDmgRatesUpdatePlugInBase_Name text. + public static string FixWingsDmgRatesUpdatePlugInBase_Name => ResourceManager.GetString("FixWingsDmgRatesUpdatePlugInBase_Name", resourceCulture)!; + + /// Gets the localized FixWingsDmgRatesUpdatePlugInBase_Description text. + public static string FixWingsDmgRatesUpdatePlugInBase_Description => ResourceManager.GetString("FixWingsDmgRatesUpdatePlugInBase_Description", resourceCulture)!; + + /// Gets the localized FixLifeSwellEffectUpdatePlugIn_Name text. + public static string FixLifeSwellEffectUpdatePlugIn_Name => ResourceManager.GetString("FixLifeSwellEffectUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized FixLifeSwellEffectUpdatePlugIn_Description text. + public static string FixLifeSwellEffectUpdatePlugIn_Description => ResourceManager.GetString("FixLifeSwellEffectUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddPointsPerResetAttributePlugIn_Name text. + public static string AddPointsPerResetAttributePlugIn_Name => ResourceManager.GetString("AddPointsPerResetAttributePlugIn_Name", resourceCulture)!; + + /// Gets the localized AddPointsPerResetAttributePlugIn_Description text. + public static string AddPointsPerResetAttributePlugIn_Description => ResourceManager.GetString("AddPointsPerResetAttributePlugIn_Description", resourceCulture)!; + + /// Gets the localized ChainLightningUpdatePlugIn_Name text. + public static string ChainLightningUpdatePlugIn_Name => ResourceManager.GetString("ChainLightningUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized ChainLightningUpdatePlugIn_Description text. + public static string ChainLightningUpdatePlugIn_Description => ResourceManager.GetString("ChainLightningUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixDefenseCalcsPlugInBase_Name text. + public static string FixDefenseCalcsPlugInBase_Name => ResourceManager.GetString("FixDefenseCalcsPlugInBase_Name", resourceCulture)!; + + /// Gets the localized FixDefenseCalcsPlugInBase_Description text. + public static string FixDefenseCalcsPlugInBase_Description => ResourceManager.GetString("FixDefenseCalcsPlugInBase_Description", resourceCulture)!; + + /// Gets the localized FixDuelArenaSafezoneMapUpdate_Name text. + public static string FixDuelArenaSafezoneMapUpdate_Name => ResourceManager.GetString("FixDuelArenaSafezoneMapUpdate_Name", resourceCulture)!; + + /// Gets the localized FixDuelArenaSafezoneMapUpdate_Description text. + public static string FixDuelArenaSafezoneMapUpdate_Description => ResourceManager.GetString("FixDuelArenaSafezoneMapUpdate_Description", resourceCulture)!; + + /// Gets the localized AddMovementSpeedAttributesPlugInBase_Name text. + public static string AddMovementSpeedAttributesPlugInBase_Name => ResourceManager.GetString("AddMovementSpeedAttributesPlugInBase_Name", resourceCulture)!; + + /// Gets the localized AddMovementSpeedAttributesPlugInBase_Description text. + public static string AddMovementSpeedAttributesPlugInBase_Description => ResourceManager.GetString("AddMovementSpeedAttributesPlugInBase_Description", resourceCulture)!; + + /// Gets the localized SystemConfigurationAddedPlugInBase_Name text. + public static string SystemConfigurationAddedPlugInBase_Name => ResourceManager.GetString("SystemConfigurationAddedPlugInBase_Name", resourceCulture)!; + + /// Gets the localized SystemConfigurationAddedPlugInBase_Description text. + public static string SystemConfigurationAddedPlugInBase_Description => ResourceManager.GetString("SystemConfigurationAddedPlugInBase_Description", resourceCulture)!; + + /// Gets the localized AddKanturuDataUpdatePlugIn_Name text. + public static string AddKanturuDataUpdatePlugIn_Name => ResourceManager.GetString("AddKanturuDataUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized AddKanturuDataUpdatePlugIn_Description text. + public static string AddKanturuDataUpdatePlugIn_Description => ResourceManager.GetString("AddKanturuDataUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixDrainLifeSkillUpdate_Name text. + public static string FixDrainLifeSkillUpdate_Name => ResourceManager.GetString("FixDrainLifeSkillUpdate_Name", resourceCulture)!; + + /// Gets the localized FixDrainLifeSkillUpdate_Description text. + public static string FixDrainLifeSkillUpdate_Description => ResourceManager.GetString("FixDrainLifeSkillUpdate_Description", resourceCulture)!; + + /// Gets the localized FinishRageFighterMasterTreePlugIn_Name text. + public static string FinishRageFighterMasterTreePlugIn_Name => ResourceManager.GetString("FinishRageFighterMasterTreePlugIn_Name", resourceCulture)!; + + /// Gets the localized FinishRageFighterMasterTreePlugIn_Description text. + public static string FinishRageFighterMasterTreePlugIn_Description => ResourceManager.GetString("FinishRageFighterMasterTreePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixIgnoreDefenseSkillUpdatePlugIn_Name text. + public static string FixIgnoreDefenseSkillUpdatePlugIn_Name => ResourceManager.GetString("FixIgnoreDefenseSkillUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized FixIgnoreDefenseSkillUpdatePlugIn_Description text. + public static string FixIgnoreDefenseSkillUpdatePlugIn_Description => ResourceManager.GetString("FixIgnoreDefenseSkillUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixMaxManaAndAbilityJewelryOptionsUpdateSeason6_Name text. + public static string FixMaxManaAndAbilityJewelryOptionsUpdateSeason6_Name => ResourceManager.GetString("FixMaxManaAndAbilityJewelryOptionsUpdateSeason6_Name", resourceCulture)!; + + /// Gets the localized FixMaxManaAndAbilityJewelryOptionsUpdateSeason6_Description text. + public static string FixMaxManaAndAbilityJewelryOptionsUpdateSeason6_Description => ResourceManager.GetString("FixMaxManaAndAbilityJewelryOptionsUpdateSeason6_Description", resourceCulture)!; + + /// Gets the localized AddRandomExperienceConfigAttributesPlugInBase_Name text. + public static string AddRandomExperienceConfigAttributesPlugInBase_Name => ResourceManager.GetString("AddRandomExperienceConfigAttributesPlugInBase_Name", resourceCulture)!; + + /// Gets the localized AddRandomExperienceConfigAttributesPlugInBase_Description text. + public static string AddRandomExperienceConfigAttributesPlugInBase_Description => ResourceManager.GetString("AddRandomExperienceConfigAttributesPlugInBase_Description", resourceCulture)!; + + /// Gets the localized FixCharStatsForceWavePlugInSeason6_Name text. + public static string FixCharStatsForceWavePlugInSeason6_Name => ResourceManager.GetString("FixCharStatsForceWavePlugInSeason6_Name", resourceCulture)!; + + /// Gets the localized FixCharStatsForceWavePlugInSeason6_Description text. + public static string FixCharStatsForceWavePlugInSeason6_Description => ResourceManager.GetString("FixCharStatsForceWavePlugInSeason6_Description", resourceCulture)!; + + /// Gets the localized FixWarpLevelUpdatePlugIn_Name text. + public static string FixWarpLevelUpdatePlugIn_Name => ResourceManager.GetString("FixWarpLevelUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized FixWarpLevelUpdatePlugIn_Description text. + public static string FixWarpLevelUpdatePlugIn_Description => ResourceManager.GetString("FixWarpLevelUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddProjectileCountToTripleShotUpdatePlugIn_Name text. + public static string AddProjectileCountToTripleShotUpdatePlugIn_Name => ResourceManager.GetString("AddProjectileCountToTripleShotUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized AddProjectileCountToTripleShotUpdatePlugIn_Description text. + public static string AddProjectileCountToTripleShotUpdatePlugIn_Description => ResourceManager.GetString("AddProjectileCountToTripleShotUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized FixSkillMultipliersPlugIn_Name text. + public static string FixSkillMultipliersPlugIn_Name => ResourceManager.GetString("FixSkillMultipliersPlugIn_Name", resourceCulture)!; + + /// Gets the localized FixSkillMultipliersPlugIn_Description text. + public static string FixSkillMultipliersPlugIn_Description => ResourceManager.GetString("FixSkillMultipliersPlugIn_Description", resourceCulture)!; + + /// Gets the localized AddWhiteWizardInvasionMobsUpdatePlugIn_Name text. + public static string AddWhiteWizardInvasionMobsUpdatePlugIn_Name => ResourceManager.GetString("AddWhiteWizardInvasionMobsUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized AddWhiteWizardInvasionMobsUpdatePlugIn_Description text. + public static string AddWhiteWizardInvasionMobsUpdatePlugIn_Description => ResourceManager.GetString("AddWhiteWizardInvasionMobsUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddKalimaPlugIn_Name text. + public static string AddKalimaPlugIn_Name => ResourceManager.GetString("AddKalimaPlugIn_Name", resourceCulture)!; + + /// Gets the localized AddKalimaPlugIn_Description text. + public static string AddKalimaPlugIn_Description => ResourceManager.GetString("AddKalimaPlugIn_Description", resourceCulture)!; + + /// Gets the localized FixEventItemsDropFromMonstersUpdatePlugInBase_Name text. + public static string FixEventItemsDropFromMonstersUpdatePlugInBase_Name => ResourceManager.GetString("FixEventItemsDropFromMonstersUpdatePlugInBase_Name", resourceCulture)!; + + /// Gets the localized FixEventItemsDropFromMonstersUpdatePlugInBase_Description text. + public static string FixEventItemsDropFromMonstersUpdatePlugInBase_Description => ResourceManager.GetString("FixEventItemsDropFromMonstersUpdatePlugInBase_Description", resourceCulture)!; + + /// Gets the localized FixCharStatsForceWavePlugIn095d_Name text. + public static string FixCharStatsForceWavePlugIn095d_Name => ResourceManager.GetString("FixCharStatsForceWavePlugIn095d_Name", resourceCulture)!; + + /// Gets the localized FixCharStatsForceWavePlugIn095d_Description text. + public static string FixCharStatsForceWavePlugIn095d_Description => ResourceManager.GetString("FixCharStatsForceWavePlugIn095d_Description", resourceCulture)!; + + /// Gets the localized FixHorseFenrirOptionsSoulBarrierPlugIn_Name text. + public static string FixHorseFenrirOptionsSoulBarrierPlugIn_Name => ResourceManager.GetString("FixHorseFenrirOptionsSoulBarrierPlugIn_Name", resourceCulture)!; + + /// Gets the localized FixHorseFenrirOptionsSoulBarrierPlugIn_Description text. + public static string FixHorseFenrirOptionsSoulBarrierPlugIn_Description => ResourceManager.GetString("FixHorseFenrirOptionsSoulBarrierPlugIn_Description", resourceCulture)!; + + /// Gets the localized FixLevelDiv20ExcOptionUpdatePlugIn_Name text. + public static string FixLevelDiv20ExcOptionUpdatePlugIn_Name => ResourceManager.GetString("FixLevelDiv20ExcOptionUpdatePlugIn_Name", resourceCulture)!; + + /// Gets the localized FixLevelDiv20ExcOptionUpdatePlugIn_Description text. + public static string FixLevelDiv20ExcOptionUpdatePlugIn_Description => ResourceManager.GetString("FixLevelDiv20ExcOptionUpdatePlugIn_Description", resourceCulture)!; + + /// Gets the localized AddGuardsDataPlugIn_Name text. + public static string AddGuardsDataPlugIn_Name => ResourceManager.GetString("AddGuardsDataPlugIn_Name", resourceCulture)!; + + /// Gets the localized AddGuardsDataPlugIn_Description text. + public static string AddGuardsDataPlugIn_Description => ResourceManager.GetString("AddGuardsDataPlugIn_Description", resourceCulture)!; + + /// Gets the localized FixRageFighterMultipleHitSkillsPlugIn_Name text. + public static string FixRageFighterMultipleHitSkillsPlugIn_Name => ResourceManager.GetString("FixRageFighterMultipleHitSkillsPlugIn_Name", resourceCulture)!; + + /// Gets the localized FixRageFighterMultipleHitSkillsPlugIn_Description text. + public static string FixRageFighterMultipleHitSkillsPlugIn_Description => ResourceManager.GetString("FixRageFighterMultipleHitSkillsPlugIn_Description", resourceCulture)!; + + /// Gets the localized FixChaosMixesPlugInSeason6_Name text. + public static string FixChaosMixesPlugInSeason6_Name => ResourceManager.GetString("FixChaosMixesPlugInSeason6_Name", resourceCulture)!; + + /// Gets the localized FixChaosMixesPlugInSeason6_Description text. + public static string FixChaosMixesPlugInSeason6_Description => ResourceManager.GetString("FixChaosMixesPlugInSeason6_Description", resourceCulture)!; + } } diff --git a/src/Persistence/Initialization/Properties/PlugInResources.resx b/src/Persistence/Initialization/Properties/PlugInResources.resx index b45a6ab666..2edb538527 100644 --- a/src/Persistence/Initialization/Properties/PlugInResources.resx +++ b/src/Persistence/Initialization/Properties/PlugInResources.resx @@ -194,4 +194,184 @@ Adds a small shield to a created magic gladiator character. + AddCrescentMoonSlashForDarkKnight + Adds the crescent moon slash skill (active in castle siege) to a created dark knight character. + AddStarfallForFairyElf + Adds the Starfall skill (active in castle siege) to a created fairy elf character. + AddManaRaysForMagicGladiator + Adds the Mana Rays skill (active in castle siege) to a created magic gladiator character. + AddFireBlastForDarkLord + Adds the Fire Blast skill (active in castle siege) to a created dark lord character. + AddSpiralSlashForMagicGladiator + Adds the Spiral Slash skill (active in castle siege) to a created magic gladiator character. + Fix Weapon Rise Percentage, Summoner Items Wizardry/Curse Options, and Several 3rd Level Wing Damage Rates + This update fixes weapons (staff, stick, book, scepter) rise percentage; Summoner weapons and wings wizardry/curse options; and Wing of Dimension (inc/dec), Cape of Overrule (inc/dec), Cape of Emperor (dec) damage rates. Also includes fixes for Divine Staff of Archangel and Eternal Wing Stick. + Fix Area Skills + Fixes Hellfire, Decay, and Ice Storm skills' range, effect radius, and delay. + Add missing merchant stores + Gives a general-goods store to Christine the General Goods Merchant (545), which had a shop window but no items, cloned from Thompson the Merchant (231). + Fix Event Items DropsFromMonsters Season 6 + This update fixes event items that have DropsFromMonsters set to true, causing them to drop at level 0 instead of using their dedicated DropItemGroups. + Adds infinity arrow skill with quest + This update adds the infinity arrow skill as quest reward for 'Gain Hero Status (Muse Elf)'. + Regenerations Refactor + This update fixes and reworks some regeneration attributes (health, mana, ability). + Add duel configuration + This update adds data for the duel configuration + Fix Blood Castle 7/8 Monster Attributes + Swaps attribute values between BC7 (monsters 138-143) and BC8 (monsters 428-433) so progression is correct: BC6 → BC7 → BC8. + Add Doppelganger data + This update adds the doppelganger event configuration. + Configure Castle Siege registration + This update configures the item used for Castle Siege Sign of Lord registration. + Add Kanturu map content + This update adds the Kanturu bosses (Maya, her hands, Nightmare) and the event wave spawns. + Finish Summoner Master Tree PlugIn + This update completes the summoner master tree and fixes some of its skill values. + Add Maximum Alliance Size Attribute (Season 6) + Adds the MaximumAllianceSize global base attribute with a default value of 5 to the Season 6 game configuration. + Fix Warrior Morning Star + This update fixes the discriminators of some ancient items. + Add Summoner Buff Skills + This update adds the Sleep, Innovation, Damage Reflection and Weakness Summoner buff skills. It also fixes the 3rd wing full reflect option. + Add IsQuestItem flag + This update flags the existing quest items as such, so that they can only be picked up by characters with a matching active quest. + Some added skills + This update adds the following skills: Wizardry Enhance, Increase Health, Increase Block, Ignore Defense. + Fix Jewelery Resistance Calculations + This update fixes jewelery items resistance values. + Fix Chaos Mixes Settings + This update fixes Chaos Weapon crafting settings. + Fixed damage absorb items/skills + This update fixes the damage absorbtion settings for items and skills. + Add harmony option weights + This update adds Jewel of Harmony option weights used for option assignment, fixes some options, and fixes item restore mix + Add quest item limits + This update adds limits to quest items, so that only one item can be picked up. + Finish Dark Knight Master Tree PlugIn + This update completes the dark knight master tree skills and effects. It also fixes the double wield damage calculations. + Add Loren Market Julia warp + Makes Market Union Member Julia (547) a working warp NPC between Lorencia and the Loren Market, on both sides, instead of an empty merchant. + Limit White Wizard drops + Limits the Wizard's Ring to one per character. + Chaos Castle Data + This update creates the configuration data for the chaos castle event. + Finish Dark Lord Master Tree PlugIn + This update completes the dark lord master tree skills and effects. + Fixed wings and capes craftings + This update sets the right settings for the wings and capes craftings. + Add Rena Item + This update adds the missing Rena item, which is required for the item registration feature. + Add Crest of Monarch Drop Group + Adds the Crest of Monarch (Loch's Feather +1) drop item group to Icarus. + Fix Summoner Curse Skills + This update adds missing area skill settings for summoner curse (book) and lightning shock skills. + Add Area Skill Settings + Adds the new area skill settings for skills like evil spirit, etc. to make them work properly again. + Finish Dark Wizard Master Tree PlugIn + This update completes the dark wizard master tree expansion of wizardry effects. + Remove Jewel Drop Level Gap + This update removes the existing drop level gap condition for jewels and similar items that should always drop. + Fix Item Set Bonuses + This update fixes the set bonuses for additional defense of +10~15 sets and the defense rate. + Add Elf Soldier Buff + This update adds the Elf Soldier buff (defense and damage boost) as a configurable Buff. + Fixed socket seed crafting + This update sets the right settings for the socket seed crafting. + Fix Warrior Morning Star + This update fixes the weapon of the warrior ancient set. The Hand Axe is replaced by the Morning Star. + Spawn Points Fixes + This updates the spawn points of NPCs. 1) Crywolf-Statues are fixed. 2) Wandering merchants and Marlon. 3) Spawn trigger in chaos castle 1 + Fix Jewelery and Pets Damage Calculations + This update fixes jewelery items and pet options related to damage, and jewelery resistance values. + Remove duplicate stat attributes + This update removes stat attributes which are defined more than once for a character class. + Fix Item Requirements (Elf Bows) v2 + Updates some item requirements for elf bows which were initialized wrongly. This fixes configurations created after the initial fix but before the base data was corrected. + Fix Weapon Rise Percentage + This update fixes weapons (staff) rise percentage + Fix Item Requirements (Elf Bows) + Updates some item requirements for elf bows which were initialized wrongly. + Add Castle Siege data + This update adds the Castle Siege configuration and persistent state. + Fix Attack Speed Calculation + Adds attributes and relations for attack speed. Adds effects for Ale and Potion of Soul. + Fix Item Options And Attack Speed + This update fixes some item options (damage, defense rate) and weapons attack speed. + Fix Double Wield Damage Calculations + This update fixes the double wield damage calculations. + Add Global Money Amount Rate Attribute + Moves the MoneyAmountRate attribute from character class base attributes to global base attributes. + Fix Damage Calculations + This update fixes character stats, magic effects, items, and options related to damage. + Configure Castle Siege participation + This update adds the client-visible effects used for Castle Siege participant sides. + Fix Event Items DropsFromMonsters 0.95d + This update fixes event items that have DropsFromMonsters set to true, causing them to drop at level 0 instead of using their dedicated DropItemGroups. + Create item drop group for jewels + This update creates a specific item drop group for jewels with a default chance of 5%. + Fix DW Defense Multiplier + This update fixes DW agility to defense multiplier stat. + Finish Elf Master Tree PlugIn + This update completes the elf master tree and fixes some of its skill values. It also adds the missing extra projectile (4th) on some higher level (cross)bows. + Configure Castle Siege Life Stone + This update configures the combat attributes of the Castle Siege Life Stone. + Add Item Registration Attributes + This update adds data for the item registration attributes. + Configure Castle Siege economy + This update enables the Castle Siege economy interface of the Senior NPC. + Fix Wings Damage Rates + This update fixes the wings damage absorption and increase bonus level tables values. + Fixed life swell effect + This update sets the right settings for the life swell effect. + Adds attribute PointsPerReset + This update adds the attribute PointsPerReset. + Chain Lightning skill + This update sets the right settings for the chain lightning skill. + Fix Defense Calculations + This update fixes character stats, magic effects, and options related to defense. + Fix Duel Arena Safezone Map + Sets the safezone of duel arena to lorencia. + Add Movement Speed Attributes + Adds attribute-based movement speed configuration for players, monsters, items, effects, and underwater maps. + Add System Configuration + This update adds the new system configuration. + Add Kanturu data + This update adds the Kanturu Refinery Tower event configuration. + Fix Drain Life Skill + Updates the attributes of the summoner's Drain Life skill to make it work properly. + Finish Rage Fighter Master Tree PlugIn + This update completes the rage fighter master tree and fixes some of its skill values. + Fixed ignore defense skill + This update adds the magic effect definition for the Ignore Defense skill. + Fix max mana/AG % increase jewelry options + This update fixes the calculation for max mana/AG % increase provided by Ring of Magic/Pendant of Ability options + Add Random Experience Configuration Attributes + Adds new random experience Configuration attributes to the game configuration. + Fix Char Stats and DL Force Wave Str skill + This update fixes several character stats values and DL Force Wave Strengthener master skill. + Fix Warp Level Reduction + This plugin updates the LevelWarpRequirementReductionPercent for MG, DL, and RF. + Add Projectile Count to Triple Shot + Adds the projectile count of 3 to the Triple Shot skill to properly handle arrow directions. + Fix Skill Multipliers + This update fixes RF skill multipliers and adds several skill-specific multipliers. + Add White Wizard Invasion Monsters + Adds White Wizard (135), Destructive Ogre Soldier (136), and Destructive Ogre Archer (137) and drop groups for existing databases. + Add Kalima + This adds the items required to enter the kalima map. + Fix Event Items DropsFromMonsters + This update fixes event items that have DropsFromMonsters set to true, causing them to drop at level 0 instead of using their dedicated DropItemGroups. + Fix DW and MG Char Stats + This update fixes agility to defense multiplier (DW) and base energy (MG) stats. + Fix Dark Horse and Gold Fenrir Options, and Soul Barrier Effects + This update adds Dark Horse options, fixes Gold Fenrir options and Soul Barrier effects. + Excellent Option Level/20 damage fix + This update fixes the excellent option which adds level / 20 as wizardry damage + Add guard npc data + This update adds data for guard npcs, so they can attack and move around. + Fix Rage Fighter Multiple Hit Skills + This update adds the missing multiple hits to the Killing Blow, Beast Uppercut, Chain Drive, Dragon Roar and Phoenix Shot Rage Fighter skills, as well as their magic effects. + Fix Chaos Mixes Settings And Several Options + This update fixes the Chaos Weapon, First Wings, Dinorant, Item Level Upgrade, Second Wings, Third Wings, Cape, SD Potions, Guardian Option, and Secromicon crafting settings; Blue Fenrir (Protect) damage decrease option value; Wizard's Ring wizardry option; lvl 380 item guardian options for Summoner and Rage Fighter. diff --git a/src/Persistence/Initialization/Properties/PlugInResources.zh-CN.resx b/src/Persistence/Initialization/Properties/PlugInResources.zh-CN.resx new file mode 100644 index 0000000000..b9db28281d --- /dev/null +++ b/src/Persistence/Initialization/Properties/PlugInResources.zh-CN.resx @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0.75 数据初始化 + + + 提供 0.75 的初始数据。 + + + 0.95d 数据初始化 + + + 提供 0.95d 的初始数据。 + + + Season 6 Episode 3 数据初始化 + + + 提供 Season 6 Episode 3 的初始数据。 + + + 弓箭手初始箭矢 + + + 为新建的弓箭手角色添加箭矢。 + + + 格斗家初始冲锋技能 + + + 为新建的格斗家角色添加冲锋技能。 + + + 魔法师初始能量球技能 + + + 为新建的魔法师角色添加能量球技能。 + + + 圣导师初始冲击技能 + + + 为新建的圣导师角色添加冲击技能。 + + + 召唤术师初始 Lance 技能 + + + 为新建的召唤术师角色添加 Lance 技能。 + + + 新角色 40 级战士戒指 + + + 为新角色添加达到 40 级后可丢弃的战士戒指。 + + + 新角色 80 级战士戒指 + + + 为新角色添加达到 80 级后可丢弃的战士戒指。 + + + 弓箭手初始短弓 + + + 为新建的弓箭手角色添加短弓。 + + + 圣导师初始短剑 + + + 为新建的圣导师角色添加短剑。 + + + 魔剑士初始短剑 + + + 为新建的魔剑士角色添加短剑。 + + + 剑士初始小斧 + + + 为新建的剑士角色添加小斧。 + + + 圣导师初始小盾 + + + 为新建的圣导师角色添加小盾。 + + + 魔剑士初始小盾 + + + 为新建的魔剑士角色添加小盾。 + + + 剑士初始半月斩 + + + 为新建剑士添加攻城战专用的半月斩技能。 + + + 弓箭手初始星落 + + + 为新建弓箭手添加攻城战专用的星落技能。 + + + 魔剑士初始魔力射线 + + + 为新建魔剑士添加攻城战专用的魔力射线技能。 + + + 圣导师初始火焰爆发 + + + 为新建圣导师添加攻城战专用的火焰爆发技能。 + + + 魔剑士初始螺旋斩 + + + 为新建魔剑士添加攻城战专用的螺旋斩技能。 + + 修正武器增幅及召唤装备、三代翅膀属性 + 修正法杖、召唤杖、魔法书、权杖的增幅比例,召唤武器和翅膀的魔法与诅咒属性,以及部分三代翅膀和披风的伤害增减比例;包含大天使之杖与永恒之翼杖的修正。 + 修正范围技能 + 修正地狱火、毒炎和暴风雪的施法距离、作用半径与延迟。 + 补充缺失的商店 + 为仅有商店窗口却无商品的杂货商克莉丝汀(545)添加商店,商品复制自商人汤姆森(231)。 + 修正 Season 6 活动物品掉落 + 修正活动物品启用 DropsFromMonsters 后以 0 级掉落、未使用专属物品掉落组的问题。 + 任务奖励增加无影箭 + 为圣射手的英雄资格任务添加无影箭技能奖励。 + 调整自动恢复属性 + 修正并调整生命值、魔力值和技能值的部分恢复属性。 + 添加决斗配置 + 添加决斗配置数据。 + 修正血色城堡 7、8 层怪物属性 + 交换血色城堡 7 层(怪物 138–143)和 8 层(怪物 428–433)的属性,使强度按 6、7、8 层递增。 + 添加镜像世界数据 + 添加镜像世界的副本配置。 + 配置攻城战报名 + 配置攻城战登记城主标识所使用的物品。 + 添加坎特鲁地图内容 + 添加玛雅、玛雅之手、咒怨魔王等首领及副本波次刷新配置。 + 补全召唤术师大师技能树 + 补全召唤术师大师技能树并修正部分技能数值。 + 添加 Season 6 联盟规模上限属性 + 为 Season 6 游戏配置添加 MaximumAllianceSize 全局基础属性,默认值为 5。 + 修正套装物品识别值 + 修正部分套装物品的识别值。 + 添加召唤术师辅助技能 + 添加昏睡术、破御阵、伤害反射和虚弱阵,并修正三代翅膀的完全反射属性。 + 添加任务物品标记 + 为已有任务物品添加标记,使其仅能被持有对应进行中任务的角色拾取。 + 补充魔法师与格斗家技能 + 添加魔力强化、增加生命、增加防御成功率、无视防御等技能。 + 修正首饰抗性计算 + 修正首饰物品的抗性数值。 + 修正玛雅合成配置 + 修正玛雅武器合成配置。 + 修正物品与技能的伤害吸收 + 修正物品和技能的伤害吸收配置。 + 添加再生属性权重 + 添加再生宝石随机属性分配权重,修正部分属性及物品还原合成。 + 添加任务物品数量限制 + 为任务物品添加限制,使其只能拾取一件。 + 补全剑士大师技能树 + 补全剑士大师技能树及效果,并修正双持伤害计算。 + 添加罗兰市场传送 NPC + 将市场联盟成员茱莉娅(547)设为勇者大陆与罗兰市场之间的双向传送 NPC,替代空商店。 + 限制白魔法师掉落 + 限制每个角色只能持有一枚魔法师戒指。 + 添加赤色要塞数据 + 创建赤色要塞的副本配置数据。 + 补全圣导师大师技能树 + 补全圣导师大师技能树及技能效果。 + 修正翅膀与披风合成 + 修正翅膀和披风的合成配置。 + 添加蕾娜物品 + 添加物品登记功能所需、此前缺失的蕾娜物品。 + 添加王者之书掉落组 + 为天空之城添加王者之书(洛克之羽 +1)掉落组。 + 修正召唤术师诅咒技能 + 为召唤术师魔法书诅咒技能和烈光闪补充缺失的范围技能配置。 + 添加范围技能配置 + 为黑龙波等技能添加新的范围技能配置,使其恢复正常工作。 + 补全魔法师大师技能树 + 补全魔法师大师技能树中的魔法效果扩展。 + 移除宝石掉落等级差限制 + 移除宝石等应持续参与掉落的物品的掉落等级差限制。 + 修正成套装备加成 + 修正 +10 至 +15 成套装备的额外防御力及防御成功率加成。 + 添加幻影导师增益 + 将幻影导师提供的防御和伤害提升设为可配置的增益效果。 + 修正荧之石合成 + 修正镶嵌系统中荧之石的合成配置。 + 修正战士套装武器 + 将战士套装武器由手斧改为流星锤。 + 修正 NPC 刷新点 + 修正狼魂要塞石像、流浪商人及摩伦的刷新点,以及赤色要塞 1 层的刷新触发方式。 + 修正首饰和宠物伤害计算 + 修正首饰与宠物的伤害相关属性,以及首饰抗性数值。 + 移除重复的角色属性 + 移除同一职业中重复定义的属性。 + 再次修正弓箭手武器需求 + 修正错误初始化的弓类装备需求,适用于首次修复后、基础数据修正前创建的配置。 + 修正武器增幅比例 + 修正法杖的增幅比例。 + 修正弓箭手武器需求 + 修正部分弓类装备错误的使用需求。 + 添加攻城战数据 + 添加攻城战配置及持久化状态。 + 修正攻击速度计算 + 添加攻击速度属性及关系,并添加酒和灵魂药水的效果。 + 修正物品属性和攻击速度 + 修正部分伤害、防御成功率属性及武器攻击速度。 + 修正双持伤害计算 + 修正双持武器的伤害计算。 + 添加全局金币数量倍率 + 将 MoneyAmountRate 属性从职业基础属性移至全局基础属性。 + 修正伤害计算 + 修正角色属性、魔法效果、物品及附加属性中与伤害有关的配置。 + 配置攻城战参战阵营 + 添加用于在客户端显示攻城战阵营的效果。 + 修正 0.95d 活动物品掉落 + 修正活动物品启用 DropsFromMonsters 后以 0 级掉落、未使用专属物品掉落组的问题。 + 创建宝石掉落组 + 创建宝石专属物品掉落组,默认概率为 5%。 + 修正魔法师防御换算系数 + 修正魔法师敏捷转化为防御力的系数。 + 补全弓箭手大师技能树 + 补全弓箭手大师技能树并修正部分技能数值,为部分高级弓弩补充缺失的第 4 支箭。 + 配置攻城战生命石 + 配置攻城战生命石的战斗属性。 + 添加物品登记属性 + 添加物品登记功能所需的属性数据。 + 配置攻城战经济系统 + 启用长老 NPC 的攻城战经济管理界面。 + 修正翅膀伤害比例 + 修正翅膀伤害吸收与伤害增加的等级加成表。 + 修正生命之光效果 + 修正生命之光的效果配置。 + 添加每次转生属性点 + 添加 PointsPerReset 属性。 + 修正链雷咒 + 修正链雷咒技能配置。 + 修正防御计算 + 修正角色属性、魔法效果和附加属性中与防御有关的配置。 + 修正决斗场安全区地图 + 将决斗场的安全区地图设为勇者大陆。 + 添加移动速度属性 + 为玩家、怪物、物品、效果和水下地图添加基于属性的移动速度配置。 + 添加系统配置 + 添加新的系统配置。 + 添加坎特鲁副本数据 + 添加坎特鲁提炼之塔副本配置。 + 修正摄魂咒 + 更新召唤术师摄魂咒的属性,使其正常工作。 + 补全格斗家大师技能树 + 补全格斗家大师技能树并修正部分技能数值。 + 修正无视防御技能 + 为无视防御技能添加魔法效果定义。 + 修正首饰最大魔力与技能值加成 + 修正魔法戒指和技能项链提供的最大魔力、最大 AG 百分比加成计算。 + 添加随机经验配置属性 + 为游戏配置添加随机经验相关属性。 + 修正角色属性与圣导师强化冲击波 + 修正多项角色基础数值及圣导师冲击波强化大师技能。 + 修正传送等级减免 + 更新魔剑士、圣导师和格斗家的传送等级需求减免比例。 + 添加多重箭弹道数量 + 将多重箭的弹道数量设为 3,以正确处理箭矢方向。 + 修正技能倍率 + 修正格斗家技能倍率,并补充多项技能专属倍率。 + 添加白魔法师入侵怪物 + 为已有数据库添加白魔法师(135)、毁灭巨人战士(136)、毁灭巨人弓箭手(137)及其掉落组。 + 添加卡利玛入场物品 + 添加进入卡利玛地图所需的物品。 + 修正活动物品掉落 + 修正活动物品启用 DropsFromMonsters 后以 0 级掉落、未使用专属物品掉落组的问题。 + 修正魔法师与魔剑士基础属性 + 修正魔法师敏捷转防御系数,以及魔剑士的基础智力。 + 修正坐骑属性与守护之魂 + 添加黑王马属性,修正金色炎狼兽属性及守护之魂效果。 + 修正等级除以 20 的卓越伤害加成 + 修正按角色等级除以 20 增加魔法伤害的卓越属性。 + 添加守卫 NPC 数据 + 添加守卫 NPC 的数据,使其能够攻击和移动。 + 修正格斗家多段攻击技能 + 为格斗家的 Killing Blow、Beast Uppercut、Chain Drive、Dragon Roar、Phoenix Shot 技能及其魔法效果补充缺失的多段攻击。 + 修正玛雅合成和多项物品属性 + 修正玛雅武器、一代翅膀、彩云兽、物品强化、二代和三代翅膀、披风、防护药水、守护属性及召唤魔法书的合成配置;修正蓝色炎狼兽减伤、魔法师戒指魔法属性,以及召唤术师和格斗家 380 级物品的守护属性。 + diff --git a/src/Web/AdminPanel/Properties/Resources.Designer.cs b/src/Web/AdminPanel/Properties/Resources.Designer.cs index 0fa03e26ee..9a180b038c 100644 --- a/src/Web/AdminPanel/Properties/Resources.Designer.cs +++ b/src/Web/AdminPanel/Properties/Resources.Designer.cs @@ -3464,5 +3464,293 @@ public static string CastleSiegeErrorUnexpected { return ResourceManager.GetString("CastleSiegeErrorUnexpected", resourceCulture); } } + + /// + /// Looks up a localized string similar to Server ID. + /// + public static string CreateGameServer_ServerId { + get { + return ResourceManager.GetString("CreateGameServer_ServerId", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Description. + /// + public static string CreateGameServer_Description { + get { + return ResourceManager.GetString("CreateGameServer_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Experience Rate. + /// + public static string CreateGameServer_ExperienceRate { + get { + return ResourceManager.GetString("CreateGameServer_ExperienceRate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enable PvP. + /// + public static string CreateGameServer_PvpEnabled { + get { + return ResourceManager.GetString("CreateGameServer_PvpEnabled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Server Configuration. + /// + public static string CreateGameServer_ServerConfiguration { + get { + return ResourceManager.GetString("CreateGameServer_ServerConfiguration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Client. + /// + public static string CreateGameServer_Client { + get { + return ResourceManager.GetString("CreateGameServer_Client", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Listening Port. + /// + public static string CreateGameServer_NetworkPort { + get { + return ResourceManager.GetString("CreateGameServer_NetworkPort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Server ID. + /// + public static string CreateConnectServer_ServerId { + get { + return ResourceManager.GetString("CreateConnectServer_ServerId", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Description. + /// + public static string CreateConnectServer_Description { + get { + return ResourceManager.GetString("CreateConnectServer_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Client. + /// + public static string CreateConnectServer_Client { + get { + return ResourceManager.GetString("CreateConnectServer_Client", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Listening Port. + /// + public static string CreateConnectServer_NetworkPort { + get { + return ResourceManager.GetString("CreateConnectServer_NetworkPort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Not Found. + /// + public static string PageNotFound { + get { + return ResourceManager.GetString("PageNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sorry, the content you are looking for does not exist.. + /// + public static string PageNotFoundDescription { + get { + return ResourceManager.GetString("PageNotFoundDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Party of {0}: {1} members. + /// + public static string PartySummary { + get { + return ResourceManager.GetString("PartySummary", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deleted '{0}' successfully.. + /// + public static string DeletedSuccessfully { + get { + return ResourceManager.GetString("DeletedSuccessfully", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Type '{0}' must have a Clone method that takes '{1}' and returns '{0}'.. + /// + public static string InvalidCloneMethod { + get { + return ResourceManager.GetString("InvalidCloneMethod", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Name. + /// + public static string ConfigurationEntryName { + get { + return ResourceManager.GetString("ConfigurationEntryName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error reading log file: {0}. + /// + public static string LogReadError { + get { + return ResourceManager.GetString("LogReadError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not save the new entry: {0}. + /// + public static string CouldNotSaveEntry { + get { + return ResourceManager.GetString("CouldNotSaveEntry", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Confirm deletion. + /// + public static string ConfirmDelete { + get { + return ResourceManager.GetString("ConfirmDelete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You are about to delete '{0}'. Are you sure?. + /// + public static string ConfirmDeleteEntry { + get { + return ResourceManager.GetString("ConfirmDeleteEntry", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create {0}. + /// + public static string CreateEntry { + get { + return ResourceManager.GetString("CreateEntry", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Duplicate '{0}'. + /// + public static string DuplicateEntry { + get { + return ResourceManager.GetString("DuplicateEntry", resourceCulture); + } + } + /// + /// Looks up a localized string similar to Rejoining the server.... + /// + public static string ReconnectJoining { + get { + return ResourceManager.GetString("ReconnectJoining", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rejoin failed... trying again in . + /// + public static string ReconnectRetryBefore { + get { + return ResourceManager.GetString("ReconnectRetryBefore", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to seconds.. + /// + public static string ReconnectRetryAfter { + get { + return ResourceManager.GetString("ReconnectRetryAfter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Failed to rejoin. Please retry or reload the page.. + /// + public static string ReconnectFailed { + get { + return ResourceManager.GetString("ReconnectFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Retry. + /// + public static string ReconnectRetry { + get { + return ResourceManager.GetString("ReconnectRetry", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The session has been paused by the server.. + /// + public static string ReconnectPaused { + get { + return ResourceManager.GetString("ReconnectPaused", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resume. + /// + public static string ReconnectResume { + get { + return ResourceManager.GetString("ReconnectResume", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Failed to resume the session. Please reload the page.. + /// + public static string ReconnectResumeFailed { + get { + return ResourceManager.GetString("ReconnectResumeFailed", resourceCulture); + } + } + + /// Gets the localized RoleAdministrator text. + public static string RoleAdministrator => ResourceManager.GetString("RoleAdministrator", resourceCulture)!; + + /// Gets the localized RoleOperator text. + public static string RoleOperator => ResourceManager.GetString("RoleOperator", resourceCulture)!; + + /// Gets the localized RoleViewer text. + public static string RoleViewer => ResourceManager.GetString("RoleViewer", resourceCulture)!; + } } diff --git a/src/Web/AdminPanel/Properties/Resources.resx b/src/Web/AdminPanel/Properties/Resources.resx index 0004734725..92c483e617 100644 --- a/src/Web/AdminPanel/Properties/Resources.resx +++ b/src/Web/AdminPanel/Properties/Resources.resx @@ -1254,4 +1254,100 @@ Party + + Server ID + + + Description + + + Experience Rate + + + Enable PvP + + + Server Configuration + + + Client + + + Listening Port + + + Server ID + + + Description + + + Client + + + Listening Port + + + Not Found + + + Sorry, the content you are looking for does not exist. + + + Party of {0}: {1} members + + + Deleted '{0}' successfully. + + + Type '{0}' must have a Clone method that takes '{1}' and returns '{0}'. + + + Name + + + Error reading log file: {0} + + + Could not save the new entry: {0} + + + Confirm deletion + + + You are about to delete '{0}'. Are you sure? + + + Create {0} + + + Duplicate '{0}' + + + Rejoining the server... + + + Rejoin failed... trying again in + + + seconds. + + + Failed to rejoin. Please retry or reload the page. + + + Retry + + + The session has been paused by the server. + + + Resume + + + Failed to resume the session. Please reload the page. + + Administrator + Operator + Read only diff --git a/src/Web/AdminPanel/Properties/Resources.zh-CN.resx b/src/Web/AdminPanel/Properties/Resources.zh-CN.resx new file mode 100644 index 0000000000..681c73c975 --- /dev/null +++ b/src/Web/AdminPanel/Properties/Resources.zh-CN.resx @@ -0,0 +1,1350 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 创建 + + + 重新加载 + + + 后台用户管理 + + + 操作 + + + 修改密码 + + + 删除 + + + 创建副本 + + + 已成功创建“{0}”的副本。 + + + 找不到要创建副本的“{0}”。 + + + 类型“{0}”不支持创建副本。 + + + 无法创建“{0}”的副本。 + + + 为“{0}”创建副本时出错:{1} + + + 创建后台用户 + + + 正在加载…… + + + 创建连接服务器 + + + 创建游戏服务器 + + + ID 为 {0} 的服务器已存在,请使用其他服务器 ID。 + + + 已有服务器使用 TCP 端口 {0},请使用其他 TCP 端口。 + + + 正在创建配置…… + + + 正在保存配置…… + + + 连接服务器配置已保存,正在初始化连接服务器…… + + + 正在初始化连接服务器…… + + + 未保存任何更改。 + + + 发生意外错误:{0}。 + + + 游戏服务器配置已保存,正在初始化游戏服务器…… + + + 正在初始化游戏服务器…… + + + 编辑 + + + 刷新 + + + 更改已保存。 + + + 没有需要保存的更改。 + + + 操作失败,上下文尚未初始化 + + + 有尚未保存的更改,确定要放弃吗? + + + 下载为 JSON + + + 无法加载数据,请查看日志了解详情。 + + + 错误 + + + 地图编辑器 + + + 搜索 + + + 新增 + + + 无法加载地图数据,请查看日志了解详情。 + + + 发生意外错误:{0}。请查看日志了解详情。 + + + 发生了未处理的错误。 + + + <strong>已部署的应用程序不应启用 Development 环境。</strong>这可能会向最终用户泄露异常中的敏感信息。如需在本地调试,请将 <strong>ASPNETCORE_ENVIRONMENT</strong> 环境变量设置为 <strong>Development</strong>,然后重启应用程序,以启用 <strong>Development</strong> 环境。 + + + 切换到 <strong>Development</strong> 环境后,将显示更详细的错误信息。 + + + 处理您的请求时发生错误 + + + 开发模式 + + + 游戏服务器 + + + 欢迎使用 OpenMU 管理后台。 + + + OpenMU 管理后台 + + + 关于 + + + 日志文件 + + + 日志 + + + 监控指标 + + + 链路追踪 + + + 文件名 + + + 最后更新时间 + + + 大小 + + + 服务器 ID + + + 断开连接 + + + 实时地图 + + + 全部 + + + 商人 + + + 返回 + + + 放弃更改 + + + 保存更改 + + + 扩展点 + + + 插件名称 + + + 插件类型 + + + 插件 + + + 停用 + + + 激活 + + + 服务器 + + + 服务器名称 + + + 玩家数 + + + 当前状态 + + + 连接服务器 + + + 重新加载配置并重启所有游戏服务器 + + + 数据库状态 + + + 无法连接数据库,数据库可能尚未创建。 + + + 已初始化的游戏版本 + + + 未找到已初始化的数据! + + + 重新安装 + + + 更新 + + + 已是最新 + + + 尚未创建 + + + 需要更新 + + + 安装设置 + + + 首页 + + + 游戏账号 + + + 在线账号 + + + 更新 + + + 可用更新 + + + 后台用户 + + + 系统 + + + 游戏客户端 + + + 怪物 + + + 商人商店 + + + 角色职业 + + + 技能 + + + 物品 + + + 物品掉落组 + + + 游戏地图 + + + 活动副本 + + + 传送列表 + + + 宝石合成 + + + 常规 + + + 完整配置 + + + 游戏配置 + + + 确定要重新安装吗?当前所有数据都将被删除并重新初始化。 + + + 请先在安装设置页面应用数据库更新。 + + + 没有可用的配置数据更新。 + + + 发现新的配置数据更新,请选择要应用的更新。 + + + 必需的更新会一并应用,无法取消勾选。 + + + 应用更新后,请重启服务器程序,使更改生效。 + + + 正在更新…… + + + 正在应用更新…… + + + 更新失败! + + + 应用所选更新 + + + 补丁版本 + + + 主版本号 + + + 补丁地址 + + + 秒 + + + 次版本号 + + + 补丁版本号 + + + 保存 + + + 取消 + + + 正在安装,请稍候…… + + + 请重启连接服务器和游戏服务器容器。 + + + 已完成!祝您游戏愉快 :) + + + 请先关闭与服务器的所有连接。 + + + 确定 + + + 选择游戏版本 + + + 您需要多少个游戏服务器? + + + 是否创建测试账号? + + + 是,创建测试账号 + + + 开始安装 + + + 移除 + + + 是 + + + 否 + + + 启动 + + + 停止 + + + 移除服务器 + + + 该服务器将从数据库中删除,确定要继续吗? + + + 服务器控制 + + + 玩家总数 + + + 镶嵌孔 {0} + + + 操作 + + + 游戏服务器数量 + + + JSON 备份(较慢!) + + + 导出 JSON 备份 + + + 导入 JSON 备份 + + + 正在导入备份,请稍候…… + + + 备份导入成功,请重启服务器程序,使更改生效。 + + + 备份导入失败。 + + + 选择要恢复的 .zip 备份文件 + + + 所选文件不是备份压缩包,数据库未被更改。 + + + 数据库快照 + + + 数据库快照包含全部数据,创建和恢复速度比 JSON 备份更快。当前版本或更新版本的服务器均可恢复此快照,恢复时会应用所需的数据库更新。如需将数据迁移到旧版本,请使用上方的 JSON 备份功能。 + + + 导出快照 + + + 选择要恢复的 .zip 快照文件 + + + 包含账号(耗时更长) + + + 角色名称 + + + 开始时间 + + + 正在离线挂机的玩家 + + + 找不到要删除的“{0}”。 + + + 无法删除“{0}”,可能是因为它被其他对象引用。详情请查看日志。 + + + 新对象创建成功。 + + + 显示输入表单 + + + 隐藏输入表单 + + + 所有游戏服务器 + + + 全服消息 + + + 没有正在运行的游戏服务器可接收此消息。 + + + 向 {0} 发送消息失败:{1} + + + 消息已发送。 + + + 输入消息…… + + + {0} 人在线 + + + 发送 + + + 目标 + + + 日志查看器 + + + 实时 + + + 关闭 + + + 筛选日志条目…… + + + 未找到日志条目。 + + + 没有符合筛选条件的日志条目。 + + + 当前显示 {0} 行,共加载 {1} 行(最多读取日志末尾的 {2} 行)。 + + + 滚动到底部 + + + 重新加载文件列表 + + + 下载文件 + + + 聊天命令 + + + 命令 + + + 说明 + + + 用法 + + + 所需角色身份 + + + 此命令没有参数。 + + + 名称 + + + 参数短名 + + + 类型 + + + 有效值 + + + {0} 的参数 + + + 必填 + + + 登录 + + + 退出登录 + + + 登录名 + + + 密码 + + + 登录 + + + 当前登录用户 + + + 保持登录状态 + + + 登录名或密码错误。 + + + 失败次数过多,请稍后重试。 + + + 双重验证 + + + 请输入身份验证器应用中的验证码。 + + + 身份验证器验证码 + + + 恢复码 + + + 改用恢复码 + + + 改用身份验证器验证码 + + + 验证码无效。 + + + 验证 + + + 访问被拒绝 + + + 您的账号无权访问此页面。 + + + 账号安全 + + + 双重验证 + + + 已启用双重验证。 + + + 尚未设置双重验证。 + + + 设置身份验证器应用 + + + 禁用双重验证 + + + 请使用身份验证器应用(例如 Microsoft Authenticator)扫描此二维码。 + + + 无法扫描?请手动输入此密钥: + + + 请输入应用当前显示的验证码,以完成设置。 + + + 恢复码 + + + 恢复码仅显示一次,请妥善保存。无法使用身份验证器应用时,可使用恢复码登录。每个恢复码只能使用一次。 + + + 剩余恢复码数量 + + + 生成新的恢复码 + + + 必须启用双重验证 + + + 此服务器要求所有后台用户启用双重验证。请先设置身份验证器应用,再继续操作。 + + + 权限角色列表 + + + 权限角色 + + + 双重验证 + + + 上次登录时间 + + + 已启用 + + + 已禁用 + + + 尚未创建后台用户,目前无需登录即可访问管理后台。请在数据库设置完成后尽快创建首个后台用户,或在服务器配置中指定初始管理员用户。 + + + 创建首个后台用户 + + + 后台用户已创建。 + + + 后台用户已删除。 + + + 密码已修改。 + + + 该用户的双重验证已重置。 + + + 重置双重验证 + + + 无法删除最后一个后台用户。 + + + 此初始管理员用户由服务器配置指定,无法在此页面修改。 + + + API 密钥 + + + 游戏启动器、网站等外部应用需要使用 API 密钥,通过身份验证后访问 /api 下的接口。请为每个应用创建独立密钥,方便单独撤销该应用的访问权限。 + + + 应用名称 + + + 密钥前缀 + + + 创建 API 密钥 + + + 删除 API 密钥 + + + 确定要删除“{0}”的 API 密钥吗?使用此密钥的应用将无法再通过该密钥访问接口。 + + + API 密钥已创建。 + + + API 密钥已删除。 + + + API 密钥已启用。 + + + API 密钥已禁用。 + + + 请立即复制此密钥 + + + 密钥仅显示一次,请立即复制并妥善保存。系统只保存密钥的哈希值,无法找回原始密钥。若密钥遗失,请删除后重新创建。 + + + 尚未创建任何 API 密钥。 + + + 启用 + + + 禁用 + + + 复制到剪贴板 + + + API 密钥已复制到剪贴板。 + + + 无法复制 API 密钥,请手动选中并复制。 + + + 网络分析器 + + + 聊天服务器 + + + 连接列表 + + + 未找到连接。 + + + 请选择一个连接以查看其网络流量。 + + + 网络分析器仅支持一体化部署,管理后台与各游戏服务必须在同一进程中运行。 + + + 已捕获的数据包 + + + 时间戳 + + + 方向 + + + 协议码 + + + 消息 + + + 数据包详情 + + + 提取的信息 + + + 原始数据 + + + 清空 + + + 发往服务端 + + + 发往客户端 + + + 按协议码或消息筛选 + + + 尚未捕获任何数据包。 + + + 请选择一个数据包以查看其内容。 + + + 跟随最新数据包 + + + 分析网络流量 + + + 请求的连接当前不可用,请从列表中选择其他连接。 + + + 自动滚动并显示最新数据包。向上滚动查看历史数据时,会关闭自动跟随,避免打断阅读。 + + + 攻城战 + + + 攻城战管理要求管理后台与游戏服务器在同一进程中运行。 + + + 此页面不会自动更新。请点击“刷新”查看最新的攻城战状态。 + + + 状态 + + + 阶段 + + + 阶段开始时间(UTC) + + + 阶段结束时间(UTC) + + + 占领战盟 + + + 未被占领 + + + 已报名战盟数 + + + 经济 + + + 玛雅合成税率 + + + 个人商店税率 + + + 魔炼之地入场费 + + + 累计税金 + + + 阶段与占领战盟 + + + 强制切换阶段 + + + 强制切换 + + + 阶段切换将在攻城战定时器下一次触发时执行。 + + + 更改占领战盟 + + + 战盟名称 + + + 更改占领战盟后,将开始新一轮统治,并清除原有的税收设置、累计税金和魔炼之地访问权限。 + + + 清除报名记录并重置为休战阶段 1 + + + 税率与累计税金 + + + 玛雅合成税率(%) + + + 个人商店税率(%) + + + 魔炼之地入场费 + + + 保存税收设置 + + + 清空累计税金 + + + 已报名战盟 + + + 尚无战盟报名。 + + + 名称 + + + 战盟已删除 + + + 城主标识数量 + + + 报名顺序 + + + NPC 状态 + + + 怪物编号 + + + 实例 ID + + + 防御等级 + + + 恢复等级 + + + 生命等级 + + + 生命值 + + + 是否存活 + + + 已保存至数据库 + + + 更改攻城战占领战盟? + + + 将城堡分配给“{0}”吗?这将清除之前的税收设置、累计税金和魔炼之地访问权限。 + + + 重置攻城战周期? + + + 清除所有报名记录和入选战盟、移除攻城战 NPC,并安排切换到休战阶段 1 吗? + + + 清空攻城战累计税金? + + + 确定要永久清空攻城战的全部累计税金吗? + + + 移除战盟报名记录? + + + 移除“{0}”的攻城战报名记录吗? + + + 已安排攻城战阶段切换。 + + + 攻城战占领战盟已更新。 + + + 已清除攻城战报名记录,并安排切换到休战阶段 1。 + + + 攻城战税收设置已更新。 + + + 攻城战累计税金已清空。 + + + 战盟报名记录已移除。 + + + 所选攻城战阶段无效。 + + + 此游戏服务器尚未初始化攻城战。 + + + 请输入战盟名称。 + + + 更改占领战盟需要游戏服务器上下文。 + + + 未找到该战盟。 + + + 攻城战进行期间无法更改占领战盟。 + + + 攻城战准备、战斗或结果处理期间无法重置攻城战周期。 + + + 一个或多个税收数值超出允许范围。 + + + 攻城战进行期间无法更改税收设置。 + + + 攻城战进行期间无法清空累计税金。 + + + 仅可在报名阶段更改战盟报名记录。 + + + 该报名记录已不存在。 + + + 所选游戏服务器已不可用。 + + + 攻城战管理功能要求采用一体化游戏服务器部署。 + + + 此游戏服务器尚未激活攻城战插件。 + + + 攻城战操作发生意外错误,请查看服务器日志了解详情。 + + + 已归档会话 + + + 暂无已归档会话。 + + + 已归档 + + + 进行中 + + + 记录通信数据 + + + 开启后,会记录并归档此账号登录后收发的游戏数据包;后续登录也会继续记录,直到关闭此功能。 + + + 删除已归档会话 + + + 即将删除已归档会话“{0}”,确定要继续吗? + + + 下载已归档会话 + + + 玩家 + + + 离线挂机玩家 + + + 机器人玩家 + + + 队伍 + + + 服务器 ID + + + 说明 + + + 经验倍率 + + + 启用 PvP + + + 服务器配置 + + + 客户端 + + + 监听端口 + + + 服务器 ID + + + 说明 + + + 客户端 + + + 监听端口 + + + 页面不存在 + + + 抱歉,您要查看的内容不存在。 + + + {0}的队伍:{1} 名成员 + + + 已成功删除“{0}”。 + + + 类型“{0}”必须提供接收“{1}”并返回“{0}”的 Clone 方法。 + + + 名称 + + + 读取日志文件失败:{0} + + + 无法保存新记录:{0} + + + 确认删除 + + + 即将删除“{0}”,是否继续? + + + 创建{0} + + + 创建“{0}”的副本 + + + 正在重新连接服务器…… + + + 重新连接失败,将在 + + + 秒后重试。 + + + 无法重新连接服务器,请重试或刷新页面。 + + + 重试 + + + 服务器已暂停当前会话。 + + + 恢复会话 + + + 无法恢复会话,请刷新页面。 + + 管理员 + 操作员 + 只读用户 + diff --git a/src/Web/Shared/Properties/PlugInPointResources.resx b/src/Web/Shared/Properties/PlugInPointResources.resx new file mode 100644 index 0000000000..7b630f68de --- /dev/null +++ b/src/Web/Shared/Properties/PlugInPointResources.resx @@ -0,0 +1,267 @@ + + + + Sub-Packet Handlers + + + Plugin Container for sub packet handlers which belong to a group. + + + Packet Handlers + + + Plugin Container for packet handlers. + + + Network Encryption Factories + + + Plugins which will be executed when a client connects to a server. It provides network packet encryptors and decryptors for a specific game client version. + + + Data initialization + + + Provides an initialization for initial data. + + + Configuration update + + + Provides updates for initialized data. + + + Feature Plugins + + + Feature plugins can group other plugins and provide a configuration. + + + Object removed from map + + + Plugins which will be executed when any object is removed from the game map. + + + Item moving + + + Plugins which are called when an item is about to be moved by the player. + + + Targeted skill plugins + + + Is called when a target got attacked by a targeted skill. + + + Area skill target filter + + + Plugins which will be executed when an area skill is about to hit its targets. It allows to filter out targets which are out of range. + + + Player spawn gate selection + + + Plugins which determine the gate at which a player is spawned. + + + Item sold to merchant npc + + + Is called when an item got sold to a merchant npc. + + + Character deleted + + + Is called when a character got deleted. + + + Player talks to NPC + + + Plugins which will be executed when a player talks to an npc. + + + Object added to map + + + Plugins which will be executed when any object is added to the game map. + + + Chat message received + + + Plugins which will be executed when a chat message arrives. + + + Item sold to other player + + + Is called when an item got sold to another player through the personal store. + + + Attackable moved + + + Plugins which are called when an attackable object moved on the game map. + + + Item consumed + + + Plugins which will be executed when an item got consumed. + + + Attackable got hit + + + Plugins which will be executed when an attackable object got hit by an attacker. + + + Player gained master level + + + Plugins which will be executed when a player gained a master level. + + + Attackable got killed + + + Plugins which will be executed when an attackable object got killed by an attacker. + + + Area skill plugins + + + Is called when a target got attacked by an area skill. + + + Player gained experience + + + Plugins which are executed after a player gained experience for a kill. + + + Item dropping + + + Plugins which are called when an item has been dropped to the ground by the player. + + + Item destroyed + + + Is called when an item got destroyed, e.g. because it has been consumed or destroyed by the chaos machine or disappeared as item drop. + + + Player state changed + + + Is called when a player state got changed. + + + Item bought from merchant npc + + + Is called when an item got bought from a merchant npc. + + + Whisper chat message received + + + Plugins which will be executed when a whispered chat message arrives. + + + Item stacked + + + Plugins which are called when an item has been stacked by the player. + + + Item moved + + + Plugins which are called when an item has been moved by the player. + + + Player leveled up + + + Plugins which will be executed when a player leveled up. + + + Character created + + + Is called when a character got created. + + + Speedhack Cheat Check + + + Is called for walk/attack speedhack checks and movement state resets. + + + Item traded + + + Is called when an item got traded to another player. + + + Item consuming + + + Plugins which will be executed when an item is about to get consumed. + + + Periodic Tasks + + + Is called in an periodic interval. + + + Player state changing + + + Is called when a player state changes. + + + Experience calculation + + + Plugins which modify the amount of experience which a player gains for a kill. + + + Periodic Mini Game Start Plugins + + + Plugin Container for mini game start plugins, e.g. for chaos castle. + + + Chat commands + + + Plugins which will be executed when a chat message arrives with a slash prefix. + + + Item consume handlers + + + Plugins which will be executed to consume an item. + + + Item Registration Strategies + + + Plugins which implement item registration for specific NPCs. + + + View PlugIns + + + This is a custom plugin point which collects all view plugins which are suitable for a specific game client version. + + diff --git a/src/Web/Shared/Properties/PlugInPointResources.zh-CN.resx b/src/Web/Shared/Properties/PlugInPointResources.zh-CN.resx new file mode 100644 index 0000000000..cdcabc187a --- /dev/null +++ b/src/Web/Shared/Properties/PlugInPointResources.zh-CN.resx @@ -0,0 +1,267 @@ + + + + 子数据包处理 + + + 管理属于某一协议分组的子数据包处理器。 + + + 数据包处理 + + + 管理数据包处理器。 + + + 网络加密方案 + + + 客户端连接服务器时执行,为特定版本的客户端提供网络数据包加密和解密器。 + + + 数据初始化 + + + 提供初始数据的初始化功能。 + + + 配置更新 + + + 为已初始化的数据提供更新。 + + + 功能插件 + + + 将其他插件组合为一项功能并提供配置。 + + + 对象离开地图 + + + 任意对象从游戏地图移除时执行。 + + + 物品移动前 + + + 玩家即将移动物品时调用。 + + + 指向技能 + + + 目标受到指向技能攻击时调用。 + + + 范围技能目标过滤 + + + 范围技能即将命中目标时执行,可过滤超出范围的目标。 + + + 玩家出生点选择 + + + 决定玩家生成时使用的入口。 + + + 向商人出售物品 + + + 物品出售给商人 NPC 后调用。 + + + 角色删除 + + + 角色删除后调用。 + + + 玩家与 NPC 对话 + + + 玩家与 NPC 对话时执行。 + + + 对象加入地图 + + + 任意对象加入游戏地图时执行。 + + + 收到聊天消息 + + + 收到聊天消息时执行。 + + + 个人商店出售物品 + + + 物品通过个人商店出售给其他玩家后调用。 + + + 可攻击对象移动 + + + 可攻击对象在地图上移动后调用。 + + + 物品使用后 + + + 物品消耗后执行。 + + + 可攻击对象受击 + + + 可攻击对象受到攻击时执行。 + + + 玩家大师等级提升 + + + 玩家大师等级提升时执行。 + + + 可攻击对象死亡 + + + 可攻击对象被攻击者击杀时执行。 + + + 范围技能 + + + 目标受到范围技能攻击时调用。 + + + 玩家获得经验 + + + 玩家击杀目标并获得经验后执行。 + + + 物品丢弃 + + + 玩家将物品丢到地面后调用。 + + + 物品销毁 + + + 物品销毁时调用,例如被消耗、在玛雅合成中损毁或地面掉落物消失。 + + + 玩家状态变更后 + + + 玩家状态改变后调用。 + + + 从商人购买物品 + + + 从商人 NPC 购买物品后调用。 + + + 收到私聊消息 + + + 收到私聊消息时执行。 + + + 物品叠加 + + + 玩家叠加物品后调用。 + + + 物品移动后 + + + 玩家移动物品后调用。 + + + 玩家升级 + + + 玩家升级后执行。 + + + 角色创建 + + + 角色创建后调用。 + + + 加速作弊检测 + + + 检查移动和攻击加速,以及重置移动状态时调用。 + + + 物品交易 + + + 物品交易给其他玩家后调用。 + + + 物品使用前 + + + 即将消耗物品时执行。 + + + 定时任务 + + + 按固定时间间隔调用。 + + + 玩家状态变更前 + + + 玩家状态即将改变时调用。 + + + 经验计算 + + + 调整玩家击杀目标后获得的经验量。 + + + 定时开启活动副本 + + + 管理定时开启活动副本的插件,例如赤色要塞。 + + + 聊天命令 + + + 收到以斜杠开头的聊天消息时执行。 + + + 物品使用处理 + + + 使用并消耗物品时执行。 + + + 物品登记策略 + + + 为特定 NPC 实现物品登记功能。 + + + 客户端显示 + + + 收集适用于特定客户端版本的所有显示插件。 + + diff --git a/src/Web/Shared/Properties/Resources.Designer.cs b/src/Web/Shared/Properties/Resources.Designer.cs index f7607783e9..539a784bb1 100644 --- a/src/Web/Shared/Properties/Resources.Designer.cs +++ b/src/Web/Shared/Properties/Resources.Designer.cs @@ -434,5 +434,548 @@ public static string No { return ResourceManager.GetString("No", resourceCulture); } } + + /// + /// Looks up a localized string similar to Create. + /// + public static string Create { + get { + return ResourceManager.GetString("Create", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Edit. + /// + public static string Edit { + get { + return ResourceManager.GetString("Edit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add. + /// + public static string Add { + get { + return ResourceManager.GetString("Add", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete. + /// + public static string Delete { + get { + return ResourceManager.GetString("Delete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Change. + /// + public static string Change { + get { + return ResourceManager.GetString("Change", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OK. + /// + public static string OK { + get { + return ResourceManager.GetString("OK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close. + /// + public static string Close { + get { + return ResourceManager.GetString("Close", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Collapse. + /// + public static string Collapse { + get { + return ResourceManager.GetString("Collapse", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Expand ({0} Items). + /// + public static string ExpandItems { + get { + return ResourceManager.GetString("ExpandItems", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Previous. + /// + public static string Previous { + get { + return ResourceManager.GetString("Previous", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Next. + /// + public static string Next { + get { + return ResourceManager.GetString("Next", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Navigation. + /// + public static string Navigation { + get { + return ResourceManager.GetString("Navigation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Breadcrumb. + /// + public static string Breadcrumb { + get { + return ResourceManager.GetString("Breadcrumb", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Home. + /// + public static string Home { + get { + return ResourceManager.GetString("Home", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Page {0}. + /// + public static string PageNumber { + get { + return ResourceManager.GetString("PageNumber", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Download. + /// + public static string Download { + get { + return ResourceManager.GetString("Download", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Load file. + /// + public static string LoadFile { + get { + return ResourceManager.GetString("LoadFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Current size: {0} bytes. + /// + public static string CurrentByteSize { + get { + return ResourceManager.GetString("CurrentByteSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to It is currently empty. Either type in the value as a hex string or upload a file.. + /// + public static string EmptyBinaryValue { + get { + return ResourceManager.GetString("EmptyBinaryValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New password .... + /// + public static string NewPasswordPlaceholder { + get { + return ResourceManager.GetString("NewPasswordPlaceholder", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Repeat password .... + /// + public static string RepeatPasswordPlaceholder { + get { + return ResourceManager.GetString("RepeatPasswordPlaceholder", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enter at least 3 characters.. + /// + public static string PasswordMinimumLength { + get { + return ResourceManager.GetString("PasswordMinimumLength", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The passwords don't match.. + /// + public static string PasswordsDoNotMatch { + get { + return ResourceManager.GetString("PasswordsDoNotMatch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Extension {0}. + /// + public static string ExtensionNumber { + get { + return ResourceManager.GetString("ExtensionNumber", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Personal Store. + /// + public static string PersonalStore { + get { + return ResourceManager.GetString("PersonalStore", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select {0}. + /// + public static string SelectType { + get { + return ResourceManager.GetString("SelectType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create {0}. + /// + public static string CreateType { + get { + return ResourceManager.GetString("CreateType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No more available. + /// + public static string NoMoreAvailable { + get { + return ResourceManager.GetString("NoMoreAvailable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add .... + /// + public static string AddPlaceholder { + get { + return ResourceManager.GetString("AddPlaceholder", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Object. + /// + public static string Object { + get { + return ResourceManager.GetString("Object", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Exit gate selector. + /// + public static string ExitGateSelector { + get { + return ResourceManager.GetString("ExitGateSelector", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The {0} field must be a number between {1} and {2}.. + /// + public static string NumberRangeError { + get { + return ResourceManager.GetString("NumberRangeError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The {0} field is not valid.. + /// + public static string InvalidField { + get { + return ResourceManager.GetString("InvalidField", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to +{0} {1} (Level {2}). + /// + public static string ItemBonusAtLevel { + get { + return ResourceManager.GetString("ItemBonusAtLevel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Item Slot. + /// + public static string ItemEdit_ItemSlot { + get { + return ResourceManager.GetString("ItemEdit_ItemSlot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Definition. + /// + public static string ItemEdit_Definition { + get { + return ResourceManager.GetString("ItemEdit_Definition", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Level. + /// + public static string ItemEdit_Level { + get { + return ResourceManager.GetString("ItemEdit_Level", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Durability. + /// + public static string ItemEdit_Durability { + get { + return ResourceManager.GetString("ItemEdit_Durability", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Amount. + /// + public static string ItemEdit_Amount { + get { + return ResourceManager.GetString("ItemEdit_Amount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pet Experience. + /// + public static string ItemEdit_PetExperience { + get { + return ResourceManager.GetString("ItemEdit_PetExperience", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Has Skill. + /// + public static string ItemEdit_HasSkill { + get { + return ResourceManager.GetString("ItemEdit_HasSkill", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Has Luck. + /// + public static string ItemEdit_HasLuck { + get { + return ResourceManager.GetString("ItemEdit_HasLuck", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ancient Set. + /// + public static string ItemEdit_AncientSet { + get { + return ResourceManager.GetString("ItemEdit_AncientSet", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Excellent Options. + /// + public static string ItemEdit_ExcellentOptions { + get { + return ResourceManager.GetString("ItemEdit_ExcellentOptions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Wing Options. + /// + public static string ItemEdit_WingOptions { + get { + return ResourceManager.GetString("ItemEdit_WingOptions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Additional Option. + /// + public static string ItemEdit_NormalOption { + get { + return ResourceManager.GetString("ItemEdit_NormalOption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Has Additional Option. + /// + public static string ItemEdit_HasOption { + get { + return ResourceManager.GetString("ItemEdit_HasOption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Harmony Option. + /// + public static string ItemEdit_HarmonyOption { + get { + return ResourceManager.GetString("ItemEdit_HarmonyOption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Socket Count. + /// + public static string ItemEdit_SocketCount { + get { + return ResourceManager.GetString("ItemEdit_SocketCount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Socket Bonus Option. + /// + public static string ItemEdit_SocketBonusOption { + get { + return ResourceManager.GetString("ItemEdit_SocketBonusOption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fenrir Option. + /// + public static string ItemEdit_FenrirOption { + get { + return ResourceManager.GetString("ItemEdit_FenrirOption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Has Guardian Option. + /// + public static string ItemEdit_HasGuardianOption { + get { + return ResourceManager.GetString("ItemEdit_HasGuardianOption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Wrong format.. + /// + public static string WrongFormat { + get { + return ResourceManager.GetString("WrongFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Wrong format. Expected example: AB 03 DC. + /// + public static string HexFormatError { + get { + return ResourceManager.GetString("HexFormatError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Wrong format. Expected example: 1;2;3. + /// + public static string IntegerListFormatError { + get { + return ResourceManager.GetString("IntegerListFormatError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unknown time zone id '{0}'. Leave empty for UTC or pick a suggestion, e.g. Europe/Warsaw.. + /// + public static string UnknownTimeZone { + get { + return ResourceManager.GetString("UnknownTimeZone", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} in milliseconds. + /// + public static string MillisecondsHint { + get { + return ResourceManager.GetString("MillisecondsHint", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Loaded {0} with {1} bytes.. + /// + public static string FileLoaded { + get { + return ResourceManager.GetString("FileLoaded", resourceCulture); + } + } + /// Gets the localized PaginationItems text. + public static string PaginationItems => ResourceManager.GetString("PaginationItems", resourceCulture)!; + + /// Gets the localized PaginationPage text. + public static string PaginationPage => ResourceManager.GetString("PaginationPage", resourceCulture)!; + + /// Gets the localized FirstPage text. + public static string FirstPage => ResourceManager.GetString("FirstPage", resourceCulture)!; + + /// Gets the localized LastPage text. + public static string LastPage => ResourceManager.GetString("LastPage", resourceCulture)!; + + /// Gets the localized InvalidNumber text. + public static string InvalidNumber => ResourceManager.GetString("InvalidNumber", resourceCulture)!; + + /// Gets the localized MonsterLabel text. + public static string MonsterLabel => ResourceManager.GetString("MonsterLabel", resourceCulture)!; + + /// Gets the localized MapsLabel text. + public static string MapsLabel => ResourceManager.GetString("MapsLabel", resourceCulture)!; + } } diff --git a/src/Web/Shared/Properties/Resources.resx b/src/Web/Shared/Properties/Resources.resx index 4360aaeaf0..513fa3d853 100644 --- a/src/Web/Shared/Properties/Resources.resx +++ b/src/Web/Shared/Properties/Resources.resx @@ -312,4 +312,185 @@ No + + Create + + + Edit + + + Add + + + Delete + + + Change + + + OK + + + Close + + + Collapse + + + Expand ({0} Items) + + + Previous + + + Next + + + Navigation + + + Breadcrumb + + + Home + + + Page {0} + + + Download + + + Load file + + + Current size: {0} bytes + + + It is currently empty. Either type in the value as a hex string or upload a file. + + + New password ... + + + Repeat password ... + + + Enter at least 3 characters. + + + The passwords don't match. + + + Extension {0} + + + Personal Store + + + Select {0} + + + Create {0} + + + No more available + + + Add ... + + + Object + + + Exit gate selector + + + The {0} field must be a number between {1} and {2}. + + + The {0} field is not valid. + + + +{0} {1} (Level {2}) + + + Item Slot + + + Definition + + + Level + + + Durability + + + Amount + + + Pet Experience + + + Has Skill + + + Has Luck + + + Ancient Set + + + Excellent Options + + + Wing Options + + + Additional Option + + + Has Additional Option + + + Harmony Option + + + Socket Count + + + Socket Bonus Option + + + Fenrir Option + + + Has Guardian Option + + + Wrong format. + + + Wrong format. Expected example: AB 03 DC + + + Wrong format. Expected example: 1;2;3 + + + Unknown time zone id '{0}'. Leave empty for UTC or pick a suggestion, e.g. Europe/Warsaw. + + + {0} in milliseconds + + + Loaded {0} with {1} bytes. + + {0} items + Page {0} of {1} + First page + Last page + The {0} field must be a number. + Monster + Maps \ No newline at end of file diff --git a/src/Web/Shared/Properties/Resources.zh-CN.resx b/src/Web/Shared/Properties/Resources.zh-CN.resx new file mode 100644 index 0000000000..32669b0768 --- /dev/null +++ b/src/Web/Shared/Properties/Resources.zh-CN.resx @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 正在加载…… + + + 全部 + + + 目标地图 + + + 目标 + + + 已选地图 + + + 地图 + + + 工具栏 + + + 创建工具组 + + + 控制工具组 + + + 移除 + + + {0} 的地形 + + + 已选对象 + + + 套装属性等级 + + + 加成 + + + 追加属性等级 + + + 附带守护属性(380 级 PvP) + + + 镶嵌孔 {0} + + + 登录名 + + + 密码 + + + 安全码 + + + 电子邮箱 + + + 账号状态 + + + 登录名 + + + 密码 + + + {0}:值不能包含“{1}”。 + + + <请选择物品定义> + + + 创建副本 + + + 筛选 + + + 搜索 + + + 未找到结果 + + + 怪物 + + + 目标地图列表 + + + 数量 + + + 刷新规则 + + + 在所有选中地图上刷新 + + + 启用后,在所有选中地图上刷新怪物;关闭后,随机选择一张地图刷新。 + + + 公告怪物死亡 + + + 此类怪物被击杀时,发送全服公告。 + + + 添加值 + + + 重置缩放(100%) + + + 显示或隐藏网格 + + + 未选择 + + + 撤销 + + + 保存 + + + 类型筛选 + + + 怪物 + + + NPC + + + 传送门 + + + 其他 + + + 提交 + + + 取消 + + + 放弃当前记录? + + + 您正在创建“{0}”,是否放弃并重新创建? + + + 刷新 + + + 切换主题 + + + 切换至深色模式 + + + 切换至浅色模式 + + + 单击空白区域并拖动以平移地图 + + + 按住 CTRL 并单击对象以拖动 + + + 按住 SHIFT 并单击以切换重叠对象 + + + 按 DELETE 删除选中对象 + + + 导出地图 + + + 导入地图 + + + 是 + + + 否 + + + 创建 + + + 编辑 + + + 添加 + + + 删除 + + + 修改 + + + 确定 + + + 关闭 + + + 收起 + + + 展开({0} 项) + + + 上一页 + + + 下一页 + + + 导航 + + + 导航路径 + + + 首页 + + + 第 {0} 页 + + + 下载 + + + 加载文件 + + + 当前大小:{0} 字节 + + + 当前为空,请输入十六进制字符串或上传文件。 + + + 新密码…… + + + 再次输入密码…… + + + 请至少输入 3 个字符。 + + + 两次输入的密码不一致。 + + + 扩展栏 {0} + + + 个人商店 + + + 选择{0} + + + 创建{0} + + + 没有更多可选项 + + + 添加…… + + + 对象 + + + 出口传送门选择器 + + + {0}必须是 {1} 到 {2} 之间的数字。 + + + {0}的值无效。 + + + +{0} {1}(等级 {2}) + + + 物品栏位 + + + 物品定义 + + + 等级 + + + 耐久度 + + + 数量 + + + 宠物经验值 + + + 附带技能 + + + 附带幸运 + + + 套装 + + + 卓越属性 + + + 翅膀属性 + + + 追加属性 + + + 附带追加属性 + + + 强化属性 + + + 镶嵌孔数量 + + + 镶嵌加成属性 + + + 炎狼兽属性 + + + 附带守护属性 + + + 格式不正确。 + + + 格式不正确。请输入十六进制字节,例如:AB 03 DC。 + + + 格式不正确。请用分号分隔整数,例如:1;2;3。 + + + 未知的时区 ID“{0}”。留空使用 UTC,或选择有效时区,例如 Asia/Shanghai。 + + + {0}(毫秒) + + + 已加载 {0},共 {1} 字节。 + + 共 {0} 条 + 第 {0} 页,共 {1} 页 + 首页 + 末页 + {0}必须是数字。 + 怪物 + 地图 + From 9aba9513b380e0d86647daf5c7ba3bb500351cba Mon Sep 17 00:00:00 2001 From: JianboQin <279250819@qq.com> Date: Sat, 26 Sep 2026 22:16:15 +0800 Subject: [PATCH 2/6] Use localized captions throughout the admin panel --- docs/AdminPanelLocalization.md | 45 ++++ .../Configuration/AreaSkillSettings.cs | 2 +- .../Configuration/BattleZoneDefinition.cs | 2 +- .../Configuration/CastleSiegeConfiguration.cs | 2 +- .../Configuration/CastleSiegeNpcDefinition.cs | 2 +- .../CastleSiegeStateScheduleEntry.cs | 7 +- .../CastleSiegeUpgradeDefinition.cs | 2 +- .../CastleSiegeZoneDefinition.cs | 2 +- .../Configuration/ChatServerDefinition.cs | 2 +- .../Configuration/DuelConfiguration.cs | 2 +- src/DataModel/Configuration/EnterGate.cs | 2 +- .../Configuration/GameConfiguration.cs | 2 +- .../Configuration/GameServerConfiguration.cs | 2 +- .../ItemCrafting/ItemCraftingRequiredItem.cs | 2 +- .../Items/CombinationBonusRequirement.cs | 2 +- .../Configuration/Items/ItemOptionOfLevel.cs | 2 +- .../Configuration/Items/LevelBonus.cs | 2 +- .../Configuration/LevelDependentDamage.cs | 2 +- .../Configuration/MasterSkillDefinition.cs | 2 +- .../Configuration/MiniGameSpawnWave.cs | 2 +- .../Configuration/MiniGameTerrainChange.cs | 10 +- .../Configuration/MonsterSpawnArea.cs | 6 +- .../Configuration/Quests/QuestReward.cs | 8 +- src/DataModel/Configuration/Rectangle.cs | 2 +- src/DataModel/Configuration/ServerEndpoint.cs | 2 +- .../Configuration/SystemConfiguration.cs | 2 +- src/DataModel/CultureHelper.cs | 27 ++- src/DataModel/Entities/ItemStorage.cs | 2 +- src/DataModel/ModelResourceProvider.cs | 41 +++- src/GameLogic/Bots/BotConfiguration.cs | 26 +- src/GameLogic/Bots/BotFeaturePlugIn.cs | 2 +- src/GameLogic/Bots/BotRevengePlugIn.cs | 2 +- src/GameLogic/Bots/BotSelfDefensePlugIn.cs | 2 +- .../Bots/BotSkillProgressionPlugIn.cs | 2 +- ...sJewelConsumeHandlerPlugInConfiguration.cs | 1 + .../Items/ItemBoxDroppedPlugIn.cs | 2 +- .../Items/LostMapDroppedPlugIn.cs | 2 +- .../ChatCommands/PKClearChatCommandPlugIn.cs | 4 +- src/GameLogic/PlugIns/DuelSpawnGatePlugIn.cs | 2 +- .../InvasionSpawnConfiguration.cs | 8 + .../PeriodicInvasionConfiguration.cs | 4 +- .../WhiteWizardInvasionPlugIn.cs | 2 +- .../ItemRegistrationConfiguration.cs | 2 +- .../NpcItemRegistrationRule.cs | 12 +- src/GameLogic/PlugIns/KanturuGatewayPlugIn.cs | 2 +- .../PlugIns/MaximumConnectionsPerIpPlugIn.cs | 2 +- ...imumConnectionsPerIpPlugInConfiguration.cs | 1 + .../MonsterAttributeScalerConfiguration.cs | 6 + .../PeriodicTasks/BloodCastleStartPlugIn.cs | 2 +- .../PeriodicTasks/ChaosCastleStartPlugIn.cs | 2 +- .../PeriodicTasks/DevilSquareStartPlugIn.cs | 2 +- .../KanturuStartConfiguration.cs | 1 + .../PeriodicTasks/KanturuStartPlugIn.cs | 2 +- src/GameLogic/PlugIns/PetExperiencePlugIn.cs | 2 +- .../PlugIns/SoccerSpawnGatePlugIn.cs | 2 +- .../PlugIns/SpeedHackDetectConfiguration.cs | 11 + .../PlugIns/SpeedHackDetectPlugIn.cs | 2 +- .../PlugIns/SymbolOfKundunStackedPlugIn.cs | 2 +- src/GameLogic/Resets/ResetConfiguration.cs | 14 +- .../TestActors/ActorHitRecorderPlugIn.cs | 2 +- .../EnterMarketPlaceHandlerPlugIn.cs | 2 +- .../AddCrescentMoonSlashForDarkKnight.cs | 2 +- .../AddFireBlastForDarkLord.cs | 2 +- .../AddManaRaysForMagicGladiator.cs | 2 +- .../AddSpiralSlashForMagicGladiator.cs | 2 +- .../AddStarfallForFairyElf.cs | 2 +- .../AddAreaSkillSettingsUpdatePlugIn.cs | 2 +- .../Updates/AddCastleSiegeDataUpdatePlugIn.cs | 2 +- ...AddCrestOfMonarchDropGroupUpdateSeason6.cs | 2 +- .../AddDoppelgangerDataUpdatePlugIn.cs | 2 +- .../Updates/AddDuelConfigurationPlugIn.cs | 2 +- .../Updates/AddElfSoldierBuffPlugIn.cs | 2 +- ...GlobalMoneyAmountRateAttributePlugIn075.cs | 2 +- ...lobalMoneyAmountRateAttributePlugIn095d.cs | 2 +- ...alMoneyAmountRateAttributePlugInSeason6.cs | 2 +- .../Updates/AddGuardsDataPlugIn.cs | 2 +- .../AddHarmonyOptionWeightsUpdateSeason6.cs | 2 +- .../Updates/AddIsQuestItemFlagPlugIn.cs | 2 +- .../AddItemDropGroupForJewelsUpdate075.cs | 2 +- .../AddItemDropGroupForJewelsUpdate095d.cs | 2 +- .../AddItemDropGroupForJewelsUpdateSeason6.cs | 2 +- ...dItemRegistrationAttributesUpdatePlugIn.cs | 2 +- .../Initialization/Updates/AddKalimaPlugIn.cs | 2 +- .../Updates/AddKanturuDataUpdatePlugIn.cs | 2 +- .../AddKanturuMapContentUpdatePlugIn.cs | 2 +- .../Updates/AddLorenMarketJuliaWarpPlugIn.cs | 2 +- ...dMaximumAllianceSizeUpdatePlugInSeason6.cs | 2 +- .../Updates/AddMissingMerchantStoresPlugIn.cs | 2 +- .../AddMovementSpeedAttributesPlugIn075.cs | 2 +- .../AddMovementSpeedAttributesPlugIn095D.cs | 2 +- ...AddMovementSpeedAttributesPlugInSeason6.cs | 2 +- .../AddPointsPerResetAttributePlugIn.cs | 2 +- ...ProjectileCountToTripleShotUpdatePlugIn.cs | 2 +- .../Updates/AddQuestItemLimitPlugIn.cs | 2 +- ...ndomExperienceConfigAttributesPlugIn075.cs | 2 +- ...domExperienceConfigAttributesPlugIn095d.cs | 2 +- ...ExperienceConfigAttributesPlugInSeason6.cs | 2 +- .../Updates/AddRenaItemUpdatePlugIn.cs | 2 +- .../Updates/AddSummonerBuffSkillsPlugIn.cs | 2 +- .../AddWhiteWizardInvasionMobsUpdatePlugIn.cs | 2 +- .../Updates/ChainLightningUpdatePlugIn.cs | 2 +- .../Updates/ChaosCastleDataUpdatePlugIn.cs | 2 +- ...ConfigureCastleSiegeEconomyUpdatePlugIn.cs | 2 +- ...nfigureCastleSiegeLifeStoneUpdatePlugIn.cs | 2 +- ...ureCastleSiegeParticipationUpdatePlugIn.cs | 2 +- ...gureCastleSiegeRegistrationUpdatePlugIn.cs | 2 +- .../FinishDarkKnightMasterTreePlugIn075.cs | 2 +- .../FinishDarkKnightMasterTreePlugIn095d.cs | 2 +- ...FinishDarkKnightMasterTreePlugInSeason6.cs | 2 +- .../Updates/FinishDarkLordMasterTreePlugIn.cs | 2 +- .../FinishDarkWizardMasterTreePlugIn.cs | 2 +- .../Updates/FinishElfMasterTreePlugIn.cs | 2 +- .../FinishRageFighterMasterTreePlugIn.cs | 2 +- .../Updates/FinishSummonerMasterTreePlugIn.cs | 2 +- .../FixAncientDiscriminatorsUpdatePlugIn.cs | 2 +- .../Updates/FixAreaSkillsUpdatePlugIn.cs | 2 +- .../FixAttackSpeedCalculationUpdate.cs | 2 +- ...loodCastleMonsterAttributesUpdatePlugIn.cs | 2 +- .../Updates/FixChaosMixesPlugIn095D.cs | 2 +- .../Updates/FixChaosMixesPlugInSeason6.cs | 2 +- .../Updates/FixChaosMixesUpdatePlugIn075.cs | 2 +- .../Updates/FixCharStatsForceWavePlugIn075.cs | 2 +- .../FixCharStatsForceWavePlugIn095d.cs | 2 +- .../FixCharStatsForceWavePlugInSeason6.cs | 2 +- .../FixDamageAbsorbItemsUpdatePlugIn.cs | 2 +- .../Updates/FixDamageCalcsPlugIn075.cs | 2 +- .../Updates/FixDamageCalcsPlugIn095d.cs | 2 +- .../Updates/FixDamageCalcsPlugInSeason6.cs | 2 +- .../Updates/FixDefenseCalcsPlugIn075.cs | 2 +- .../Updates/FixDefenseCalcsPlugIn095d.cs | 2 +- .../Updates/FixDefenseCalcsPlugInSeason6.cs | 2 +- .../Updates/FixDrainLifeSkillUpdate.cs | 2 +- .../Updates/FixDuelArenaSafezoneMapUpdate.cs | 2 +- ...ntItemsDropFromMonstersUpdatePlugIn095d.cs | 2 +- ...temsDropFromMonstersUpdatePlugInSeason6.cs | 2 +- .../FixHorseFenrirOptionsSoulBarrierPlugIn.cs | 2 +- .../FixIgnoreDefenseSkillUpdatePlugIn.cs | 2 +- .../FixItemOptionsAndAttackSpeedPlugIn075.cs | 2 +- .../FixItemOptionsAndAttackSpeedPlugIn095d.cs | 2 +- ...xItemOptionsAndAttackSpeedPlugInSeason6.cs | 2 +- .../Updates/FixItemRequirementsPlugIn.cs | 2 +- .../Updates/FixItemRequirementsPlugIn2.cs | 2 +- .../FixJeweleryPetsDamageCalcsPlugIn075.cs | 2 +- .../FixJeweleryPetsDamageCalcsPlugIn095d.cs | 2 +- ...FixJeweleryPetsDamageCalcsPlugInSeason6.cs | 2 +- .../FixLevelDiv20ExcOptionUpdatePlugIn.cs | 2 +- .../Updates/FixLifeSwellEffectUpdatePlugIn.cs | 2 +- ...naAndAbilityJewelryOptionsUpdateSeason6.cs | 2 +- .../FixRageFighterMultipleHitSkillsPlugIn.cs | 2 +- .../Updates/FixSetBonusesPlugIn.cs | 6 +- .../Updates/FixSkillMultipliersPlugIn.cs | 2 +- .../FixSocketSeedCraftingUpdatePlugIn.cs | 2 +- .../Updates/FixSummonerCurseSkillsPlugIn.cs | 2 +- .../Updates/FixWarpLevelUpdatePlugIn.cs | 2 +- .../Updates/FixWarriorMorningStarPlugIn.cs | 2 +- .../FixWeaponRisePercentagePlugIn075.cs | 2 +- .../FixWeaponRisePercentagePlugIn095d.cs | 2 +- .../FixWeaponRisePercentagePlugInSeason6.cs | 2 +- .../FixWingsAndCapesCraftingsUpdatePlugIn.cs | 2 +- .../FixWingsDmgRatesUpdatePlugIn075.cs | 2 +- .../FixWingsDmgRatesUpdatePlugIn095d.cs | 2 +- .../FixWingsDmgRatesUpdatePlugInSeason6.cs | 2 +- ...finityArrowSkillOnQuestCompletionPlugIn.cs | 2 +- .../LimitWhiteWizardDropsUpdatePlugIn.cs | 2 +- .../Updates/RegenerationsRefactorPlugIn075.cs | 2 +- .../RegenerationsRefactorPlugIn095d.cs | 2 +- .../RegenerationsRefactorPlugInSeason6.cs | 2 +- .../RemoveDuplicateStatAttributesPlugIn075.cs | 2 +- ...RemoveDuplicateStatAttributesPlugIn095d.cs | 2 +- ...oveDuplicateStatAttributesPlugInSeason6.cs | 2 +- .../RemoveJewelDropLevelGapPlugIn075.cs | 2 +- .../RemoveJewelDropLevelGapPlugIn095d.cs | 2 +- .../RemoveJewelDropLevelGapPlugInSeason6.cs | 2 +- .../Updates/SpawnFixesUpdatePlugIn.cs | 2 +- .../SystemConfigurationAddedPlugIn075.cs | 2 +- .../SystemConfigurationAddedPlugIn095d.cs | 2 +- .../SystemConfigurationAddedPlugInSeason6.cs | 2 +- ...EnhanceAndRagefighterSkillsUpdatePlugIn.cs | 2 +- src/Web/AdminPanel/Auth/RoleCaption.cs | 22 ++ src/Web/AdminPanel/Components/App.razor | 4 +- .../Components/Layout/CreationPanel.razor | 2 +- .../Components/Layout/NavMenu.razor | 2 +- .../Components/Layout/ReconnectModal.razor | 18 +- .../AdminPanel/Components/PartyBadge.razor | 2 +- src/Web/AdminPanel/Pages/Accounts.razor | 2 +- src/Web/AdminPanel/Pages/AdminUsers.razor | 2 +- src/Web/AdminPanel/Pages/ApiKeys.razor | 2 +- src/Web/AdminPanel/Pages/ChatCommands.razor | 4 +- .../Pages/CreateConnectServerConfig.razor.cs | 4 + .../Pages/CreateGameServerConfig.razor.cs | 7 + src/Web/AdminPanel/Pages/EditConfigGrid.razor | 4 +- .../AdminPanel/Pages/EditConfigGrid.razor.cs | 11 +- src/Web/AdminPanel/Pages/Index.razor | 2 +- src/Web/AdminPanel/Pages/LogFiles.razor | 2 +- src/Web/AdminPanel/Pages/Merchants.razor | 4 +- src/Web/AdminPanel/Pages/Merchants.razor.cs | 1 + src/Web/AdminPanel/Pages/NotFound.razor | 4 +- src/Web/AdminPanel/Pages/Plugins.razor | 4 +- .../AdminPanel/WebApplicationExtensions.cs | 2 +- .../Components/BreadcrumbNavigation.razor | 20 +- .../Shared/Components/CultureSelector.razor | 6 +- .../Components/CultureSelector.razor.cs | 4 +- src/Web/Shared/Components/Form/AutoForm.razor | 2 +- .../Components/Form/ByteArrayField.razor | 12 +- .../Shared/Components/Form/DataTable.razor | 10 +- .../Shared/Components/Form/DateField.razor | 2 +- .../Components/Form/DateTimeField.razor | 2 +- src/Web/Shared/Components/Form/EnumSelect.cs | 10 +- .../Components/Form/ExitGateField.razor | 4 +- .../Shared/Components/Form/FieldCaption.cs | 24 ++ .../Shared/Components/Form/FieldLabel.razor | 6 +- .../Components/Form/FlagsEnumField.razor | 6 +- .../Components/Form/FlagsEnumField.razor.cs | 7 +- src/Web/Shared/Components/Form/InputByte.cs | 2 +- .../Shared/Components/Form/InputByteBase.cs | 2 +- .../Components/Form/InputNullableByte.cs | 2 +- .../Components/Form/InputNullableShort.cs | 2 +- src/Web/Shared/Components/Form/InputShort.cs | 2 +- .../Shared/Components/Form/InputShortBase.cs | 2 +- .../Components/Form/IntCollectionField.razor | 2 +- .../Components/Form/InvasionSpawnTable.razor | 10 +- .../Components/Form/ItemStorageField.razor | 14 +- .../Shared/Components/Form/ItemTable.razor | 12 +- .../Shared/Components/Form/ItemTable.razor.cs | 4 +- .../Shared/Components/Form/LookupField.razor | 2 +- .../Form/MemberOfAggregateField.razor | 2 +- .../Modal/ModalObjectMultiSelection.razor | 8 +- .../Form/Modal/ModalObjectSelection.razor | 6 +- .../Components/Form/NullableNumberField.razor | 2 +- .../Shared/Components/Form/NumberField.razor | 2 +- .../Components/Form/PasswordHashField.razor | 14 +- .../Shared/Components/Form/TimeField.razor | 2 +- .../Components/Form/TimeSpanField.razor | 6 +- .../Components/Form/TimeZoneIdField.razor | 2 +- .../Shared/Components/Form/Typeahead.razor | 2 +- .../Shared/Components/Form/ValueTable.razor | 8 +- .../Shared/Components/ItemEdit/ItemEdit.razor | 4 +- .../Components/ItemEdit/ItemViewModel.cs | 18 ++ .../Components/LocalizedPaginator.razor | 51 ++++ .../Components/MapEditor/MapEditor.razor | 4 +- .../Components/Modal/ModalQuestion.razor | 6 +- .../Components/Toast/ToastContainer.razor | 2 +- src/Web/Shared/Services/AccountService.cs | 2 +- src/Web/Shared/Services/NavigationHistory.cs | 2 +- src/Web/Shared/Services/PlugInController.cs | 12 +- src/Web/Shared/Services/PlugInPointCaption.cs | 19 ++ .../Localization/CultureSelectorTests.cs | 73 ++++++ .../Localization/ModelLocalizationTests.cs | 225 ++++++++++++++++++ .../Localization/TranslationCoverageTests.cs | 164 +++++++++++++ 249 files changed, 1107 insertions(+), 361 deletions(-) create mode 100644 docs/AdminPanelLocalization.md create mode 100644 src/Web/AdminPanel/Auth/RoleCaption.cs create mode 100644 src/Web/Shared/Components/Form/FieldCaption.cs create mode 100644 src/Web/Shared/Components/LocalizedPaginator.razor create mode 100644 src/Web/Shared/Services/PlugInPointCaption.cs create mode 100644 tests/MUnique.OpenMU.Web.Tests/Localization/CultureSelectorTests.cs create mode 100644 tests/MUnique.OpenMU.Web.Tests/Localization/ModelLocalizationTests.cs create mode 100644 tests/MUnique.OpenMU.Web.Tests/Localization/TranslationCoverageTests.cs diff --git a/docs/AdminPanelLocalization.md b/docs/AdminPanelLocalization.md new file mode 100644 index 0000000000..586d914f96 --- /dev/null +++ b/docs/AdminPanelLocalization.md @@ -0,0 +1,45 @@ +# Admin panel localization + +Select **简体中文** in the admin panel language selector to use the Simplified +Chinese (`zh-CN`) resources. The selected culture is preserved by the existing +culture cookie. English remains the neutral resource language and fallback. + +## Coverage + +The translations cover administration pages, shared form controls, model labels +and descriptions, enum captions, configuration summaries, plugin metadata, +plugin configuration fields, and configuration update descriptions. + +Regional culture names are preserved during culture selection and request +localization. Culture discovery also checks deployed satellite assemblies, so +`zh-CN` is available on platforms where ICU enumerates a different Chinese +culture name. + +Plugin extension point names and authorization roles are translated for display. +Their stored identifiers are unchanged. Protocol identifiers, command words, +external plugin text without a translation, and diagnostic logs retain their +original text. + +Names stored in game configuration data are separate from UI resource files. +Adding these resources does not translate existing database records or alter +configuration initialization, gameplay values, or database schemas. + +## Maintaining translations + +Add neutral text to the corresponding `Properties/*.resx` file and add the +translation under the same key in `*.zh-CN.resx`. Keep formatting placeholders +unchanged. Model captions use the naming conventions in `ModelResourceProvider`; +plugin `DisplayAttribute` metadata must reference public resource properties. + +Keep contribution descriptions, source comments, and documentation in English. +Do not translate command syntax, packet identifiers, or authorization values. + +Run the admin panel tests with: + +```sh +dotnet test tests/MUnique.OpenMU.Web.Tests/MUnique.OpenMU.Web.Tests.csproj -c Release -p:ci=true +``` + +Localization tests cover culture selection, enum round trips, model captions and +summaries, plugin resource metadata, resource completeness and placeholders, and +paging with the shared grid state. diff --git a/src/DataModel/Configuration/AreaSkillSettings.cs b/src/DataModel/Configuration/AreaSkillSettings.cs index 12675b1d88..e87afa4ee6 100644 --- a/src/DataModel/Configuration/AreaSkillSettings.cs +++ b/src/DataModel/Configuration/AreaSkillSettings.cs @@ -101,6 +101,6 @@ public partial class AreaSkillSettings /// public override string ToString() { - return "Area Skill Settings"; + return typeof(AreaSkillSettings).GetTypeCaption(); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/BattleZoneDefinition.cs b/src/DataModel/Configuration/BattleZoneDefinition.cs index efb6e37717..cd19d499b6 100644 --- a/src/DataModel/Configuration/BattleZoneDefinition.cs +++ b/src/DataModel/Configuration/BattleZoneDefinition.cs @@ -58,6 +58,6 @@ public partial class BattleZoneDefinition /// public override string ToString() { - return $"Battle Zone ({this.Type})"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.BattleZoneSummary, ModelResourceProvider.GetEnumCaption(this.Type.GetType(), this.Type)); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/CastleSiegeConfiguration.cs b/src/DataModel/Configuration/CastleSiegeConfiguration.cs index 207cae6099..0d45e8cf59 100644 --- a/src/DataModel/Configuration/CastleSiegeConfiguration.cs +++ b/src/DataModel/Configuration/CastleSiegeConfiguration.cs @@ -172,6 +172,6 @@ public partial class CastleSiegeConfiguration /// public override string ToString() { - return "Castle Siege Configuration"; + return typeof(CastleSiegeConfiguration).GetTypeCaption(); } } diff --git a/src/DataModel/Configuration/CastleSiegeNpcDefinition.cs b/src/DataModel/Configuration/CastleSiegeNpcDefinition.cs index c1d6d78605..a2f37b264a 100644 --- a/src/DataModel/Configuration/CastleSiegeNpcDefinition.cs +++ b/src/DataModel/Configuration/CastleSiegeNpcDefinition.cs @@ -50,6 +50,6 @@ public partial class CastleSiegeNpcDefinition /// public override string ToString() { - return $"{this.MonsterDefinition} #{this.InstanceId} at ({this.SpawnX},{this.SpawnY})"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.CastleNpcSummary, this.MonsterDefinition, this.InstanceId, this.SpawnX, this.SpawnY); } } diff --git a/src/DataModel/Configuration/CastleSiegeStateScheduleEntry.cs b/src/DataModel/Configuration/CastleSiegeStateScheduleEntry.cs index 3065f40c8f..1c6ac0524b 100644 --- a/src/DataModel/Configuration/CastleSiegeStateScheduleEntry.cs +++ b/src/DataModel/Configuration/CastleSiegeStateScheduleEntry.cs @@ -35,6 +35,11 @@ public partial class CastleSiegeStateScheduleEntry /// public override string ToString() { - return $"{this.State} on {this.DayOfWeek} at {this.Hour:D2}:{this.Minute:D2}"; + return string.Format( + Properties.Resources.CastleSiegeScheduleSummary, + this.State.GetEnumCaption(), + CultureHelper.GetDayName(this.DayOfWeek), + this.Hour, + this.Minute); } } diff --git a/src/DataModel/Configuration/CastleSiegeUpgradeDefinition.cs b/src/DataModel/Configuration/CastleSiegeUpgradeDefinition.cs index dd372c1fa9..2556789323 100644 --- a/src/DataModel/Configuration/CastleSiegeUpgradeDefinition.cs +++ b/src/DataModel/Configuration/CastleSiegeUpgradeDefinition.cs @@ -35,6 +35,6 @@ public partial class CastleSiegeUpgradeDefinition /// public override string ToString() { - return $"Level {this.Level}: Value={this.Value}, Jewels={this.RequiredJewelOfGuardianCount}, Zen={this.RequiredZen}"; + return string.Format(Properties.Resources.CastleSiegeUpgradeSummary, this.Level, this.Value, this.RequiredJewelOfGuardianCount, this.RequiredZen); } } diff --git a/src/DataModel/Configuration/CastleSiegeZoneDefinition.cs b/src/DataModel/Configuration/CastleSiegeZoneDefinition.cs index 602042bcc0..d4dbf8c21d 100644 --- a/src/DataModel/Configuration/CastleSiegeZoneDefinition.cs +++ b/src/DataModel/Configuration/CastleSiegeZoneDefinition.cs @@ -35,6 +35,6 @@ public partial class CastleSiegeZoneDefinition /// public override string ToString() { - return $"{this.X1} / {this.Y1} to {this.X2} / {this.Y2}"; + return string.Format(Properties.Resources.CastleSiegeZoneSummary, this.X1, this.Y1, this.X2, this.Y2); } } diff --git a/src/DataModel/Configuration/ChatServerDefinition.cs b/src/DataModel/Configuration/ChatServerDefinition.cs index 827ccb3fbd..de5d595f48 100644 --- a/src/DataModel/Configuration/ChatServerDefinition.cs +++ b/src/DataModel/Configuration/ChatServerDefinition.cs @@ -56,6 +56,6 @@ public partial class ChatServerDefinition /// public override string ToString() { - return $"[ChatServerDefinition ServerID={this.ServerId}, Description={this.Description}]"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.ChatServerSummary, this.ServerId, this.Description); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/DuelConfiguration.cs b/src/DataModel/Configuration/DuelConfiguration.cs index 38c493ed9a..c919baa398 100644 --- a/src/DataModel/Configuration/DuelConfiguration.cs +++ b/src/DataModel/Configuration/DuelConfiguration.cs @@ -47,6 +47,6 @@ public partial class DuelConfiguration /// public override string ToString() { - return $"Duel Configuration {this.DuelAreas.Count} Arenas, Exit: {this.Exit}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.DuelConfigSummary, this.DuelAreas.Count, this.Exit); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/EnterGate.cs b/src/DataModel/Configuration/EnterGate.cs index 5bad8fafed..22f1097241 100644 --- a/src/DataModel/Configuration/EnterGate.cs +++ b/src/DataModel/Configuration/EnterGate.cs @@ -31,6 +31,6 @@ public partial class EnterGate : Gate /// public override string ToString() { - return $"{base.ToString()} ({this.Number}) (Level {this.LevelRequirement}) to {this.TargetGate}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.EnterGateSummary, base.ToString(), this.Number, this.LevelRequirement, this.TargetGate); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/GameConfiguration.cs b/src/DataModel/Configuration/GameConfiguration.cs index 9f6941a169..f1d2c4dd57 100644 --- a/src/DataModel/Configuration/GameConfiguration.cs +++ b/src/DataModel/Configuration/GameConfiguration.cs @@ -309,6 +309,6 @@ public partial class GameConfiguration /// public override string ToString() { - return "Default Game Configuration"; + return typeof(GameConfiguration).GetTypeCaption(); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/GameServerConfiguration.cs b/src/DataModel/Configuration/GameServerConfiguration.cs index 9ecee51697..7d3cd057c4 100644 --- a/src/DataModel/Configuration/GameServerConfiguration.cs +++ b/src/DataModel/Configuration/GameServerConfiguration.cs @@ -26,6 +26,6 @@ public partial class GameServerConfiguration /// public override string ToString() { - return $"Default ({this.MaximumPlayers} players)"; // TODO Add Description field + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.GameServerConfigSummary, this.MaximumPlayers); // TODO Add Description field } } \ No newline at end of file diff --git a/src/DataModel/Configuration/ItemCrafting/ItemCraftingRequiredItem.cs b/src/DataModel/Configuration/ItemCrafting/ItemCraftingRequiredItem.cs index 1173d90feb..a4ac95ef41 100644 --- a/src/DataModel/Configuration/ItemCrafting/ItemCraftingRequiredItem.cs +++ b/src/DataModel/Configuration/ItemCrafting/ItemCraftingRequiredItem.cs @@ -76,7 +76,7 @@ public override string ToString() string itemName; if (!this.PossibleItems.Any()) { - itemName = "Random Item"; + itemName = MUnique.OpenMU.DataModel.Properties.Resources.RandomItemSummary; } else { diff --git a/src/DataModel/Configuration/Items/CombinationBonusRequirement.cs b/src/DataModel/Configuration/Items/CombinationBonusRequirement.cs index e93a507400..2c882d667e 100644 --- a/src/DataModel/Configuration/Items/CombinationBonusRequirement.cs +++ b/src/DataModel/Configuration/Items/CombinationBonusRequirement.cs @@ -30,6 +30,6 @@ public partial class CombinationBonusRequirement /// public override string ToString() { - return $"{this.OptionType}: SubOption Type {this.SubOptionType}, Min. Count {this.MinimumCount}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.OptionRequirementSummary, this.OptionType, this.SubOptionType, this.MinimumCount); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/Items/ItemOptionOfLevel.cs b/src/DataModel/Configuration/Items/ItemOptionOfLevel.cs index 53b0071496..4053f7e761 100644 --- a/src/DataModel/Configuration/Items/ItemOptionOfLevel.cs +++ b/src/DataModel/Configuration/Items/ItemOptionOfLevel.cs @@ -32,6 +32,6 @@ public partial class ItemOptionOfLevel /// public override string ToString() { - return $"Level {this.Level}: {this.PowerUpDefinition}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.LevelValueSummary, this.Level, this.PowerUpDefinition); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/Items/LevelBonus.cs b/src/DataModel/Configuration/Items/LevelBonus.cs index 3f20d00eba..44f77d744b 100644 --- a/src/DataModel/Configuration/Items/LevelBonus.cs +++ b/src/DataModel/Configuration/Items/LevelBonus.cs @@ -65,6 +65,6 @@ public IElement GetAdditionalValueElement(AggregateType aggregateType) /// public override string ToString() { - return $"Level: {this.Level}: {this.AdditionalValue}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.LevelValueSummary, this.Level, this.AdditionalValue); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/LevelDependentDamage.cs b/src/DataModel/Configuration/LevelDependentDamage.cs index 35d391fcec..869d8159bf 100644 --- a/src/DataModel/Configuration/LevelDependentDamage.cs +++ b/src/DataModel/Configuration/LevelDependentDamage.cs @@ -25,6 +25,6 @@ public partial class LevelDependentDamage /// public override string ToString() { - return $"Level {this.Level}: {this.Damage}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.LevelValueSummary, this.Level, this.Damage); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/MasterSkillDefinition.cs b/src/DataModel/Configuration/MasterSkillDefinition.cs index d4af0b21f0..f9abaf8e2b 100644 --- a/src/DataModel/Configuration/MasterSkillDefinition.cs +++ b/src/DataModel/Configuration/MasterSkillDefinition.cs @@ -92,6 +92,6 @@ public partial class MasterSkillDefinition /// public override string ToString() { - return "Master Skill Definition"; + return typeof(MasterSkillDefinition).GetTypeCaption(); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/MiniGameSpawnWave.cs b/src/DataModel/Configuration/MiniGameSpawnWave.cs index e9a41bd330..8631d30667 100644 --- a/src/DataModel/Configuration/MiniGameSpawnWave.cs +++ b/src/DataModel/Configuration/MiniGameSpawnWave.cs @@ -41,6 +41,6 @@ public partial class MiniGameSpawnWave /// public override string ToString() { - return $"Wave {this.WaveNumber}: {this.Description}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.WaveSummary, this.WaveNumber, this.Description); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/MiniGameTerrainChange.cs b/src/DataModel/Configuration/MiniGameTerrainChange.cs index 13b832076f..658ef33819 100644 --- a/src/DataModel/Configuration/MiniGameTerrainChange.cs +++ b/src/DataModel/Configuration/MiniGameTerrainChange.cs @@ -50,6 +50,14 @@ public partial class MiniGameTerrainChange /// public override string ToString() { - return $"{(this.SetTerrainAttribute ? "Set" : "Remove")} Attribute '{this.TerrainAttribute}' from ({this.StartX}, {this.StartY}) to ({this.EndX}, {this.EndY}) {(this.IsClientUpdateRequired ? "with" : "without")} client update"; + return string.Format( + MUnique.OpenMU.DataModel.Properties.Resources.TerrainChangeSummary, + this.SetTerrainAttribute ? MUnique.OpenMU.DataModel.Properties.Resources.TerrainSet : MUnique.OpenMU.DataModel.Properties.Resources.TerrainRemove, + ModelResourceProvider.GetEnumCaption(this.TerrainAttribute.GetType(), this.TerrainAttribute), + this.StartX, + this.StartY, + this.EndX, + this.EndY, + this.IsClientUpdateRequired ? MUnique.OpenMU.DataModel.Properties.Resources.TerrainWithClientUpdate : MUnique.OpenMU.DataModel.Properties.Resources.TerrainWithoutClientUpdate); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/MonsterSpawnArea.cs b/src/DataModel/Configuration/MonsterSpawnArea.cs index f994820e42..1fffc04064 100644 --- a/src/DataModel/Configuration/MonsterSpawnArea.cs +++ b/src/DataModel/Configuration/MonsterSpawnArea.cs @@ -133,12 +133,12 @@ public override string ToString() { var isPoint = this.IsPoint(); var result = isPoint - ? $"{this.MonsterDefinition?.Designation} - Qty: {this.Quantity} @ {this.X1}/{this.Y1}" - : $"{this.MonsterDefinition?.Designation} - Qty: {this.Quantity} @ {this.X1}/{this.Y1} to {this.X2}/{this.Y2}"; + ? string.Format(MUnique.OpenMU.DataModel.Properties.Resources.SpawnPointSummary, this.MonsterDefinition?.Designation, this.Quantity, this.X1, this.Y1) + : string.Format(MUnique.OpenMU.DataModel.Properties.Resources.SpawnAreaSummary, this.MonsterDefinition?.Designation, this.Quantity, this.X1, this.Y1, this.X2, this.Y2); if (this.SpawnTrigger == SpawnTrigger.AutomaticDuringWave || this.SpawnTrigger == SpawnTrigger.OnceAtWaveStart) { - result += $" - Wave: {this.WaveNumber}"; + result += string.Format(MUnique.OpenMU.DataModel.Properties.Resources.SpawnWaveSummary, this.WaveNumber); } return result; diff --git a/src/DataModel/Configuration/Quests/QuestReward.cs b/src/DataModel/Configuration/Quests/QuestReward.cs index a88de05f1e..0e5e177712 100644 --- a/src/DataModel/Configuration/Quests/QuestReward.cs +++ b/src/DataModel/Configuration/Quests/QuestReward.cs @@ -54,19 +54,19 @@ public override string ToString() if (this.RewardType == QuestRewardType.Skill) { - return $"Skill: {this.SkillReward?.Name}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.SkillRewardSummary, this.SkillReward?.Name); } if (this.RewardType == QuestRewardType.Attribute) { - return $"Attribute: {this.Value} x {this.AttributeReward}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.AttributeRewardSummary, this.Value, this.AttributeReward); } if (this.RewardType is QuestRewardType.Experience or QuestRewardType.Money or QuestRewardType.LevelUpPoints or QuestRewardType.GensAttribution) { - return $"{this.Value} x {this.RewardType}"; + return $"{this.Value} x {ModelResourceProvider.GetEnumCaption(this.RewardType.GetType(), this.RewardType)}"; } - return $"{this.RewardType}"; + return $"{ModelResourceProvider.GetEnumCaption(this.RewardType.GetType(), this.RewardType)}"; } } \ No newline at end of file diff --git a/src/DataModel/Configuration/Rectangle.cs b/src/DataModel/Configuration/Rectangle.cs index 5dd221a013..91f92084cc 100644 --- a/src/DataModel/Configuration/Rectangle.cs +++ b/src/DataModel/Configuration/Rectangle.cs @@ -40,6 +40,6 @@ public override string ToString() return $"{this.X1} / {this.Y1}"; } - return $"{this.X1} / {this.Y1} to {this.X2} / {this.Y2}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.RectangleSummary, this.X1, this.Y1, this.X2, this.Y2); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/ServerEndpoint.cs b/src/DataModel/Configuration/ServerEndpoint.cs index 09b20c6ac9..25c1be5390 100644 --- a/src/DataModel/Configuration/ServerEndpoint.cs +++ b/src/DataModel/Configuration/ServerEndpoint.cs @@ -38,6 +38,6 @@ protected ServerEndpoint() /// public override string ToString() { - return $"Client: {this.Client?.Description}; Port: {this.NetworkPort}"; + return string.Format(MUnique.OpenMU.DataModel.Properties.Resources.ServerEndpointSummary, this.Client?.Description, this.NetworkPort); } } \ No newline at end of file diff --git a/src/DataModel/Configuration/SystemConfiguration.cs b/src/DataModel/Configuration/SystemConfiguration.cs index 3028e16cf7..d855d8ec87 100644 --- a/src/DataModel/Configuration/SystemConfiguration.cs +++ b/src/DataModel/Configuration/SystemConfiguration.cs @@ -147,6 +147,6 @@ public partial class SystemConfiguration /// public override string ToString() { - return "System Configuration"; + return Resources.SystemConfiguration_Name; } } \ No newline at end of file diff --git a/src/DataModel/CultureHelper.cs b/src/DataModel/CultureHelper.cs index b061d9a9e7..9277fe401f 100644 --- a/src/DataModel/CultureHelper.cs +++ b/src/DataModel/CultureHelper.cs @@ -5,6 +5,7 @@ namespace MUnique.OpenMU.DataModel; using System.Globalization; +using System.IO; using System.Resources; using Nito.Disposables; using Nito.Disposables.Internals; @@ -35,16 +36,38 @@ public static IDisposable SetTemporaryCulture(CultureInfo cultureInfo) }); } + /// + /// Gets a weekday caption, preferring deployed resources over platform culture data. + /// + /// The weekday. + /// The localized weekday name. + public static string GetDayName(DayOfWeek day) + { + var culture = CultureInfo.CurrentUICulture; + var resources = Properties.Resources.ResourceManager.GetResourceSet(culture, true, false); + return resources?.GetString($"DayOfWeek_{day}") ?? culture.DateTimeFormat.GetDayName(day); + } + /// /// Gets the available cultures for a specific resource. /// /// The type of the resources. - /// An enumeration of of available cultures of the given resource type. + /// The available cultures of the given resource type. public static IEnumerable GetAvailableCultures() { var resourceManager = new ResourceManager(typeof(TResources)); - var cultures = CultureInfo.GetCultures(CultureTypes.AllCultures); + // ICU can enumerate zh-Hans-CN instead of zh-CN. Include the exact culture names + // of deployed satellite assemblies so regional resources are found on every platform. + var assembly = typeof(TResources).Assembly; + var directory = Path.GetDirectoryName(assembly.Location) ?? AppContext.BaseDirectory; + var satelliteName = $"{assembly.GetName().Name}.resources.dll"; + var deployedCultures = Directory.EnumerateDirectories(directory) + .Where(path => File.Exists(Path.Combine(path, satelliteName))) + .Select(path => CultureInfo.GetCultureInfo(Path.GetFileName(path))); + var cultures = CultureInfo.GetCultures(CultureTypes.AllCultures) + .Concat(deployedCultures) + .Distinct(); var result = cultures .Except([CultureInfo.InvariantCulture]) .Where(culture => culture is { IsNeutralCulture: true, TwoLetterISOLanguageName: "en" } diff --git a/src/DataModel/Entities/ItemStorage.cs b/src/DataModel/Entities/ItemStorage.cs index f0517d2ac4..ac5df63d94 100644 --- a/src/DataModel/Entities/ItemStorage.cs +++ b/src/DataModel/Entities/ItemStorage.cs @@ -26,6 +26,6 @@ public partial class ItemStorage /// public override string ToString() { - return $"{this.Items?.Count ?? 0} Items, {this.Money} Money"; + return string.Format(Properties.Resources.ItemStorageSummary, this.Items?.Count ?? 0, this.Money); } } \ No newline at end of file diff --git a/src/DataModel/ModelResourceProvider.cs b/src/DataModel/ModelResourceProvider.cs index 50bf3726ef..b7bd737afe 100644 --- a/src/DataModel/ModelResourceProvider.cs +++ b/src/DataModel/ModelResourceProvider.cs @@ -41,8 +41,8 @@ public static string GetTypeCaption(CultureInfo? cultureInfo = null) public static string GetTypeCaption(this Type modelType, CultureInfo? cultureInfo = null) { cultureInfo ??= CultureInfo.CurrentUICulture; - var resourceKey = modelType.Name + "_TypeCaption"; - return GetResourceManager(modelType)?.GetString(resourceKey, cultureInfo) ?? SeparateWords(modelType.Name); + var resourceKey = "TypeCaption"; + return GetModelResourceString(modelType, resourceKey, cultureInfo) ?? SeparateWords(modelType.Name); } /// @@ -67,8 +67,8 @@ public static string GetPluralizedTypeCaption(CultureInfo? cultureInfo = public static string GetPluralizedTypeCaption(this Type modelType, CultureInfo? cultureInfo = null) { cultureInfo ??= CultureInfo.CurrentUICulture; - var resourceKey = modelType.Name + "_TypeCaptionPlural"; - return GetResourceManager(modelType)?.GetString(resourceKey, cultureInfo) ?? SeparateWords(modelType.Name); + var resourceKey = "TypeCaptionPlural"; + return GetModelResourceString(modelType, resourceKey, cultureInfo) ?? SeparateWords(modelType.Name); } /// @@ -93,8 +93,8 @@ public static string GetTypeDescription(CultureInfo? cultureInfo = null) public static string GetTypeDescription(this Type modelType, CultureInfo? cultureInfo = null) { cultureInfo ??= CultureInfo.CurrentUICulture; - var resourceKey = modelType.Name + "_TypeDescription"; - return GetResourceManager(modelType)?.GetString(resourceKey, cultureInfo) ?? string.Empty; + var resourceKey = "TypeDescription"; + return GetModelResourceString(modelType, resourceKey, cultureInfo) ?? string.Empty; } /// @@ -121,8 +121,8 @@ public static string GetPropertyCaption(string propertyName, CultureInfo public static string GetPropertyCaption(this Type modelType, string propertyName, CultureInfo? cultureInfo = null) { cultureInfo ??= CultureInfo.CurrentUICulture; - var resourceKey = $"{modelType.Name}_{propertyName}_Caption"; - return GetResourceManager(modelType)?.GetString(resourceKey, cultureInfo) ?? SeparateWords(propertyName); + var resourceKey = $"{propertyName}_Caption"; + return GetModelResourceString(modelType, resourceKey, cultureInfo) ?? SeparateWords(propertyName); } /// @@ -149,8 +149,8 @@ public static string GetPropertyDescription(string propertyName, Culture public static string GetPropertyDescription(this Type modelType, string propertyName, CultureInfo? cultureInfo = null) { cultureInfo ??= CultureInfo.CurrentUICulture; - var resourceKey = $"{modelType.Name}_{propertyName}_Description"; - return GetResourceManager(modelType)?.GetString(resourceKey, cultureInfo) ?? string.Empty; + var resourceKey = $"{propertyName}_Description"; + return GetModelResourceString(modelType, resourceKey, cultureInfo) ?? string.Empty; } /// @@ -183,6 +183,27 @@ public static string GetEnumCaption(Type enumType, Enum enumValue, CultureInfo? return GetResourceManager(enumType)?.GetString(resourceKey, cultureInfo) ?? SeparateWords(enumValue.ToString()); } + /// + /// Resolves model resources through base types, including persistence-generated models. + /// + /// The runtime model type. + /// The resource key suffix after the model type name. + /// The requested culture. + /// The first matching resource, or null if none exists. + private static string? GetModelResourceString(Type modelType, string keySuffix, CultureInfo cultureInfo) + { + for (Type? type = modelType; type is not null; type = type.BaseType) + { + var value = GetResourceManager(type)?.GetString($"{type.Name}_{keySuffix}", cultureInfo); + if (value is not null) + { + return value; + } + } + + return null; + } + /// /// Gets the associated with the assembly of the specified . /// The manager is cached per assembly. If no matching resource base name is found, returns null. diff --git a/src/GameLogic/Bots/BotConfiguration.cs b/src/GameLogic/Bots/BotConfiguration.cs index f0fc4608dd..2311e00fcd 100644 --- a/src/GameLogic/Bots/BotConfiguration.cs +++ b/src/GameLogic/Bots/BotConfiguration.cs @@ -20,7 +20,7 @@ public class BotConfiguration /// Gets or sets a value indicating whether the bot feature is enabled. /// Disabled by default so that enabling bots is always an explicit, deliberate action. /// - [Display(Name = "Enabled", Description = "If enabled, bots are spawned after the server has started.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool Enabled { get; set; } /// @@ -28,7 +28,7 @@ public class BotConfiguration /// When set, the feature purges every bot account on the next startup before generating fresh /// ones, and then automatically clears this flag again. Use it to reset the bot population. /// - [Display(Name = "Reset bots", Description = "Deletes all bot accounts and characters on the next start, then regenerates them. Clears itself afterwards.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display2_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display2_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool ResetBots { get; set; } /// @@ -37,7 +37,7 @@ public class BotConfiguration /// off - otherwise the very same pass would generate the population again - so it is the single /// switch for "I do not want bots on this server anymore". Clears itself afterwards. /// - [Display(Name = "Purge bots", Description = "Deletes all bot accounts and characters and turns the bot feature off, without generating new ones. Clears itself afterwards.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display3_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display3_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool PurgeBots { get; set; } /// @@ -47,7 +47,7 @@ public class BotConfiguration /// characters which are generated from now on - an existing bot population keeps its state /// until it is regenerated (). /// - [Display(Name = "Start as fresh characters", Description = "Newly generated bots start at level 1 with level-0 starter equipment, like a freshly created player character, instead of with a random level, reset history and upgraded gear.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display4_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display4_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool StartAsFreshCharacters { get; set; } /// @@ -55,21 +55,21 @@ public class BotConfiguration /// fewer bots are online at night, most in the evening, with bots smoothly logging in and out - /// like a real player base, instead of the same characters being online 24/7. /// - [Display(Name = "Presence rotation", Description = "Bots log in and out over the day (fewest at night, most in the evening) instead of all being online 24/7.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display5_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display5_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool PresenceRotation { get; set; } = true; /// /// Gets or sets the share (in percent) of bots which stays online at the quietest time of day. /// 100 effectively disables the rotation effect. /// - [Display(Name = "Min. online share %", Description = "Percentage of the bot population which stays online at the quietest hour (100 = no rotation effect).")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display6_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display6_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int MinOnlineSharePercent { get; set; } = 60; /// /// Gets or sets the number of bot accounts. Together with /// this defines the generated bot population, e.g. 10 accounts × 5 characters = 50 bot characters. /// - [Display(Name = "Number of accounts", Description = "How many bot accounts to maintain.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display7_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display7_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Range(0, 1000)] public int NumberOfAccounts { get; set; } = 10; @@ -77,7 +77,7 @@ public class BotConfiguration /// Gets or sets the number of characters per bot account. An account can hold at most /// (5) characters, so this value is clamped on use. /// - [Display(Name = "Characters per account", Description = "How many characters each bot account holds (max 5).")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display8_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display8_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Range(1, MaxCharactersPerAccountLimit)] public int MaxCharactersPerAccount { get; set; } = MaxCharactersPerAccountLimit; @@ -89,7 +89,7 @@ public class BotConfiguration /// ); accounts which do not fit stay offline until the servers offer /// the room for them. /// - [Display(Name = "Bot capacity %", Description = "Share of a game server's maximum player count which its bots may occupy; the rest stays reserved for real players.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display9_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display9_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Range(1, 100)] public int BotCapacityPercent { get; set; } = 60; @@ -99,7 +99,7 @@ public class BotConfiguration /// bots don't take part in the player economy the costs are balanced for, so charging them only /// stalls their progression (a bot can't farm zen for a billion-zen reset the way players trade). /// - [Display(Name = "Bots pay reset costs", Description = "If enabled, bots consume the configured zen/item costs for their resets like human players (default: free bot resets).")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display10_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display10_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool BotsPayResetCosts { get; set; } /// @@ -109,7 +109,7 @@ public class BotConfiguration /// merchant visit. The sensible value depends entirely on the server's drop rates - on a high rate /// server a bot refills a big stock within hours, so a low limit keeps its backpack usable. /// - [Display(Name = "Jewel stock per kind", Description = "How many Jewels of Bless/Soul/Life a bot keeps of each kind; above this it stops picking them up and sells the surplus.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display11_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display11_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Range(0, 100)] public int JewelStockPerKind { get; set; } = 10; @@ -118,7 +118,7 @@ public class BotConfiguration /// at a merchant. Merchants sell potions in stacks of different sizes, so this is the target the bot /// buys towards, not a stack count. /// - [Display(Name = "Potion stock (charges)", Description = "How many healing and mana potion charges a bot buys up to at a merchant.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display12_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display12_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Range(10, 255)] public int PotionStockCharges { get; set; } = 60; @@ -129,7 +129,7 @@ public class BotConfiguration /// These accounts are animated as-is and are not part of the partitioned, capacity-limited /// population, so leave it empty unless you specifically want to drive existing accounts. /// - [Display(Name = "Extra accounts to animate", Description = "Comma separated login names of existing accounts to animate as bots, in addition to the generated population.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display13_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotConfiguration_Display13_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public string ProofOfConceptAccounts { get; set; } = string.Empty; /// diff --git a/src/GameLogic/Bots/BotFeaturePlugIn.cs b/src/GameLogic/Bots/BotFeaturePlugIn.cs index df9e88aa1d..3fe1b2cc7b 100644 --- a/src/GameLogic/Bots/BotFeaturePlugIn.cs +++ b/src/GameLogic/Bots/BotFeaturePlugIn.cs @@ -18,7 +18,7 @@ namespace MUnique.OpenMU.GameLogic.Bots; /// Appears in the "Feature Plugins" section of the admin panel next to the MU Helper and reset features. /// [PlugIn] -[Display(Name = "Bots", Description = "Spawns server-side bots which hunt monsters on the maps. Configure the accounts to animate and enable the feature.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotFeaturePlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotFeaturePlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("6F3A2B91-7C4E-4D88-9A1F-2E5C0B7A4D63")] public class BotFeaturePlugIn : IFeaturePlugIn, IPeriodicTaskPlugIn, ISupportCustomConfiguration, ISupportDefaultCustomConfiguration { diff --git a/src/GameLogic/Bots/BotRevengePlugIn.cs b/src/GameLogic/Bots/BotRevengePlugIn.cs index de1ef77e0f..176859c57b 100644 --- a/src/GameLogic/Bots/BotRevengePlugIn.cs +++ b/src/GameLogic/Bots/BotRevengePlugIn.cs @@ -18,7 +18,7 @@ namespace MUnique.OpenMU.GameLogic.Bots; /// prioritized - struck only once the game's own rules make it legal (see ). /// [PlugIn] -[Display(Name = "Bot revenge", Description = "Makes server-side bots return to their death site and take revenge on the player who killed them.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotRevengePlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotRevengePlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("29B871B0-FBCF-44D4-A677-8A9832AAC193")] public class BotRevengePlugIn : IAttackableGotKilledPlugIn { diff --git a/src/GameLogic/Bots/BotSelfDefensePlugIn.cs b/src/GameLogic/Bots/BotSelfDefensePlugIn.cs index 852eee7076..e73414bee5 100644 --- a/src/GameLogic/Bots/BotSelfDefensePlugIn.cs +++ b/src/GameLogic/Bots/BotSelfDefensePlugIn.cs @@ -16,7 +16,7 @@ namespace MUnique.OpenMU.GameLogic.Bots; /// , which prioritizes a recent aggressor over its monster targets. /// [PlugIn] -[Display(Name = "Bot self defense", Description = "Makes server-side bots fight back when a player attacks them.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotSelfDefensePlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotSelfDefensePlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("7E2B9C41-5A8D-4F36-B190-3D6E84C7F215")] public class BotSelfDefensePlugIn : IAttackableGotHitPlugIn { diff --git a/src/GameLogic/Bots/BotSkillProgressionPlugIn.cs b/src/GameLogic/Bots/BotSkillProgressionPlugIn.cs index 55769b9816..2809f739d2 100644 --- a/src/GameLogic/Bots/BotSkillProgressionPlugIn.cs +++ b/src/GameLogic/Bots/BotSkillProgressionPlugIn.cs @@ -23,7 +23,7 @@ namespace MUnique.OpenMU.GameLogic.Bots; /// same requirements the game enforces for human players. /// [PlugIn] -[Display(Name = "Bot skill progression", Description = "Invests level-up stat points and teaches server-side bots new class- and level-appropriate skills as they level up.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotSkillProgressionPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BotSkillProgressionPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("D1F4A7C2-6B3E-4A59-8E71-9C0D2F5B6A84")] public class BotSkillProgressionPlugIn : ICharacterLevelUpPlugIn { diff --git a/src/GameLogic/PlayerActions/ItemConsumeActions/BlessJewelConsumeHandlerPlugInConfiguration.cs b/src/GameLogic/PlayerActions/ItemConsumeActions/BlessJewelConsumeHandlerPlugInConfiguration.cs index 97d1d790a2..83e63ab965 100644 --- a/src/GameLogic/PlayerActions/ItemConsumeActions/BlessJewelConsumeHandlerPlugInConfiguration.cs +++ b/src/GameLogic/PlayerActions/ItemConsumeActions/BlessJewelConsumeHandlerPlugInConfiguration.cs @@ -14,5 +14,6 @@ public class BlessJewelConsumeHandlerPlugInConfiguration : UpgradeItemLevelConfi /// /// Gets or sets the items which can be repaired by consuming a bless on them. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BlessJewelConsumeHandlerPlugInConfiguration_RepairTargetItems_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public ICollection RepairTargetItems { get; set; } = new List(); } \ No newline at end of file diff --git a/src/GameLogic/PlayerActions/Items/ItemBoxDroppedPlugIn.cs b/src/GameLogic/PlayerActions/Items/ItemBoxDroppedPlugIn.cs index bed50aae6c..a09215c5ab 100644 --- a/src/GameLogic/PlayerActions/Items/ItemBoxDroppedPlugIn.cs +++ b/src/GameLogic/PlayerActions/Items/ItemBoxDroppedPlugIn.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.GameLogic.PlayerActions.Items; /// This plugin handles the drop of an item box, e.g. box of kundun. /// [PlugIn] -[Display(Name = nameof(ItemBoxDroppedPlugIn), Description = "This plugin handles the drop of an item box, e.g. box of kundun.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ItemBoxDroppedPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ItemBoxDroppedPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("3D15D55D-EEFE-4B5F-89B1-6934AB3F0BEE")] public sealed class ItemBoxDroppedPlugIn : IItemDropPlugIn { diff --git a/src/GameLogic/PlayerActions/Items/LostMapDroppedPlugIn.cs b/src/GameLogic/PlayerActions/Items/LostMapDroppedPlugIn.cs index 13826dd45a..a667e696c7 100644 --- a/src/GameLogic/PlayerActions/Items/LostMapDroppedPlugIn.cs +++ b/src/GameLogic/PlayerActions/Items/LostMapDroppedPlugIn.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.GameLogic.PlayerActions.Items; /// todo: implement plugin configuration to resolve magic numbers. /// [PlugIn] -[Display(Name = nameof(LostMapDroppedPlugIn), Description = "This plugin handles the drop of the lost map item. It creates the gate to the kalima map.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.LostMapDroppedPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.LostMapDroppedPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("F6DB10E0-AE7F-4BC6-914F-B858763C5CF7")] public sealed class LostMapDroppedPlugIn : IItemDropPlugIn { diff --git a/src/GameLogic/PlugIns/ChatCommands/PKClearChatCommandPlugIn.cs b/src/GameLogic/PlugIns/ChatCommands/PKClearChatCommandPlugIn.cs index 5fcafe9e02..06e72d3d6f 100644 --- a/src/GameLogic/PlugIns/ChatCommands/PKClearChatCommandPlugIn.cs +++ b/src/GameLogic/PlugIns/ChatCommands/PKClearChatCommandPlugIn.cs @@ -129,13 +129,13 @@ public class PKClearConfiguration /// /// Gets or sets the Zen cost per kill. /// - [Display(Name = "Zen Cost Per Kill", Description = "The amount of Zen required to clear one PK count.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.PKClearChatCommandPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.PKClearChatCommandPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int ZenCostPerKill { get; set; } = 10_000_000; /// /// Gets or sets a value indicating whether regular players are allowed to clear their PK status. /// - [Display(Name = "Allow Regular Players", Description = "Allows regular players to use this command to clear their own PK status for Zen.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.PKClearChatCommandPlugIn_Display2_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.PKClearChatCommandPlugIn_Display2_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool AllowRegularPlayers { get; set; } = true; } } \ No newline at end of file diff --git a/src/GameLogic/PlugIns/DuelSpawnGatePlugIn.cs b/src/GameLogic/PlugIns/DuelSpawnGatePlugIn.cs index d49c8ebfd0..bd2ba075c8 100644 --- a/src/GameLogic/PlugIns/DuelSpawnGatePlugIn.cs +++ b/src/GameLogic/PlugIns/DuelSpawnGatePlugIn.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns; /// A plugin which spawns a duelist at its side of the duel area, instead of the safezone. /// [PlugIn] -[Display(Name = nameof(DuelSpawnGatePlugIn), Description = "Spawns a player which is in a duel at its side of the duel area.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.DuelSpawnGatePlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.DuelSpawnGatePlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("1D2C8B5A-4E7F-4C93-8B21-6A0E5D9F3C74")] public class DuelSpawnGatePlugIn : IPlayerSpawnGateSelectionPlugIn { diff --git a/src/GameLogic/PlugIns/InvasionEvents/InvasionSpawnConfiguration.cs b/src/GameLogic/PlugIns/InvasionEvents/InvasionSpawnConfiguration.cs index c2e8b1e97b..cc3545de8e 100644 --- a/src/GameLogic/PlugIns/InvasionEvents/InvasionSpawnConfiguration.cs +++ b/src/GameLogic/PlugIns/InvasionEvents/InvasionSpawnConfiguration.cs @@ -51,12 +51,14 @@ public InvasionSpawnConfiguration( /// Gets or sets the monster ID to spawn. /// [Required] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.InvasionSpawnConfiguration_MonsterId_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public ushort MonsterId { get; set; } /// /// Gets or sets the number of monsters to spawn (1-254). /// [Range(1, 254)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.InvasionSpawnConfiguration_Count_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public ushort Count { get; set; } /// @@ -64,17 +66,20 @@ public InvasionSpawnConfiguration( /// [Required] [MinLength(1)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.InvasionSpawnConfiguration_MapIds_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public IList MapIds { get; set; } = []; /// /// Gets or sets the strategy used to select a map when spawning. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.InvasionSpawnConfiguration_MapStrategy_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public SpawnMapStrategy MapStrategy { get; set; } /// /// Gets or sets a value indicating whether the death of this monster type /// should be announced with a global broadcast message. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.InvasionSpawnConfiguration_AnnounceDeath_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool AnnounceDeath { get; set; } /// @@ -83,6 +88,7 @@ public InvasionSpawnConfiguration( /// When set to false, is changed to . /// This property exists for UI binding and serialization compatibility. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.InvasionSpawnConfiguration_IsSpawnOnAllMaps_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool IsSpawnOnAllMaps { get => this.MapStrategy == SpawnMapStrategy.AllMaps; @@ -94,6 +100,7 @@ public bool IsSpawnOnAllMaps /// If null, a random walkable coordinate is used. /// [Range(0, 255)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.InvasionSpawnConfiguration_X_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public byte? X { get; set; } /// @@ -101,6 +108,7 @@ public bool IsSpawnOnAllMaps /// If null, a random walkable coordinate is used. /// [Range(0, 255)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.InvasionSpawnConfiguration_Y_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public byte? Y { get; set; } /// diff --git a/src/GameLogic/PlugIns/InvasionEvents/PeriodicInvasionConfiguration.cs b/src/GameLogic/PlugIns/InvasionEvents/PeriodicInvasionConfiguration.cs index d3c6473773..4653ca1d55 100644 --- a/src/GameLogic/PlugIns/InvasionEvents/PeriodicInvasionConfiguration.cs +++ b/src/GameLogic/PlugIns/InvasionEvents/PeriodicInvasionConfiguration.cs @@ -29,12 +29,12 @@ public PeriodicInvasionConfiguration() /// When true, every mob in the invasion is placed on the same randomly-selected map /// rather than distributing across maps per their individual configurations. /// - [Display(Name = "Force Single Map", Order = 6)] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.PeriodicInvasionConfiguration_Display1_Name), Order = 6, ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool ForceSingleMap { get; set; } /// /// Gets or sets the monster spawns for this invasion. /// - [Display(Name = "Monster Spawns", Order = 7)] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.PeriodicInvasionConfiguration_Display2_Name), Order = 7, ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public IList Mobs { get; set; } = []; } \ No newline at end of file diff --git a/src/GameLogic/PlugIns/InvasionEvents/WhiteWizardInvasionPlugIn.cs b/src/GameLogic/PlugIns/InvasionEvents/WhiteWizardInvasionPlugIn.cs index 6e057ce506..dbe2182ad3 100644 --- a/src/GameLogic/PlugIns/InvasionEvents/WhiteWizardInvasionPlugIn.cs +++ b/src/GameLogic/PlugIns/InvasionEvents/WhiteWizardInvasionPlugIn.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns.InvasionEvents; /// Enables the White Wizard Invasion feature. /// [PlugIn] -[Display(Name = "White Wizard Invasion", Description = "Enables the White Wizard Invasion feature.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.WhiteWizardInvasionPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.WhiteWizardInvasionPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("4B5D0F55-5B26-4447-B9C0-C272E5D0A141")] public sealed class WhiteWizardInvasionPlugIn : SimpleInvasionPlugIn { diff --git a/src/GameLogic/PlugIns/ItemRegistration/ItemRegistrationConfiguration.cs b/src/GameLogic/PlugIns/ItemRegistration/ItemRegistrationConfiguration.cs index 8f1f54f281..3e86f23b76 100644 --- a/src/GameLogic/PlugIns/ItemRegistration/ItemRegistrationConfiguration.cs +++ b/src/GameLogic/PlugIns/ItemRegistration/ItemRegistrationConfiguration.cs @@ -16,7 +16,7 @@ public class ItemRegistrationConfiguration /// /// Gets or sets the list of item registration rules for NPCs. /// - [Display(Name = "NPC Registration Rules", Description = "Configure item registration rules for different NPCs.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ItemRegistrationConfiguration_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ItemRegistrationConfiguration_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [MemberOfAggregate] [ScaffoldColumn(true)] public ICollection Rules { get; set; } = new List diff --git a/src/GameLogic/PlugIns/ItemRegistration/NpcItemRegistrationRule.cs b/src/GameLogic/PlugIns/ItemRegistration/NpcItemRegistrationRule.cs index cf345eaa84..becbe1e406 100644 --- a/src/GameLogic/PlugIns/ItemRegistration/NpcItemRegistrationRule.cs +++ b/src/GameLogic/PlugIns/ItemRegistration/NpcItemRegistrationRule.cs @@ -21,41 +21,41 @@ public class NpcItemRegistrationRule /// until an admin edits it, and Rules.FirstOrDefault(r => r.NpcNumber == npcNumber) /// lookups could silently pick the wrong one of the two. /// - [Display(Name = "NPC Number", Description = "The NPC definition number (e.g. 236 for Golden Archer).")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Range(1, short.MaxValue, ErrorMessage = "Please set a valid NPC number.")] public short NpcNumber { get; set; } /// /// Gets or sets the item group of the accepted item. /// - [Display(Name = "Accepted Item Group", Description = "Group of the accepted item (e.g. 14 for event items).")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display2_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display2_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Range(0, 15, ErrorMessage = "Please set a valid item group.")] public byte AcceptedItemGroup { get; set; } /// /// Gets or sets the item number of the accepted item. /// - [Display(Name = "Accepted Item Number", Description = "Number of the accepted item (e.g. 21 for Rena).")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display3_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display3_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Range(0, short.MaxValue, ErrorMessage = "Please set a valid item number.")] public short AcceptedItemNumber { get; set; } /// /// Gets or sets the number of items required to register to receive a reward. Default is 1. /// - [Display(Name = "Required Items Count", Description = "Number of items required to receive a reward.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display4_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display4_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Range(1, int.MaxValue, ErrorMessage = "At least 1 item must be required.")] public int RequiredItemsCount { get; set; } = 1; /// /// Gets or sets the Zen reward amount when the required count is reached. /// - [Display(Name = "Reward Zen", Description = "Zen awarded upon reaching the required item count.")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display5_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display5_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Range(0, int.MaxValue, ErrorMessage = "Reward Zen can't be negative.")] public int RewardZen { get; set; } /// /// Gets or sets the used to generate the item reward drop. /// - [Display(Name = "Reward Drop Item Group", Description = "The DropItemGroup used to generate the item reward drop. If empty, no item drops (Zen reward only).")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display6_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.NpcItemRegistrationRule_Display6_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public virtual DropItemGroup? RewardDropItemGroup { get; set; } } diff --git a/src/GameLogic/PlugIns/KanturuGatewayPlugIn.cs b/src/GameLogic/PlugIns/KanturuGatewayPlugIn.cs index 31ef752fb0..8bfab7bec5 100644 --- a/src/GameLogic/PlugIns/KanturuGatewayPlugIn.cs +++ b/src/GameLogic/PlugIns/KanturuGatewayPlugIn.cs @@ -22,7 +22,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns; /// [Guid("B7E4D2A3-1F85-4DAB-9074-19B4708389D5")] [PlugIn] -[Display(Name = nameof(KanturuGatewayPlugIn), Description = "Handles the Kanturu Gateway Machine NPC for event entry.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.KanturuGatewayPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.KanturuGatewayPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public class KanturuGatewayPlugIn : IPlayerTalkToNpcPlugIn { /// diff --git a/src/GameLogic/PlugIns/MaximumConnectionsPerIpPlugIn.cs b/src/GameLogic/PlugIns/MaximumConnectionsPerIpPlugIn.cs index ec7efec5d2..8181522ccd 100644 --- a/src/GameLogic/PlugIns/MaximumConnectionsPerIpPlugIn.cs +++ b/src/GameLogic/PlugIns/MaximumConnectionsPerIpPlugIn.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns; /// A plugin that limits the number of simultaneous active player sessions connected from the same IP address. /// [PlugIn] -[Display(Name = "Maximum Connections Per IP", Description = "Limits the maximum number of parallel connections from the same IP address.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.MaximumConnectionsPerIpPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.MaximumConnectionsPerIpPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("2C779F5E-379E-4CE0-BFCC-CA6455D757B3")] public class MaximumConnectionsPerIpPlugIn : IPlayerStateChangingPlugIn, ISupportCustomConfiguration, ISupportDefaultCustomConfiguration, IDisabledByDefault { diff --git a/src/GameLogic/PlugIns/MaximumConnectionsPerIpPlugInConfiguration.cs b/src/GameLogic/PlugIns/MaximumConnectionsPerIpPlugInConfiguration.cs index 1d2d6585e4..4970310e9d 100644 --- a/src/GameLogic/PlugIns/MaximumConnectionsPerIpPlugInConfiguration.cs +++ b/src/GameLogic/PlugIns/MaximumConnectionsPerIpPlugInConfiguration.cs @@ -12,5 +12,6 @@ public class MaximumConnectionsPerIpPlugInConfiguration /// /// Gets or sets the maximum number of concurrent connections per IP address. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.MaximumConnectionsPerIpPlugInConfiguration_MaximumConnectionsPerIp_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int MaximumConnectionsPerIp { get; set; } = 3; } diff --git a/src/GameLogic/PlugIns/MonsterAttributeScalerConfiguration.cs b/src/GameLogic/PlugIns/MonsterAttributeScalerConfiguration.cs index e7d48c71fb..1c4e30f09d 100644 --- a/src/GameLogic/PlugIns/MonsterAttributeScalerConfiguration.cs +++ b/src/GameLogic/PlugIns/MonsterAttributeScalerConfiguration.cs @@ -20,6 +20,7 @@ public class MonsterAttributeScalerConfiguration /// Gets or sets the percentage applied to all stats at once. /// When set above 0, cascades to all individual fields. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.MonsterAttributeScalerConfiguration_ScaleAllPercentage_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public float ScaleAllPercentage { get => this._scaleAllPercentage; @@ -40,6 +41,7 @@ public float ScaleAllPercentage /// /// Gets or sets the percentage by which monster damage (MinPhysBaseDmg, MaxPhysBaseDmg) is increased. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.MonsterAttributeScalerConfiguration_DamagePercentage_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public float DamagePercentage { get => this.ScaleAllActive ? this._scaleAllPercentage : this._damagePercentage; @@ -49,6 +51,7 @@ public float DamagePercentage /// /// Gets or sets the percentage by which the monster attack rate is increased. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.MonsterAttributeScalerConfiguration_AttackRatePercentage_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public float AttackRatePercentage { get => this.ScaleAllActive ? this._scaleAllPercentage : this._attackRatePercentage; @@ -58,6 +61,7 @@ public float AttackRatePercentage /// /// Gets or sets the percentage by which monster defense rate is increased. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.MonsterAttributeScalerConfiguration_DefenseRatePercentage_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public float DefenseRatePercentage { get => this.ScaleAllActive ? this._scaleAllPercentage : this._defenseRatePercentage; @@ -67,6 +71,7 @@ public float DefenseRatePercentage /// /// Gets or sets the percentage by which monster defense is increased. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.MonsterAttributeScalerConfiguration_DefensePercentage_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public float DefensePercentage { get => this.ScaleAllActive ? this._scaleAllPercentage : this._defensePercentage; @@ -76,6 +81,7 @@ public float DefensePercentage /// /// Gets or sets the percentage by which monster maximum health is increased. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.MonsterAttributeScalerConfiguration_HealthPercentage_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public float HealthPercentage { get => this.ScaleAllActive ? this._scaleAllPercentage : this._healthPercentage; diff --git a/src/GameLogic/PlugIns/PeriodicTasks/BloodCastleStartPlugIn.cs b/src/GameLogic/PlugIns/PeriodicTasks/BloodCastleStartPlugIn.cs index a8ab9f62b0..c246064d27 100644 --- a/src/GameLogic/PlugIns/PeriodicTasks/BloodCastleStartPlugIn.cs +++ b/src/GameLogic/PlugIns/PeriodicTasks/BloodCastleStartPlugIn.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns.PeriodicTasks; /// This plugin enables the start of the blood castle. /// [PlugIn] -[Display(Name = nameof(BloodCastleStartPlugIn), Description = "Blood Castle event")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BloodCastleStartPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.BloodCastleStartPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("95E68C14-AD87-4B3C-AF46-45B8F1C3BC2A")] public sealed class BloodCastleStartPlugIn : MiniGameStartBasePlugIn { diff --git a/src/GameLogic/PlugIns/PeriodicTasks/ChaosCastleStartPlugIn.cs b/src/GameLogic/PlugIns/PeriodicTasks/ChaosCastleStartPlugIn.cs index e4ea581c71..2a99375071 100644 --- a/src/GameLogic/PlugIns/PeriodicTasks/ChaosCastleStartPlugIn.cs +++ b/src/GameLogic/PlugIns/PeriodicTasks/ChaosCastleStartPlugIn.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns.PeriodicTasks; /// This plugin enables the start of the chaos castle. /// [PlugIn] -[Display(Name = nameof(ChaosCastleStartPlugIn), Description = "Chaos Castle event")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ChaosCastleStartPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ChaosCastleStartPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("3AD96A70-ED24-4979-80B8-169E461E548F")] public sealed class ChaosCastleStartPlugIn : MiniGameStartBasePlugIn { diff --git a/src/GameLogic/PlugIns/PeriodicTasks/DevilSquareStartPlugIn.cs b/src/GameLogic/PlugIns/PeriodicTasks/DevilSquareStartPlugIn.cs index 97bba18c08..4b741436ab 100644 --- a/src/GameLogic/PlugIns/PeriodicTasks/DevilSquareStartPlugIn.cs +++ b/src/GameLogic/PlugIns/PeriodicTasks/DevilSquareStartPlugIn.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns.PeriodicTasks; /// This plugin enables the start of the devil square. /// [PlugIn] -[Display(Name = nameof(DevilSquareStartPlugIn), Description = "Devil Square event")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.DevilSquareStartPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.DevilSquareStartPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("61C61A58-211E-4D6A-9EA1-D25E0C4A47C5")] public sealed class DevilSquareStartPlugIn : MiniGameStartBasePlugIn { diff --git a/src/GameLogic/PlugIns/PeriodicTasks/KanturuStartConfiguration.cs b/src/GameLogic/PlugIns/PeriodicTasks/KanturuStartConfiguration.cs index 48b9ab25c0..11eea4f502 100644 --- a/src/GameLogic/PlugIns/PeriodicTasks/KanturuStartConfiguration.cs +++ b/src/GameLogic/PlugIns/PeriodicTasks/KanturuStartConfiguration.cs @@ -37,5 +37,6 @@ public class KanturuStartConfiguration : MiniGameStartConfiguration /// game configuration is known. The falls /// back to in that case. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.KanturuStartConfiguration_EventDefinition_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public KanturuEventDefinition? EventDefinition { get; set; } } diff --git a/src/GameLogic/PlugIns/PeriodicTasks/KanturuStartPlugIn.cs b/src/GameLogic/PlugIns/PeriodicTasks/KanturuStartPlugIn.cs index 0e8e3e4add..946e0d28f4 100644 --- a/src/GameLogic/PlugIns/PeriodicTasks/KanturuStartPlugIn.cs +++ b/src/GameLogic/PlugIns/PeriodicTasks/KanturuStartPlugIn.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns.PeriodicTasks; /// This plugin enables the periodic start of the Kanturu Refinery Tower event. /// [PlugIn] -[Display(Name = nameof(KanturuStartPlugIn), Description = "Kanturu Refinery Tower event")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.KanturuStartPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.KanturuStartPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("A8F3C2D1-9E74-4ECB-8963-08A3697278C4")] public sealed class KanturuStartPlugIn : MiniGameStartBasePlugIn { diff --git a/src/GameLogic/PlugIns/PetExperiencePlugIn.cs b/src/GameLogic/PlugIns/PetExperiencePlugIn.cs index 3554fc2f45..326be1cf93 100644 --- a/src/GameLogic/PlugIns/PetExperiencePlugIn.cs +++ b/src/GameLogic/PlugIns/PetExperiencePlugIn.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns; /// player gained for a kill, and levels them up. /// [PlugIn] -[Display(Name = nameof(PetExperiencePlugIn), Description = "Gives the trainable pets of a player a share of the experience which the player gained for a kill.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.PetExperiencePlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.PetExperiencePlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("6B9A0A0E-5C6A-4E8F-A4E1-3C7B8B9A2D51")] public class PetExperiencePlugIn : IPlayerGainedExperiencePlugIn { diff --git a/src/GameLogic/PlugIns/SoccerSpawnGatePlugIn.cs b/src/GameLogic/PlugIns/SoccerSpawnGatePlugIn.cs index 7f2289b21f..00fad48527 100644 --- a/src/GameLogic/PlugIns/SoccerSpawnGatePlugIn.cs +++ b/src/GameLogic/PlugIns/SoccerSpawnGatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns; /// instead of spawning it at the safezone. /// [PlugIn] -[Display(Name = nameof(SoccerSpawnGatePlugIn), Description = "Spawns a player of a running soccer match on the soccer ground.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SoccerSpawnGatePlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SoccerSpawnGatePlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("8C4E1F0B-7A93-4D65-B0C8-2E5F9A1D6B37")] public class SoccerSpawnGatePlugIn : IPlayerSpawnGateSelectionPlugIn { diff --git a/src/GameLogic/PlugIns/SpeedHackDetectConfiguration.cs b/src/GameLogic/PlugIns/SpeedHackDetectConfiguration.cs index 7c521d2a2e..4c9752bf8c 100644 --- a/src/GameLogic/PlugIns/SpeedHackDetectConfiguration.cs +++ b/src/GameLogic/PlugIns/SpeedHackDetectConfiguration.cs @@ -15,18 +15,21 @@ public class SpeedHackDetectConfiguration /// Gets or sets a value indicating whether to auto-ban players that are cheating with speedhacks. /// [DefaultValue(true)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_AutoBan_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool AutoBan { get; set; } = true; /// /// Gets or sets a value indicating whether to disconnect players that are cheating with speedhacks. /// [DefaultValue(true)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_DisconnectOnViolation_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public bool DisconnectOnViolation { get; set; } = true; /// /// Gets or sets the threshold of warnings a player receives before being banned/disconnected. /// [DefaultValue(3)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_MaxWarnings_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int MaxWarnings { get; set; } = 3; /// @@ -34,6 +37,7 @@ public class SpeedHackDetectConfiguration /// Consecutive warnings within this period are ignored to avoid spamming/jitter. /// [DefaultValue(5)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_AlertDebounceSeconds_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int AlertDebounceSeconds { get; set; } = 5; /// @@ -41,6 +45,7 @@ public class SpeedHackDetectConfiguration /// Warnings older than this time are cleared from the player's history. /// [DefaultValue(1)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_WarningHistoryHours_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int WarningHistoryHours { get; set; } = 1; /// @@ -48,6 +53,7 @@ public class SpeedHackDetectConfiguration /// Represents the maximum deficits allowed compared to expectations before a violation is flagged. /// [DefaultValue(900)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_WalkSpeedToleranceMs_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int WalkSpeedToleranceMs { get; set; } = 900; /// @@ -55,29 +61,34 @@ public class SpeedHackDetectConfiguration /// before resynchronizing (rubberbanding) the client. /// [DefaultValue(5)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_MaxAllowedWalkStartOffset_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int MaxAllowedWalkStartOffset { get; set; } = 5; /// /// Gets or sets the maximum tokens for the token bucket attack check. /// [DefaultValue(5.0)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_MaxAttackTokens_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public double MaxAttackTokens { get; set; } = 5.0; /// /// Gets or sets the base delay in milliseconds used in attack speed calculation. /// [DefaultValue(450.0)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_AttackSpeedBaseDelayMs_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public double AttackSpeedBaseDelayMs { get; set; } = 450.0; /// /// Gets or sets the scaling factor applied to attack speed attribute in delay calculation. /// [DefaultValue(1.2)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_AttackSpeedScalingFactor_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public double AttackSpeedScalingFactor { get; set; } = 1.2; /// /// Gets or sets the minimum delay floor in milliseconds between attacks. /// [DefaultValue(60.0)] + [System.ComponentModel.DataAnnotations.Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectConfiguration_AttackSpeedMinIntervalMs_Caption), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public double AttackSpeedMinIntervalMs { get; set; } = 60.0; } diff --git a/src/GameLogic/PlugIns/SpeedHackDetectPlugIn.cs b/src/GameLogic/PlugIns/SpeedHackDetectPlugIn.cs index 85b27bd4e0..556afa2536 100644 --- a/src/GameLogic/PlugIns/SpeedHackDetectPlugIn.cs +++ b/src/GameLogic/PlugIns/SpeedHackDetectPlugIn.cs @@ -20,7 +20,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns; /// A feature plugin that provides configuration and acts as a trigger control for speedhack anti-cheat checks. /// [PlugIn] -[Display(Name = "Speedhack Anti-Cheat", Description = "Detects and prevents player walk and attack speedhacking.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SpeedHackDetectPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("A95A8D2F-A0C3-442E-995C-005B5C1B42D2")] public class SpeedHackDetectPlugIn : IFeaturePlugIn, ISupportCustomConfiguration, ISupportDefaultCustomConfiguration, ISpeedHackCheatCheckPlugIn { diff --git a/src/GameLogic/PlugIns/SymbolOfKundunStackedPlugIn.cs b/src/GameLogic/PlugIns/SymbolOfKundunStackedPlugIn.cs index 061ce3578e..da6e59a81e 100644 --- a/src/GameLogic/PlugIns/SymbolOfKundunStackedPlugIn.cs +++ b/src/GameLogic/PlugIns/SymbolOfKundunStackedPlugIn.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.GameLogic.PlugIns; /// This plugin transforms a stack of symbol of kundun into a lost map. /// [PlugIn] -[Display(Name = nameof(SymbolOfKundunStackedPlugIn), Description = "This plugin transforms a stack of symbol of kundun into a lost map.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SymbolOfKundunStackedPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.SymbolOfKundunStackedPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("F07A9CED-F43E-4824-9587-F5C3C3187A13")] public sealed class SymbolOfKundunStackedPlugIn : IItemStackedPlugIn { diff --git a/src/GameLogic/Resets/ResetConfiguration.cs b/src/GameLogic/Resets/ResetConfiguration.cs index a03644c8b2..9e3363ca58 100644 --- a/src/GameLogic/Resets/ResetConfiguration.cs +++ b/src/GameLogic/Resets/ResetConfiguration.cs @@ -46,13 +46,13 @@ public class ResetConfiguration /// /// Gets or sets the required item for a reset. /// - [Display(Name = "Required reset item")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ResetConfiguration_Display1_Name), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public ItemDefinition? RequiredResetItem { get; set; } /// /// Gets or sets the item costs per reset range. /// - [Display(Name = "Item cost tiers")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ResetConfiguration_Display2_Name), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [MemberOfAggregate] [ScaffoldColumn(true)] public ICollection ItemCostTiers { get; set; } = []; @@ -88,7 +88,7 @@ public class ResetConfiguration /// /// Gets or sets the points granted per reset range. /// - [Display(Name = "Point tiers")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ResetConfiguration_Display3_Name), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [MemberOfAggregate] [ScaffoldColumn(true)] public ICollection PointsTiers { get; set; } = []; @@ -113,13 +113,13 @@ public class ResetPointTier /// /// Gets or sets the minimum reset count at which this tier applies. /// - [Display(Name = "Minimum reset count")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ResetConfiguration_Display4_Name), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int MinimumResetCount { get; set; } /// /// Gets or sets the points granted for this tier. /// - [Display(Name = "Points granted")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ResetConfiguration_Display5_Name), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int PointsGranted { get; set; } } @@ -131,13 +131,13 @@ public class ResetItemCostTier /// /// Gets or sets the minimum reset count at which this tier applies. /// - [Display(Name = "Minimum reset count")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ResetConfiguration_Display6_Name), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int MinimumResetCount { get; set; } /// /// Gets or sets the required item amount for this tier. /// - [Display(Name = "Required item amount")] + [Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ResetConfiguration_Display7_Name), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] public int RequiredItemAmount { get; set; } } } diff --git a/src/GameLogic/TestActors/ActorHitRecorderPlugIn.cs b/src/GameLogic/TestActors/ActorHitRecorderPlugIn.cs index 012946c996..1a6c5203c6 100644 --- a/src/GameLogic/TestActors/ActorHitRecorderPlugIn.cs +++ b/src/GameLogic/TestActors/ActorHitRecorderPlugIn.cs @@ -24,7 +24,7 @@ namespace MUnique.OpenMU.GameLogic.TestActors; /// exists exactly when actors can. /// /// -[Display(Name = "Test actor hit recorder", Description = "Records hits dealt and received by scripted test actors in their event stream.")] +[Display(Name = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ActorHitRecorderPlugIn_Display1_Name), Description = nameof(MUnique.OpenMU.GameLogic.Properties.PlugInResources.ActorHitRecorderPlugIn_Display1_Description), ResourceType = typeof(MUnique.OpenMU.GameLogic.Properties.PlugInResources))] [Guid("2A7C4B18-6E5D-4C93-9F21-8D0B6A3E57C4")] public class ActorHitRecorderPlugIn : IAttackableGotHitPlugIn { diff --git a/src/GameServer/MessageHandler/EnterMarketPlaceHandlerPlugIn.cs b/src/GameServer/MessageHandler/EnterMarketPlaceHandlerPlugIn.cs index 0610076e24..85d9e86307 100644 --- a/src/GameServer/MessageHandler/EnterMarketPlaceHandlerPlugIn.cs +++ b/src/GameServer/MessageHandler/EnterMarketPlaceHandlerPlugIn.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.GameServer.MessageHandler; /// which warps the player between Lorencia and the Loren Market. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(Properties.PlugInResources.EnterMarketPlace_Name), Description = nameof(Properties.PlugInResources.EnterMarketPlace_Description), ResourceType = typeof(MUnique.OpenMU.GameServer.Properties.PlugInResources))] [Guid("5e028dcf-a5af-40a0-b958-2deb38aae4bc")] [BelongsToGroup(MuHelperGroupHandler.GroupKey)] internal class EnterMarketPlaceHandlerPlugIn : ISubPacketHandlerPlugIn diff --git a/src/Persistence/Initialization/PlugIns/CharacterCreated/AddCrescentMoonSlashForDarkKnight.cs b/src/Persistence/Initialization/PlugIns/CharacterCreated/AddCrescentMoonSlashForDarkKnight.cs index e9cdd5d07d..ce736e40a8 100644 --- a/src/Persistence/Initialization/PlugIns/CharacterCreated/AddCrescentMoonSlashForDarkKnight.cs +++ b/src/Persistence/Initialization/PlugIns/CharacterCreated/AddCrescentMoonSlashForDarkKnight.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.PlugIns.CharacterCreated; /// [Guid("2BB94D35-0DEF-4458-84AC-ECAAE6E896BE")] [PlugIn] -[Display(Name = nameof(AddCrescentMoonSlashForDarkKnight), Description = "Adds the crescent moon slash skill (active in castle siege) to a created dark knight character.")] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddCrescentMoonSlashForDarkKnight_Display1_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddCrescentMoonSlashForDarkKnight_Display1_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] public class AddCrescentMoonSlashForDarkKnight : AddInitialSkillPlugInBase { /// diff --git a/src/Persistence/Initialization/PlugIns/CharacterCreated/AddFireBlastForDarkLord.cs b/src/Persistence/Initialization/PlugIns/CharacterCreated/AddFireBlastForDarkLord.cs index 86da123efc..7ed538c946 100644 --- a/src/Persistence/Initialization/PlugIns/CharacterCreated/AddFireBlastForDarkLord.cs +++ b/src/Persistence/Initialization/PlugIns/CharacterCreated/AddFireBlastForDarkLord.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.PlugIns.CharacterCreated; /// [Guid("49D2D6F2-4E70-4F4B-B7CE-0645EC2F094A")] [PlugIn] -[Display(Name = nameof(AddFireBlastForDarkLord), Description = "Adds the Fire Blast skill (active in castle siege) to a created dark lord character.")] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddFireBlastForDarkLord_Display1_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddFireBlastForDarkLord_Display1_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] public class AddFireBlastForDarkLord : AddInitialSkillPlugInBase { /// diff --git a/src/Persistence/Initialization/PlugIns/CharacterCreated/AddManaRaysForMagicGladiator.cs b/src/Persistence/Initialization/PlugIns/CharacterCreated/AddManaRaysForMagicGladiator.cs index f41259a3fa..b71c34150b 100644 --- a/src/Persistence/Initialization/PlugIns/CharacterCreated/AddManaRaysForMagicGladiator.cs +++ b/src/Persistence/Initialization/PlugIns/CharacterCreated/AddManaRaysForMagicGladiator.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.PlugIns.CharacterCreated; /// [Guid("D83347DB-4D33-47E9-B898-5EDB2777B8A1")] [PlugIn] -[Display(Name = nameof(AddManaRaysForMagicGladiator), Description = "Adds the Mana Rays skill (active in castle siege) to a created magic gladiator character.")] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddManaRaysForMagicGladiator_Display1_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddManaRaysForMagicGladiator_Display1_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] public class AddManaRaysForMagicGladiator : AddInitialSkillPlugInBase { /// diff --git a/src/Persistence/Initialization/PlugIns/CharacterCreated/AddSpiralSlashForMagicGladiator.cs b/src/Persistence/Initialization/PlugIns/CharacterCreated/AddSpiralSlashForMagicGladiator.cs index a1459053a3..8999f3ffa9 100644 --- a/src/Persistence/Initialization/PlugIns/CharacterCreated/AddSpiralSlashForMagicGladiator.cs +++ b/src/Persistence/Initialization/PlugIns/CharacterCreated/AddSpiralSlashForMagicGladiator.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.PlugIns.CharacterCreated; /// [Guid("83B0D163-7E97-40FC-851A-D5500B4BB33E")] [PlugIn] -[Display(Name = nameof(AddSpiralSlashForMagicGladiator), Description = "Adds the Spiral Slash skill (active in castle siege) to a created magic gladiator character.")] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddSpiralSlashForMagicGladiator_Display1_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddSpiralSlashForMagicGladiator_Display1_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] public class AddSpiralSlashForMagicGladiator : AddInitialSkillPlugInBase { /// diff --git a/src/Persistence/Initialization/PlugIns/CharacterCreated/AddStarfallForFairyElf.cs b/src/Persistence/Initialization/PlugIns/CharacterCreated/AddStarfallForFairyElf.cs index b8d0911a09..3f29475297 100644 --- a/src/Persistence/Initialization/PlugIns/CharacterCreated/AddStarfallForFairyElf.cs +++ b/src/Persistence/Initialization/PlugIns/CharacterCreated/AddStarfallForFairyElf.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.PlugIns.CharacterCreated; /// [Guid("5AC4F8C8-8B4C-4DD6-B1CF-D4F6491DC17A")] [PlugIn] -[Display(Name = nameof(AddStarfallForFairyElf), Description = "Adds the Starfall skill (active in castle siege) to a created fairy elf character.")] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddStarfallForFairyElf_Display1_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddStarfallForFairyElf_Display1_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] public class AddStarfallForFairyElf : AddInitialSkillPlugInBase { /// diff --git a/src/Persistence/Initialization/Updates/AddAreaSkillSettingsUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/AddAreaSkillSettingsUpdatePlugIn.cs index 5b6c10390b..63b274f5a0 100644 --- a/src/Persistence/Initialization/Updates/AddAreaSkillSettingsUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddAreaSkillSettingsUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This adds the items required to enter the kalima map. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddAreaSkillSettingsUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddAreaSkillSettingsUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("D01DA745-BF72-40C4-BD90-D2D637AEDF99")] public class AddAreaSkillSettingsUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddCastleSiegeDataUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/AddCastleSiegeDataUpdatePlugIn.cs index a153c370c0..17f6f019db 100644 --- a/src/Persistence/Initialization/Updates/AddCastleSiegeDataUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddCastleSiegeDataUpdatePlugIn.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Adds the Castle Siege configuration and persistent state to an existing Season 6 database. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddCastleSiegeDataUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddCastleSiegeDataUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("CD201E33-37C9-4C85-95CC-16042B28E974")] public class AddCastleSiegeDataUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddCrestOfMonarchDropGroupUpdateSeason6.cs b/src/Persistence/Initialization/Updates/AddCrestOfMonarchDropGroupUpdateSeason6.cs index 7021f2420c..60e3865597 100644 --- a/src/Persistence/Initialization/Updates/AddCrestOfMonarchDropGroupUpdateSeason6.cs +++ b/src/Persistence/Initialization/Updates/AddCrestOfMonarchDropGroupUpdateSeason6.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds the Crest of Monarch drop item group for the Icarus map. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddCrestOfMonarchDropGroupUpdateSeason6_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddCrestOfMonarchDropGroupUpdateSeason6_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("FF14A478-3EA8-4C41-A298-8E6698D5973D")] public class AddCrestOfMonarchDropGroupUpdateSeason6 : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddDoppelgangerDataUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/AddDoppelgangerDataUpdatePlugIn.cs index 6fa8feb287..b355cd7d48 100644 --- a/src/Persistence/Initialization/Updates/AddDoppelgangerDataUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddDoppelgangerDataUpdatePlugIn.cs @@ -23,7 +23,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// warped out of the event. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddDoppelgangerDataUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddDoppelgangerDataUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("8E4D2B17-6A3F-4C95-9D02-B7E15A6C3F48")] public class AddDoppelgangerDataUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddDuelConfigurationPlugIn.cs b/src/Persistence/Initialization/Updates/AddDuelConfigurationPlugIn.cs index 58b229ac7f..2d0689d762 100644 --- a/src/Persistence/Initialization/Updates/AddDuelConfigurationPlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddDuelConfigurationPlugIn.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This updates adds the data for the duel system. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddDuelConfigurationPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddDuelConfigurationPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("5DC5638E-581E-4ACC-81E4-D565C625649B")] public class AddDuelConfigurationPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddElfSoldierBuffPlugIn.cs b/src/Persistence/Initialization/Updates/AddElfSoldierBuffPlugIn.cs index 7e47d3b9a5..86d1d0afbf 100644 --- a/src/Persistence/Initialization/Updates/AddElfSoldierBuffPlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddElfSoldierBuffPlugIn.cs @@ -16,7 +16,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds the Elf Soldier buff to the existing Elf Soldier NPC. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddElfSoldierBuffPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddElfSoldierBuffPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("9BCFC8B1-6A6E-48F9-AE7C-0D34FA6D706B")] public class AddElfSoldierBuffPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugIn075.cs b/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugIn075.cs index d2087f4c9c..4678a7b15b 100644 --- a/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugIn075.cs +++ b/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugIn075.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update moves the MoneyAmountRate attribute to global base attributes for version 0.75. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddGlobalMoneyAmountRateAttributePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddGlobalMoneyAmountRateAttributePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("A1B2C3D4-E5F6-7890-ABCD-EF1234567890")] public class AddGlobalMoneyAmountRateAttributePlugIn075 : AddGlobalMoneyAmountRateAttributePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugIn095d.cs b/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugIn095d.cs index 9b9e927e96..80bea26f69 100644 --- a/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugIn095d.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update moves the MoneyAmountRate attribute to global base attributes for version 0.95d. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddGlobalMoneyAmountRateAttributePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddGlobalMoneyAmountRateAttributePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("B2C3D4E5-F6A7-8901-BCDE-F12345678901")] public class AddGlobalMoneyAmountRateAttributePlugIn095d : AddGlobalMoneyAmountRateAttributePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugInSeason6.cs b/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugInSeason6.cs index 1d1f2aa7d9..c0114332e8 100644 --- a/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/AddGlobalMoneyAmountRateAttributePlugInSeason6.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update moves the MoneyAmountRate attribute to global base attributes for Season 6. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddGlobalMoneyAmountRateAttributePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddGlobalMoneyAmountRateAttributePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("C3D4E5F6-A7B8-9012-CDEF-123456789012")] public class AddGlobalMoneyAmountRateAttributePlugInSeason6 : AddGlobalMoneyAmountRateAttributePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddGuardsDataPlugIn.cs b/src/Persistence/Initialization/Updates/AddGuardsDataPlugIn.cs index bc56f920a4..5719445825 100644 --- a/src/Persistence/Initialization/Updates/AddGuardsDataPlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddGuardsDataPlugIn.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This updates adds the data for Guard NPCs. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddGuardsDataPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddGuardsDataPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("1EF50759-0A5F-4301-A5E9-B68A8B7D29F9")] public class AddGuardsDataPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddHarmonyOptionWeightsUpdateSeason6.cs b/src/Persistence/Initialization/Updates/AddHarmonyOptionWeightsUpdateSeason6.cs index 407c8b7490..1191a63f20 100644 --- a/src/Persistence/Initialization/Updates/AddHarmonyOptionWeightsUpdateSeason6.cs +++ b/src/Persistence/Initialization/Updates/AddHarmonyOptionWeightsUpdateSeason6.cs @@ -16,7 +16,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds Jewel of Harmony option weights used for option assignment, fixes some options, and fixes item restore mix. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddHarmonyOptionWeightsUpdateSeason6_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddHarmonyOptionWeightsUpdateSeason6_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("E94DE59E-5B3A-4498-A4AF-E7F4F173B754")] public class AddHarmonyOptionWeightsUpdateSeason6 : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddIsQuestItemFlagPlugIn.cs b/src/Persistence/Initialization/Updates/AddIsQuestItemFlagPlugIn.cs index 1b03f3c049..cd4b8b2433 100644 --- a/src/Persistence/Initialization/Updates/AddIsQuestItemFlagPlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddIsQuestItemFlagPlugIn.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// alone, which is also used by non-quest items. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddIsQuestItemFlagPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddIsQuestItemFlagPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("9374E428-CF5C-44B1-AAB9-0369C77AF7C6")] public class AddIsQuestItemFlagPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdate075.cs b/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdate075.cs index 97189d59e8..b237c93d67 100644 --- a/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdate075.cs +++ b/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdate075.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update creates a specific item drop group for jewels with a default chance of 5%. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddItemDropGroupForJewelsUpdate075_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddItemDropGroupForJewelsUpdate075_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("DCF14924-BB19-4CA2-93EC-397A89AA3EB3")] public class AddItemDropGroupForJewelsUpdate075 : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdate095d.cs b/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdate095d.cs index 8b896a0a1b..a89cab1167 100644 --- a/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdate095d.cs +++ b/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdate095d.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update creates a specific item drop group for jewels with a default chance of 5%. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddItemDropGroupForJewelsUpdate075_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddItemDropGroupForJewelsUpdate075_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("D21056E6-E912-416B-A076-3C2D17DA517B")] public class AddItemDropGroupForJewelsUpdate095D : AddItemDropGroupForJewelsUpdate075 { diff --git a/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdateSeason6.cs b/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdateSeason6.cs index b9823a6e54..e486d6d739 100644 --- a/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdateSeason6.cs +++ b/src/Persistence/Initialization/Updates/AddItemDropGroupForJewelsUpdateSeason6.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update creates a specific item drop group for jewels with a default chance of 5%. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddItemDropGroupForJewelsUpdate075_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddItemDropGroupForJewelsUpdate075_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("F958CC5B-C1E6-4F67-B48D-4BF75EC5CAA8")] public class AddItemDropGroupForJewelsUpdateSeason6 : AddItemDropGroupForJewelsUpdate075 { diff --git a/src/Persistence/Initialization/Updates/AddItemRegistrationAttributesUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/AddItemRegistrationAttributesUpdatePlugIn.cs index fdb17e8c24..36b174bf78 100644 --- a/src/Persistence/Initialization/Updates/AddItemRegistrationAttributesUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddItemRegistrationAttributesUpdatePlugIn.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds the missing RegisteredRenas and TotalRegisteredRenas attributes. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddItemRegistrationAttributesUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddItemRegistrationAttributesUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("182FC652-3277-4CDB-8BA8-DE70311E67C9")] public class AddItemRegistrationAttributesUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddKalimaPlugIn.cs b/src/Persistence/Initialization/Updates/AddKalimaPlugIn.cs index b1b011b697..988207b180 100644 --- a/src/Persistence/Initialization/Updates/AddKalimaPlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddKalimaPlugIn.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This adds the items required to enter the kalima map. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddKalimaPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddKalimaPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("0C99155F-1289-4E73-97F0-47CB67C3716F")] public class AddKalimaPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddKanturuDataUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/AddKanturuDataUpdatePlugIn.cs index 2113b0bff2..372a9f3ce6 100644 --- a/src/Persistence/Initialization/Updates/AddKanturuDataUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddKanturuDataUpdatePlugIn.cs @@ -18,7 +18,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// . This update adds it without touching any other data. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddKanturuDataUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddKanturuDataUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("3F1B7A64-9C2E-4D58-B0A7-5E6C8D19F204")] public class AddKanturuDataUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddKanturuMapContentUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/AddKanturuMapContentUpdatePlugIn.cs index cb7973552a..c262aa3d1c 100644 --- a/src/Persistence/Initialization/Updates/AddKanturuMapContentUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddKanturuMapContentUpdatePlugIn.cs @@ -20,7 +20,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// to the already existing map definition instead of creating a second one. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddKanturuMapContentUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddKanturuMapContentUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("7B4E9D26-1A83-4F5C-9E70-2C8B6D41A395")] public class AddKanturuMapContentUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddLorenMarketJuliaWarpPlugIn.cs b/src/Persistence/Initialization/Updates/AddLorenMarketJuliaWarpPlugIn.cs index e5c60ccfec..ef53afe187 100644 --- a/src/Persistence/Initialization/Updates/AddLorenMarketJuliaWarpPlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddLorenMarketJuliaWarpPlugIn.cs @@ -19,7 +19,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// player uses the 'Warp' button of the (client-side) Julia window. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddLorenMarketJuliaWarpPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddLorenMarketJuliaWarpPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("ed2f1728-b35c-4a3d-810e-eab5b6e12a82")] public class AddLorenMarketJuliaWarpPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddMaximumAllianceSizeUpdatePlugInSeason6.cs b/src/Persistence/Initialization/Updates/AddMaximumAllianceSizeUpdatePlugInSeason6.cs index 549fa7fdec..7f8e862227 100644 --- a/src/Persistence/Initialization/Updates/AddMaximumAllianceSizeUpdatePlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/AddMaximumAllianceSizeUpdatePlugInSeason6.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// receive this attribute. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddMaximumAllianceSizeUpdatePlugInSeason6_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddMaximumAllianceSizeUpdatePlugInSeason6_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("2C2743B0-1305-47BF-85D9-09F6CA64AD54")] public class AddMaximumAllianceSizeUpdatePlugInSeason6 : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddMissingMerchantStoresPlugIn.cs b/src/Persistence/Initialization/Updates/AddMissingMerchantStoresPlugIn.cs index e8efb1d737..147ba01904 100644 --- a/src/Persistence/Initialization/Updates/AddMissingMerchantStoresPlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddMissingMerchantStoresPlugIn.cs @@ -20,7 +20,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// fit either of them. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddMissingMerchantStoresPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddMissingMerchantStoresPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("f78d6e1d-1cb5-45f7-912d-54b2cb1220eb")] public class AddMissingMerchantStoresPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugIn075.cs b/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugIn075.cs index f683105956..8b0f183857 100644 --- a/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugIn075.cs +++ b/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugIn075.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Adds movement speed attributes to 0.75 game configurations. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddMovementSpeedAttributesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddMovementSpeedAttributesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("890E2FCB-EC93-4CC1-84FC-67A1B398D5C8")] public class AddMovementSpeedAttributesPlugIn075 : AddMovementSpeedAttributesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugIn095D.cs b/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugIn095D.cs index 60303aa6e5..2b8287cb76 100644 --- a/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugIn095D.cs +++ b/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugIn095D.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Adds movement speed attributes to 0.95d game configurations. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddMovementSpeedAttributesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddMovementSpeedAttributesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("7C38C30F-163B-4625-A82D-5C3A0A9ED883")] public class AddMovementSpeedAttributesPlugIn095D : AddMovementSpeedAttributesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugInSeason6.cs b/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugInSeason6.cs index 38dcfd7aa1..5e93af7cef 100644 --- a/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/AddMovementSpeedAttributesPlugInSeason6.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Adds movement speed attributes to season 6 game configurations. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddMovementSpeedAttributesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddMovementSpeedAttributesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("1D4968DA-9C9C-42A7-AF80-D4811535EC63")] public class AddMovementSpeedAttributesPlugInSeason6 : AddMovementSpeedAttributesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddPointsPerResetAttributePlugIn.cs b/src/Persistence/Initialization/Updates/AddPointsPerResetAttributePlugIn.cs index 51d53768ff..d14986945c 100644 --- a/src/Persistence/Initialization/Updates/AddPointsPerResetAttributePlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddPointsPerResetAttributePlugIn.cs @@ -16,7 +16,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds the . /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddPointsPerResetAttributePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddPointsPerResetAttributePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("6011A1B8-7FA5-48EB-935D-EEAF83017799")] public class AddPointsPerResetAttributePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddProjectileCountToTripleShotUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/AddProjectileCountToTripleShotUpdatePlugIn.cs index 2860b28cef..7f7b9cc8f7 100644 --- a/src/Persistence/Initialization/Updates/AddProjectileCountToTripleShotUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddProjectileCountToTripleShotUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Updates the Triple Shot skill to use 3 projectiles for proper arrow direction handling. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddProjectileCountToTripleShotUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddProjectileCountToTripleShotUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("E3A8F7C9-2D4B-4A1E-9F3C-8B5D7A6C1E4F")] public class AddProjectileCountToTripleShotUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddQuestItemLimitPlugIn.cs b/src/Persistence/Initialization/Updates/AddQuestItemLimitPlugIn.cs index 8940ade035..5482efd94c 100644 --- a/src/Persistence/Initialization/Updates/AddQuestItemLimitPlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddQuestItemLimitPlugIn.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This updates adds the new for quest items. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddQuestItemLimitPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddQuestItemLimitPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("48D40F2E-2844-4058-B1FA-710EEE55157B")] public class AddQuestItemLimitPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugIn075.cs b/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugIn075.cs index bbdcd1ba9f..851593abff 100644 --- a/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugIn075.cs +++ b/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugIn075.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds the random experience config attributes for version 0.75. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddRandomExperienceConfigAttributesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddRandomExperienceConfigAttributesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("5F412933-CC0F-483B-B6AE-7B358A6257FD")] public class AddRandomExperienceConfigAttributesPlugIn075 : AddRandomExperienceConfigAttributesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugIn095d.cs b/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugIn095d.cs index 4939544f60..d6b88b14ff 100644 --- a/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugIn095d.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds the random experience config attributes for version 0.95d. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddRandomExperienceConfigAttributesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddRandomExperienceConfigAttributesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("9A166583-C3E7-4E04-924C-F01FF9840974")] public class AddRandomExperienceConfigAttributesPlugIn095d : AddRandomExperienceConfigAttributesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugInSeason6.cs b/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugInSeason6.cs index 1a0698270c..0f306d7760 100644 --- a/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/AddRandomExperienceConfigAttributesPlugInSeason6.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds the random experience config attributes for season 6. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddRandomExperienceConfigAttributesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddRandomExperienceConfigAttributesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("D1DC70A2-2614-4CC0-81C0-6C8253781019")] public class AddRandomExperienceConfigAttributesPlugInSeason6 : AddRandomExperienceConfigAttributesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddRenaItemUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/AddRenaItemUpdatePlugIn.cs index cd702f2ccb..d418eaa6dc 100644 --- a/src/Persistence/Initialization/Updates/AddRenaItemUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddRenaItemUpdatePlugIn.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds the missing Rena item, which is required for the item registration feature. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddRenaItemUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddRenaItemUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("6A1B7C3D-2E5F-4A7B-8C9D-1E1F2A3B4C6E")] public class AddRenaItemUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/AddSummonerBuffSkillsPlugIn.cs b/src/Persistence/Initialization/Updates/AddSummonerBuffSkillsPlugIn.cs index a5dc395c75..dcbf0c159a 100644 --- a/src/Persistence/Initialization/Updates/AddSummonerBuffSkillsPlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddSummonerBuffSkillsPlugIn.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// /// This update adds the Sleep, Innovation, Damage Reflection and Weakness Summoner buff skills. It also fixes the 3rd wing full reflect option. /// -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddSummonerBuffSkillsPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddSummonerBuffSkillsPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [PlugIn] [Guid("B1E2D6C3-1F4A-4D7C-8C2E-3F6D9A7B8E2F")] public class AddSummonerBuffSkillsPlugIn : UpdatePlugInBase diff --git a/src/Persistence/Initialization/Updates/AddWhiteWizardInvasionMobsUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/AddWhiteWizardInvasionMobsUpdatePlugIn.cs index 2e5dc92f34..1be7241eed 100644 --- a/src/Persistence/Initialization/Updates/AddWhiteWizardInvasionMobsUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/AddWhiteWizardInvasionMobsUpdatePlugIn.cs @@ -18,7 +18,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// has already run but before White Wizard monsters were defined. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddWhiteWizardInvasionMobsUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.AddWhiteWizardInvasionMobsUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("D8F4E2C0-5A6B-4C3D-9E7F-1B2A4C6D8E0F")] public class AddWhiteWizardInvasionMobsUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/ChainLightningUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/ChainLightningUpdatePlugIn.cs index d8ae62f0fb..2b5c1cd3c3 100644 --- a/src/Persistence/Initialization/Updates/ChainLightningUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/ChainLightningUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update sets the right settings for the chain lightning skill. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ChainLightningUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ChainLightningUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("039D09CB-283C-4CBD-ABBC-FFD3F7D5C62F")] public class ChainLightningUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/ChaosCastleDataUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/ChaosCastleDataUpdatePlugIn.cs index fc7f9389b9..d4a5250f24 100644 --- a/src/Persistence/Initialization/Updates/ChaosCastleDataUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/ChaosCastleDataUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// The chaos castle update plugin. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ChaosCastleDataUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ChaosCastleDataUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("13059991-F3C8-4050-A201-6D6A67E57541")] public class ChaosCastleDataUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/ConfigureCastleSiegeEconomyUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/ConfigureCastleSiegeEconomyUpdatePlugIn.cs index d985c54c7e..30661f57a2 100644 --- a/src/Persistence/Initialization/Updates/ConfigureCastleSiegeEconomyUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/ConfigureCastleSiegeEconomyUpdatePlugIn.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Configures the Castle Siege economy interface for an existing Season 6 database. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ConfigureCastleSiegeEconomyUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ConfigureCastleSiegeEconomyUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("7ED67868-5C82-4B10-9BDA-732F51704DB9")] public class ConfigureCastleSiegeEconomyUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/ConfigureCastleSiegeLifeStoneUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/ConfigureCastleSiegeLifeStoneUpdatePlugIn.cs index 566b528190..7c44e69920 100644 --- a/src/Persistence/Initialization/Updates/ConfigureCastleSiegeLifeStoneUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/ConfigureCastleSiegeLifeStoneUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Adds the missing Life Stone combat attributes to existing Season 6 databases. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ConfigureCastleSiegeLifeStoneUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ConfigureCastleSiegeLifeStoneUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("654C871C-6BC2-41C4-BAC1-8DA2D9399B54")] public sealed class ConfigureCastleSiegeLifeStoneUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/ConfigureCastleSiegeParticipationUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/ConfigureCastleSiegeParticipationUpdatePlugIn.cs index 5cc6ab1465..c3c19fefd6 100644 --- a/src/Persistence/Initialization/Updates/ConfigureCastleSiegeParticipationUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/ConfigureCastleSiegeParticipationUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Configures the client-visible Castle Siege participant effects in an existing Season 6 database. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ConfigureCastleSiegeParticipationUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ConfigureCastleSiegeParticipationUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("31F81908-548B-482E-A018-1ED0D1B8D89B")] public class ConfigureCastleSiegeParticipationUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/ConfigureCastleSiegeRegistrationUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/ConfigureCastleSiegeRegistrationUpdatePlugIn.cs index fa414abbe7..2339ec50a7 100644 --- a/src/Persistence/Initialization/Updates/ConfigureCastleSiegeRegistrationUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/ConfigureCastleSiegeRegistrationUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Configures Sign of Lord registration for an existing Season 6 Castle Siege configuration. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ConfigureCastleSiegeRegistrationUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.ConfigureCastleSiegeRegistrationUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("D91757B1-0C3D-4336-8DEC-20438EDA7F09")] public class ConfigureCastleSiegeRegistrationUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugIn075.cs b/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugIn075.cs index d89e280877..a76f535996 100644 --- a/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugIn075.cs +++ b/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugIn075.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update completes the dark knight master tree skills and effects. It also fixes the double wield damage calculations. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishDarkKnightMasterTreePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishDarkKnightMasterTreePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("B8F3E2C1-4D5A-6F78-9B0C-2E7D1A3F5B6C")] public class FinishDarkKnightMasterTreePlugIn075 : FinishDarkKnightMasterTreePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugIn095d.cs b/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugIn095d.cs index 8ca357894a..1b42697c4d 100644 --- a/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugIn095d.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update completes the dark knight master tree skills and effects. It also fixes the double wield damage calculations. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishDarkKnightMasterTreePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishDarkKnightMasterTreePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("D4F7A9C2-1B3E-56D8-9F0A-7C2E4B1D5A8F")] public class FinishDarkKnightMasterTreePlugIn095D : FinishDarkKnightMasterTreePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugInSeason6.cs b/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugInSeason6.cs index 52d520aa37..72f3d64341 100644 --- a/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/FinishDarkKnightMasterTreePlugInSeason6.cs @@ -16,7 +16,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update completes the dark knight master tree skills and effects. It also fixes the double wield damage calculations. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishDarkKnightMasterTreePlugInSeason6_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishDarkKnightMasterTreePlugInSeason6_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("F7B2C9E4-1A3D-56F8-9B0C-4E2D7A1F8B3C")] public class FinishDarkKnightMasterTreePlugInSeason6 : FinishDarkKnightMasterTreePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FinishDarkLordMasterTreePlugIn.cs b/src/Persistence/Initialization/Updates/FinishDarkLordMasterTreePlugIn.cs index 7cbb57cec2..cd46bb0bf0 100644 --- a/src/Persistence/Initialization/Updates/FinishDarkLordMasterTreePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FinishDarkLordMasterTreePlugIn.cs @@ -16,7 +16,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update completes the dark lord master tree skills and effects. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishDarkLordMasterTreePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishDarkLordMasterTreePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("1A2B3C4D-5E6F-7890-ABCD-EF1234567890")] public class FinishDarkLordMasterTreePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FinishDarkWizardMasterTreePlugIn.cs b/src/Persistence/Initialization/Updates/FinishDarkWizardMasterTreePlugIn.cs index b3f8cb7a58..32fbdd02da 100644 --- a/src/Persistence/Initialization/Updates/FinishDarkWizardMasterTreePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FinishDarkWizardMasterTreePlugIn.cs @@ -16,7 +16,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update completes the dark wizard master tree expansion of wizardry effects. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishDarkWizardMasterTreePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishDarkWizardMasterTreePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("C1D2E3F4-5A6B-7C8D-9E0F-1A2B3C4D5E6F")] public class FinishDarkWizardMasterTreePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FinishElfMasterTreePlugIn.cs b/src/Persistence/Initialization/Updates/FinishElfMasterTreePlugIn.cs index 66a226fc9a..e87f2240f0 100644 --- a/src/Persistence/Initialization/Updates/FinishElfMasterTreePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FinishElfMasterTreePlugIn.cs @@ -19,7 +19,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update completes the elf master tree and fixes some of its skill values. It also adds the missing extra projectile (4th) on some higher level (cross)bows. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishElfMasterTreePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishElfMasterTreePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("D1E2F3A4-B5C6-7D8E-9F0A-1B2C3D4E5F6A")] public class FinishElfMasterTreePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FinishRageFighterMasterTreePlugIn.cs b/src/Persistence/Initialization/Updates/FinishRageFighterMasterTreePlugIn.cs index 84d0643f07..58d7415f6c 100644 --- a/src/Persistence/Initialization/Updates/FinishRageFighterMasterTreePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FinishRageFighterMasterTreePlugIn.cs @@ -18,7 +18,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update completes the rage fighter master tree and fixes some of its skill values. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishRageFighterMasterTreePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishRageFighterMasterTreePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("2DAE95BC-AE08-45E8-942A-9F61AE1C277B")] public class FinishRageFighterMasterTreePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FinishSummonerMasterTreePlugIn.cs b/src/Persistence/Initialization/Updates/FinishSummonerMasterTreePlugIn.cs index 30fc6dfb7c..c3f9de3a56 100644 --- a/src/Persistence/Initialization/Updates/FinishSummonerMasterTreePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FinishSummonerMasterTreePlugIn.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update completes the summoner master tree and fixes some of its skill values. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishSummonerMasterTreePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FinishSummonerMasterTreePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("4A1F9B2C-3D6E-4F70-A8B9-1C2D3E4F5A6B")] public class FinishSummonerMasterTreePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixAncientDiscriminatorsUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/FixAncientDiscriminatorsUpdatePlugIn.cs index 886c5cfd6e..ec0e29b50c 100644 --- a/src/Persistence/Initialization/Updates/FixAncientDiscriminatorsUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixAncientDiscriminatorsUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes the discriminators of some ancient items. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixAncientDiscriminatorsUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixAncientDiscriminatorsUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("AB664421-1CA6-4FCE-A150-0007971017E1")] public class FixAncientDiscriminatorsUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixAreaSkillsUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/FixAreaSkillsUpdatePlugIn.cs index 7925af2e79..bf2401d880 100644 --- a/src/Persistence/Initialization/Updates/FixAreaSkillsUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixAreaSkillsUpdatePlugIn.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Ice Storm had an incorrect 200ms delay between hits. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixAreaSkillsUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixAreaSkillsUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("B9938E4D-8F63-48DF-AE45-6739D1E2A8C7")] public class FixAreaSkillsUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixAttackSpeedCalculationUpdate.cs b/src/Persistence/Initialization/Updates/FixAttackSpeedCalculationUpdate.cs index f758251c5c..1c9cc012a4 100644 --- a/src/Persistence/Initialization/Updates/FixAttackSpeedCalculationUpdate.cs +++ b/src/Persistence/Initialization/Updates/FixAttackSpeedCalculationUpdate.cs @@ -21,7 +21,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This adds attributes and relations for attack speed. Adds effects for Ale and Potion of Soul. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixAttackSpeedCalculationUpdate_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixAttackSpeedCalculationUpdate_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("F9977AA7-F52A-4F42-BD6C-98DE700B5980")] public class FixAttackSpeedCalculationUpdate : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixBloodCastleMonsterAttributesUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/FixBloodCastleMonsterAttributesUpdatePlugIn.cs index e39f24bbe2..30c0630fd5 100644 --- a/src/Persistence/Initialization/Updates/FixBloodCastleMonsterAttributesUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixBloodCastleMonsterAttributesUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// so the difficulty progression is correct: BC6 → BC7 → BC8. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixBloodCastleMonsterAttributesUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixBloodCastleMonsterAttributesUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("D4E5F6A0-1B2C-3D4E-5F6A-7B8C9D0E1F2A")] public class FixBloodCastleMonsterAttributesUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixChaosMixesPlugIn095D.cs b/src/Persistence/Initialization/Updates/FixChaosMixesPlugIn095D.cs index f745b0b4ea..13d1504e78 100644 --- a/src/Persistence/Initialization/Updates/FixChaosMixesPlugIn095D.cs +++ b/src/Persistence/Initialization/Updates/FixChaosMixesPlugIn095D.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes the Chaos Weapon, First Wings, Dinorant, and Item Level Upgrade craftings' settings. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixChaosMixesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixChaosMixesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("68BC1F35-FC9A-468F-89FB-0940485AC107")] public class FixChaosMixesPlugIn095D : FixChaosMixesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixChaosMixesPlugInSeason6.cs b/src/Persistence/Initialization/Updates/FixChaosMixesPlugInSeason6.cs index f589e7f3fa..5e8ea3a598 100644 --- a/src/Persistence/Initialization/Updates/FixChaosMixesPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/FixChaosMixesPlugInSeason6.cs @@ -19,7 +19,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes the Chaos Weapon, First Wings, Dinorant, Item Level Upgrade, Second Wings, Third Wings, Cape, SD Potions, Guardian Option, and Secromicon crafting settings; Blue Fenrir (Protect) damage decrease option value; Wizard's Ring wizardry option; lvl 380 item guardian options for Summoner and Rage Fighter. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixChaosMixesPlugInSeason6_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixChaosMixesPlugInSeason6_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("EFD7EA69-56AE-48A3-ACE2-1C3B5B87780A")] public class FixChaosMixesPlugInSeason6 : FixChaosMixesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixChaosMixesUpdatePlugIn075.cs b/src/Persistence/Initialization/Updates/FixChaosMixesUpdatePlugIn075.cs index d7adafa6e9..9ed52a8993 100644 --- a/src/Persistence/Initialization/Updates/FixChaosMixesUpdatePlugIn075.cs +++ b/src/Persistence/Initialization/Updates/FixChaosMixesUpdatePlugIn075.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes the Chaos Weapon crafting settings. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixChaosMixesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixChaosMixesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("04A5F236-117F-422A-8C38-28D09DE911D7")] public class FixChaosMixesUpdatePlugIn075 : FixChaosMixesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugIn075.cs b/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugIn075.cs index 7926638fba..92d057b5ba 100644 --- a/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugIn075.cs +++ b/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugIn075.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes DW agility to defense multiplier stat. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixCharStatsForceWavePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixCharStatsForceWavePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("D7CD05B7-06EE-4D9F-BAD0-65267F3A9FE8")] public class FixCharStatsForceWavePlugIn075 : FixCharStatsForceWavePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugIn095d.cs b/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugIn095d.cs index 88d3b9e536..652e369d4e 100644 --- a/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugIn095d.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes agility to defense multiplier (DW) and base energy (MG) stats. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixCharStatsForceWavePlugIn095d_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixCharStatsForceWavePlugIn095d_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("14DFF317-B4E6-424A-A8D1-6D1D5195E970")] public class FixCharStatsForceWavePlugIn095D : FixCharStatsForceWavePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugInSeason6.cs b/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugInSeason6.cs index 502e7232f2..87e93ecfda 100644 --- a/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/FixCharStatsForceWavePlugInSeason6.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes several character stats values and DL Force Wave Strengthener master skill. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixCharStatsForceWavePlugInSeason6_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixCharStatsForceWavePlugInSeason6_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("0C1995AB-A1CC-42A8-9EFC-E5FE8F360C53")] public class FixCharStatsForceWavePlugInSeason6 : FixCharStatsForceWavePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixDamageAbsorbItemsUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/FixDamageAbsorbItemsUpdatePlugIn.cs index bc0bde2b8b..27de98a565 100644 --- a/src/Persistence/Initialization/Updates/FixDamageAbsorbItemsUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixDamageAbsorbItemsUpdatePlugIn.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes the damage absorption settings for items and skills. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDamageAbsorbItemsUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDamageAbsorbItemsUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("280ACE93-2B96-476C-A4AF-4FDA7611D5D5")] public class FixDamageAbsorbItemsUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixDamageCalcsPlugIn075.cs b/src/Persistence/Initialization/Updates/FixDamageCalcsPlugIn075.cs index e9385f8ffd..9fa087bdf5 100644 --- a/src/Persistence/Initialization/Updates/FixDamageCalcsPlugIn075.cs +++ b/src/Persistence/Initialization/Updates/FixDamageCalcsPlugIn075.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes character stats, magic effects, items, and options related to damage. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDamageCalcsPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDamageCalcsPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("42B1582B-667F-4098-A339-DDA8560157E3")] public class FixDamageCalcsPlugIn075 : FixDamageCalcsPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixDamageCalcsPlugIn095d.cs b/src/Persistence/Initialization/Updates/FixDamageCalcsPlugIn095d.cs index baf4e4e9dd..6bafad8bf8 100644 --- a/src/Persistence/Initialization/Updates/FixDamageCalcsPlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/FixDamageCalcsPlugIn095d.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes character stats, skills, magic effects, items, and options related to damage. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDamageCalcsPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDamageCalcsPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("A4410B7B-7E5F-409C-9F6F-4E216208829A")] public class FixDamageCalcsPlugIn095D : FixDamageCalcsPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixDamageCalcsPlugInSeason6.cs b/src/Persistence/Initialization/Updates/FixDamageCalcsPlugInSeason6.cs index 0f19599f40..cc12fe497e 100644 --- a/src/Persistence/Initialization/Updates/FixDamageCalcsPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/FixDamageCalcsPlugInSeason6.cs @@ -19,7 +19,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes character stats, skills, magic effects, items, and options related to damage. It also adds the Berserker magic effect. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDamageCalcsPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDamageCalcsPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("077BA63D-F201-41BE-8A65-CFB859482A1B")] public class FixDamageCalcsPlugInSeason6 : FixDamageCalcsPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugIn075.cs b/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugIn075.cs index 8d39b51feb..0f1d74fe36 100644 --- a/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugIn075.cs +++ b/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugIn075.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes character stats, magic effects, and options related to defense. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDefenseCalcsPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDefenseCalcsPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("683A8F8F-EFE9-4EF4-B536-21048E195A87")] public class FixDefenseCalcsPlugIn075 : FixDefenseCalcsPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugIn095d.cs b/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugIn095d.cs index f5c753311c..f22be57e95 100644 --- a/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugIn095d.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes character stats, magic effects, and options related to defense. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDefenseCalcsPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDefenseCalcsPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("C6945ADC-0313-47AC-AFAE-61D0544C8935")] public class FixDefenseCalcsPlugIn095D : FixDefenseCalcsPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugInSeason6.cs b/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugInSeason6.cs index ce9cf13bef..4a127b9852 100644 --- a/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/FixDefenseCalcsPlugInSeason6.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes character stats, magic effects, and options related to defense. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDefenseCalcsPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDefenseCalcsPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("447FA95B-091B-4950-B1F3-F4EB6D20DE19")] public class FixDefenseCalcsPlugInSeason6 : FixDefenseCalcsPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixDrainLifeSkillUpdate.cs b/src/Persistence/Initialization/Updates/FixDrainLifeSkillUpdate.cs index eedfd8f93c..16831cc300 100644 --- a/src/Persistence/Initialization/Updates/FixDrainLifeSkillUpdate.cs +++ b/src/Persistence/Initialization/Updates/FixDrainLifeSkillUpdate.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This adds the items required to enter the kalima map. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDrainLifeSkillUpdate_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDrainLifeSkillUpdate_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("A8827A3C-7F52-47CF-9EA5-562A9C06B986")] public class FixDrainLifeSkillUpdate : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixDuelArenaSafezoneMapUpdate.cs b/src/Persistence/Initialization/Updates/FixDuelArenaSafezoneMapUpdate.cs index b43b9a7e46..78db7887a0 100644 --- a/src/Persistence/Initialization/Updates/FixDuelArenaSafezoneMapUpdate.cs +++ b/src/Persistence/Initialization/Updates/FixDuelArenaSafezoneMapUpdate.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This Sets the safezone of duel arena to lorencia. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDuelArenaSafezoneMapUpdate_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixDuelArenaSafezoneMapUpdate_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("27714BB3-43F9-4D90-920F-98EF0EC20232")] public class FixDuelArenaSafezoneMapUpdate : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixEventItemsDropFromMonstersUpdatePlugIn095d.cs b/src/Persistence/Initialization/Updates/FixEventItemsDropFromMonstersUpdatePlugIn095d.cs index c47e177982..21a3b0dccf 100644 --- a/src/Persistence/Initialization/Updates/FixEventItemsDropFromMonstersUpdatePlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/FixEventItemsDropFromMonstersUpdatePlugIn095d.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// but should use dedicated DropItemGroups instead. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixEventItemsDropFromMonstersUpdatePlugIn095d_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixEventItemsDropFromMonstersUpdatePlugIn095d_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("B9C6D3E2-4F5A-6B7C-8D9E-0F1A2B3C4D5E")] public class FixEventItemsDropFromMonstersUpdatePlugIn095d : FixEventItemsDropFromMonstersUpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixEventItemsDropFromMonstersUpdatePlugInSeason6.cs b/src/Persistence/Initialization/Updates/FixEventItemsDropFromMonstersUpdatePlugInSeason6.cs index eb06eac302..c4e8b48f65 100644 --- a/src/Persistence/Initialization/Updates/FixEventItemsDropFromMonstersUpdatePlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/FixEventItemsDropFromMonstersUpdatePlugInSeason6.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// but should use dedicated DropItemGroups instead. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixEventItemsDropFromMonstersUpdatePlugInSeason6_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixEventItemsDropFromMonstersUpdatePlugInSeason6_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("A8B5C2D1-3E4F-5A6B-7C8D-9E0F1A2B3C4D")] public class FixEventItemsDropFromMonstersUpdatePlugInSeason6 : FixEventItemsDropFromMonstersUpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixHorseFenrirOptionsSoulBarrierPlugIn.cs b/src/Persistence/Initialization/Updates/FixHorseFenrirOptionsSoulBarrierPlugIn.cs index 84d803fdec..f2a777f5ea 100644 --- a/src/Persistence/Initialization/Updates/FixHorseFenrirOptionsSoulBarrierPlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixHorseFenrirOptionsSoulBarrierPlugIn.cs @@ -19,7 +19,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds Dark Horse options, fixes Gold Fenrir options and Soul Barrier effects. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixHorseFenrirOptionsSoulBarrierPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixHorseFenrirOptionsSoulBarrierPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("3E362629-AAF3-40E0-BC6D-32230285FB03")] public class FixHorseFenrirOptionsSoulBarrierPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixIgnoreDefenseSkillUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/FixIgnoreDefenseSkillUpdatePlugIn.cs index d1f5f3f881..24c90f1c0e 100644 --- a/src/Persistence/Initialization/Updates/FixIgnoreDefenseSkillUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixIgnoreDefenseSkillUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update sets the right settings for the ignore defense skill. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixIgnoreDefenseSkillUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixIgnoreDefenseSkillUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("8DEC7BC2-E6A0-4E46-B123-C92CB43B9ED5")] public class FixIgnoreDefenseSkillUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugIn075.cs b/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugIn075.cs index cadf46109b..acceeb2f22 100644 --- a/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugIn075.cs +++ b/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugIn075.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// It also refactors attack speed attributes for simplification. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixItemOptionsAndAttackSpeedPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixItemOptionsAndAttackSpeedPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("7733CDA9-6F4B-48D2-94F1-796C937F032A")] public class FixItemOptionsAndAttackSpeedPlugIn075 : FixItemOptionsAndAttackSpeedPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugIn095d.cs b/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugIn095d.cs index 47be2d4123..b93668a816 100644 --- a/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugIn095d.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// It also refactors attack speed attributes for simplification. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixItemOptionsAndAttackSpeedPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixItemOptionsAndAttackSpeedPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("C7F90EDB-EC00-467D-826F-9DEFFEA1206A")] public class FixItemOptionsAndAttackSpeedPlugIn095D : FixItemOptionsAndAttackSpeedPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugInSeason6.cs b/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugInSeason6.cs index 287fa07a9b..b1515ed041 100644 --- a/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/FixItemOptionsAndAttackSpeedPlugInSeason6.cs @@ -19,7 +19,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// It also refactors attack speed attributes for simplification. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixItemOptionsAndAttackSpeedPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixItemOptionsAndAttackSpeedPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("EEEAA884-4704-48DE-825A-8E588A47E2CC")] public class FixItemOptionsAndAttackSpeedPlugInSeason6 : FixItemOptionsAndAttackSpeedPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixItemRequirementsPlugIn.cs b/src/Persistence/Initialization/Updates/FixItemRequirementsPlugIn.cs index 572769971c..efd303c5a3 100644 --- a/src/Persistence/Initialization/Updates/FixItemRequirementsPlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixItemRequirementsPlugIn.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// Updates some item requirements for elf bows that were initialized wrongly. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixItemRequirementsPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixItemRequirementsPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("9E8DB2CB-1972-40D3-9129-6964ABFEB4DC")] public class FixItemRequirementsPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixItemRequirementsPlugIn2.cs b/src/Persistence/Initialization/Updates/FixItemRequirementsPlugIn2.cs index e988defdbf..f14ea45154 100644 --- a/src/Persistence/Initialization/Updates/FixItemRequirementsPlugIn2.cs +++ b/src/Persistence/Initialization/Updates/FixItemRequirementsPlugIn2.cs @@ -16,7 +16,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This plugin fixes configurations that were created after the initial fix but before the base data was corrected. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixItemRequirementsPlugIn2_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixItemRequirementsPlugIn2_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("A7C9D4E1-8F2B-4A3C-9E6D-7B8F9A0E1C2D")] public class FixItemRequirementsPlugIn2 : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugIn075.cs b/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugIn075.cs index 0204476b20..941de3dd4d 100644 --- a/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugIn075.cs +++ b/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugIn075.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes jewelery items and pet options related to damage. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixJeweleryPetsDamageCalcsPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixJeweleryPetsDamageCalcsPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("46F50226-B0A2-4FE7-B708-AEB3F306A7C0")] public class FixJeweleryPetsDamageCalcsPlugIn075 : FixJeweleryPetsDamageCalcsPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugIn095d.cs b/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugIn095d.cs index 1ced34dd17..aa5debd1b2 100644 --- a/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugIn095d.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes jewelery items and pet options related to damage. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixJeweleryPetsDamageCalcsPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixJeweleryPetsDamageCalcsPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("BF56A0E2-D7B3-4456-81F7-249440489607")] public class FixJeweleryPetsDamageCalcsPlugIn095D : FixJeweleryPetsDamageCalcsPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugInSeason6.cs b/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugInSeason6.cs index 9d15bc9719..3815c394fc 100644 --- a/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/FixJeweleryPetsDamageCalcsPlugInSeason6.cs @@ -18,7 +18,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes jewelery items and pet options related to damage, and jewelery resistance values. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixJeweleryPetsDamageCalcsPlugInSeason6_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixJeweleryPetsDamageCalcsPlugInSeason6_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("DD5B0424-89DB-4DE4-A1BB-B294F2C1FCE6")] public class FixJeweleryPetsDamageCalcsPlugInSeason6 : FixJeweleryPetsDamageCalcsPlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixLevelDiv20ExcOptionUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/FixLevelDiv20ExcOptionUpdatePlugIn.cs index 18393e1923..b6d3f24a6e 100644 --- a/src/Persistence/Initialization/Updates/FixLevelDiv20ExcOptionUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixLevelDiv20ExcOptionUpdatePlugIn.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// The chaos castle update plugin. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixLevelDiv20ExcOptionUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixLevelDiv20ExcOptionUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("B0F275DC-B3C2-4826-8263-FFDC8A8AFAEA")] public class FixLevelDiv20ExcOptionUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixLifeSwellEffectUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/FixLifeSwellEffectUpdatePlugIn.cs index 7694d7cd5d..48306b4a71 100644 --- a/src/Persistence/Initialization/Updates/FixLifeSwellEffectUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixLifeSwellEffectUpdatePlugIn.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update sets the right settings for the life swell effect. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixLifeSwellEffectUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixLifeSwellEffectUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("FD521A61-D5B4-4CF2-B203-6FFF12C80E51")] public class FixLifeSwellEffectUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixMaxManaAndAbilityJewelryOptionsUpdateSeason6.cs b/src/Persistence/Initialization/Updates/FixMaxManaAndAbilityJewelryOptionsUpdateSeason6.cs index 62ef27e8bc..97149ba4b4 100644 --- a/src/Persistence/Initialization/Updates/FixMaxManaAndAbilityJewelryOptionsUpdateSeason6.cs +++ b/src/Persistence/Initialization/Updates/FixMaxManaAndAbilityJewelryOptionsUpdateSeason6.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes the calculation for max mana/AG % increase provided by Ring of Magic/Pendant of Ability options. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixMaxManaAndAbilityJewelryOptionsUpdateSeason6_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixMaxManaAndAbilityJewelryOptionsUpdateSeason6_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("EAC7C809-D4B8-443F-BE52-E56560003483")] public class FixMaxManaAndAbilityJewelryOptionsUpdateSeason6 : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixRageFighterMultipleHitSkillsPlugIn.cs b/src/Persistence/Initialization/Updates/FixRageFighterMultipleHitSkillsPlugIn.cs index e9f5563e10..b688b5a41d 100644 --- a/src/Persistence/Initialization/Updates/FixRageFighterMultipleHitSkillsPlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixRageFighterMultipleHitSkillsPlugIn.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds the missing multiple hits to the Killing Blow, Beast Uppercut, Chain Drive, Dragon Roar and Phoenix Shot Rage Fighter skills, as well as their magic effects. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixRageFighterMultipleHitSkillsPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixRageFighterMultipleHitSkillsPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("EDDD17F9-BEA5-40F0-A653-8567566C40E7")] public class FixRageFighterMultipleHitSkillsPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixSetBonusesPlugIn.cs b/src/Persistence/Initialization/Updates/FixSetBonusesPlugIn.cs index a00eb8ab84..aaa24a0ca9 100644 --- a/src/Persistence/Initialization/Updates/FixSetBonusesPlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixSetBonusesPlugIn.cs @@ -51,7 +51,7 @@ protected override async ValueTask ApplyAsync(IContext context, GameConfiguratio /// The for season 6. /// [PlugIn] - [Display(Name = PlugInName, Description = PlugInDescription)] + [Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSetBonusesPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSetBonusesPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("F858E471-B76D-4AAF-8886-8DEB45BC1AB8")] public class Season6 : FixSetBonusesPlugIn { @@ -66,7 +66,7 @@ public class Season6 : FixSetBonusesPlugIn /// The for version 0.95d. /// [PlugIn] - [Display(Name = PlugInName, Description = PlugInDescription)] + [Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSetBonusesPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSetBonusesPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("3D0201C3-D956-4BDD-9D57-3F6FD921EDF7")] public class V095d : FixSetBonusesPlugIn { @@ -81,7 +81,7 @@ public class V095d : FixSetBonusesPlugIn /// The for version 0.75. /// [PlugIn] - [Display(Name = PlugInName, Description = PlugInDescription)] + [Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSetBonusesPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSetBonusesPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("2E009ADF-1580-4E03-BA59-C9C51DC109BA")] public class V075 : FixSetBonusesPlugIn { diff --git a/src/Persistence/Initialization/Updates/FixSkillMultipliersPlugIn.cs b/src/Persistence/Initialization/Updates/FixSkillMultipliersPlugIn.cs index 9294014390..8cf63b1871 100644 --- a/src/Persistence/Initialization/Updates/FixSkillMultipliersPlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixSkillMultipliersPlugIn.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// /// This update fixes RF skill multipliers and adds several skill-specific multipliers. /// -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSkillMultipliersPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSkillMultipliersPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [PlugIn] [Guid("753F01BA-5FCA-42FA-9587-7055631C27B7")] public class FixSkillMultipliersPlugIn : UpdatePlugInBase diff --git a/src/Persistence/Initialization/Updates/FixSocketSeedCraftingUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/FixSocketSeedCraftingUpdatePlugIn.cs index 62f2c9995a..90fb293d6f 100644 --- a/src/Persistence/Initialization/Updates/FixSocketSeedCraftingUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixSocketSeedCraftingUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update sets the right settings for the socket seed crafting. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSocketSeedCraftingUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSocketSeedCraftingUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("C802EFC2-1D42-4218-871E-8886D115F3ED")] public class FixSocketSeedCraftingUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixSummonerCurseSkillsPlugIn.cs b/src/Persistence/Initialization/Updates/FixSummonerCurseSkillsPlugIn.cs index ed387b2546..80260650c4 100644 --- a/src/Persistence/Initialization/Updates/FixSummonerCurseSkillsPlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixSummonerCurseSkillsPlugIn.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds missing area skill settings for summoner curse (book) and lightning shock skills. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSummonerCurseSkillsPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixSummonerCurseSkillsPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("A3B4C8DB-2F39-4C81-A2D9-5E4FA5B9E004")] public class FixSummonerCurseSkillsPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixWarpLevelUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/FixWarpLevelUpdatePlugIn.cs index 5f9fe3dcf3..6b4c5e1f68 100644 --- a/src/Persistence/Initialization/Updates/FixWarpLevelUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixWarpLevelUpdatePlugIn.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// updating LevelWarpRequirementReductionPercent plugin. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWarpLevelUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWarpLevelUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("F4342D86-7042-477A-BC3B-475C1F2A79FF")] public class FixWarpLevelUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixWarriorMorningStarPlugIn.cs b/src/Persistence/Initialization/Updates/FixWarriorMorningStarPlugIn.cs index 1d848ab376..7f2c864ed6 100644 --- a/src/Persistence/Initialization/Updates/FixWarriorMorningStarPlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixWarriorMorningStarPlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes the weapon of the warrior ancient set. The Hand Axe is replaced by the Morning Star. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWarriorMorningStarPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWarriorMorningStarPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("65BA79B5-1DBF-4C97-9628-0D8A429A8C88")] public class FixWarriorMorningStarPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugIn075.cs b/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugIn075.cs index cf1adbb9eb..569b4c9e6c 100644 --- a/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugIn075.cs +++ b/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugIn075.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes weapons (staff) rise percentage. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWeaponRisePercentagePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWeaponRisePercentagePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("5B63534D-E5DF-46B1-992D-C1637B197EE1")] public class FixWeaponRisePercentagePlugIn075 : FixWeaponRisePercentagePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugIn095d.cs b/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugIn095d.cs index ec3d795b19..74c63b68cd 100644 --- a/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugIn095d.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes weapons (staff) rise percentage. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWeaponRisePercentagePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWeaponRisePercentagePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("33259706-F3DF-4F4D-9935-3DEF7E53BF81")] public class FixWeaponRisePercentagePlugIn095D : FixWeaponRisePercentagePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugInSeason6.cs b/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugInSeason6.cs index 2b162cfd54..36e24a7cb8 100644 --- a/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/FixWeaponRisePercentagePlugInSeason6.cs @@ -20,7 +20,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes weapons (staff, stick, book, scepter) rise percentage increase; Summoner weapons and wings wizardry/curse options; and Wing of Dimension (inc/dec), Cape of Overrule (inc/dec), Cape of Emperor (dec) damage rates.. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWeaponRisePercentagePlugInSeason6_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWeaponRisePercentagePlugInSeason6_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("58740F26-6496-4CCA-8C90-C4749E09DDB2")] public class FixWeaponRisePercentagePlugInSeason6 : FixWeaponRisePercentagePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixWingsAndCapesCraftingsUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/FixWingsAndCapesCraftingsUpdatePlugIn.cs index d99c6dd4d8..33ade4c964 100644 --- a/src/Persistence/Initialization/Updates/FixWingsAndCapesCraftingsUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/FixWingsAndCapesCraftingsUpdatePlugIn.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update sets the right settings for the wings and capes craftings. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWingsAndCapesCraftingsUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWingsAndCapesCraftingsUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("618A53AF-ED2A-4C78-A103-BAD061FFB0D2")] public class FixWingsAndCapesCraftingsUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugIn075.cs b/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugIn075.cs index cdafeb32e5..a1593c799c 100644 --- a/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugIn075.cs +++ b/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugIn075.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// for version 075. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWingsDmgRatesUpdatePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWingsDmgRatesUpdatePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("3821267A-9C37-40E5-B023-BAB1A8E4DAB7")] public class FixWingsDmgRatesUpdatePlugIn075 : FixWingsDmgRatesUpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugIn095d.cs b/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugIn095d.cs index 3ffb3a83ca..3c7905a4f7 100644 --- a/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugIn095d.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// for version 095d. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWingsDmgRatesUpdatePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWingsDmgRatesUpdatePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("F45FA4D0-B19B-48E2-9592-A37F3B36348A")] public class FixWingsDmgRatesUpdatePlugIn095D : FixWingsDmgRatesUpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugInSeason6.cs b/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugInSeason6.cs index 29754ae4cf..6a1e965a86 100644 --- a/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/FixWingsDmgRatesUpdatePlugInSeason6.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// for season 6. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWingsDmgRatesUpdatePlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.FixWingsDmgRatesUpdatePlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("03F49890-CB0E-40B7-A590-174BBA1962F4")] public class FixWingsDmgRatesUpdatePlugInSeason6 : FixWingsDmgRatesUpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/InfinityArrowSkillOnQuestCompletionPlugIn.cs b/src/Persistence/Initialization/Updates/InfinityArrowSkillOnQuestCompletionPlugIn.cs index 14cf1a277f..8979720a57 100644 --- a/src/Persistence/Initialization/Updates/InfinityArrowSkillOnQuestCompletionPlugIn.cs +++ b/src/Persistence/Initialization/Updates/InfinityArrowSkillOnQuestCompletionPlugIn.cs @@ -16,7 +16,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update adds the infinity arrow skill as quest reward for 'Gain Hero Status (Muse Elf)'. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.InfinityArrowSkillOnQuestCompletionPlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.InfinityArrowSkillOnQuestCompletionPlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("A78B7540-75AC-494C-9AEC-BC943D929C98")] public class InfinityArrowSkillOnQuestCompletionPlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/LimitWhiteWizardDropsUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/LimitWhiteWizardDropsUpdatePlugIn.cs index 5a5c404555..70795404d5 100644 --- a/src/Persistence/Initialization/Updates/LimitWhiteWizardDropsUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/LimitWhiteWizardDropsUpdatePlugIn.cs @@ -14,7 +14,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update limits the Wizard's Ring to one per character for existing databases. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.LimitWhiteWizardDropsUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.LimitWhiteWizardDropsUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("A7B3E5F1-8C2D-4E6F-9A1B-3D5C7E8F2A4B")] public class LimitWhiteWizardDropsUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugIn075.cs b/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugIn075.cs index 0dba65d0b0..17e9958b0b 100644 --- a/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugIn075.cs +++ b/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugIn075.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes and reworks some regeneration attributes (health, mana, ability). /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RegenerationsRefactorPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RegenerationsRefactorPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("F079402E-F557-423C-B376-80A1B87D842D")] public class RegenerationsRefactorPlugIn075 : RegenerationsRefactorPlugInBase { diff --git a/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugIn095d.cs b/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugIn095d.cs index 5e80a85b15..791aaf0958 100644 --- a/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugIn095d.cs @@ -15,7 +15,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes and reworks some regeneration attributes (health, mana, ability). It also adds default running (and fast swimming) speed for tier 2 chars (MG). /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RegenerationsRefactorPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RegenerationsRefactorPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("A7C2E9F4-5B1D-4E8A-9C6F-3D2B7A1E5F90")] public class RegenerationsRefactorPlugIn095D : RegenerationsRefactorPlugInBase { diff --git a/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugInSeason6.cs b/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugInSeason6.cs index a71b5a741c..ece3e7933e 100644 --- a/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/RegenerationsRefactorPlugInSeason6.cs @@ -17,7 +17,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update fixes and reworks some regeneration attributes (health, shield, mana, ability). It also adds default running (and fast swimming) speed for tier 2 chars (MG, DL, RF). /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RegenerationsRefactorPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RegenerationsRefactorPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("E6A3B9F1-7C4D-48E2-A5B8-1F9D3C6E2A7B")] public class RegenerationsRefactorPlugInSeason6 : RegenerationsRefactorPlugInBase { diff --git a/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugIn075.cs b/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugIn075.cs index 7178c91eed..2c3b142f33 100644 --- a/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugIn075.cs +++ b/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugIn075.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update removes stat attributes which are defined more than once for a character class. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveDuplicateStatAttributesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveDuplicateStatAttributesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("6B0A9D2C-6E4F-4C1B-9B5A-2E7F8D4C0A31")] public class RemoveDuplicateStatAttributesPlugIn075 : RemoveDuplicateStatAttributesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugIn095d.cs b/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugIn095d.cs index 3ba48c91d0..8aade97569 100644 --- a/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugIn095d.cs @@ -11,7 +11,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update removes stat attributes which are defined more than once for a character class. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveDuplicateStatAttributesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveDuplicateStatAttributesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("D1F4C7A8-3B62-4E05-8A9C-5C1B6E3F7D24")] public class RemoveDuplicateStatAttributesPlugIn095D : RemoveDuplicateStatAttributesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugInSeason6.cs b/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugInSeason6.cs index ae1b8c895e..ff01131db7 100644 --- a/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/RemoveDuplicateStatAttributesPlugInSeason6.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update removes stat attributes which are defined more than once for a character class. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveDuplicateStatAttributesPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveDuplicateStatAttributesPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("9C3E5B71-8D04-42A6-BF19-7A2D6C8E5B03")] public class RemoveDuplicateStatAttributesPlugInSeason6 : RemoveDuplicateStatAttributesPlugInBase { diff --git a/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugIn075.cs b/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugIn075.cs index 84c188f981..9afaf6ab18 100644 --- a/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugIn075.cs +++ b/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugIn075.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update removes the existing drop level gap condition for jewels and similar items that should always drop. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveJewelDropLevelGapPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveJewelDropLevelGapPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("CD958BC1-F17A-4C60-B66D-BD29D49B6ADA")] public class RemoveJewelDropLevelGapPlugIn075 : RemoveJewelDropLevelGapPlugInBase { diff --git a/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugIn095d.cs b/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugIn095d.cs index 8bd82191a1..f6802575bd 100644 --- a/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugIn095d.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update removes the existing drop level gap condition for jewels and similar items that should always drop. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveJewelDropLevelGapPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveJewelDropLevelGapPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("6614E91E-5749-478A-96A4-3240E7C1280E")] public class RemoveJewelDropLevelGapPlugIn095D : RemoveJewelDropLevelGapPlugInBase { diff --git a/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugInSeason6.cs b/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugInSeason6.cs index 3e2dc2947e..81247515fa 100644 --- a/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/RemoveJewelDropLevelGapPlugInSeason6.cs @@ -12,7 +12,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update removes the existing drop level gap condition for jewels and similar items that should always drop. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveJewelDropLevelGapPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.RemoveJewelDropLevelGapPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("AB1C9F8B-5E3B-4F2A-BDCD-9C0F1E5A6B7C")] public class RemoveJewelDropLevelGapPlugInSeason6 : RemoveJewelDropLevelGapPlugInBase { diff --git a/src/Persistence/Initialization/Updates/SpawnFixesUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/SpawnFixesUpdatePlugIn.cs index fef6d66f2f..1c3d55d4fb 100644 --- a/src/Persistence/Initialization/Updates/SpawnFixesUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/SpawnFixesUpdatePlugIn.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// The chaos castle update plugin. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.SpawnFixesUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.SpawnFixesUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("15FB42DE-A032-49B5-98B8-4CF34744B3A6")] public class SpawnFixesUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugIn075.cs b/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugIn075.cs index a1cb23713a..f00dc47db1 100644 --- a/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugIn075.cs +++ b/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugIn075.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// for Version 0.75. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.SystemConfigurationAddedPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.SystemConfigurationAddedPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("F1151FDE-14F7-4945-AEE9-57DAB6449CFF")] public class SystemConfigurationAddedPlugIn075 : SystemConfigurationAddedPlugInBase { diff --git a/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugIn095d.cs b/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugIn095d.cs index 5d2d74f79d..50ef12d6c7 100644 --- a/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugIn095d.cs +++ b/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugIn095d.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// for version 0.95d. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.SystemConfigurationAddedPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.SystemConfigurationAddedPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("EC9FE71E-5C6C-456A-AC75-428EBA3FF626")] public class SystemConfigurationAddedPlugIn095d : SystemConfigurationAddedPlugInBase { diff --git a/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugInSeason6.cs b/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugInSeason6.cs index 0de4009a99..3a14c098f4 100644 --- a/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugInSeason6.cs +++ b/src/Persistence/Initialization/Updates/SystemConfigurationAddedPlugInSeason6.cs @@ -13,7 +13,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// for season 6. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.SystemConfigurationAddedPlugInBase_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.SystemConfigurationAddedPlugInBase_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("7231172F-51AD-4129-9003-C1ACC7E04147")] public class SystemConfigurationAddedPlugInSeason6 : SystemConfigurationAddedPlugInBase { diff --git a/src/Persistence/Initialization/Updates/WizEnhanceAndRagefighterSkillsUpdatePlugIn.cs b/src/Persistence/Initialization/Updates/WizEnhanceAndRagefighterSkillsUpdatePlugIn.cs index 89656b0367..5f02808a3d 100644 --- a/src/Persistence/Initialization/Updates/WizEnhanceAndRagefighterSkillsUpdatePlugIn.cs +++ b/src/Persistence/Initialization/Updates/WizEnhanceAndRagefighterSkillsUpdatePlugIn.cs @@ -16,7 +16,7 @@ namespace MUnique.OpenMU.Persistence.Initialization.Updates; /// This update sets the right settings for the chain lightning skill. /// [PlugIn] -[Display(Name = PlugInName, Description = PlugInDescription)] +[Display(Name = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.WizEnhanceAndRagefighterSkillsUpdatePlugIn_Name), Description = nameof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources.WizEnhanceAndRagefighterSkillsUpdatePlugIn_Description), ResourceType = typeof(MUnique.OpenMU.Persistence.Initialization.Properties.PlugInResources))] [Guid("426497DB-A1D7-4EC5-BE6A-C8AEABC288E2")] public class WizEnhanceAndRagefighterSkillsUpdatePlugIn : UpdatePlugInBase { diff --git a/src/Web/AdminPanel/Auth/RoleCaption.cs b/src/Web/AdminPanel/Auth/RoleCaption.cs new file mode 100644 index 0000000000..5bd8ab072c --- /dev/null +++ b/src/Web/AdminPanel/Auth/RoleCaption.cs @@ -0,0 +1,22 @@ +// +// Licensed under the MIT License. See LICENSE file in the project root for full license information. +// + +namespace MUnique.OpenMU.Web.AdminPanel.Auth; + +using MUnique.OpenMU.Web.AdminPanel.Properties; + +/// Localizes role labels without changing stored authorization identifiers. +public static class RoleCaption +{ + /// Gets the display label for a stored role or comma-separated role list. + /// The stored role identifiers. + /// The localized labels, preserving unknown identifiers. + public static string Get(string roles) => string.Join(", ", roles.Split(',').Select(role => role.Trim() switch + { + "Administrator" => Resources.RoleAdministrator, + "Operator" => Resources.RoleOperator, + "Viewer" => Resources.RoleViewer, + var other => other, + })); +} diff --git a/src/Web/AdminPanel/Components/App.razor b/src/Web/AdminPanel/Components/App.razor index c2ba850a2d..be34e14adb 100644 --- a/src/Web/AdminPanel/Components/App.razor +++ b/src/Web/AdminPanel/Components/App.razor @@ -10,11 +10,11 @@ } - + - OpenMU AdminPanel + @MUnique.OpenMU.Web.AdminPanel.Properties.Resources.OpenMUAdminPanel diff --git a/src/Web/AdminPanel/Components/Layout/CreationPanel.razor b/src/Web/AdminPanel/Components/Layout/CreationPanel.razor index e6dad5d6ca..b90f0f5110 100644 --- a/src/Web/AdminPanel/Components/Layout/CreationPanel.razor +++ b/src/Web/AdminPanel/Components/Layout/CreationPanel.razor @@ -61,7 +61,7 @@ } catch (Exception ex) { - this.ToastService.ShowError($"Could not save the new entry: {ex.Message}"); + this.ToastService.ShowError(string.Format(Resources.CouldNotSaveEntry, ex.Message)); } } diff --git a/src/Web/AdminPanel/Components/Layout/NavMenu.razor b/src/Web/AdminPanel/Components/Layout/NavMenu.razor index 6ad2372d5e..ed8b564cfa 100644 --- a/src/Web/AdminPanel/Components/Layout/NavMenu.razor +++ b/src/Web/AdminPanel/Components/Layout/NavMenu.razor @@ -64,7 +64,7 @@ @if (this._availableConfigUpdates > 0) { @this._availableConfigUpdates - available updates + @Resources.AvailableUpdates } diff --git a/src/Web/AdminPanel/Components/Layout/ReconnectModal.razor b/src/Web/AdminPanel/Components/Layout/ReconnectModal.razor index 49d916bc56..dec4331978 100644 --- a/src/Web/AdminPanel/Components/Layout/ReconnectModal.razor +++ b/src/Web/AdminPanel/Components/Layout/ReconnectModal.razor @@ -1,4 +1,6 @@ - +@using MUnique.OpenMU.Web.AdminPanel.Properties + +
@@ -7,25 +9,25 @@

- Rejoining the server... + @Resources.ReconnectJoining

- Rejoin failed... trying again in seconds. + @Resources.ReconnectRetryBefore@Resources.ReconnectRetryAfter

- Failed to rejoin.
Please retry or reload the page. + @Resources.ReconnectFailed

- The session has been paused by the server. + @Resources.ReconnectPaused

- Failed to resume the session.
Please reload the page. + @Resources.ReconnectResumeFailed

diff --git a/src/Web/AdminPanel/Components/PartyBadge.razor b/src/Web/AdminPanel/Components/PartyBadge.razor index 924e548d09..c526c2c877 100644 --- a/src/Web/AdminPanel/Components/PartyBadge.razor +++ b/src/Web/AdminPanel/Components/PartyBadge.razor @@ -4,7 +4,7 @@ } else { - @PartyMaster (@PartySize) + @PartyMaster (@PartySize) } @code { diff --git a/src/Web/AdminPanel/Pages/Accounts.razor b/src/Web/AdminPanel/Pages/Accounts.razor index c41ba94dc0..d65a252579 100644 --- a/src/Web/AdminPanel/Pages/Accounts.razor +++ b/src/Web/AdminPanel/Pages/Accounts.razor @@ -34,7 +34,7 @@ @item.State.GetEnumCaption() @item.EMail - Edit + @Resources.Edit diff --git a/src/Web/AdminPanel/Pages/AdminUsers.razor b/src/Web/AdminPanel/Pages/AdminUsers.razor index edb4758a59..84e61f9503 100644 --- a/src/Web/AdminPanel/Pages/AdminUsers.razor +++ b/src/Web/AdminPanel/Pages/AdminUsers.razor @@ -37,7 +37,7 @@ else @onchange="@(args => this.OnRoleChangedAsync(user, args.Value?.ToString()))"> @foreach (var role in AdminRoles.All) { - + } diff --git a/src/Web/AdminPanel/Pages/ApiKeys.razor b/src/Web/AdminPanel/Pages/ApiKeys.razor index b50192937d..e8a3c74874 100644 --- a/src/Web/AdminPanel/Pages/ApiKeys.razor +++ b/src/Web/AdminPanel/Pages/ApiKeys.razor @@ -51,7 +51,7 @@ else @apiKey.Name @apiKey.KeyPrefix… - @apiKey.Roles + @MUnique.OpenMU.Web.AdminPanel.Auth.RoleCaption.Get(apiKey.Roles) @if (apiKey.IsDisabled) { diff --git a/src/Web/AdminPanel/Pages/ChatCommands.razor b/src/Web/AdminPanel/Pages/ChatCommands.razor index 5dcde0fa26..0a59183143 100644 --- a/src/Web/AdminPanel/Pages/ChatCommands.razor +++ b/src/Web/AdminPanel/Pages/ChatCommands.razor @@ -28,7 +28,7 @@ @foreach (var status in new[] { CharacterStatus.Normal, CharacterStatus.GameMaster }) { - + } @@ -76,7 +76,7 @@
@Resources.NoParameters
} - @item.Info.MinimumCharacterStatus + @MUnique.OpenMU.DataModel.ModelResourceProvider.GetEnumCaption(typeof(CharacterStatus), item.Info.MinimumCharacterStatus) @if (item.IsActive) { diff --git a/src/Web/AdminPanel/Pages/CreateConnectServerConfig.razor.cs b/src/Web/AdminPanel/Pages/CreateConnectServerConfig.razor.cs index 0489c528e3..af879c8fde 100644 --- a/src/Web/AdminPanel/Pages/CreateConnectServerConfig.razor.cs +++ b/src/Web/AdminPanel/Pages/CreateConnectServerConfig.razor.cs @@ -190,23 +190,27 @@ public class ConnectServerViewModel /// /// Gets or sets the server identifier. /// + [Display(Name = nameof(Resources.CreateConnectServer_ServerId), ResourceType = typeof(Resources))] public byte ServerId { get; set; } /// /// Gets or sets the description. /// + [Display(Name = nameof(Resources.CreateConnectServer_Description), ResourceType = typeof(Resources))] public string Description { get; set; } = string.Empty; /// /// Gets or sets the client which is expected to connect. /// [Required] + [Display(Name = nameof(Resources.CreateConnectServer_Client), ResourceType = typeof(Resources))] public GameClientDefinition? Client { get; set; } /// /// Gets or sets the network port on which the server is listening. /// [Range(1, ushort.MaxValue)] + [Display(Name = nameof(Resources.CreateConnectServer_NetworkPort), ResourceType = typeof(Resources))] public int NetworkPort { get; set; } } } \ No newline at end of file diff --git a/src/Web/AdminPanel/Pages/CreateGameServerConfig.razor.cs b/src/Web/AdminPanel/Pages/CreateGameServerConfig.razor.cs index 87ee740ec3..d49dc7be92 100644 --- a/src/Web/AdminPanel/Pages/CreateGameServerConfig.razor.cs +++ b/src/Web/AdminPanel/Pages/CreateGameServerConfig.razor.cs @@ -206,11 +206,13 @@ public class GameServerViewModel /// /// Gets or sets the server identifier. /// + [Display(Name = nameof(Resources.CreateGameServer_ServerId), ResourceType = typeof(Resources))] public byte ServerId { get; set; } /// /// Gets or sets the description. /// + [Display(Name = nameof(Resources.CreateGameServer_Description), ResourceType = typeof(Resources))] public string Description { get; set; } = string.Empty; /// @@ -220,29 +222,34 @@ public class GameServerViewModel /// The experience rate. /// [Range(0, float.MaxValue)] + [Display(Name = nameof(Resources.CreateGameServer_ExperienceRate), ResourceType = typeof(Resources))] public float ExperienceRate { get; set; } /// /// Gets or sets a value indicating whether PVP is enabled on this server. /// + [Display(Name = nameof(Resources.CreateGameServer_PvpEnabled), ResourceType = typeof(Resources))] public bool PvpEnabled { get; set; } /// /// Gets or sets the server configuration. /// [Required] + [Display(Name = nameof(Resources.CreateGameServer_ServerConfiguration), ResourceType = typeof(Resources))] public GameServerConfiguration? ServerConfiguration { get; set; } /// /// Gets or sets the client which is expected to connect. /// [Required] + [Display(Name = nameof(Resources.CreateGameServer_Client), ResourceType = typeof(Resources))] public GameClientDefinition? Client { get; set; } /// /// Gets or sets the network port on which the server is listening. /// [Range(1, ushort.MaxValue)] + [Display(Name = nameof(Resources.CreateGameServer_NetworkPort), ResourceType = typeof(Resources))] public int NetworkPort { get; set; } } } diff --git a/src/Web/AdminPanel/Pages/EditConfigGrid.razor b/src/Web/AdminPanel/Pages/EditConfigGrid.razor index 5648713c4c..bb51d3c60b 100644 --- a/src/Web/AdminPanel/Pages/EditConfigGrid.razor +++ b/src/Web/AdminPanel/Pages/EditConfigGrid.razor @@ -20,7 +20,7 @@
- +
- +

diff --git a/src/Web/AdminPanel/Pages/EditConfigGrid.razor.cs b/src/Web/AdminPanel/Pages/EditConfigGrid.razor.cs index e95056ec9a..d152f9c6b4 100644 --- a/src/Web/AdminPanel/Pages/EditConfigGrid.razor.cs +++ b/src/Web/AdminPanel/Pages/EditConfigGrid.razor.cs @@ -193,7 +193,7 @@ private async Task OnDeleteButtonClickAsync(ViewModel viewModel) { try { - var dialogResult = await this.ModalService.ShowQuestionAsync("Are you sure?", $"You're about to delete '{viewModel.Name}. Are you sure?").ConfigureAwait(true); + var dialogResult = await this.ModalService.ShowQuestionAsync(Resources.ConfirmDelete, string.Format(Resources.ConfirmDeleteEntry, viewModel.Name)).ConfigureAwait(true); if (!dialogResult) { return; @@ -212,7 +212,7 @@ private async Task OnDeleteButtonClickAsync(ViewModel viewModel) await deleteContext.DeleteAsync(toDelete).ConfigureAwait(false); await deleteContext.SaveChangesAsync(cancellationToken).ConfigureAwait(false); await this.DataSource.ForceDiscardChangesAsync().ConfigureAwait(false); - this.ToastService.ShowSuccess($"Deleted '{viewModel.Name}' successfully."); + this.ToastService.ShowSuccess(string.Format(Resources.DeletedSuccessfully, viewModel.Name)); this._viewModels = null; this._loadTask = Task.Run(() => this.LoadDataAsync(cancellationToken), cancellationToken); } @@ -234,7 +234,7 @@ private async Task OnCreateButtonClickAsync() var session = new CreationSession { - Title = $"Create {this.Type!.GetTypeCaption()}", + Title = string.Format(Resources.CreateEntry, this.Type!.GetTypeCaption()), Item = newObject, ItemType = this.Type!, Context = creationContext, @@ -303,7 +303,7 @@ private async Task OnDuplicateButtonClickAsync(ViewModel viewModel) var duplicatedName = viewModel.Name; var session = new CreationSession { - Title = $"Duplicate '{duplicatedName}'", + Title = string.Format(Resources.DuplicateEntry, duplicatedName), Item = newObject, ItemType = this.Type!, Context = context, @@ -378,7 +378,7 @@ private async Task OnDuplicateButtonClickAsync(ViewModel viewModel) if (cloneMethod is null || !this.Type.IsAssignableFrom(cloneMethod.ReturnType)) { - this.ToastService.ShowError($"Type '{this.Type.Name}' must have a Clone method that takes '{nameof(GameConfiguration)}' and returns '{this.Type.Name}'."); + this.ToastService.ShowError(string.Format(Resources.InvalidCloneMethod, this.Type.Name, nameof(GameConfiguration))); return null; } @@ -488,6 +488,7 @@ public ViewModel(object parent) /// /// Gets or sets the name of the object. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(Resources.ConfigurationEntryName), ResourceType = typeof(Resources))] public string Name { get; set; } } } \ No newline at end of file diff --git a/src/Web/AdminPanel/Pages/Index.razor b/src/Web/AdminPanel/Pages/Index.razor index b09490d450..db3adcd49d 100644 --- a/src/Web/AdminPanel/Pages/Index.razor +++ b/src/Web/AdminPanel/Pages/Index.razor @@ -4,6 +4,6 @@

@Resources.OpenMUAdminPanel

@Resources.OpenMUAdminPanel - + @Resources.WelcomeMessage diff --git a/src/Web/AdminPanel/Pages/LogFiles.razor b/src/Web/AdminPanel/Pages/LogFiles.razor index ff464218f3..bc28c8b73d 100644 --- a/src/Web/AdminPanel/Pages/LogFiles.razor +++ b/src/Web/AdminPanel/Pages/LogFiles.razor @@ -249,7 +249,7 @@ } catch (Exception ex) { - lines.Add($"Error reading log file: {ex.Message}"); + lines.Add(string.Format(Resources.LogReadError, ex.Message)); } return lines; diff --git a/src/Web/AdminPanel/Pages/Merchants.razor b/src/Web/AdminPanel/Pages/Merchants.razor index 25bb04b5c2..8608c34fe4 100644 --- a/src/Web/AdminPanel/Pages/Merchants.razor +++ b/src/Web/AdminPanel/Pages/Merchants.razor @@ -20,7 +20,7 @@ {
- + @@ -28,7 +28,7 @@
- + } else { diff --git a/src/Web/AdminPanel/Pages/Merchants.razor.cs b/src/Web/AdminPanel/Pages/Merchants.razor.cs index 62728f6aca..487258873f 100644 --- a/src/Web/AdminPanel/Pages/Merchants.razor.cs +++ b/src/Web/AdminPanel/Pages/Merchants.razor.cs @@ -266,6 +266,7 @@ public MerchantStorageViewModel(MonsterDefinition merchant) /// /// Gets the items of the merchant. /// + [System.ComponentModel.DataAnnotations.Display(Name = nameof(Resources.Items), ResourceType = typeof(Resources))] public ICollection Items => this.Merchant.MerchantStore!.Items; } } \ No newline at end of file diff --git a/src/Web/AdminPanel/Pages/NotFound.razor b/src/Web/AdminPanel/Pages/NotFound.razor index ff667e04f0..a669e6398c 100644 --- a/src/Web/AdminPanel/Pages/NotFound.razor +++ b/src/Web/AdminPanel/Pages/NotFound.razor @@ -3,5 +3,5 @@ @using MUnique.OpenMU.Web.AdminPanel.Components.Layout @layout MainLayout -

Not Found

-

Sorry, the content you are looking for does not exist.

\ No newline at end of file +

@MUnique.OpenMU.Web.AdminPanel.Properties.Resources.PageNotFound

+

@MUnique.OpenMU.Web.AdminPanel.Properties.Resources.PageNotFoundDescription

\ No newline at end of file diff --git a/src/Web/AdminPanel/Pages/Plugins.razor b/src/Web/AdminPanel/Pages/Plugins.razor index 1809a9b928..85a69f4c84 100644 --- a/src/Web/AdminPanel/Pages/Plugins.razor +++ b/src/Web/AdminPanel/Pages/Plugins.razor @@ -17,8 +17,8 @@ -
-
+
+
diff --git a/src/Web/AdminPanel/WebApplicationExtensions.cs b/src/Web/AdminPanel/WebApplicationExtensions.cs index ba773cd8cb..19df6fd08f 100644 --- a/src/Web/AdminPanel/WebApplicationExtensions.cs +++ b/src/Web/AdminPanel/WebApplicationExtensions.cs @@ -48,7 +48,7 @@ public static WebApplicationBuilder AddAdminPanel(this WebApplicationBuilder bui var supportedCultures = CultureHelper .GetAvailableCultures() - .Select(culture => culture.TwoLetterISOLanguageName) + .Select(culture => culture.Name) .ToArray(); services.AddLocalization() .Configure(o => diff --git a/src/Web/Shared/Components/BreadcrumbNavigation.razor b/src/Web/Shared/Components/BreadcrumbNavigation.razor index 2af15f6498..689decd51d 100644 --- a/src/Web/Shared/Components/BreadcrumbNavigation.razor +++ b/src/Web/Shared/Components/BreadcrumbNavigation.razor @@ -4,13 +4,13 @@ @inject NavigationHistory History; -
+
@if (this.History.CanGoBackward) { @@ -19,8 +19,8 @@ { @@ -30,8 +30,8 @@ { @@ -40,14 +40,14 @@ { }
-
public string SelectedCultureCode { - get => CultureInfo.CurrentUICulture.TwoLetterISOLanguageName; + get => CultureInfo.CurrentUICulture.Name; set { - if (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == value) + if (CultureInfo.CurrentUICulture.Name == value) { return; } diff --git a/src/Web/Shared/Components/Form/AutoForm.razor b/src/Web/Shared/Components/Form/AutoForm.razor index 5862407a34..5941b494e6 100644 --- a/src/Web/Shared/Components/Form/AutoForm.razor +++ b/src/Web/Shared/Components/Form/AutoForm.razor @@ -32,7 +32,7 @@ } @if (this.OnCancel != null) { - + } diff --git a/src/Web/Shared/Components/Form/ByteArrayField.razor b/src/Web/Shared/Components/Form/ByteArrayField.razor index 421c54d04a..fa686fe83b 100644 --- a/src/Web/Shared/Components/Form/ByteArrayField.razor +++ b/src/Web/Shared/Components/Form/ByteArrayField.razor @@ -14,8 +14,8 @@ { @if (this.Value.Length > 32) { -

Current size: @(this.Value.Length) bytes (Download)

-

Load file:

+

@string.Format(Resources.CurrentByteSize, this.Value.Length) (@Resources.Download)

+

@Resources.LoadFile:

} else { @@ -24,8 +24,8 @@ } else { -

-

Load file:

+

+

@Resources.LoadFile:

} @@ -61,7 +61,7 @@ else { result = null; - validationErrorMessage = "Wrong format. Expected example: AB 03 DC"; + validationErrorMessage = Resources.HexFormatError; return false; } } @@ -84,7 +84,7 @@ await using var memoryStream = new MemoryStream(); await file.Data.CopyToAsync(memoryStream); this.CurrentValue = memoryStream.ToArray(); - await this._modalService.ShowMessageAsync(this.FieldIdentifier.FieldName, $"Loaded {file.Name} with {this.CurrentValue.Length} bytes."); + await this._modalService.ShowMessageAsync(FieldCaption.Get(this.FieldIdentifier), string.Format(Resources.FileLoaded, file.Name, this.CurrentValue.Length)); } } } \ No newline at end of file diff --git a/src/Web/Shared/Components/Form/DataTable.razor b/src/Web/Shared/Components/Form/DataTable.razor index 7fcdbb946d..e88dbee316 100644 --- a/src/Web/Shared/Components/Form/DataTable.razor +++ b/src/Web/Shared/Components/Form/DataTable.razor @@ -2,18 +2,18 @@ @typeparam TItem where TItem : class -