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)。