目录

剧本指令集

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指令设置)。