0
0
0

DoL x 凡人修仙传 · 大型模组 · 完整设计文档

文章摘要

凡人修仙传 × DoL 大型模组 · 完整设计文档

版本:v0.2-draft · 2026-10-15
状态:设计阶段
前置依赖:说书人模组draft9.9.5.8+ 秋风白桦模组5.4.2+


目录

  1. 项目概述
  2. 说书人联动 · 入口与引路系统
  3. 世界观设定
  4. 修炼体系
  5. 战斗系统
  6. 炼制系统
  7. NPC 与关系系统
  8. 势力与宗门
  9. 剧情大纲
  10. 成人内容融合设计
  11. 美术与音频素材规划
  12. UI 与交互设计
  13. 技术实现方案
  14. 开发路线图

1. 项目概述

1.1 模组定位

以忘语所著小说《凡人修仙传》为蓝本,在 DoL(Degrees of Lewdity)框架上构建一个大型修仙世界模组。玩家扮演一名原创角色,降生在凡人修仙传的世界中,从一介凡人逐步修炼,经历越国、乱星海、大晋、灵界等经典场景,与韩立、南宫婉等原著角色互动,最终踏上修仙之巅。

1.2 核心设计原则

  • 完全开放世界:没有线性剧情推进,没有章节锁。玩家进入修仙世界后想去哪就去哪,想干嘛就干嘛。区域按境界设难度门槛,但不锁剧情。
  • 原创角色:玩家不是韩立,而是这个世界里的一个独立个体。韩立、南宫婉等原著人物作为 NPC 出现,有自己的行为轨迹——他们不会等玩家,世界自己在转。
  • 完整修炼体系:炼气→筑基→结丹→元婴→化神→炼虚→合体→大乘→渡劫,每个境界有完整的突破机制和能力提升。修炼是玩家自驱的选择,不是任务奖励。
  • 保留 DoL 风格:成人内容不回避,用修仙世界的设定(双修、炉鼎、道侣、媚术等)自然融合。
  • 纯追加取向:不修改 DoL 原有代码,所有功能通过模组的 JS/CSS/Passage 追加实现。
  • 世界是活的:NPC 有自己的日程和目的,势力之间会自行冲突演变,事件按世界时间线发生。玩家是这个世界的一个参与者,不是主角光环持有者。

1.3 与 DoL 原版的融合策略

DoL 的核心是一个现代都市背景的生存模拟,我们的策略是:

DoL 原有概念修仙传模组映射实现方式
金钱(money)灵石变量重映射,UI 改名
属性(stats)修炼属性新增修炼相关变量组
服装/装备法袍/法宝扩展装备槽位
地点(zones)修仙世界区域新增 zone 注册
战斗修仙战斗扩展战斗系统
NPC 关系道侣/师徒/仇敌扩展关系系统
工作修炼/炼丹/任务新增活动系统
学校宗门场景替换
时间系统修仙纪年保留原系统,UI 层改名

1.4 与说书人模组的联动

本模组与说书人模组(fable mod)深度联动。说书人不仅是引路人,更是连接两个世界的桥梁。详见第2章。

1.5 制作标准

这是一个大型精品模组,制作标准如下:

  • 剧情完整:小说中出现的所有重要场景、事件、人物都要复刻,不偷工减料
  • 素材丰富:AI 生成配套图片(场景、人物、物品、UI 素材)和音频(背景音乐、环境音、音效)
  • 沉浸感优先:每一个区域都应该有独特的视觉风格和氛围
  • 系统深度:修炼、战斗、炼制、社交等系统要有足够的深度和可玩性
  • 完美主义:宁可慢不可糙,每个系统都要打磨到满意

2. 说书人联动 · 入口与引路系统

2.1 设计理念

说书人模组的老宅(多瑙河街)是连接 DoL 原版世界与凡人修仙传世界的枢纽。说书人本人作为引路人,负责引导玩家进入修仙世界,并在初期担任导师角色,讲解模组玩法。

核心设定:说书人来自东方,他不仅讲故事——他本身就是通往那个故事的门。

2.2 入口设计:老宅中的仙门

2.2.1 触发条件

入口不是从一开始就开放的。需要满足以下条件:

触发前置:
  1. 玩家已获得说书人老宅地契(V['fable:deed'] === 1)
  2. 说书人常客度 ≥ 80(自己人级别)
  3. 二十折《未卜书》已全部读完(V['fable:serialDone'] === 1)
  4. 连中七卦里程碑已达成(V['fable:gift7'] === 1)

2.2.2 入口呈现

当条件满足后,老宅的「神奇的门」会发生永久变化:

原来:23 格通往 DoL 世界各地(三页 8/8/6)
变化后:最后一页新增一格「一扇从未见过的门」

门上描述:
  "这扇门你从未注意过——或许它一直不在那里。
   门框上刻着细密的符文,隐约泛着青光。
   门缝间透出一缕不属于这个世界的灵气。"

门图标:自定义"仙门"图标(AI 生成)

2.2.3 入门过渡场景

点击仙门后进入一段专属过渡剧情(约 500 字):

第一幕:
  说书人的声音从身后传来——
  "客人,您终于看到了这扇门。"
  他站在堂屋门口,青布长衫在无风中轻轻飘动。
  "我讲了二十折书给您听,每一折都是这个世界的真实。
   现在,您准备好亲自走进去了吗?"

第二幕(选择):
  [我已经准备好了] → 进入修仙世界
  [我还需要准备] → 返回老宅(可以之后再来)

第三幕(确认后):
  说书人从怀中取出一枚温润的玉佩,递到你手上。
  "拿着这个。到了那边,它会护住你的神魂。"
  "记住——你在那个世界里的一切,都会真实地影响这里。
   修为、法宝、甚至……道侣。"
  他微微一笑,"毕竟,故事里的人,总觉得自己是醒着的。"

  你推开门。
  青光吞没了一切。

  → 进入「仙缘·开局」序列

2.3 说书人 · 引路人角色

2.3.1 在修仙世界中的存在

说书人不会直接出现在修仙世界中,但他以另一种形式陪伴:

「说书人的声音」系统:

  • 在修仙世界的关键节点,说书人的声音会以"旁白"形式出现
  • 为玩家讲解新系统、新功能
  • 偶尔给出 hints(但不剧透)
  • 语气保持说书人的人设:东方、神秘、略带调侃
示例(首次进入修炼界面时):
  "修炼这件事,说难也难,说简单也简单。
   您看到那个进度条了?每天打坐,它就往前走一点。
   走到头了,就该冲关了。冲得过去海阔天空,冲不过去……
   嗯,那就再说吧。"

2.3.2 导师功能(初期引导)

说书人在游戏前 3 天(游戏内时间)担任导师:

引导节点触发时机内容
灵根觉醒进入修仙世界后讲解灵根系统、修炼基础
第一次打坐解锁修炼面板时讲解修炼进度、丹药辅助
第一次战斗遭遇第一个敌人时讲解法术、灵力、战斗操作
进入宗门到达黄枫谷时讲解宗门系统、任务、贡献
第一次炼丹解锁炼丹系统时讲解炼制流程
遇到第一个NPC韩立/厉飞雨出场时讲解关系系统

2.3.3 回归老宅

玩家在修仙世界中可以随时通过特殊方式回到老宅:

  • 玉佩回归:使用说书人给的玉佩(有冷却时间),直接回到老宅
  • 梦中归:在修仙世界睡觉时,有概率梦回老宅(可以在信箱里留消息)
  • 说书人的收音机:如果在老宅收音机里听过折子,修仙世界中可以"听到"说书人的声音(纯文字提示)

2.4 两个世界的关联

2.4.1 资源互通(双向·效果不变)

玩家在修仙世界获得的一切——装备、技能、物品、灵石——都可以带回 DoL 主世界,效果不变。反过来,DoL 世界的某些东西也能带进修仙世界。

修仙 → DoL(带回主世界):

修仙世界物品DoL 主世界效果携带方式
灵石直接兑换为 £(汇率 1灵石 = £0.5)回归时自动结算,或老宅信箱手动兑换
丹药对应 DoL 能量/属性增益存入储物袋→老宅信箱取出使用
法袍/灵衣进入 DoL 衣柜,属性映射为服装老宅衣柜互通
法器/法宝映射为 DoL 武器/饰品,保留攻击加成装备栏互通
法术在 DoL 世界也可使用(消耗灵力)法术栏跨世界保留
灵材部分对应 DoL 古董/材料储物袋→信箱
灵兽以特殊形态跟随(可召唤)灵兽栏跨世界保留
功法修为境界/灵力/功法等级完全保留自动保留,随时可回修仙世界继续

DoL → 修仙(带入修仙世界):

DoL 世界物品修仙世界效果携带方式
£ 英镑兑换为灵石(汇率同上)进入仙门时自动兑换一定额度
服装映射为凡级法袍(无灵力加成)衣柜互通
武器映射为凡器(凡人级武器)装备栏互通
DoL 属性部分映射(魅力→NPC初始好感,体能→体质基础)自动映射

互通实现:

// 跨世界物品桥接
FanrenBridge = {
  // 灵石 ↔ 英镑 汇率
  STONE_TO_POUND: 0.5,

  // 进入修仙世界时:DoL → 修仙
  onEnterCultivation: function() {
    // 自动兑换 £100 → 200灵石(首次进入奖励)
    // 服装同步:DoL衣柜 → 修仙储物袋
    // 属性映射:魅力/体能 → 修仙初始加成
  },

  // 回到DoL世界时:修仙 → DoL
  onReturnToDoL: function() {
    // 灵石 → £ 自动结算(可选比例)
    // 丹药/灵材 → 老宅信箱
    // 法袍 → DoL衣柜
    // 法术/境界/灵力 → 完全保留(不做转换)
  },

  // 物品映射表
  ITEM_MAP: {
    // 修仙物品 → DoL 等价物
    "spirit-robe-01":  { dolSlot: "upper", dolName: "青色法袍", defense: 5 },
    "qingfeng-sword":  { dolSlot: "mainHand", dolName: "青锋剑", attack: 8 },
    "juling-pill":     { dolEffect: "energy", value: 20, name: "聚灵丹" },
    // ...
  },
};

核心原则:效果不变。 一把攻击+8的青锋剑,在修仙世界攻击+8,带回DoL主世界依然攻击+8。一个火球术,在修仙世界能放,回DoL也能放。玩家的成长是跨世界累积的。

2.4.2 成就联动

  • 在修仙世界达成某些成就 → 老宅信箱里会出现说书人的贺信 + 特殊奖励
  • 在 DoL 世界达成某些条件 → 修仙世界获得对应增益(如高魅力 → 修仙世界初始魅力加成)

2.5 技术实现要点

// 仙门入口注入(追加到 fable-home.twee 的 fhome_door 段)
// 在神奇的门的最后一页末尾追加一格

// 条件判定(twee)
<<if V['fable:deed'] and V['fable:audience'] >= 80 and V['fable:serialDone'] and V['fable:gift7']>>
  <<dooricon "open">>[[一扇从未见过的门|fanren_portal_enter]]
<</if>>

// 过渡段 :: fanren_portal_enter
// 包含说书人的送别台词 + 选择 + 进入修仙世界
// 说书人引导系统(fanren-guide.js)
FanrenGuide = {
  // 引导节点注册表
  nodes: {
    spiritualRoot: { shown: false, trigger: "firstEnter" },
    cultivation: { shown: false, trigger: "unlockCultivation" },
    combat: { shown: false, trigger: "firstCombat" },
    sect: { shown: false, trigger: "enterSect" },
    alchemy: { shown: false, trigger: "unlockAlchemy" },
    npc: { shown: false, trigger: "meetFirstNPC" },
  },
  
  // 显示引导文本
  showGuide: function(nodeId) {
    var node = this.nodes[nodeId];
    if (!node || node.shown) return;
    node.shown = true;
    V['fable:guideSeen'] = V['fable:guideSeen'] || {};
    V['fable:guideSeen'][nodeId] = true;
    return GUIDE_TEXTS[nodeId];
  },
};

3. 世界观设定

3.1 世界地理总览

凡人修仙传的世界分为三大层级:人界 → 灵界 → 仙界。模组的主要舞台在人界,灵界作为后期内容,仙界作为终极目标(可作为结局线)。

3.1.1 人界地图

┌─────────────────────────────────────────────────────────┐
│                      人 界                              │
│                                                         │
│  ┌─────────────┐    ┌─────────────┐    ┌────────────┐  │
│  │  天南地区    │    │  乱星海      │    │  大晋帝国  │  │
│  │             │───→│             │───→│            │  │
│  │ ·越国       │    │ ·外星海      │    │ ·大晋皇城  │  │
│  │ ·元武国     │    │ ·内星海      │    │ ·阴罗宗    │  │
│  │ ·紫金国     │    │ ·妙音门      │    │ ·太真门    │  │
│  │ ·姜国       │    │ ·星宫       │    │            │  │
│  │             │    │             │    │            │  │
│  │ 黄枫谷 ←起点│    │             │    │            │  │
│  └─────────────┘    └─────────────┘    └────────────┘  │
│         │                                      │        │
│         ▼                                      ▼        │
│  ┌─────────────┐                      ┌────────────┐   │
│  │  幕兰草原    │                      │  极西之地   │   │
│  │             │                      │            │   │
│  │ ·幕兰族     │                      │ ·大雷音寺  │   │
│  │ ·游牧部落   │                      │ ·各种蛮荒  │   │
│  └─────────────┘                      └────────────┘   │
│                                                         │
│  ┌─────────────────────────────────────────────────┐    │
│  │  其他区域                                        │    │
│  │  ·乱魔海 ·海底秘境 ·各处上古遗迹 ·各中小国家     │    │
│  └─────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────┘

3.1.2 区域详细设计

天南地区(起始区域,炼气~筑基阶段)

子区域对应 DoL Zone内容概述解锁条件
越国·青牛镇fanren-town起始村庄,凡人生活,初始事件默认解锁
越国·京城fanren-capital凡人城市,有集市、官府、低阶修士出没炼气期
黄枫谷·山门fanren-sect-gate宗门入口,拜师入门通过灵根测试
黄枫谷·外门fanren-sect-outer外门弟子生活区,任务大厅,修炼室入门后
黄枫谷·内门fanren-sect-inner内门弟子区域,高级修炼资源筑基后
黄枫谷·药园fanren-sect-garden灵药种植,采药任务入门后
黄枫谷·禁地fanren-sect-forbidden宗门秘境,血色禁地副本特定剧情触发
元武国fanren-yuanwu邻国,有灵兽山等势力筑基后
紫金国fanren-zijin紫金国势力范围筑基后

乱星海(中期区域,结丹~元婴阶段)

子区域对应 DoL Zone内容概述解锁条件
外星海fanren-outer-sea荒凉海域,妖兽出没,采集灵材结丹后
内星海fanren-inner-sea繁华海域,各势力交汇结丹后
妙音门fanren-miaoyin女修宗门,可加入或互动元婴前
星宫fanren-star-palace乱星海霸主势力元婴后
虚天殿fanren-xutian上古遗迹副本,高风险高回报结丹后期

大晋帝国(后期区域,元婴~化神阶段)

子区域对应 DoL Zone内容概述解锁条件
大晋皇城fanren-dajin-city凡人帝国都城,暗中修士势力元婴后
阴罗宗fanren-yinluo魔道大宗,可走正/邪路线化神前
太真门fanren-taizhen正道大宗化神前
昆吾山fanren-kunwu上古秘境,化神期副本化神期

灵界(终局区域,炼虚~渡劫阶段)

子区域对应 DoL Zone内容概述解锁条件
灵界·初入fanren-spirit-realm初入灵界,适应高灵气环境化神突破后
灵界·人族领地fanren-spirit-human灵界人族势力炼虚后
灵界·妖族领地fanren-spirit-beast妖族地盘,危险但资源丰富合体后
灵界·各超级势力fanren-spirit-powers灵界顶级势力大乘期
仙界之门fanren-ascension渡劫飞升,终极结局渡劫成功

3.2 灵气与环境系统

每个区域有灵气浓度属性,影响修炼速度:

灵气等级:
  稀薄(凡人城镇)   → 修炼速度 ×0.3
  普通(一般野外)   → 修炼速度 ×0.7
  浓郁(宗门/灵山)  → 修炼速度 ×1.0
  极浓(灵脉/秘境)  → 修炼速度 ×1.5
  仙灵之气(上古遗迹)→ 修炼速度 ×2.0+

环境还会影响:

  • 灵气恢复速度:战斗中灵力回复
  • 妖兽出现概率:灵气越浓,妖兽越强但灵材越好
  • 隐藏事件触发:某些秘境只在特定灵气条件下出现

4. 修炼体系

4.1 灵根系统

灵根是修炼的基础,决定修炼速度和属性亲和。

灵根类型

灵根修炼速度稀有度说明
五行灵根(伪灵根)×0.3常见金木水火土全有,修炼极慢,但后期可转多属性功法
四灵根×0.5较常见缺一种属性
三灵根×0.8少见可入中等宗门
双灵根×1.2稀有天赋不错,各宗门争抢
单灵根(天灵根)×2.0极稀有修炼天才,必定被大宗门收入
变异灵根特殊极稀有冰灵根、暗灵根、风灵根、雷灵根等

灵根与 DoL 属性的映射

// 灵根数据结构
V.fanren = {
  spiritualRoot: {
    type: "dual",          // "five"|"four"|"triple"|"dual"|"single"|"mutant"
    elements: ["metal", "wood"],  // 具体属性
    aptitude: 75,          // 0-100,同类型内的个体差异
  },
  // 灵根决定了修炼速度基础值
  // aptitude 影响突破成功率和领悟功法的速度
};

灵根获取

  • 开局随机:玩家创建角色时随机分配(可用某种方式重随)
  • 特殊事件:某些剧情可以改变灵根(如吞噬灵果、特殊体质觉醒)
  • 原著联动:如果玩家与韩立关系密切,可能触发与掌天瓶相关的灵根改造事件

4.2 境界系统

境界总表

境界层级寿命上限对应 DoL 阶段核心能力
凡人—70-80年游戏开始无特殊能力
炼气1-13层100-120年教程/初期基础法术、灵觉、御器
筑基初/中/后期200-250年第一幕飞行、护体灵光、中阶法术
结丹初/中/后期400-500年第二幕丹火、领域雏形、法宝威能大增
元婴初/中/后期800-1000年第三幕元婴出窍、瞬移、大威力法术
化神初/中/后期1500-2000年第四幕神游太虚、空间之力
炼虚初/中/后期3000年+灵界篇虚空行走、法则领悟
合体初/中/后期5000年+灵界篇后期合体变身、法则运用
大乘初/中/后期10000年+终局接近仙人之力
渡劫—不定结局线渡天劫飞升仙界

修炼进度机制

每个境界分初期/中期/后期(炼气是1-13层),修炼进度以百分比追踪:

V.fanren.cultivation = {
  realm: "foundation",     // 当前境界
  stage: "early",          // 初期/中期/后期
  progress: 0,             // 0-100,当前阶段修炼进度
  totalProgress: 0,        // 累计修炼量(用于某些条件判断)
  breakthroughAttempts: 0, // 突破尝试次数
  realmHistory: [],        // 境界历史记录
};

每日修炼进度增长公式:

日增长 = 基础速率 × 灵根倍率 × 灵气浓度 × 功法加成 × 丹药加成 × 心境修正

基础速率:由境界决定,越高越慢
  炼气:0.5/天
  筑基:0.3/天
  结丹:0.15/天
  元婴:0.08/天
  化神+:0.04/天

灵根倍率:见灵根表
灵气浓度:见灵气等级表
功法加成:1.0-3.0,取决于功法品级
丹药加成:1.0-2.0,取决于丹药品质
心境修正:0.5-1.5,受 DoL 压力/创伤系统影响

突破机制

当修炼进度达到 100% 时,可以尝试突破到下一个境界:

突破成功率 = 基础成功率 × 灵根修正 × 丹药修正 × 心境修正 × 外在条件

基础成功率:
  炼气→筑基:60%
  筑基→结丹:40%
  结丹→元婴:25%
  元婴→化神:15%
  化神→炼虚:10%(需要特殊条件)
  更高境界:逐步递减

灵根修正:天灵根 ×1.5,双灵根 ×1.2,伪灵根 ×0.6
丹药修正:有对应突破丹 ×1.3-2.0
心境修正:无创伤 ×1.2,重度创伤 ×0.5
外在条件:在灵脉上突破 ×1.3,有护法 ×1.1

突破失败的后果:

  • 轻度:修为倒退 10-20%,无永久伤害
  • 中度:修为倒退 30%,暂时降低灵根资质
  • 重度(连续失败3次+):走火入魔,触发特殊事件线(可关联 DoL 的创伤/压力系统)
  • 极重度:境界跌落一个大层(极罕见,作为极端事件)

4.3 功法系统

功法品级

品级说明获取途径
凡级凡人武学,不涉及灵气城镇武馆、自学
灵级下品入门修炼功法小宗门、坊市购买
灵级中品正经修炼功法中等宗门、拍卖行
灵级上品高级功法,有独特效果大宗门核心传承、秘境
玄级顶级功法,可修炼至化神超级势力传承、上古遗迹
天级传说功法,可修炼至大乘+极罕见,几乎只有主角级NPC拥有

功法与 DoL 系统的融合

功法影响:

  • 修炼速度:品级越高,修炼越快
  • 战斗能力:功法决定可用的法术/战技
  • 属性加成:某些功法增加特定属性(力量、敏捷、魅力等)
  • 特殊效果:如隐匿气息、加速恢复、增强双修效果等
V.fanren.techniques = {
  main: {                // 主修功法(只能一本)
    id: "qingyuan_01",
    name: "清元剑诀",
    grade: "spirit-upper",
    level: 5,            // 修炼层数
    maxLevel: 12,
    effects: {
      cultivationSpeed: 1.5,
      combatPower: 1.3,
      element: "metal",
    },
  },
  auxiliary: [],         // 辅修功法(可多本)
  secret: [],            // 秘术(一次性或特殊条件触发)
};

功法获取途径

  1. 宗门传承:加入宗门后,按贡献/地位解锁
  2. 坊市购买:低阶功法可在坊市用灵石购买
  3. 秘境探索:上古遗迹中可能发现失传功法
  4. NPC 传授:与特定 NPC 建立关系后传授
  5. 战斗缴获:击败敌人后可能获得其功法(概率低)
  6. 任务奖励:完成特定任务线奖励

4.4 法术系统

法术是战斗和日常的核心工具,分为:

类别示例用途
攻击法术火球术、冰锥术、剑气战斗伤害
防御法术护体灵光、灵盾减伤/格挡
辅助法术轻身术、隐身术、灵觉探索/逃跑
生活法术点火术、清洁术、储物术日常便利
禁术燃魂术、血祭强力但代价大

法术与 DoL 战斗系统的映射将在第4节详述。

4.5 法宝与装备

装备槽位扩展

DoL 原有装备槽位 + 修仙扩展:

槽位DoL 原有修仙扩展
头部有发冠/头饰(+灵觉)
上身有法袍/铠甲
下身有法裙/法裤
脚部有灵靴(+速度/飞行)
主手有法器/法宝
副手有盾牌/副法器
新增:丹田—本命法宝
新增:灵兽栏—契约灵兽(1-3只)
新增:储物袋—背包扩展
新增:符箓栏—预设符箓(快捷使用)

法宝品级

品级对应境界说明
凡器凡人普通武器,不含灵气
法器炼气-筑基注入灵力可使用特殊效果
法宝结丹-元婴有器灵雏形,可自主攻防
灵宝化神+器灵成熟,有独立意识
仙器仙人级传说级,几乎不存在于人界

4.6 灵兽系统

灵兽是修仙者的战斗伙伴和辅助。

灵兽获取

  1. 野外捕获:击败野生妖兽后有概率契约
  2. 卵/幼崽:在秘境中发现,培养成长型
  3. NPC 赠送/交易
  4. 特殊事件

灵兽成长

灵兽也有等级系统,与主人修为相关:

  • 灵兽等级不能超过主人境界+1
  • 灵兽可以通过吞噬妖兽内丹成长
  • 某些灵兽可以进化(需要特殊材料)
V.fanren.spiritBeasts = [
  {
    id: "beast_001",
    name: "啼魂兽",
    species: "啼魂",
    level: 3,
    loyalty: 80,        // 忠诚度
    growth: 0.6,        // 成长度
    skills: ["soul_attack", "fear_aura"],
    evolution: null,     // 进化条件
  },
];

5. 战斗系统

5.1 战斗框架

在 DoL 原有回合制战斗基础上扩展:

原版 DoL 战斗:
  攻击 / 防御 / 逃跑 / (物品)

修仙传扩展:
  物理攻击(保留原版)
  法术攻击(新增)
  法宝攻击(新增)
  灵兽攻击(新增)
  防御/护体灵光(扩展原版)
  符箓使用(新增)
  逃跑/遁术(扩展)
  投降/求饶(保留,增加修仙世界特有后果)

5.2 灵力系统

新增灵力池(MP),与 DoL 的体力/健康并行:

V.fanren.combat = {
  spiritualPower: 100,     // 灵力(MP),上限由境界决定
  spiritualPowerMax: 100,
  hp: V.tiredness,         // 复用 DoL 体力系统
  hpMax: V.fitness,        // 复用 DoL 体质
  
  // 战斗状态
  activeBuffs: [],         // 当前增益法术
  activeDebuffs: [],       // 当前减益
  formationActive: null,   // 激活的阵法
};

灵力上限随境界增长:

境界灵力基础每层/阶增长
炼气1层50+10/层
筑基180+30/阶
结丹300+60/阶
元婴500+100/阶
化神800+150/阶
炼虚+1200+200/阶

5.3 战斗流程

战斗开始
  ↓
判断先手(灵觉/速度属性)
  ↓
┌─── 玩家回合 ───┐
│ 选择行动:       │
│ ·物理攻击        │
│ ·施放法术(消耗灵力)│
│ ·使用法宝        │
│ ·灵兽攻击        │
│ ·使用符箓        │
│ ·防御            │
│ ·使用物品(丹药等)│
│ ·逃跑            │
└────────┘
  ↓
┌─── 敌人回合 ───┐
│ AI 决策:        │
│ ·物理攻击        │
│ ·法术攻击        │
│ ·特殊技能        │
│ ·防御            │
│ ·逃跑(部分敌人) │
└────────┘
  ↓
判断胜负 → 继续/结束

5.4 敌人设计

敌人类型

类型示例特点
凡人武者土匪、士兵、武林高手无灵力,靠物理攻击
低阶修士散修、外门弟子少量法术,灵力有限
高阶修士宗门长老、魔修强力法术+法宝
妖兽各等级妖兽物理+天赋神通
鬼修/尸妖鬼物、僵尸特殊弱点(雷/火)
邪修魔道修士血祭、诅咒、炉鼎术

敌人与境界对应

战斗系统根据玩家境界动态生成敌人:

// 敌人等级缩放
function generateEnemy(zone, playerRealm) {
  const realmIndex = REALM_ORDER.indexOf(playerRealm);
  const enemyLevel = clamp(realmIndex + random(-1, 1), 0, MAX_REALM);
  // 敌人可能比玩家低1级到高1级
  
  // 某些区域有固定强敌(BOSS)
  if (zone.bosses && random() < 0.05) {
    return pick(zone.bosses);
  }
  
  return generateGenericEnemy(enemyLevel, zone.enemyPool);
}

5.5 战斗奖励

奖励类型说明
灵石基础货币
灵材炼丹/炼器材料
功法残页收集齐可合成完整功法
内丹妖兽精华,灵兽升级用
经验(修炼进度)战斗经验转化为修炼感悟
装备/法宝缴获敌人装备

6. 炼制系统

6.1 炼丹

炼丹是凡人修仙传中最核心的副职业。

炼丹流程

1. 获取丹方(配方)
2. 收集灵材
3. 在丹炉中炼制
4. 判定成功率(受炼丹等级、灵材品质、丹炉品质影响)
5. 获得丹药(品质有波动)

丹药分类

类别示例效果
筑基丹筑基丹突破筑基的必备丹药
修炼加速聚灵丹、凝元丹临时提升修炼速度
疗伤金创药、回春丹恢复HP/灵力
突破辅助各类突破丹提升突破成功率
特殊驻颜丹、易容丹改变外貌(关联 DoL 魅力系统)
毒药各类毒丹战斗用/剧情用

炼丹与 DoL 系统的融合

  • 炼丹需要「炼丹术」技能等级 → 映射到 DoL 的 skills 系统
  • 灵材采集 → 映射到 DoL 的采集/探索系统
  • 丹药效果 → 临时 buff,叠加到 DoL 的属性修正上
  • 炼丹失败 → 可能炸炉(造成伤害,关联 DoL 的受伤系统)

6.2 炼器

炼器是制作法宝的副职业。

炼器流程

1. 获取器方(图纸)
2. 收集灵材(矿石、妖兽材料等)
3. 在炼器炉中熔炼
4. 锻造成型
5. 刻录阵法
6. 判定品质

6.3 阵法

阵法是防御和探索的关键。

阵法类型用途
防御阵法保护洞府,自动攻击入侵者
困阵困住敌人,战斗辅助
幻阵迷惑敌人,隐匿洞府
传送阵区域间快速移动
聚灵阵提升洞府灵气浓度

6.4 符箓

符箓是一次性消耗品,可以预先制作,战斗中快速使用。

符箓类型效果
攻击符释放一道法术攻击
防御符临时护盾
遁术符逃跑用
特殊符隐匿、追踪、通讯等

7. NPC 与关系系统

7.1 原著 NPC 列表

女性 NPC(可发展感情线/道侣线)

NPC身份初始位置境界性格/特点关系线
南宫婉掩月宗天才天南结丹→化神外冷内热,重情义主道侣线
紫灵妙音门弟子乱星海筑基→元婴聪慧灵动感情线
元瑶乱星海散修乱星海炼气→元婴温柔坚韧感情线
慕沛灵黄枫谷弟子黄枫谷炼气→筑基活泼开朗同门线
陈巧倩黄枫谷弟子黄枫谷炼气→筑基温婉善良同门线
董萱儿黄枫谷师姐黄枫谷筑基→结丹高傲但正义师姐线
梅凝大晋大晋结丹神秘冷艳后期线

男性 NPC

NPC身份与玩家关系说明
韩立主角(原著)同期修士重要剧情NPC,可结为好友或对手
厉飞雨黄枫谷弟子好友忠义之友,早期同伴
大衍神君天南强者亦师亦友传授大衍决
向之礼化神强者前辈后期重要NPC
王蝉魔道弟子对手早期反派
鬼灵门主鬼灵门敌人中期BOSS

NPC 行为系统

原著 NPC 有自己的行为轨迹,不完全围绕玩家运转:

// NPC 自主行为示例
V.fanren.npcAI = {
  hanLi: {
    currentLocation: "outer-sea",
    cultivationGoal: "nascent-soul",
    relationshipWithPlayer: "neutral",
    // 韩立会自己修炼、探索、做任务
    // 玩家可以在某些地点偶遇他
    // 关系好时会分享情报/资源
    // 关系差时可能在某些场景冲突
  },
};

7.2 关系系统

关系维度

V.fanren.relationships = {
  "npc_hanli": {
    friendship: 50,      // 友情 0-100
    trust: 30,           // 信任 0-100
    romance: 0,          // 感情 0-100(仅部分NPC可发展)
    respect: 40,         // 敬重 0-100
    hostility: 0,        // 敌意 0-100
    // 综合关系等级由以上维度计算
  },
};

关系等级

等级条件解锁内容
陌生人默认基础对话
认识多次互动交易、基础任务
朋友友情>60赠送物品、分享情报
密友友情>80, 信任>70传授功法、联手战斗
道侣romance>90, 特定条件双修、联合技能
仇敌hostility>80追杀事件、对决

7.3 道侣系统

道侣是修仙世界的伴侣关系,比 DoL 原版的恋爱系统更深。

道侣机制

  • 结为道侣:需要双方同意 + 特定仪式 + 一定修为
  • 双修:道侣之间可以双修,双方都获得修炼加速
  • 道侣技能:结为道侣后解锁联合战斗技能
  • 道侣互动:日常互动影响关系值
  • 多道侣:可以同时拥有多个道侣(修仙世界设定允许),但会影响各道侣关系

双修系统设计

双修作为修炼途径之一:

双修效果 = 基础修炼量 × 双方功法契合度 × 关系亲密度 × 环境灵气

功法契合度:
  互补属性(如阴阳互补):×2.0
  同属性:×1.5
  相克属性:×0.8(但可以提升亲密度)

8. 势力与宗门

8.1 正道宗门

宗门位置实力特点加入条件
黄枫谷越国中等药草见长,玩家起始宗门灵根测试通过
掩月宗天南上等女修宗门,南宫婉所在女性/特殊条件
灵兽山元武国中等灵兽驯养对灵兽有亲和力
太真门大晋超级正道第一大宗高灵根要求
化意门天南中等意念修炼特殊体质

8.2 魔道宗门

宗门位置实力特点加入条件
鬼灵门天南中等驱鬼御尸不限(魔道不挑)
阴罗宗大晋超级魔道第一大宗需放弃正道身份
合欢宗各处中等双修/媚术魅力要求高

8.3 其他势力

势力位置说明
星宫乱星海乱星海霸主
妙音门乱星海女修门派
幕兰族幕兰草原游牧修炼民族
大晋皇室大晋凡人帝国,暗中与修士合作

8.4 宗门系统机制

宗门贡献与地位

V.fanren.sect = {
  id: "yellow-maple",
  rank: "outer-disciple",  // 外门弟子/内门弟子/核心弟子/长老/掌门
  contribution: 0,         // 贡献点
  reputation: 50,          // 宗门声望 0-100
  tasks: [],               // 可接任务
  unlockedAreas: ["outer"], // 已解锁区域
  unlockedTechniques: [],   // 已解锁功法
};

宗门地位晋升

地位条件权限
记名弟子入门测试基础功法、外门区域
外门弟子炼气6层+任务系统、坊市交易
内门弟子筑基+,宗门贡献达标高级功法、内门区域
核心弟子结丹+,特殊贡献长老指导、秘境进入
长老元婴+,重大贡献收徒、参与宗门决策
掌门化神+,极高威望宗门管理

宗门任务

宗门任务是获取贡献点和资源的主要途径:

任务类型示例奖励
采集任务采集特定灵草贡献+灵石
猎杀任务消灭特定妖兽贡献+灵材
护送任务护送宗门人员贡献+关系
探索任务探索未知区域贡献+发现
宗门大比弟子间比武大量贡献+特殊奖励

9. 开放世界设计 · 「活着的世界」引擎

9.1 核心理念:沙盒,不是RPG

没有主线、没有章节锁、没有"下一步该去哪"的指引。

玩家进入修仙世界后,就是一个活在这个世界里的人。想去黄枫谷拜师就去,想去坊市淘宝就去,想在深山老林里独自修炼也行,想去乱星海闯荡也可以——只要修为够,哪里都去得。

世界不按"卷"推进,而是按世界时钟运转。所有事件、NPC行为、势力变化都挂在世界时钟上,自行发生。玩家是参与者,不是被选中的人。

「活着的世界」三层含义:

  1. 玩家不在时世界照转——回到 DoL 世界后,修仙世界每天自行推进。NPC 修炼、赶路、打架、结盟、陨落,势力扩张或衰落,事件按时间线发生。几天后玩家再回来,世界已经变了。
  2. 玩家的行为留下痕迹——杀了人,对方的师门会来寻仇;救了人,对方可能日后报恩;在某地大闹一场,该地NPC会记住你。世界记得你做过什么。
  3. NPC 不是玩家的附属——韩立不会等玩家到炼气6层才出发。他有自己的人生,走自己的路。玩家赶得上就同行,赶不上就错过。错过就是错过。

9.2 世界时钟系统

世界时钟是「活世界」的心脏。一个从玩家首次进入修仙世界起算的天数计数器,驱动一切。

V.fanren.world = {
  // 时钟
  day: 0,                    // 世界天数(从玩家首次进入起算)
  lastSimDay: 0,             // 上次模拟推进到的天数
  playerPresent: false,      // 玩家当前是否在修仙世界
  enteredDay: 0,             // 玩家首次进入的天数(=0)
  
  // 跨世界同步
  lastDepartDay: 0,          // 玩家上次离开修仙世界的天数
  returnGap: 0,              // 本次回归时计算出的离开天数差
};

时钟推进规则:

场景时钟行为说明
玩家在修仙世界每次 :passagedisplay 检查是否跨天,跨则 +1玩家亲历的每天
玩家在 DoL 世界DoL 的 dayPassed 触发时 +1 并跑模拟玩家不在的每天
玩家回归修仙世界先算 gap = 当前DoL日 - lastDepartDay,逐天补模拟补完再让玩家落地

关键:时钟不依赖现实时间(不用 Date.now()),完全由游戏内事件驱动。玩家不操作就不推进,避免后台计算。

9.3 世界状态持久化

所有世界状态存在 V.fanren 下,随 DoL 自动存档落盘。

V.fanren.worldState = {
  // NPC 状态快照(每个重要NPC一份)
  npcs: {
    hanLi: {
      alive: true,
      realm: "qi",           // 当前境界 id
      stage: 6,              // 炼气6层
      location: "yellow-maple-outer",  // 当前位置 id
      hp: 100,               // 当前生命比例
      status: "cultivating", // 状态:cultivating/traveling/fighting/idle/dead
      timelineIdx: 3,        // 时间线执行到第几条
      relationship: 0,       // 与玩家的关系值 -100~100
      lastSeenByPlayer: -1,  // 上次与玩家同地点的天数(-1=从未)
      known: false,          // 玩家是否知道此人存在
      metadata: {},           // NPC 特有字段
    },
    // ... 更多 NPC
  },
  
  // 势力状态
  factions: {
    "yellow-maple": {
      power: 100,             // 综合实力(动态变化)
      territory: ["yellow-maple-mountain"],  // 控制区域
      alliances: ["spirit-beast-mountain"],   // 盟友
      enemies: ["ghost-gate"],                // 敌对
      leader: "yueyan",       // 掌门 NPC id
      eventHistory: [],       // 该势力经历的大事
    },
    // ... 更多势力
  },
  
  // 区域状态
  zones: {
    "blood-forbidden": {
      open: false,            // 血色禁地是否开启
      nextOpenDay: 100,       // 下次开启天数
      explored: false,        // 是否已被探索
      secrets: [],            // 已发现的秘密
    },
    // ...
  },
  
  // 世界事件日志(永久记录)
  eventLog: [
    // { day, type, actor, action, detail, playerInvolved }
  ],
  
  // 玩家造成的世界改变(永久记录)
  playerImpact: {
    kills: [],        // 玩家杀死的NPC/势力成员
    saves: [],        // 玩家救过的NPC
    gifts: [],        // 玩家赠送过的重大物品
    battles: [],      // 玩家参与的重大战斗
    discoveries: [],  // 玩家的发现(秘境、宝物等)
    reputation: {},   // 在各势力中的声望变化
    karma: 0,         // 因果值(善行/恶行累计)
  },
};

9.4 事件调度引擎

所有世界事件挂在时间线上,由调度器按天推进。

// 事件定义格式
{
  id: "blood-forbidden-open-1",
  type: "scheduled",        // scheduled/conditional/npc/faction/random/chain
  day: 100,                 // scheduled 类型专用
  condition: function(),    // conditional 类型专用
  actor: null,              // npc/faction 类型专用
  priority: 1,              // 同天多事件时的执行顺序
  once: true,               // 是否只触发一次
  execute: function(day, worldState) { ... },
}

六类事件

类型触发方式示例
定时事件到特定天数必然发生血色禁地每100天开启一次
条件事件世界状态满足条件时触发任意NPC结丹→天降异象
NPC事件NPC时间线推进到该条韩立第50天离开黄枫谷
势力事件势力关系演变到临界点正魔两道实力差>50→爆发大战
随机事件每天按概率 roll坊市遇到神秘老者(5%/天)
连锁事件由其他事件/玩家行为触发玩家杀某人→其师门追杀

调度器核心循环

function simulateDay(day) {
  // 1. 推进所有NPC时间线
  for (var npcId in V.fanren.worldState.npcs) {
    advanceNPC(npcId, day);
  }
  
  // 2. 执行当天定时事件
  var scheduled = EVENT_TABLE.filter(function(e) {
    return e.type === "scheduled" && e.day === day;
  });
  scheduled.forEach(function(e) { e.execute(day, V.fanren.worldState); });
  
  // 3. 检查条件事件
  CONDITIONAL_EVENTS.forEach(function(e) {
    if (e.condition(day, V.fanren.worldState)) {
      e.execute(day, V.fanren.worldState);
    }
  });
  
  // 4. 势力演化
  advanceFactions(day);
  
  // 5. 随机事件(按区域 roll)
  generateRandomEvents(day);
  
  // 6. 记录日志
  logDaySummary(day);
}

9.5 NPC 自主行为引擎

每个重要NPC有独立的时间线和行为逻辑。NPC不围绕玩家转——他们有自己的目标、路线、成长。

NPC 时间线结构

NPC_TIMELINES = {
  hanLi: {
    // 韩立的完整人生轨迹(基于小说)
    // 每条 = { day, action, location, duration, condition?, effect? }
    entries: [
      { day: 0,   action: "cultivate",   location: "yellow-maple-outer", duration: 30,
        note: "在黄枫谷外门修炼" },
      { day: 30,  action: "mission",     location: "yellow-maple", duration: 10,
        note: "执行宗门任务" },
      { day: 50,  action: "travel",      destination: "inner-sea", duration: 30,
        note: "离开黄枫谷前往乱星海" },
      { day: 100, action: "explore",     location: "outer-sea", duration: 50,
        note: "在外星海历险" },
      { day: 150, action: "breakthrough",realm: "core", location: "outer-sea",
        note: "在乱星海结丹" },
      // ... 数百条,覆盖韩立整条小说线
    ],
    
    // 韩立的性格参数(影响对玩家行为的反应)
    personality: {
      caution: 0.9,        // 谨慎度(极高)
      greed: 0.3,          // 贪心度(低)
      loyalty: 0.7,        // 忠诚度(高)
      curiosity: 0.5,      // 好奇心(中)
      trustBaseline: 20,   // 初始信任值
    },
    
    // 对玩家反应规则
    reactionRules: [
      // 例:如果玩家偷了韩立的东西
      { condition: "playerStoleFrom", threshold: 1,
        effect: "relationship -50, mark as enemy" },
      // 例:如果玩家救过韩立
      { condition: "playerSaved", threshold: 1,
        effect: "relationship +30, may gift item" },
      // 例:如果在同一地点且关系>50
      { condition: "sameLocation && relationship > 50",
        effect: "trigger encounter event" },
    ],
  },
  
  nanGongWan: {
    entries: [
      // 南宫婉自己的轨迹
      // ...
    ],
    personality: { /* ... */ },
    reactionRules: [ /* ... */ ],
  },
  
  // ... 更多 NPC
};

NPC 每日推进逻辑

function advanceNPC(npcId, day) {
  var state = V.fanren.worldState.npcs[npcId];
  var timeline = NPC_TIMELINES[npcId];
  if (!state || !timeline || !state.alive) return;
  
  var entry = timeline.entries[state.timelineIdx];
  if (!entry) return; // 时间线已走完
  
  // 检查是否到了执行时间
  if (day >= entry.day) {
    // 执行该条
    executeNPCEntity(npcId, entry, day);
    
    // 推进到下一条
    state.timelineIdx++;
    
    // 执行效果(修炼突破、位置变更等)
    applyNPCEffect(npcId, entry, day);
  }
  
  // NPC 日常修炼(即使在等待期间也在修炼)
  if (state.status === "cultivating" || state.status === "idle") {
    npcDailyCultivation(npcId);
  }
}

NPC 与玩家的交互判定

当玩家在修仙世界某地点时,检查该地点有哪些NPC:

function checkNPCCEncounters(locationId) {
  var encounters = [];
  for (var npcId in V.fanren.worldState.npcs) {
    var state = V.fanren.worldState.npcs[npcId];
    if (state.location === locationId && state.alive) {
      // 根据关系值和NPC性格决定是否出现
      var chance = calculateEncounterChance(npcId, state);
      if (Math.random() < chance) {
        encounters.push(npcId);
      }
    }
  }
  return encounters;
}

9.6 势力演化引擎

势力不是静态背景板——它们会扩张、衰落、结盟、开战。

V.fanren.worldState.factions["yellow-maple"] = {
  power: 100,              // 综合实力值(动态)
  powerHistory: [],         // 每天的实力快照(用于趋势计算)
  territory: [],            // 控制区域列表
  alliances: [],            // 盟友势力 id
  enemies: [],              // 敌对势力 id
  leader: "yueyan",         // 掌门
  elderCount: 5,            // 长老数量
  discipleCount: 200,       // 弟子数量
  morale: 70,               // 士气 0-100
  treasury: 10000,          // 灵石储备
  eventHistory: [],         // 经历的大事
};

势力每日演化

function advanceFactions(day) {
  for (var fid in V.fanren.worldState.factions) {
    var f = V.fanren.worldState.factions[fid];
    
    // 1. 实力自然变化(弟子修炼/陨落影响)
    f.power += calculateFactionGrowth(fid);
    
    // 2. 检查势力关系临界
    checkFactionRelations(fid, day);
    
    // 3. 资源消耗(维持弟子/阵法等)
    f.treasury -= f.discipleCount * 0.5;
    if (f.treasury < 0) f.morale -= 5; // 穷→士气降
    
    // 4. 记录历史
    f.powerHistory.push({ day: day, power: f.power });
  }
}

势力冲突判定

function checkFactionRelations(fid, day) {
  var f = V.fanren.worldState.factions[fid];
  
  // 检查所有敌对势力
  f.enemies.forEach(function(eid) {
    var enemy = V.fanren.worldState.factions[eid];
    if (!enemy) return;
    
    // 实力差距 + 随机因素 → 战争概率
    var powerDiff = Math.abs(f.power - enemy.power);
    var aggression = calculateAggression(fid, eid);
    var warChance = aggression * (1 - powerDiff / 200) * 0.01; // 每天1%基础
    
    if (Math.random() < warChance) {
      // 爆发冲突!
      triggerFactionWar(fid, eid, day);
    }
  });
}

9.7 跨世界同步机制(核心)

这是「活着的世界」最关键的技术实现:玩家往返两个世界时,修仙世界如何追赶时间。

同步流程

玩家在修仙世界(第50天)
  → 通过仙门回到 DoL 世界
  → lastDepartDay = 50
  → playerPresent = false

玩家在 DoL 世界过了 20 天(DoL dayPassed 触发 20 次)
  → 每次 dayPassed 调用 simulateDay(world.day)
  → world.day: 51, 52, 53, ... 70
  → NPC 推进、事件发生、势力变化,全部在后台跑

玩家再次通过仙门回到修仙世界
  → returnGap = world.day - lastDepartDay = 70 - 50 = 20
  → 生成「离开期间大事记」
  → 玩家落地时看到新闻摘要

挂接 DoL 日结算

// 在 fanren-world.js 中
jQuery(document).on(":dayPassed", function() {
  if (!V.fanren || !V.fanren.world) return;
  
  if (!V.fanren.world.playerPresent && V.fanren.world.entered) {
    // 玩家不在修仙世界但已开启 → 推进一天
    var world = V.fanren.world;
    simulateDay(world.day + 1);
    world.day++;
    world.lastSimDay = world.day;
  }
});

回归时的「追赶报告」

玩家回到修仙世界时,生成一份离开期间的大事摘要:

【离开的这20天里……】

· 第53天:黄枫谷一名内门弟子突破筑基,宗门上下庆贺
· 第58天:商业街坊市传来消息,有散修在幕兰草原发现上古遗迹入口
· 第62天:越国京城发生修士斗法,半条街被毁,凡人死伤数十
· 第65天:韩立已抵达乱星海内星海, reportedly 正在寻找洞府
· 第68天:鬼灵门与灵兽山在边境发生小规模冲突
· 第70天:血色禁地将在30天后再次开启

(详细记录可在「世界大事记」中查看)

9.8 世界新闻系统

新闻是玩家感知「世界在转」的主要窗口。

新闻生成规则

function generateNews(fromDay, toDay) {
  var news = [];
  
  // 从事件日志中提取 fromDay~toDay 的事件
  var logs = V.fanren.worldState.eventLog.filter(function(e) {
    return e.day >= fromDay && e.day <= toDay;
  });
  
  // 按重要性排序,取前 N 条
  logs.sort(function(a, b) { return b.importance - a.importance; });
  
  // 转化为新闻文本
  logs.slice(0, 8).forEach(function(e) {
    news.push(formatNewsLine(e));
  });
  
  return news;
}

function formatNewsLine(event) {
  // 根据事件类型生成不同风格的新闻
  var templates = {
    "npc-breakthrough": [
      "第{day}天:{name}成功突破至{realm},天降异象,方圆百里灵气震荡",
      "传闻{location}一带有天降瑞兆,疑似有人突破{realm}",
    ],
    "npc-death": [
      "第{day}天:{name}在{location}陨落,死因不明",
      "{name}的遗体在{location}被发现,修仙界震动",
    ],
    "faction-war": [
      "{factionA}与{factionB}在{location}爆发冲突,双方死伤惨重",
      "第{day}天:{factionA}与{factionB}正式宣战,天南局势骤然紧张",
    ],
    "random-event": [
      "有修士在{location}发现异常灵光,疑似秘境出世",
      "{location}附近的凡人报告看到御剑飞行之人",
    ],
  };
  // ...
}

新闻显示位置

位置内容刷新时机
回归时弹窗离开期间大事摘要玩家从 DoL 返回修仙世界时
坊市公告栏近期修仙界传闻每次进入坊市区域
侧栏小字今日一条快讯每天刷新
客栈/茶馆更详细的传闻进入该区域时

9.9 玩家影响追踪

玩家在修仙世界的每一个重大行为都被记录,影响世界走向。

V.fanren.worldState.playerImpact = {
  // 杀业
  kills: [
    { day: 15, name: "张三", faction: "ghost-gate", realm: "qi-8",
      consequence: "ghost-gate reputation -10, 鬼灵门弟子见到玩家会敌对" },
  ],
  
  // 善行
  saves: [
    { day: 22, name: "李四", method: "从妖兽口中救下",
      consequence: "李四 relationship +40, 李四的师门对玩家好感+10" },
  ],
  
  // 馈赠
  gifts: [
    { day: 30, to: "王五", item: "聚灵丹×3",
      consequence: "王五 relationship +20" },
  ],
  
  // 重大战斗
  battles: [
    { day: 40, location: "yellow-maple-outer", 
      result: "击败外门大比第一名",
      consequence: "yellow-maple reputation +20, 内门长老注意到玩家" },
  ],
  
  // 发现
  discoveries: [
    { day: 35, type: "secret-realm", location: "forest-deep",
      consequence: "记录在地图,可再次进入" },
  ],
  
  // 各势力声望
  reputation: {
    "yellow-maple": 65,    // 0-100,默认50
    "ghost-gate": 30,      // 被杀业拉低
    "spirit-beast": 55,
  },
  
  // 因果值
  karma: -5,  // 正=善,负=恶。影响突破成功率、NPC初始态度、天劫难度
};

影响如何反馈到世界

玩家行为世界反馈实现方式
杀某势力弟子该势力弟子见到玩家会回避或攻击NPC encounter 检查 playerImpact.reputation
救某NPC该NPC日后可能报恩(赠礼/帮忙/提供信息)NPC reactionRules 检查 saves 列表
在某地大闹该地NPC对玩家警惕度上升zone 的 alertLevel 字段影响随机事件
大量善行正道声望高,突破时有人护法karma 影响 breakthrough 成功率
大量恶行被正道通缉,魔道接纳karma 影响 faction 反应和天劫难度
偷窃/欺骗被发现的NPC永远降低信任relationship 永久降低,不可恢复

9.10 区域开放策略

所有区域从一开始就在地图上可见,但进入有修为门槛:

区域最低境界实际危险说明
青牛镇凡人无起始点
黄枫谷·山门凡人无任何人都能去
黄枫谷·外门炼气低弟子区域
黄枫谷·内门筑基低内门弟子/访客
越国京城凡人低凡人城市
血色禁地炼气6层+高随时可进,但里面很危险
乱星海·内星海筑基中需要渡海(有旅途事件)
乱星海·外星海结丹高妖兽横行
虚天殿结丹后期极高上古遗迹
大晋皇城元婴中超级势力地盘
灵界化神+极高需要飞升通道

关键设计:低修为玩家可以去高危险区域——只是会被秒杀。不锁路,但后果自负。如果玩家非要炼气1层就去虚天殿,那是他的选择。

9.11 玩家自由选择的人生道路

没有"主线任务",但世界提供无数可能性:

修炼路线(自选):

  • 加入宗门 → 享受资源但有义务
  • 散修 → 自由但一切靠自己
  • 入魔道 → 快速但代价大
  • 炼丹师 → 靠卖丹药发财
  • 炼器师 → 打造法宝
  • 驯兽师 → 养灵兽战斗
  • 双修者 → 找道侣共同修炼
  • 任何组合都可以

社交路线(自选):

  • 广交好友 → 消息灵通,遇事有人帮
  • 独来独往 → 清净,但孤立无援
  • 当好人 → 正道声望高
  • 当坏人 → 魔道势力接纳你,但正道追杀
  • 当商人 → 低买高卖,灵石为王
  • 当恶霸 → 抢夺他人资源

探索路线(自选):

  • 到处跑 → 发现秘境、奇遇
  • 蹲在一个地方 → 深耕该区域的资源和人脉
  • 追NPC → 观察韩立等人的轨迹,蹭机缘
  • 挖宝 → 找上古遗迹

9.12 与原著 NPC 的交互设计

韩立作为最重要的 NPC,有自己的完整人生轨迹。玩家可以在任何阶段与他相遇、结交、对抗、或完全擦肩而过。

交互原则:

  • NPC 不围绕玩家转。他们有自己的目标、路线、成长。
  • 关系是双向的。你对他好,他记住;你惹他,他也记住。
  • 没有"必触发"的剧情。一切取决于玩家的选择和行动。
  • 错过就是错过。韩立走了就是走了,你不会在下一个路口等到他。

韩立时间线示例(完整时间线有数百条):

第  0 天:韩立在黄枫谷外门修炼(玩家可能在宗门遇到他)
第 30 天:执行宗门任务(可能在任务中偶遇)
第 50 天:离开黄枫谷,前往乱星海(不管玩家在不在)
第100 天:在外星海历险
第150 天:在乱星海结丹(世界新闻传来消息)
第200 天:返回内星海,建立洞府
第300 天:元婴突破
第500 天:飞升灵界

如果玩家第60天才到乱星海 → 韩立已经走了,只留下传说
如果玩家第40天就和韩立成为好友 → 韩立走前会留信/赠礼
如果玩家从未见过韩立 → 韩立依然是这个世界的传说,但和玩家无关

9.13 NPC 生死系统

NPC 不是不朽的剧情道具——他们会死。死了就永远消失,本存档内不再出现。

三种死因

死因说明谁受影响
寿元耗尽每个境界有对应的寿元上限,超龄后每天概率老死非剧情保护NPC
玩家击杀战斗中杀死,永久消失所有NPC(含剧情保护)
NPC互杀世界模拟中NPC之间的冲突致死非剧情保护NPC

境界寿元对照

境界寿元上限说明
凡人80 岁普通人的极限
炼气120 岁初窥仙道
筑基250 岁延年益寿
结丹500 岁金丹驻颜
元婴1000 岁千年老怪
化神2000 岁两千年
炼虚3000 岁三千年
合体5000 岁五千年
大乘10000 岁万年
渡劫无限超脱寿元限制

剧情保护机制

主要NPC(韩立、南宫婉等)有 plotArmor: true 标记:

  • 不会被随机事件杀死——NPC互杀不会选中他们
  • 不会老死——寿元检查跳过他们
  • 只会在时间线指定节点死亡——如果时间线里没有"死亡"条目,他们就永远不会死
  • 唯一例外:玩家亲手击杀——如果玩家实力足够强,可以打破命运。这是设计上的选择:玩家有能力就可以改变剧情走向

死亡后的世界反馈

NPC死亡后:
  · 事件日志记录死因、地点、凶手
  · 世界新闻播报(重要NPC死亡是大新闻)
  · 凶手NPC可能被受害者同门追杀
  · 玩家杀NPC → 因果值下降、相关势力声望降低
  · 该NPC从所有遭遇池中移除——再也遇不到
  · 该NPC的时间线永久停止

设计意图

  • 生命有重量:杀一个NPC是不可逆的决定,玩家会慎重
  • 世界有代价:你杀的人可能有师门、有好友,他们会来寻仇
  • 命运可改写:剧情保护不是铁板一块——足够强的玩家可以打破宿命
  • 时间有痕迹:NPC会老死,说明时间在流逝,世界在变化

9.13·乙 玩家死亡规则

玩家在修仙世界死亡(战斗失败/被NPC击杀/突破走火入魔等)后,神魂被说书人玉佩救回主世界(DoL)。

可再次进入修仙世界,代价是失去身上所有物品。

保留 vs 失去

保留(不丢)失去(全部清零)
境界/修为(进度回退10%)灵石(全部)
功法(已学功法不变)丹药(全部)
法术(已学法术不变)灵材(全部)
本命法宝(灵魂绑定,不丢)普通装备(头/身/脚/主手/副手)
副职业等级储物袋内容
NPC关系灵兽(契约断裂)
世界状态/剧情标记灵力(清零)

设计意图

  • 修为是刻在灵魂里的——境界/功法/法术不会因死亡消失,这是修炼者的根基
  • 本命法宝与命相连——唯一保留的装备,体现"本命"二字的份量
  • 身外之物皆可丢——灵石/丹药/灵材/普通装备都是外物,死了自然保不住
  • 10%修为回退——不是清零但有惩罚,走火入魔不是没代价
  • 灵兽契约断裂——生死之际顾不上灵兽,它们会跑掉(但不会死,下次可以重新找)
  • 可以反复进入——死亡不是game over,只是代价大。鼓励玩家再战

实现

// 玩家死亡时调用
FanrenWorld.onPlayerDeath("战斗中陨落");
// → 清空物品/装备/灵兽/灵力
// → 修为回退10%
// → 保留境界/功法/法术/本命法宝
// → 自动回归DoL主世界
// → 记录死亡历史(可查)

9.14 世界模拟引擎技术架构

fanren-world.js 模块结构:

FanrenWorld(顶层命名空间)
├── init()                     # 初始化,挂事件钩子
├── clock                      # 时钟管理
│   ├── tick()                 # 推进一天
│   ├── getPlayerGap()         # 计算离开天数差
│   └── isPlayerPresent()      # 玩家是否在场
├── simulate                   # 模拟引擎
│   ├── simulateDay(day)       # 模拟一天
│   ├── advanceNPCs(day)       # 推进所有NPC
│   ├── checkEvents(day)       # 检查/执行事件
│   ├── advanceFactions(day)   # 势力演化
│   └── generateRandom(day)    # 随机事件
├── npc                        # NPC 管理
│   ├── advance(id, day)       # 推进单个NPC
│   ├── checkEncounters(loc)   # 检查地点NPC遭遇
│   └── react(id, event)       # NPC对事件反应
├── death                      # NPC 生死系统
│   ├── killNPC(id, cause, killer, day)  # 永久杀死NPC
│   ├── isNPCAlive(id)         # 查询存活状态
│   ├── getDeadNPCs()          # 获取已死亡列表
│   ├── getLifespan(realm)     # 查询境界寿元
│   ├── checkLifespanDeaths(day)  # 每日寿元检查
│   └── npcVsNPCCombat(day)    # NPC互杀判定
├── faction                    # 势力管理
│   ├── evolve(id, day)        # 势力演化
│   └── checkConflicts(day)    # 势力冲突检查
├── news                       # 新闻系统
│   ├── generate(from, to)     # 生成新闻
│   ├── format(event)          # 格式化新闻文本
│   └── getUnread()            # 获取未读新闻
├── impact                     # 玩家影响追踪
│   ├── record(type, data)     # 记录玩家行为
│   ├── getReputation(fid)     # 查询势力声望
│   └── getKarma()             # 查询因果值
├── sync                       # 跨世界同步
│   ├── onDepart()             # 玩家离开修仙世界
│   ├── onReturn()             # 玩家回归修仙世界
│   └── generateReport(gap)    # 生成追赶报告
└── data                       # 数据访问
    ├── getWorldState()        # 获取世界状态
    ├── getNPCState(id)        # 获取NPC状态
    └── getFactionState(id)    # 获取势力状态

性能考量:

  • 模拟引擎只在跨天时跑一次,不在每帧跑
  • 离开多天回归时,批量模拟(最多一次跑365天,超过则截断)
  • NPC 数量控制在 30-50 个有完整时间线的具名NPC
  • 事件日志保留最近 500 条,更早的归档压缩

10. 成人内容融合设计

10.1 融合原则

  • 用修仙传的世界观自然包装成人内容
  • 道侣/双修是正当的修炼途径
  • 炉鼎/媚术是邪修的手段
  • 保持 DoL 的开放性和自由度

10.2 成人内容系统

双修系统

双修是修仙世界的正统修炼方式:

  • 道侣双修:与道侣进行,双方获益,增进感情
  • 功法双修:特定功法需要双修才能修炼
  • 交易双修:为获取资源而进行(可关联利益关系)

双修场景的描写风格与 DoL 一致,但包装在修仙设定中(灵气交融、阴阳调和等)。

炉鼎系统(邪修路线)

走魔道/邪修路线时可以触及:

  • 炉鼎:被邪修捕获作为修炼工具
  • 这是 DoL 原有非自愿内容的修仙包装
  • 被击败后可能被邪修炼为炉鼎
  • 也可以反过来将他人炼为炉鼎(走邪道时)
  • 炉鼎状态有逃脱/被救的剧情线

媚术/魅惑

  • 合欢宗等魔道宗门使用媚术
  • 魅惑类法术可以影响NPC
  • 对应 DoL 的诱惑/诱惑相关系统
  • 高魅力角色可以学习媚术作为战斗/社交工具

道侣后宫

  • 修仙世界允许多道侣
  • 可以建立自己的"后宫"
  • 道侣之间有互动事件(和谐/嫉妒)
  • 管理道侣关系是 gameplay 的一部分

10.3 成人内容与修炼的关系

行为修炼影响说明
道侣双修正面,加速修炼正当途径
被炼为炉鼎负面,修为流失邪修手段
采补(邪术)短期正面,长期负面损人利己,有因果报应
媚术修炼提升魅力,可能影响心境合欢宗特色
守身/禁欲某些功法需要如童子功之类

11. 美术与音频素材规划

11.1 总体策略

本模组追求沉浸式体验,所有核心场景、角色、物品都配有 AI 生成的图片和音频素材。素材风格统一为「东方仙侠水墨+光影」基调。

11.2 图片素材清单

11.2.1 场景图(每个主要区域一张全景图)

场景描述尺寸优先级
青牛镇宁静凡人小镇,远山如黛,炊烟袅袅1792×1024P0
黄枫谷·山门两座山峰夹道,灵气氤氲,石阶蜿蜒而上1792×1024P0
黄枫谷·外门简朴的弟子居所,远处有修炼场1792×1024P0
黄枫谷·内门精致的内门建筑,灵气更浓1792×1024P1
黄枫谷·药园灵草遍地,各色灵光闪烁1792×1024P1
血色禁地血红天空,扭曲大地,诡异光芒1792×1024P2
越国京城繁华古城,修士与凡人混居1792×1024P1
乱星海·内星海碧波万顷,仙岛点点,灵舟穿梭1792×1024P2
乱星海·外星海荒凉海域,暗礁密布,妖兽出没1792×1024P2
虚天殿上古遗迹,宏伟废墟,神秘阵法1792×1024P3
大晋皇城帝国都城,气象万千1792×1024P3
灵界超越凡尘的仙境,灵气化为实质1792×1024P4

11.2.2 角色图(重要NPC立绘)

角色描述尺寸优先级
韩立青年修士,面容坚毅,眼神沉稳1024×1536P0
南宫婉绝美女修,气质清冷,白衣胜雪1024×1536P1
厉飞雨忠厚青年,豪爽笑容1024×1536P1
紫灵灵动少女,妙音门弟子1024×1536P2
元瑶温柔坚韧的散修1024×1536P2
大衍神君仙风道骨的老者1024×1536P2
说书人(修仙版)青布长衫,手持折扇,神秘微笑1024×1536P0

11.2.3 物品/法术效果图

素材描述尺寸优先级
灵石晶莹剔透的灵石,散发柔和光芒256×256P0
各类丹药聚灵丹/筑基丹/回春丹等128×128P1
法宝图标各类法器/法宝128×128P1
法术特效火球/冰锥/剑气/护盾等256×256P1
灵根图示五行灵根可视化512×512P0
境界突破特效突破时的光影效果1024×1024P2

11.2.4 UI 素材

素材描述尺寸
修炼面板背景古色古香的卷轴/玉简风格800×600
战斗界面边框仙侠风格的边框装饰自适应
地图底图修仙世界地图(羊皮纸风格)1792×1024
侧栏修仙面板与 DoL 侧栏融合的修仙信息面板300×400
仙门入口图标泛着青光的符文门64×64

11.3 音频素材清单

11.3.1 背景音乐(BGM)

场景风格时长优先级
青牛镇/凡人场景田园牧笛,古筝轻弹3-5min循环P0
黄枫谷/宗门日常清幽仙乐,流水鸟鸣3-5min循环P0
修炼/打坐空灵冥想,低频嗡鸣5min循环P0
战斗(低阶)紧张鼓点,剑鸣声2-3min循环P1
战斗(高阶)宏大交响,雷鸣电闪2-3min循环P2
坊市/集市热闹市井,人声鼎沸3min循环P1
乱星海海浪涛声,远处仙乐3-5min循环P2
秘境/遗迹诡异空灵,不安氛围3min循环P2
灵界超越凡尘的宏大音乐5min循环P4
说书人场景东方古韵,三弦/琵琶2min循环P0

11.3.2 环境音效

音效触发场景
灵气流动声高灵气区域持续播放
鸟鸣/虫鸣山林/药园场景
海浪声乱星海区域
风声高空/山顶场景
集市喧闹坊市/城市
雷声/雨声配合天气系统

11.3.3 交互音效

音效触发时机
突破成功境界突破成功时
突破失败突破失败/走火入魔时
法术释放每次施放法术
法宝出鞘装备/使用法宝
炼丹成功炼制出丹药
炼丹爆炸炼丹失败/炸炉
灵石获得获得灵石时
升级提示功法/法术升级

11.4 素材技术方案

// 音频播放(使用 maplebirch 的 Howler 集成)
FanrenAudio = {
  bgm: null,
  
  playBGM: function(trackId) {
    if (this.bgm) this.bgm.stop();
    this.bgm = new Howl({
      src: ['fanren-audio/bgm/' + trackId + '.ogg'],
      loop: true,
      volume: 0.5,
    });
    this.bgm.play();
  },
  
  playSFX: function(sfxId) {
    new Howl({
      src: ['fanren-audio/sfx/' + sfxId + '.ogg'],
      volume: 0.7,
    }).play();
  },
  
  // 按区域自动切换 BGM
  onZoneChange: function(zoneId) {
    var bgmMap = {
      'fanren-town': 'pastoral',
      'fanren-sect-outer': 'sect-calm',
      'fanren-sect-garden': 'sect-calm',
      'fanren-combat': 'battle-low',
      // ...
    };
    if (bgmMap[zoneId]) this.playBGM(bgmMap[zoneId]);
  },
};

// 图片显示(场景图作为 passage 背景)
FanrenScene = {
  showScene: function(imageId) {
    var container = document.getElementById('fanren-scene-bg');
    if (!container) {
      container = document.createElement('div');
      container.id = 'fanren-scene-bg';
      container.style.cssText = 'position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;opacity:0.3;background-size:cover;background-position:center;transition:opacity 1s;';
      document.getElementById('passage-content').appendChild(container);
    }
    container.style.backgroundImage = 'url(fanren-images/scenes/' + imageId + '.png)';
    container.style.opacity = '0.3';
  },
};

11.5 素材生成计划

阶段素材范围预计数量
Phase 1(v0.1)青牛镇场景+灵石图标+修炼BGM+说书人BGM~10件
Phase 2(v0.2)黄枫谷全套场景+宗门BGM+基础法术图标~20件
Phase 3(v0.3)战斗特效+低阶NPC立绘+战斗BGM~30件
Phase 4(v0.4)血色禁地场景+韩立立绘+秘境BGM~20件
Phase 5+后续区域/角色/音效持续扩展

12. UI 与交互设计

12.1 侧栏改造

DoL 的侧栏需要展示修仙信息:

┌──────────────────────┐
│ [角色名]              │
│ 境界:筑基中期        │
│ 灵根:双灵根(金木)   │
│ ─────────────        │
│ 灵力:■■■■■□□□ 65/100 │
│ 体力:■■■□□□□□ 35/100 │
│ 心境:■■■■■■■□ 85     │
│ ─────────────        │
│ 灵石:1,234           │
│ 宗门:黄枫谷·内门弟子  │
│ ─────────────        │
│ [装备栏]              │
│ 法袍:灵级上品 ×      │
│ 法器:青锋剑 ×        │
│ 本命:×               │
│ 灵兽:啼魂兽 ×        │
│ ─────────────        │
│ [功法]                │
│ 主修:清元剑诀 Lv.5   │
│ ─────────────        │
│ 日期:天历3年春       │
└──────────────────────┘

12.2 新增界面

修炼面板

┌──────────────────────────────────┐
│ 修炼                             │
│ ─────────────────────            │
│ 当前境界:筑基中期                │
│ 修炼进度:■■■■■■□□□□ 62%        │
│ 预计突破:约45天                  │
│ ─────────────────────            │
│ [打坐修炼]  [服用丹药]  [查看功法] │
│ [突破尝试] [离开]                 │
└──────────────────────────────────┘

炼丹面板

┌──────────────────────────────────┐
│ 炼丹                             │
│ ─────────────────────            │
│ 丹方列表:                        │
│  · 聚灵丹(灵级下品)✓            │
│  · 筑基丹(灵级中品)✓            │
│  · ???                           │
│ ─────────────────────            │
│ 灵材库存:                        │
│  · 聚灵草 ×12                    │
│  · 凝元花 ×5                     │
│  · ...                           │
│ ─────────────────────            │
│ [选择丹方] [开始炼制]             │
└──────────────────────────────────┘

法术面板

┌──────────────────────────────────┐
│ 法术                             │
│ ─────────────────────            │
│ 攻击法术:                        │
│  · 火球术 Lv.3  灵力:15          │
│  · 剑气术 Lv.5  灵力:20          │
│ ─────────────────────            │
│ 防御法术:                        │
│  · 护体灵光 Lv.4 灵力:10         │
│ ─────────────────────            │
│ 辅助法术:                        │
│  · 轻身术 Lv.2  灵力:8           │
│  · 隐身术 Lv.1  灵力:25          │
│ ─────────────────────            │
│ [装备法术栏位]                    │
└──────────────────────────────────┘

12.3 地图系统

新增修仙世界地图界面:

┌──────────────────────────────────┐
│ 修仙世界地图                      │
│ ─────────────────────            │
│ ┌─────────────────────────┐      │
│ │  [天南]  [乱星海]  [大晋] │      │
│ │    ↓                      │      │
│ │  [幕兰]  [极西]          │      │
│ └─────────────────────────┘      │
│                                  │
│ 当前位置:黄枫谷·内门             │
│ 灵气浓度:浓郁                    │
│                                  │
│ [前往...]                        │
│  · 黄枫谷·山门                    │
│  · 黄枫谷·药园                    │
│  · 黄枫谷·任务大厅                │
│  · 越国·京城                      │
└──────────────────────────────────┘

13. 技术实现方案

13.1 架构总览

fanren-xiuxian.mod.zip
├── mod.json                  # 模组元信息
├── fanren-main.js            # 主逻辑入口
├── fanren-cultivation.js     # 修炼系统
├── fanren-combat.js          # 战斗扩展
├── fanren-crafting.js        # 炼制系统
├── fanren-npc.js             # NPC 系统
├── fanren-sect.js            # 宗门系统
├── fanren-story.js           # 剧情系统
├── fanren-ui.js              # UI 扩展
├── fanren-ui.css             # 样式
├── fanren-data.js            # 数据定义(功法/丹药/NPC等)
├── fanren-zones.js           # Zone 注册
├── fanren-events.js          # 事件注册
└── passages/                 # Twine 段落(剧情文本)
    ├── fanren-intro.html     # 开场
    ├── fanren-sect/          # 宗门相关段落
    ├── fanren-quests/        # 任务段落
    └── ...

13.2 核心技术要点

13.2.1 初始化

// fanren-main.js
// 模组初始化入口

(function() {
  "use strict";

  // 等待 DoL 框架加载完毕
  document.addEventListener(":init", function() {
    // 注册所有子系统
    FanrenCultivation.init();
    FanrenCombat.init();
    FanrenCrafting.init();
    FanrenNPC.init();
    FanrenSect.init();
    FanrenStory.init();
    FanrenUI.init();
    FanrenZones.init();
    FanrenEvents.init();

    // 初始化玩家修仙数据
    if (!V.fanren) {
      V.fanren = FanrenData.createDefaultPlayer();
    }

    console.log("[凡人修仙传] 模组初始化完成");
  });
})();

13.2.2 数据持久化

所有修仙数据通过 V.fanren 对象存储,随 DoL 的存档系统自动保存:

V.fanren = {
  // 基础
  spiritualRoot: { ... },
  cultivation: { ... },
  techniques: { ... },
  
  // 战斗
  combat: { ... },
  spells: [ ... ],
  
  // 物品
  inventory: { ... },     // 灵石、灵材、丹药等
  equipment: { ... },     // 装备
  spiritBeasts: [ ... ],  // 灵兽
  
  // 社交
  sect: { ... },          // 宗门信息
  relationships: { ... }, // NPC 关系
  
  // 剧情
  story: {
    currentVolume: 1,
    completedQuests: [],
    activeQuests: [],
    flags: {},            // 剧情标记
  },
  
  // 副职业
  crafting: {
    alchemy: { level: 0, exp: 0 },
    artifactRefining: { level: 0, exp: 0 },
    formation: { level: 0, exp: 0 },
    talisman: { level: 0, exp: 0 },
  },
};

13.2.3 Zone 注册

使用 DoL 的 zone 系统注册修仙世界区域:

// fanren-zones.js
FanrenZones = {
  init: function() {
    // 注册所有 zone
    this.registerZone("fanren-town", {
      name: "青牛镇",
      description: "一个普通的凡人小镇...",
      spiritualEnergy: "thin",
      connections: ["fanren-capital", "fanren-wilderness"],
      events: ["fanren-town-event-01", "fanren-town-event-02"],
      npcs: ["npc_elder", "npc_merchant"],
      dangerLevel: 0,
    });
    
    this.registerZone("fanren-sect-gate", {
      name: "黄枫谷·山门",
      description: "黄枫谷的入口,两座山峰之间...",
      spiritualEnergy: "rich",
      connections: ["fanren-sect-outer", "fanren-town"],
      events: ["fanren-sect-gate-event-01"],
      npcs: ["npc_gate_guard"],
      dangerLevel: 0,
      requires: { realm: "mortal" }, // 凡人可进入
    });
    
    // ... 更多 zone
  },
};

13.2.4 战斗系统集成

扩展 DoL 的战斗系统而不修改原版代码:

// fanren-combat.js
FanrenCombat = {
  init: function() {
    // 监听战斗开始事件
    document.addEventListener(":combat-start", function() {
      // 注入修仙战斗 UI
      FanrenCombat.injectCombatUI();
    });
    
    // 监听战斗回合
    document.addEventListener(":combat-round", function() {
      // 处理灵力消耗、法术效果等
      FanrenCombat.processRound();
    });
    
    // 监听战斗结束
    document.addEventListener(":combat-end", function() {
      // 处理战利品、经验等
      FanrenCombat.processRewards();
    });
  },
  
  injectCombatUI: function() {
    // 在战斗界面添加法术按钮、灵力条等
    // 使用 AfterLinkZone 或 DOM 注入
  },
};

13.2.5 侧栏扩展

// fanren-ui.js
FanrenUI = {
  init: function() {
    // 在侧栏添加修仙信息
    this.injectSidebar();
    
    // 定时刷新侧栏显示
    setInterval(function() {
      FanrenUI.updateSidebar();
    }, 1000);
  },
  
  injectSidebar: function() {
    // 在侧栏注入修仙状态面板
    // 使用与 clothesicon 类似的方式
    var sidebar = document.querySelector("#sidebar-stats");
    if (sidebar) {
      var panel = document.createElement("div");
      panel.id = "fanren-sidebar-panel";
      panel.innerHTML = this.buildSidebarHTML();
      sidebar.appendChild(panel);
    }
  },
};

13.3 与现有模组的兼容性

已有模组兼容策略
说书人 NPC(fable mod)深度联动:老宅仙门入口、说书人引路系统、资源互通、成就联动。需要 fable draft9.9.5.8+
小小PC(litterPC)共存,litterPC 的换装系统兼容法袍
服装图标(clothesicon)扩展图标支持法袍/法宝

13.4 性能考量

  • 每日修炼计算延迟到玩家主动操作时执行,不做后台实时计算
  • NPC AI 行为在 zone 切换时批量更新
  • 大量数据(功法/丹药/灵材)使用查找表而非循环
  • 战斗系统复用 DoL 原版战斗循环,只在关键节点注入逻辑

13.5 MapleBirch 框架 API 适配(v5.4.2 验证)

经逐项查验 MapleBirch v5.4.2 框架源码(137 个 .d.ts 类型声明),确认以下 API 适配方案:

事件系统

原设计框架实际 API适配方式
jQuery(document).on(":passagedisplay")maplebirch.on(':passagedisplay', cb)已适配,jQuery 作后备
jQuery(document).on(":dayPassed")maplebirch.dynamic.regTimeEvent('onDay', id, opts)已适配,:dayPassed 不存在
:combat-start/round/end不存在改用 CombatAction.reg() 注册战斗按钮 + 段落拦截

战斗系统

框架战斗扩展是动作按钮注册制,非事件流:

// 注册新的战斗动作(法术/法宝/灵兽攻击)
maplebirch.combat.CombatAction.reg({
  id: 'fanren:fireball',
  actionType: 'leftaction',
  cond: function(ctx) { return V.fanren.combat.spiritualPower >= 15; },
  display: function(ctx) { return '火球术(灵力-15)'; },
  value: function(ctx) {
    V.fanren.combat.spiritualPower -= 15;
    return 'fireball';
  },
  color: '#ff4500',
  order: 50
});

无法拦截回合结算流程。Boss 战等需要完全自定义的战斗用 regStateEvent('gate') 跳转到自建 twee 段落。

装备系统

NPCClothesSlot 是固定 15 槽位,不可扩展。修仙专属槽位(丹田/灵兽/储物袋/符箓)存在 V.fanren.equipment 中,用自定义 UI 面板显示。

音频系统

完整 Howler.js 集成:maplebirch.audio(播放列表/环境音)+ maplebirch.howler.Howl(原始音频实例)。

Zone 系统

maplebirch.tool.addTo(zone, widgets) + ZonesManager 完整支持区域注册/导航/段落注入。Location.configure() 支持视觉位置渲染。

NPC 系统

maplebirch.npc.add(npcData) 支持创建自定义 NPC,含日程/服装/变身/怀孕子系统。可用于实装韩立等原著 NPC 的可视化。

启动配置

"addonPlugin": [],
"dependenceInfo": [
  { "modName": "maplebirch", "version": ">=5.0.0" },
  { "modName": "fable", "version": ">=0.1.0-draft9.9.5.8" }
]

addonPlugin 留空(已知坑:params.script 在特定打包场景静默不执行),脚本走 scriptFileList 原生通道。


14. 开发路线图

14.1 当前进度总览

已完成设计/编码:
  ✅ 完整设计文档(14章 + 附录)
  ✅ boot.json 模组骨架
  ✅ fanren-cultivation.js — 修炼体系(境界/灵根/功法/灵力/修炼公式)
  ✅ fanren-world.js — 活世界引擎(世界时钟/NPC时间线/势力演化/事件调度/
                        跨世界同步/新闻系统/玩家影响追踪/NPC生死系统)
  ✅ fanren-portal.js — 仙门入口(说书人联动/条件检测/DOM注入)
  ✅ fanren-guide.js — 说书人引导系统(6节点/自动触发)
  ✅ fanren-ui.js — 侧栏修仙面板
  ✅ fanren-ui.css — 仙侠主题UI(翡翠金纹/水墨气韵/全套组件)
  ✅ fanren-main.js — 主入口(初始化/跨世界检测)

14.2 阶段划分

Phase 0:说书人联动 · 入口(v0.0)—— 大部分已完成

  • boot.json 模组骨架
  • 仙门入口代码(fanren-portal.js)
  • 说书人引导系统代码(fanren-guide.js)
  • 仙侠主题 UI 框架(fanren-ui.css)
  • fanren-passages.twee — 过渡段落(仙门进入/说书人送别/灵根觉醒/第一步)
  • 跨世界桥接 — fanren-bridge.js(灵石↔英镑/装备映射/法术跨世界/属性同步)
  • 素材:仙门图标(AI生成)、说书人送别场景图、过渡BGM
  • 真机验收:装包→满足条件→老宅出现仙门→点击进入→过渡剧情→落地修仙世界

Phase 1:核心框架 · 可玩最小循环(v0.1)

  • 修炼系统实装(灵根觉醒段落、打坐修炼UI、突破尝试UI)
  • 第一个 Zone(青牛镇 + 黄枫谷山门)—— 可移动、可交互
  • 基础战斗扩展(灵力条、法术消耗)
  • 世界时钟实装验证(:dayPassed 驱动、NPC 自动推进、回归报告)
  • NPC 生死系统验证(寿元检查、互杀、玩家击杀→永久消失)
  • 开场剧情完整链路(仙缘→灵根觉醒→说书人第一段引导→自由行动)
  • 素材:青牛镇场景图、灵石图标、修炼/田园BGM、基础音效

Phase 2:宗门系统(v0.2)

  • 黄枫谷完整区域(外门/内门/药园/任务大厅/禁地)
  • 宗门地位系统(记名→外门→内门→核心→长老→掌门)
  • 宗门任务系统(采集/猎杀/护送/探索)
  • 初始 NPC 实装(厉飞雨、慕沛灵、陈巧倩、董萱儿——含时间线/遭遇/对话)
  • 功法系统(获取/装备/修炼/升级)
  • 素材:黄枫谷全套场景、宗门BGM、NPC立绘

Phase 3:战斗与炼制(v0.3)

  • 完整战斗扩展(法术选择/法宝使用/灵兽出战)
  • 炼丹系统(丹方/灵材/炼制UI/成功率/炸炉)
  • 装备/法宝系统(品级/槽位/强化)
  • 敌人设计(低阶修士/妖兽/BOSS)
  • 素材:战斗特效、法术图标、丹药图标、战斗BGM

Phase 4:天南篇完整(v0.4)

  • 天南各国地图(越国京城/元武国/紫金国/幕兰草原)
  • 血色禁地副本(完整探索/战斗/宝物)
  • 韩立 NPC 完整交互(同地点遭遇/对话/关系/交易/战斗)
  • 正魔冲突事件(世界引擎驱动)
  • 筑基突破事件线
  • 素材:各区域场景、韩立立绘、秘境BGM

Phase 5:乱星海篇(v0.5)

  • 乱星海完整地图(内星海/外星海/虚天殿)
  • 星宫/妙音门势力实装
  • 紫灵/元瑶 NPC 线
  • 结丹突破事件
  • 素材:海景场景、虚天殿场景、新NPC立绘

Phase 6:天南回归 + 大晋(v0.6)

  • 元婴期重返天南(世界已变化/旧NPC已成长或陨落)
  • 大晋帝国地图
  • 太真门/阴罗宗超级势力
  • 化神突破

Phase 7-10:灵界 + 飞升

  • Phase 7:灵界篇上(化神→炼虚→合体)
  • Phase 8:灵界篇下(合体→大乘)
  • Phase 9:渡劫 + 飞升结局
  • Phase 10:终局内容(全NPC结局收束/世界最终状态/成就系统)

14.3 优先级排序

P0 · 最高优先级(核心体验·必须先有):
  1. 过渡段落 + 跨世界桥接(Phase 0 剩余)
  2. 修炼系统实装(打坐/突破/进度可视化)
  3. 第一个可玩 Zone(青牛镇 + 黄枫谷山门)
  4. 世界时钟真机验证(:dayPassed 驱动模拟)

P1 · 高优先级(让世界「活」起来):
  5. NPC 时间线实装(至少韩立+3个NPC完整可运行)
  6. NPC 生死系统真机验证(老死/互杀/玩家击杀)
  7. 回归报告(离开期间大事记)
  8. 基础战斗扩展

P2 · 中优先级(深度内容):
  9. 宗门系统
  10. 炼丹/炼器
  11. 灵兽系统
  12. 道侣/双修
  13. 跨世界装备互通实装

P3 · 低优先级(锦上添花):
  14. 完整地图(天南各国/乱星海/大晋/灵界)
  15. 阵法系统
  16. 后期境界内容
  17. 全NPC立绘/全场景图/全BGM

14.4 设计原则(贯穿全程)

原则说明
世界是活的不需要玩家干预也会自动运转。NPC自行修炼/赶路/战斗/死亡。势力自行扩张/冲突/衰落。事件按时间线发生。
效果跨世界不变修仙世界的装备/技能/物品带回DoL主世界效果完全一样。玩家的成长是跨世界累积的。
死亡不可逆NPC死了就是死了,本存档不再出现。玩家杀/老死/互杀三种死因。主要NPC有剧情保护但玩家可破。
完全开放没有线性剧情推进,没有章节锁。想去哪就去哪,想干嘛就干嘛。区域按境界设难度门槛但不锁路。
纯追加不修改 DoL 原有代码。所有功能通过模组 JS/CSS/Passage 追加实现。
完美主义宁可慢不可糙。每个系统都要打磨到满意。素材不齐不发版。

14.5 风险与对策

风险影响对策
DoL 框架限制某些功能可能无法实现先做技术验证,不行就简化
内容量过大开发周期极长分阶段交付,每阶段独立可玩
与 DoL 系统冲突属性/战斗系统不兼容追加不修改,用事件桥接
平衡性修炼速度/战斗难度早期就引入调参机制
跨世界物品平衡修仙装备带回DoL可能破坏平衡品级映射+上限控制(凡器级不带加成)
世界模拟性能离开太久回归时补算太多天单次补算上限365天,超过截断
NPC死亡太早剧情保护NPC被玩家过早杀死plotArmor机制+只有玩家能破保护
原著还原度玩家期望与实现差距抓大放小,核心体验优先

附录 A:凡人修仙传境界对照表

境界层级细分寿命标志能力对应小说进度
凡人—70-80无第一卷前
炼气1-13层100-120灵觉、基础法术第一卷
筑基初/中/后200-250飞行、护体灵光第二卷
结丹初/中/后400-500丹火、领域第三-四卷
元婴初/中/后800-1000元婴出窍、瞬移第四-五卷
化神初/中/后1500-2000神游太虚第六卷
炼虚初/中/后3000+虚空行走第七卷
合体初/中/后5000+合体变身第七卷
大乘初/中/后10000+近仙之力第八卷
渡劫—不定渡天劫结局

附录 B:核心功法列表(初始设计)

功法名品级属性效果获取途径
长春功灵级下品木修炼稳定,延寿黄枫谷基础功法
清元剑诀灵级上品金攻击力强黄枫谷内门
大衍决玄级无增强神识大衍神君传授
青元剑诀天级金顶级剑修功法极罕见
玄阴经玄级暗魔道顶级功法阴罗宗
紫焰真诀灵级上品火火系强攻坊市/秘境
冰心诀灵级中品水/冰防御+心境掩月宗

附录 C:核心丹药列表(初始设计)

丹药名品级效果主要材料
聚灵丹灵级下品修炼速度+50%,持续1天聚灵草
筑基丹灵级中品突破筑基必备多种稀有灵草
金创药灵级下品恢复30%体力常见草药
回春丹灵级中品完全恢复体力回春花
凝元丹灵级中品恢复50%灵力凝元果
结丹丹灵级上品突破结丹辅助极稀有

本文档为初始设计草案。
所有系统设计均为初步方案,具体数值和细节在实现时根据实际测试调整。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

DoL x 凡人修仙传 · 大型模组 · 完整设计文档
/archives/xERGyhjf
Author
KLein
Published at
2026-10-15

Comments

欢迎来到我的博客!