AscendRPG

AscendRPG

AscendRPG为Hytale带来了受魔兽世界启发的职业、升级和天赋系统,采用完全服务器端的自定义用户界面。

游戏玩法

AscendRPG

⚠️ 额外兼容性说明

AscendRPG 是一个服务端 RPG 成长框架,已对核心游戏机制进行了修改,包括:

  • 经验值与等级
  • 战斗计算
  • 耐力、法力和生命恢复
  • 伤害处理与属性缩放

因此,不建议将 AscendRPG 与以下类型的其他模组同时使用:

  • 彻底改造 RPG 系统的模组
  • 改变等级或属性的模组
  • 修改战斗机制的模组
  • 添加替代技能树或成长框架的模组

多个影响相同核心系统(战斗、属性、成长或伤害逻辑)的模组同时使用可能导致:

  • 冲突
  • 不同步问题
  • 意外行为
  • 玩家断开连接或不稳定

为确保最佳稳定性和预期的游戏平衡,AscendRPG 应在您的服务器中作为主要(且唯一)的 RPG/战斗成长模组使用。


概览

AscendRPG 专注于战斗决策、职业特性和长期角色成长,而不会将游戏变成 MMO 或技能乱按系统。

其目标并非取代原版战斗,而是在其基础上增加有意义的成长、风险和专精


设计理念

  • 成长优先于数值膨胀
    力量主要来源于技能和玩家决策,而非物品稀有度。

  • 职业定义玩法,而非硬性限制
    任何武器皆可使用,但职业会明显偏向特定的战斗风格。

  • 基于风险的战斗
    格挡、耐力、破防和站位比单纯的 DPS 更为重要。


核心特性

  • 基于职业的角色:战士、猎人、法师、潜行者
  • 基于等级的成长,最高可达 100 级
  • 生命、耐力和法力属性缩放
  • 技能驱动的角色成长
  • 服务端职业特性与属性处理
  • 游戏内界面,用于:
    • 职业选择
    • 角色属性
    • 技能概览

战斗与 RPG 系统

  • 高级耐力与格挡系统
    • 格挡永远无法完全抵挡 100% 的伤害
    • 耐力归零时触发破防
    • 不同武器与耐力的交互方式不同
  • 技能驱动的伤害计算
    伤害通过一个统一系统计算,该统合了技能、职业修正、暴击和减伤。

职业被动与武器使用

每个职业都有简单的被动特性和偏好武器。使用非偏好武器会导致效能降低。

战士

  • 偏好武器:剑、长矛
  • 被动:移动速度 -4%
  • 定位:坚韧的近战战士

猎人

  • 偏好武器:
  • 次要武器:匕首(惩罚较小)
  • 被动:减少坠落伤害
  • 定位:远程战斗与机动

法师

  • 偏好武器:仅限法杖
  • 初始携带基础法杖
  • 定位:魔法与资源型战斗

潜行者

  • 偏好武器:匕首
  • 被动:潜行速度提升
  • 定位:精准与走位

新增专业系统

已新增专业系统。每个专业都有其专属的技能,随着您的进展会解锁各种加成。例如,您可以在采矿时获得额外幸运,有机会制作出更高质量的物品,以及获得其他专业专属优势。

已知问题

由于游戏处理经验值事件的方式,存在一些限制。在某些情况下,您可能会从并非由您直接制作的物品中获得经验值(例如,捡起骷髅掉落的箭矢)。遗憾的是,目前无法更精确地处理此问题,因为游戏并未正确暴露出必要的事件挂钩(例如,可靠的工作台或制作事件)。

换句话说,该系统有时会将物品获取视为与制作相关的行为。这并不完美,但这是当前事件处理的技术限制,而且老实说,这并不完全是坏事(例如,作为炼金术师收集蘑菇时获得一点经验值,某种程度上也说得通)。

语言支持

已添加基础语言支持。已包含一些翻译,游戏应自动加载可用的语言文件。

您也可以通过添加语言文件(例如:en-us, cs-cz 等)并保持相同的内部文件结构来创建自己的翻译。模组应能自动检测并加载它。

已知问题

我曾尝试添加一个合适的语言设置选项,但遗憾的是它在登录后无法立即正常工作。这很可能是因为在选择专业界面时,UI 被重叠覆盖,导致无法在此刻访问设置菜单来更改语言。

因此,只有在初始专业选择之后才能更改语言。我可能会在未来重新审视此问题,并尝试实现更可靠的解决方案。

魔法与法杖系统(法师)

AscendRPG 为法师职业引入了一个自定义的基于法杖的魔法系统

游戏内已有的法杖模型被复用,并扩展了额外的游戏机制和行为。

核心原则

  • 法杖是功能性武器,而非法术快捷键栏
  • 魔法使用是资源驱动的,而非无脑施放
  • 力量来源于技能和职业成长,而非法杖稀有度

基于精华的施法

  • 每根法杖需要一种特定的魔法精华
  • 施法会消耗精华
  • 当精华或法力耗尽时:
    • 法术施放被禁用
    • 法杖将表现为近战武器(类似长矛的攻击)
  • 这确保了法师永远不会完全失去防御能力。

法杖特性

  • 每根法杖代表一种法术原型
  • 法杖的伤害不通过稀有度缩放
  • 法术效果主要受以下因素影响:
    • 技能
    • 职业加成
    • 玩家决策
  • 该系统围绕受控的魔法使用明确的风险与回报设计。

成长与经验系统

  • 最高等级:100
  • 自定义经验曲线,用于长期成长
  • 基于实体的经验奖励,带有等级缩放
  • 自动检测未知实体以进行平衡

成长奖励:

  • 每个职业的被动属性缩放
  • 技能解锁与专精
  • 提升战斗效率,而非原始力量

技能

  • 技能通过成长自然解锁
  • 无随机抽取或基于战利品的属性膨胀
  • 技能影响:
    • 伤害行为
    • 耐力消耗
    • 格挡效率
    • 恢复与移动
  • 技能旨在改变您的战斗方式,而不仅仅是提升伤害数值。

命令

  • /rpg — 打开主 RPG 菜单
  • /rpg perks — 打开技能菜单
  • /rpg status — 打开角色属性
  • /rpg level set <数值>
  • /rpg level add <数值>

(修改其他玩家需要管理员权限。)

专业命令

玩家:

/rpg professions
/rpg professions toggle <专业ID>
/rpg reset professions

管理员:

/rpg professionlevel set <专业ID> <等级> [玩家名] [--resetxp]
/rpg professionlevel add <专业ID> <数量> [玩家名] [--resetxp]
/rpg reset professions --player <玩家名>
/rpg reset professions <玩家名>

配置与数据文件

在服务器启动时,AscendRPG 会生成可编辑的配置文件:

  • classes.csv — 职业基础属性与每级缩放
  • perks.csv — 技能定义(缺失时自动从内置默认值生成)
  • entities.csv — 玩家击杀每个 NPC/实体的经验奖励
  • entities_missing.csv — 在运行时自动生成的未知实体 ID
  • ui_settings.json — 全局 HUD/UI 偏移量及默认值
  • players/*.json — 每个玩家的 RPG 存档数据(职业、等级、技能、专业、语言、UI 偏移量)

语言文件

  • language/<代码>.csv — 本地化覆盖(例如 en-us.csv, cs-cz.csv, de-de.csv 等)
  • 任何新的 language/*.csv 文件都会被自动发现为可选语言。
  • 回退链:所选语言键 -> en-us 键 -> 硬编码的备用文本。

专业文件

所有专业配置存储在:

  • professions/profession_blocks.csv
  • professions/profession_blocks_bridge.csv
  • professions/profession_items.csv
  • professions/profession_items_bridge.csv
  • professions/profession_entities.csv
  • professions/profession_entities_bridge.csv
  • professions/profession_block_drops.csv
  • professions/profession_craft_rules.csv
  • professions/profession_craft_upgrades.csv
  • professions/profession_craft_bonus.csv
  • professions/profession_item_xp_tiers.csv

基础 CSV 与桥接 CSV

请遵循此规则:

  • 基础文件(profession_*.csv):原版/默认映射。
  • 桥接文件(*_bridge.csv):整合包/服务器特定的覆盖和添加项。

桥接文件在基础文件之后加载,因此是添加自定义模组 ID(NoCube、自定义资产等)的正确位置。

ID 匹配(用于专业来源表)

sourceId 支持:

  • 精确 ID:Food_Kebab
  • exact:<ID>
  • prefix:<文本>
  • contains:<文本>

模式行可以包含可选的 priority(数值越高优先级越高)。

示例(profession_items_bridge.csv):

sourceId,professionId,xp,priority
prefix:nocube_food,cooking,10,420
exact:Food_Fishing_Raw,cooking,12,450
contains:fish,fishing,8,300

任务 — 任务大师设置

任务大师是一个用于打开任务面板的全局 NPC。

权限

  • 仅在尚未存在任务大师时,非管理员才能使用 spawn 命令。
  • moverespawnremovelist 命令需要管理员权限(ascendrpg.admin)。
  • 一旦任务大师已存在,替换/移动它只能由管理员操作。

快速生成(首次设置)

  1. 加入世界并站在您想要放置任务大师的精确位置。
  2. 执行:/rpg questnpc spawn

这将保存 NPC 的位置/世界并立即生成它。

管理命令

  • /rpg questnpc list — 显示已保存的任务 NPC 位置
  • /rpg questnpc move — 将现有的任务大师移动到您当前的位置(管理员)
  • /rpg questnpc respawn — 从已保存的位置强制重新生成(管理员)
  • /rpg questnpc remove — 移除已保存及运行时的任务大师(管理员)

备注

  • 仅使用一个默认的全局任务大师(main 位置)。
  • 位置在重启/世界重载后持久保存。
  • 如果更改后缺失,请执行:/rpg questnpc respawn

待办想法(社区反馈)

无。