欢迎光临散文网 会员登陆 & 注册

【GTFO】MOD图制作——WardenObjectiveDataBlock

2023-07-19 14:09 作者:一般up黎明  | 我要投稿

接着上次的讲

本篇主要讲关于MOD图的任务部分——WardenObjectiveDataBlock

跟上个Rundown db一样,我简单的把WardenObjective db的功能分为三部分

一、任务描述

二、连锁事件

三、目标设置

先贴个空框架

老规矩,按这个空任务为例一个一个讲

"Type": 0,

任务类型(enum)

每个类型我都举了个例子,不清楚是什么任务的去对应地图看一下就行了

"Header": 0,

任务标题(游戏内不显示)

"MainObjective": 0,

主要目标 Text DB

"WardenObjectiveSpecialUpdateType": 0,

管理员目标特殊更新类型(enum,机翻)

"GenericItemFromStart": 0,

落地运送的Item(Item DB

"DoNotMarkPickupItemsAsWardenObjectives": false,

不要将取货项目标记为管理员目标


下面是设置所有跟任务有关的描述,全部的对应db都是Text db

    "FindLocationInfo": 0,

查找位置信息(通常提示需要在终端使用query查找任务目标所在位置信息)

    "FindLocationInfoHelp": 0,

查找位置信息提示(长时间没有使用query查找后的提示)

    "GoToZone": 0,

前往区域(正确使用query后更新,通常显示前往目标所在区域)

    "GoToZoneHelp": 0,

前往区域提示(长时间没有前往目标所在区域后的提示)

    "InZoneFindItem": 0,

区域内查找项目(到达目标所在区域位置后更新,通常要求找到目标项目)

    "InZoneFindItemHelp": 0,

区域内查找项目提示(长时间没有找到任务目标后的提示,通常提示使用ping来查找)

    "SolveItem": 0,

解决项目(找到/完成 任务目标后更新,通常是任务内容提示或撤离点位置)

    "SolveItemHelp": 0,

解决项目提示(长时间在找到任务目标后没有继续完成时更新的提示)

    "GoToWinCondition_Elevator": 0,

完成任务条件_电梯(完成任务后在撤离点设定为出生点时更新)

    "GoToWinConditionHelp_Elevator": 0,

完成任务条件提示_电梯(长时间没有到达撤离点时的提示)

    "GoToWinCondition_CustomGeo": 0,

完成任务条件_自定义地区(完成任务后在撤离点设定为自定义区域时更新)

    "GoToWinConditionHelp_CustomGeo": 0,

完成任务条件提示_自定义地区(长时间没有到达撤离点时的提示)

    "GoToWinCondition_ToMainLayer": 0,

完成任务条件_返回主要层(完成任务后且此任务不是主线任务时更新,通常为“返回主要目标并完成任务”)

    "GoToWinConditionHelp_ToMainLayer": 0,

完成任务条件提示_返回主要层(长时间没有返回主线区域时更新???不确定,官图好像没有出现过,正常也没用过)

    "ShowHelpDelay": 180.0,

显示提示的延迟

第二部分 连锁事件

    "WavesOnElevatorLand": [],

落地时的警报(GenericEnemyWaveData

"EventsOnElevatorLand": [],

落地时触发的事件(WardenObjectiveEventData

这个事件很长,我分开来写

        "Type": 0,

事件类型(enum)

        "Condition": {

          "ConditionIndex": -1,

          "IsTrue": false

        },

条件设置,具体用法不知道,问高手

        "Trigger": 0,

事件触发阶段,已反应堆验证为例:在开始就是反应堆预热阶段刚开始,在中间就是验证阶段刚开始,在结束就是完成验证之后。

        "ChainPuzzle": 0,

连锁扫描,对应persistentID为 ChainedPuzzleDataBlock

        "UseStaticBioscanPoints": false,

使用静态生物扫描点,为true后扫描点固定

        "Layer": 0,

事件发生所在层

        "DimensionIndex": 0,

事件发生所在维度

        "LocalIndex": 0,

事件发生所在区域

        "Delay": 0.0,

延迟触发时间

        "Duration": 0.0,

持续时间

        "ClearDimension": false,

清除维度敌人,会将设定维度的敌人全部清除,包括原生怪

        "WardenIntel": 0,

任务信息,对应persistentID为 Text DataBlock

        "CustomSubObjectiveHeader": 0,

自定义子目标标题,对应persistentID为 Text DataBlock

        "CustomSubObjective": 0,

自定义子目标,对应persistentID为 Text DataBlock

        "SoundID": 0,

声音ID

        "SoundSubtitle": 0,

声音字幕,对应persistentID为 Text DataBlock

        "DialogueID": 0,

对话ID,对应persistentID为 PlayerDialog DataBlock

        "FogSetting": 0,

雾设置,对应persistentID为 FogSettings DataBlock

这个雾设置的db后面会讲

        "FogTransitionDuration": 0.0,

雾过渡持续时间

        "EnemyWaveData": {},

警报设置见上面的GenericEnemyWaveData

        "EnemyID": 0,

敌人ID

        "Position": {

          "x": 0.0,

          "y": 0.0,

          "z": 0.0,

          "magnitude": 0.0,

          "sqrMagnitude": 0.0

        },

位置

        "Count": 0,

计数

        "Enabled": false,

是否启用

        "TerminalCommand": 0,

终端命令

        "TerminalCommandRule": 0,

终端命令规则

        "WorldEventObjectFilter":""

世界事件对象筛选器

用来触发一些世界事件(游戏内置有,我不懂,别问我)

    "WaveOnElevatorWardenIntel": 0,

电梯降落中的任务提示信息,对应persistentID为 Text DataBlock

    "FogTransitionDataOnElevatorLand": 0,

电梯着陆时的雾过渡数据,对应persistentID为 FogSettings DataBlock

    "FogTransitionDurationOnElevatorLand": 0.0,

电梯着陆上的雾过渡持续时间

    "OnActivateOnSolveItem": false,

在解决项目时激活,为true时和事件999搭配使用

    "WavesOnActivate": [],

激活时的警报(GenericEnemyWaveData

    "EventsOnActivate": [],

激活时的事件(WardenObjectiveEventData

    "StopAllWavesBeforeGotoWin": false,

完成任务后关闭所有警报(包有限警报括欠的怪?哦,我关于警报的视频鸽了来着)

    "WavesOnGotoWin": [],

完成任务后触发的警报(GenericEnemyWaveData

    "WaveOnGotoWinTrigger": 0,

完成任务后的警报触发阶段

    "EventsOnGotoWin": [],

完成任务后触发的事件(WardenObjectiveEventData

    "EventsOnGotoWinTrigger": 0,

完成任务后的事件触发阶段

    "FogTransitionDataOnGotoWin": 0,

完成任务后的雾过渡数据,对应persistentID为 FogSettings DataBlock

    "FogTransitionDurationOnGotoWin": 0.0,

完成任务后的雾过渡持续时间

    "ChainedPuzzleToActive": 0,

激活时的连锁扫描,对应persistentID为 ChainedPuzzleDataBlock

    "ChainedPuzzleMidObjective": 0,

中间目标的连锁扫描,目前只出现在关闭反应堆任务,对应persistentID为 ChainedPuzzleDataBlock

    "ChainedPuzzleAtExit": 11,

撤离点连锁扫描,对应persistentID为 ChainedPuzzleDataBlock

    "ChainedPuzzleAtExitScanSpeedMultiplier": 1.0,

撤离点连锁扫描速度设置

第三部分 目标设置

我按任务分开了进行说明,在写代码的时候不需要的代码都可以省略

type 3 收集小物品

type 6 收集大物品

type 1/2 开启/关闭反应堆

如果你要写任务为反应堆的关卡,需要在 LevelLayoutDatablock 中指定特定地形来生成反应堆

官图目前有四个反应堆地形

  • Mining Reactor Open HA 1

    "Assets/AssetPrefabs/Complex/Mining/Geomorphs/geo_64x64_mining_reactor_open_HA_01.prefab"

  • Mining Reactor HA 2

    "Assets/AssetPrefabs/Complex/Mining/Geomorphs/geo_64x64_mining_reactor_HA_02.prefab"

  • Lab Reactor HA 1

    "Assets/AssetPrefabs/Complex/Tech/Geomorphs/geo_64x64_lab_reactor_HA_01.prefab"

  • Lab Reactor HA 2

    "Assets/AssetPrefabs/Complex/Tech/Geomorphs/geo_64x64_lab_reactor_HA_02.prefab"

如果是关闭反应堆任务除非你有相关的插件不然只能使用只能使用 Mining Reactor HA 2这一个地形

type 5 特殊终端命令

type 7 运送动力电池

如果使用此类任务类型为主线(MAIN)时, 所需数量的电池将在电梯货物集装箱中给出

如果用作支线/附加(EX/OV)时,电池将在进入支线/附加的第一个区域生成

如果没有生成在该区域对应的LeveLayout db中找到 ForceBigpickupDistribution 并将其设置为 true

如果不想在电梯落地时给电池,需要下载MOD插件 Tweaker 来调整电梯货物

别忘了在目标区域的 LevelLayoutDatablock 中生成所需数量的电桩,任务目标会自动选择没被使用的电桩

type 8/13 上行链路

此类目标需要在目标区域的 LevelLayoutDatablock 中生成所需数量的终端,在任务目标为双终端的情况下,两台子母终端必须在同一个大区内

关于上行链路终端刷怪类型,通常官图都是type1,即在终端所在的区域内生成,而type 2/3 的用法,反正我是看不懂,原文放这了,官图也没有用type 2/3 刷怪的例子。

type 9 中央发电机组

和反应堆一样,需要在目标区域的 LevelLayoutDatablock 中指定特殊的地形来生成中央发电机组,自定义地形我就不写了,在介绍 Layout 的时候在说

此任务类型需要在目标区域的 LevelLayoutDatablock 中找到 GeneratorClustersInZone 并将其设置为 1

type 10 激活小型HSU

此类任务是将大物品放入指定地形的机器中的任务,包括打开cargo(R5B3 MAIN)

和反应堆一样,需要在目标区域的 LevelLayoutDatablock 中指定特殊的地形来生成目标交换机器,自定义地形我就不写了,在介绍 Layout 的时候在说

type 11 生存

此任务类型若为主线(MAIN),则在落地时触发倒计时。若为支线/附加(EX/OV)则在开启对应任务胶囊门后触发倒计时

任务目标在生存倒计时结束后完成

可以使用 WardenObjectiveEventData 中的type 12,强制完成任务目标来提前结束倒计时

type 12 收集终端

参考R6D2 MAIN,不解释

type 15 限时验证子母终端

没研究过,参考R7D1 MAIN 写法


关于任务的全部内容就介绍到这里了,以后关于警报和事件的嵌套类型我直接省略为GenericEnemyWaveData  WardenObjectiveEventData 了,忘了的话可以来这篇看,或者找官图的json自己参考

有什么问题都可以评论或者私信我


这里是黎明,我们下回再见

网页或app长按点赞即可一键三连

感谢各位的支持!


【GTFO】MOD图制作——WardenObjectiveDataBlock的评论 (共 条)

分享到微博请遵守国家法律