6. 偶遇事件¶
- Authors:
innoxia, CK_Rainbow, AceXP
偶遇事件(Encounters)即在地图上行进过程中,会随机或固定触发的事件。
你可以在 res/encounters/ 文件夹中找到正在使用的偶遇事件。
6.1. 通用信息¶
在xml文件中,根元素的标签需要设置为 encounterRoot。
偶遇事件一般用于添加随机风味事件;或者用于覆盖对应 地点类型 的内置对话,以达成触发额外对话链的功能。
6.2. additionalPlaceTypeTrigger¶
该元素下的内容代表了该偶遇事件可能触发的 地点类型 。每一种类型都需要使用 placeType 元素包裹。在此处定义的地点类型对于其下定义的偶遇事件通用。
6.2.1. placeType¶
对于 placeType 中可以填入的内容,请参见 物品标识符(Item’s identifier)。下面的例子中代表该偶遇事件只会在 ANGELS_KISS_OFFICE 中检测触发。
<additionalPlaceTypeTriggers>
<placeType>ANGELS_KISS_OFFICE</placeType>
</additionalPlaceTypeTriggers>
6.3. possibleEncounters¶
该元素下的内容即偶遇事件的具体定义。每一种偶遇事件都将由对应的 encounter 元素定义。可以定义多个 encounter 元素。
6.3.1. encounter¶
该元素中定义了单个偶遇事件的具体内容。
6.3.1.1. name¶
该元素定义了偶遇事件的名称。目前该名称仅用于debug。
6.3.1.2. chanceToTrigger¶
该元素定义了这个偶遇事件的触发概率,并且会进行 解析,达成依照不同条件调整概率的功能。在该部分中,无法使用 npc 等作为解析主体。若返回0则代表无法触发。
- 节点属性:
- opportunisticEncounter 类型: boolean¶
属性
opportunisticEncounter必须填写,false代表该偶遇事件不受“机会主义”的影响,不会受到权重加成,反之则受影响。
下例展示了一个十分复杂的概率判定,以展示其能力。
<chanceToTrigger opportunisticEncounter="false"><![CDATA[
#IF(!game.isStarted() || flags.hasFlag(FLAG_acexp_horny_angel_found) || !flags.hasFlag(FLAG_angelsOfficeIntroduced) || !flags.hasFlag(FLAG_prostitutionLicenseObtained))
0
#ELSE
100
#ENDIF
]]></chanceToTrigger>
6.3.1.3. dialogueReturned¶
该元素定义了这个偶遇事件触发后,游戏将会调用哪个对话。对于其中中可以填入的内容,请参见 物品标识符(Item’s identifier)。
<dialogueReturned><![CDATA[acexp_dominion_angel_office_horny_angel]]></dialogueReturned>