Fungus补丁
阅读
2023-01-25更新
最新编辑:深淵の鴿子
阅读:
更新日期:2023-01-25
最新编辑:深淵の鴿子
Fungus补丁
游戏内Fungus数据
导出
如果已经导出Base数据的话,可以忽略导出步骤
点击Next面板上的【导出Base】按钮,即可导出Fungus数据。
导出的游戏数据位于 ..OutPutFunugs 根据Next的安装位置,有所不同
查看数据
导出的数据格式通常如下:
{
 "Name": "NPCJiaoHuTalk",
 "Blocks": [
   {
     "ItemID": 344,
     "Name": "聊天按钮被点击起始点",
     "Description": "聊天按钮被点击起始点",
     "Position": "(-3033.412,-1448.144)",
     "Commands": [
       {
         "ItemID": 371,
         "CmdType": "Fungus.TryinitFungaus"
       },
       {
         "ItemID": 346,
         "CmdType": "CmdInitNPC"
       },
       {
         "ItemID": 352,
         "CmdType": "Fungus.Call",
         "targetFlowchartName": null,
         "targetBlockID": "351(首次交谈判断)",
         "startLabel": "",
         "startIndex": 0,
         "callMode": 0
       }
     ]
   },
......
Flowchart指每一个导出的文件
Block指一个个对话节点
Command指具体运行的剧情指令
创建Fungus补丁
在Mod文件夹里新建 NData/FungusPatch 文件夹,随后在该文件夹里新建任意名称的json文件,文件结构如下:
example.json
[
   {
       "TargetFlowchart" : "NPCJiaoHuTalk",
       "TargetBlock" : 362,
       "TargetCommand" : 1147,
       "Priority" : 0,
       "Type" : "Insert",
       "Command" : {
           "CmdType" : "NextMenu",
           "CmdParams" : "啊哈哈哈鸡汤来咯!#鸡汤来咯"
       }
   },
   {
       "TargetFlowchart" : "NPCJiaoHuTalk",
       "TargetBlock" : 362,
       "TargetCommand" : 397,
       "Priority" : 0,
       "Type" : "Delete",
   }
]
对象解释:
| 字段 | 类型 | 说明 | 
|---|---|---|
| TargetFlowchart | 字符串 | 目标Flowchart的名称 | 
| TargetBlock | 整数 | 目标Block的ItemID | 
| TargetCommand | 整数 | 要插入的Command的ItemID,若为-1,即为插入到所有Command的最后 | 
| Priority | 整数 | 优先级,优先级越高的Patch,在插入时index越大 | 
| Type | PatchType | Patch类型,目前有Insert与Delete两种。 Insert类型会插入到目标命令的前面。 Delete类型会删除目标命令 | 
| Command | FPatchCommand | 插入的指令数据,仅在Insert模式下生效 | 
Command对象解释:
| 字段 | 类型 | 说明 | 
|---|---|---|
| CmdType | 字符串 | Patch的指令类型 | 
| CmdParams | 字符串 | Patch的指令参数 | 
通过在导出的Fungus里找到需要修补的剧情,然后将对应的ID填入补丁对象内,即可在游戏运行中对其进行修补。
可插入的Command类型
目前可以插入的Command如下:
| CmdType类型 | 说明 | CmdParams参数 | 
|---|---|---|
| NextEvent | 跳转到Next事件,会中断当前Fungus,可使用RunFungusBlock重新跳回 | 目标事件#跳转条件 只有满足条件时才跳转,可不填写,默认为True | 
| NextInnerEvent | 执行内插Next事件,在执行完后会自动跳转回当前位置 | 目标事件#跳转条件 只有满足条件时才跳转,可不填写,默认为True | 
| NextMenu | 弹出选项框,选择后跳转到Next事件,会中断当前Fungus,可使用RunFungusBlock重新跳回 | 选项名称#目标事件#显示条件 只有满足条件时才显示选项,可不填写,默认为True | 
| 
 | ||||||||||||||||||||||||||||||||
 
                

 沪公网安备 31011002002714 号
                    沪公网安备 31011002002714 号