====== 剧本指令集 ======
FIXME 本页面尚未完成,且英杰传的指令尚未逆向完毕。
英杰传和孔明传用的同一套剧本指令。为了方便起见,就不重新写两个页面了。以孔明传为主,部分孔明传、英杰传不同的地方会标注出。
===== 原始指令集 =====
**00. 对话框**
u16 字符串偏移
**01. 移动武将**
u16 武将ID
u8 X
u8 Y
u8 朝向
**02. 未使用**
u8 _
**03. 设置战役信息**
u8 阶段
u8 最大回合数
u8 如果是第二阶段,是否需要清空回合数
u8 _
u8 敌军拥有主将
u16 敌军主将ID
u8 _
u8 我军拥有主将
u16 我军主将ID
武将信息 x30
u16 武将ID
u8 X
u8 Y
u8 我军 (见22指令的详细说明)
u8 需要检查标志
u8 标志ID
u8 朝向
u8 隐藏
:!: 孔明传中,朝向无效 (我军始终朝左,敌军朝右),此参数仅用于英杰传。
**04. 天气 (EKD)**
:!: 此指令无任何作用,仅从英杰传的调试文本中获知。
**05. 显示场所**
06指令、09指令 (更新场所)的黑屏不会自动恢复,需要调用此指令。
**06. 黑屏**
仅用于场所。
**07. 过场动画 (EKD)**
u8 ID
u8 _
过场动画指英杰传中文字上方的图像。孔明传中没有此功能,此指令的效果为在顶端显示消息框。
**08. 消息框**
u16 字符串偏移
**09. 加载地图**
u16 地图ID
ID的高4位表示类型:0城市,1大地图,2场所,3战场
低12位表示编号。
**0A. 加载武将**
u16 武将ID
u8 X
u8 Y
u8 朝向
u8 姿势
**0B. 小消息框**
u16 字符串偏移
**0C. 设置任务 (EKD)**
[u16] _ (仅EKD字段)
u16 字符串偏移
孔明传中不区分剧情任务和战场任务,均使用30指令。孔明传中0B、0C、0E指令完全相同。
**0D. 设置章幕**
u16 字符串偏移
被用于存档名。
**0E. 显示章幕**
u16 字符串偏移
**0F. 场景跳转**
u8 场景
**10. 武将单挑**
u8 台词ID
u8 台词ID
u8 单挑结果
**11. 战斗后加载地图**
u16 地图ID
检查后面是否紧跟29指令 (Game Over),若是则战斗失败;否则战斗胜利。
**12. 结束剧本集**
**13. 结束事件**
**14. 设置剧本标志**
u8 标志ID
u8 操作 (0开,1关)
诸葛瞻的培养也使用此指令。
**15. 带确认的对话框**
u8 预期选项 (0是,1否)
u8 分支指令数
**16. 无效指令**
u8 ID1
u8 ID2
**17. 自由行动**
u8 操作 (0启用,1禁用)
**18. 移除武将**
u16 武将ID
u8 X1
u8 Y1
u8 X2
u8 Y2
u8 标志 (开:战场武将,关:场所角色)
u8 军队 (0我军,1敌军,2两军)
**1A. 显示武将**
u16 武将ID
**1B. 获得物品**
u8 物品ID
0xC3表示随机物品。
**1C. 设置武将方针**
u16 武将ID
u8 方针
u16 参数
**1D. 保存地图数据**
u16 地图ID
u8 ?
u8 ?
孔明传中,保存的地图数据并没有被使用,因此这也是无效指令。
**1E. 清除场景角色**
**1F. 添加NPC**
自由行动时会自动处理,但是剧本中需要手动处理。
**20. 设置地图标志**
u8 模式+n (MSB: 0附加,1设置。7-LSB: 标志数)
u8*n 需清除的标志ID
附加模式:直接在原来基础上进行操作;设置模式:先全部初始化为可达再进行操作。
**21. 检查剧本标志**
u8 分支指令数
u8 n (检查n个标志是否为ON)
u8*n 标志ID
u8 m (检查m个标志是否为OFF)
u8*m 标志ID
**22. 设置敌军信息**
u8 身份反转
武将信息 x30
u16 武将ID
u8 X
u8 Y
u8 需要检查标志
u8 标志ID
u8 朝向
u8 隐藏
u8 方针
u16 方针参数
u8 兵种
u8 等级
u8 _
u8 _
u8 _
u16 _
u8 _
身份反转标志设置时,03指令的身份为我军的武将将被禁用 (同理,身份反转标志未设置时,身份为敌军的武将被禁用)。
**23. 选择参战武将**
**24. 设置武将势力**
孔明传中,仅势力0 (蜀)和6 (诸葛亮)才属于我军。通常武将离队设置为势力9 (无所属)。
**25. 显示选项**
至多3个选项。
选择诸葛瞻兵种也使用此指令。
**26. 加载二阶段战场地图**
u8 _
u8 _
u8 地图编号 (只有两张图)
**27. 障碍物**
u8 X
u8 Y
u8 操作 (0设置火,1设置水,2撤销,3撤销,4淡入,5淡出)
:!: 通过操作2设置的障碍物,图标仍是火,但障碍物的名称显示为水。
**28. 武将倒戈**
u16 武将ID
u8 势力
**29. Game Over**
**2A. The Ending**
u8 结局ID (EKD)
孔明传不采用硬编码的多结局实现,因此结局ID无效。
**2B. 设置用户数据**
u8 类型 (0: - 孔明寿命,1: + 孔明寿命,2: + 剧本变量,3: 清除剧本变量,4: + 金,5: 战斗后经验,7: 历史记录,8: 启用自由模式,9:确认武将参数)
u16 值
类型9未使用,效果为显示武将的武力、统帅、智力。
**2C. 刷新场景角色**
**2D. 特殊技能**
u8 军队 (0我军,1敌军)
u8 类型 (0: 减少1/2兵数,1: 1/3概率混乱)
未使用。不过猜测可能是想用于博望坡之战的火攻。
**2E. 设置用户城市**
u16 地图ID
u8 _
u8 _
u8 _
**2F. CG变更 (EKD)**
u16 武将ID
u8 ID
孔明传中未使用,用于设置武将的一个废案属性。
**30. 设置任务**
u16 字符串偏移
**31. 检查用户数据**
u8 类型 (0: 孔明寿命,1: 剧本变量,2: 孔明等级)
u8 值
u8 关系 (0: >=,1: <)
u8 分支指令数
**32. 变更武将兵数/状态**
u8 类型 (0武将,1范围)
u16 武将ID
u8 X1
u8 Y1
u8 X2
u8 Y2
u8 军队
u8 类型 (0攻击,1防御,2兵数减少,3状态)
u8 值
类型0/1,值: 0: ↑↑,1: ↑,0: 复原,1: ↓,2: ↓↓
类型2,值为减少的兵数
类型3,值: {0}: 移动↓,{1}: 攻速↓,{2}: 封策,{3}: 对策,{4}: 混乱,{5}: 兵数减少
**33. 无效指令**
u8 ?
u8 ?
推测原义应为播放音效。
**34. 设置武将姿势**
u16 武将ID
u8 姿势
**35. 移动旗帜**
u8 源城市
u8 目标城市
u8 旗帜颜色
u8 延时
**36. 自动保存**
**37. 设置武将姿势朝向**
u16 武将ID
u8 姿势
u8 朝向
**38. 播放BGM**
u8 BGM ID
**39. 武将升级**
u16 武将ID
u8 等级
**3A. 设置武将兵种**
u16 武将ID
u8 兵种
**3B. 结束并行中事件**
u8 _
u8 _
**3C. 无效指令**
u16 武将ID
**3D. 提示保存**
u8 并行
**FF. 结束**
===== 扩展指令集 =====
这一部分**不存在于**原版中,在Dangfer的改版中引入。
**40: 检查结果**
u8 分支指令数
u8 条件 (0真,1假)
:!: 此指令不同于else,它仅检查最近的结果 (由21指令设置)。