用户工具

站点工具


kmd:剧本指令集

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

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