Expressions - Chunk7w/mappet GitHub Wiki

表达式 是一种特殊的代码行(或者说是数学表达式),用于检测特定的条件。表达式支持 McLib 数学解析器的全部功能,它支持基本的数学运算(+-*/)、数学函数(abs()sin()cos()sqrt() 等)以及其他许多东西。要了解更多信息,请查看该页面

除此之外,表达式支持一些特殊功能,允许它与其他 Mappet 的功能相连接。以下是它们的完整表达式列表:

任务函数

参数与名称 返回值
quest_present(id, 目标) 返回布尔值,检测 目标 选择器所选的某个玩家,是否有正在进行任务为 id 的任务。
quest_completed(id, 目标) 返回布尔值,检测 目标 选择器所选的某个玩家是否完成了任务为 id 的任务。另外,对于目标来说,可以用 ~ 来检测任务是否已全局完成。
quest_present_or_completed(id) 返回布尔值,即检测任务为 id 的任务是否已经完成,或检测当前玩家是否拥有该任务,如果你想检测 id 的任务以前有没有人做过,这非常有用。

阵营函数

参数与名称 返回值
faction_friendly(id, 目标) 返回布尔值,检测 目标 选择器所选的玩家的阵营为 id 的积分是否变为友好。
faction_neutral(id, 目标) 返回布尔值,检测 目标 选择器所选的玩家的阵营为 id 的积分是否变为中立。
faction_hostile(id, 目标) 返回布尔值,检测 目标 选择器所选的玩家的阵营为 id 的积分是否变为敌对。
faction_has(id, 目标) 返回布尔值,检测目标选择器所选的玩家是否拥有阵营为 id 的阵营积分。
faction_score(id, 目标) 返回 目标 选择器所选的单个玩家的阵营为 id 的阵营积分。

状态函数

参数与名称 返回值
state(id[, 目标]) 返回状态为 id 的值。若省略 target 参数,则会使用全局状态,或当前次对象(Subject) 的状态。若指定了 target 参数,则会尝试通过目标选择器搜寻具有该状态的玩家,或使用 ~ 搜寻全局状态。

玩家背包函数

参数与名称 返回值
inv_has(物品ID[, 目标, all]) 返回布尔值,检测 目标 选择器所选的玩家或多个玩家的背包中,是否存在 物品ID 的物品(不包含副手和装甲槽中物品)。 all 是一个布尔值,表示是否检测所有玩家(值为 1),或检测是否至少只有一个玩家(值为 0)持有物品。
inv_holds(物品ID[, 目标, all]) 返回布尔值,检测 目标 选择器所选的玩家或多个玩家是否用主手或副手拿着 物品ID 的物品。
inv_armor(物品ID[, 目标, all]) 返回布尔值,检测 目标 选择器所选的玩家或多个玩家的装甲槽中,是否装备了 物品ID 的物品。

玩家函数

参数与名称 返回值
player_xp(目标) 返回 目标 玩家当前的总经验值。
player_xp_level(目标)" 返回 目标 玩家当前的经验等级。
player_hp(目标) 返回 目标 玩家当前的生命值。
player_hunger(目标) 返回 目标 玩家的饥饿值。
player_armor(目标) 返回 目标 玩家的防御值。
player_is_alive(目标) 返回 目标 玩家是否存活。

对话函数

参数与名称 返回值
dialogue_read(id, 目标) 返回 目标 玩家是否阅读过对话为 id 的对话。

世界函数

参数与名称 返回值
world_time() 返回世界时间(即实际为白天或夜晚的时间),返回 1000 为白天,13000 则为夜晚。
world_total_time() 返回自世界初始化以来的世界总时间。
world_is_night() 返回布尔值,检测时间是否为夜晚(12000 - 24000)。
world_is_day() 返回布尔值,检测时间是否为白天(0 - 12000)。

: 布尔值即 1 (true) 或 0 (false)。