Skip to content

选项的条件

如果你希望在玩家点击选项时,进行一些逻辑判断,然后触发某些行为,或是把当前选项隐藏,在条件满足时再显示。那么你就需要选项的条件配置。

配置条件

条件可以配置多个,之间是与的关系,也就是所有条件都会被检查,只有都满足时,才能执行后面的选项的效果和跳转到下一个场景。而如果是选择了用于隐藏选项,则只要有一个配置了隐藏的条件不满足,选项就会被隐藏。

图 2

条件类型

条件分为多种类型:

  1. 时间:当玩家所在时区的时间满足配置的时间时,条件即判定为满足。

    这里会出现时间选项,没有设置的不会判断。比如设定 12 时,则需要当前时间在 12:00 ~ 12:59 时才会判定满足。

    可以看看示例故事中 forest 场景的 捡起小东西 选项,设置了时间条件,限制了选项出现的时间段。 图 1

  2. 物品:当玩家的背包中指定物品的数量满足配置的条件时,条件即判定为满足。

    这里会出现物品数量两个选项,数量可以是等于,不等于,大于小于等判断条件。而物品,如果你选项的弹窗提示配置了物品弹窗,则会使用玩家选择的物品进行判断,如果还设置了物品数量弹窗,则会使用该数量而非背包的全部数量进行判断。

  3. 物品类型:当玩家的背包中有指定类型的物品时,条件即判定为满足。

    这里会出现物品类型输入框,输入时会提示当前物品列表的所有类型。条件当前角色是否拥有设定的物品类型,比如设定物品类型为燃料,则需要当前角色中有类型为燃料的物品,且数量大于等于 1 才会判定成功。

  4. 物品属性:当玩家的背包中物品的属性有满足所配置属性的物品时,条件即判定为满足。

    这里会出现标识符的表格,标识符即为物品属性的标识符,输入时会提示当前物品列表的所有属性。

    条件会判断当前角色是否拥有包含指定属性的物品,比如设定 100 能量,则需要当前角色的物品中有包含 100 能量的物品才会判定成功,如果有多个物品,则会求和。

    若在选项有设定弹窗提示弹出选择物品,此处将会限制仅检查所选物品。

    如果不设定值,则只要有具备该属性的物品就判定为成功。

    比如示例故事中的场景deep_forest的选项战斗,就采用了这种物品属性的方式。

    图 0

  5. 属性:当玩家的属性满足配置的条件时,条件即判定为满足。

    这里会出现标识符的表格,标识符即为玩家的属性,输入时会提示故事初始设置的所有属性。
    当前角色是否拥有设定的属性,比如设定 100 体力,则需要当前角色的体力大于等于 100 才会判定成功。如果不设定值,则只要具备属性就判定为成功。

  6. 弹窗输入:这个需要弹窗提示配置为普通输入,接收玩家填写的文本,然后会与此条件配置的文本进行比对,完全一致时,条件即判定为满足。

    这里会出现输入框,当玩家弹窗输入等于设定值时才会判定成功。

  7. 函数判定:通过编写一个函数,根据提供的所有游戏变量,判断后返回 true 时判定为满足。

    选择此类型,将会执行设定的函数内容,通过给 result 赋值或直接 return 返回判定结果。函数参数为 profile:当前玩家的 Profile 对象,value:玩家选择选项时填写的值,itemSelect:玩家选择选项时选择的物品。

    profile: 对象的属性包括 attr(属性对象 Map)、inventory(背包物品数组)、scene(当前场景对象)。

    inventory:当前玩家的背包物品列表,包含属性key(物品标识符)、name(物品名称)、count(物品数量)、attr(物品属性对象 Map)。

    scene:当前场景对象,包含属性name(场景名称)、content(场景内容)、options(场景选项数组)。

公共配置

所有类型都具有失败提示用于隐藏选项两个配置项目:

当条件不满足时,就会给玩家显示 失败提示 ,若不设置将使用游戏引擎默认提示,可以通过 $物品属性名$ 获取玩家选择物品的属性的值,#玩家属性名# 获取玩家的属性的值。

当打开用于隐藏选项,则选项将会只有在当前这个条件满足时才会显示。

看到这里,你就应该知道如何通过条件去判定玩家的交互或隐藏选项了。那么在满足条件时,处理跳转场景,我们还可以执行一些效果,比如给玩家发放物品或改变玩家的属性。那么就需要看看选项的效果