通用法力条API

通用法力条API

``` 一行由spacechase0创建的法力条APImod的开放端口,已适配现代星露谷 ```

游戏玩法机制

[size=3][img]https://i.imgur.com/3qxSqCb.png[/img][/size]

这是原版法力条 API 模组移植至现代《星露谷物语》的一个改进版本。我最初把这个模组包含在法术师文件夹里,但有些人建议我尝试将其制作成一个独立的模组供其他人使用。也许可以减少到处出现的法力条数量。

有了这个模组,你将拥有一个功能完整的法力值系统。法力值可以消耗、恢复、附加属性,甚至可以通过食物来回复。所有的美术资源都对模组开发者开放,可以使用内容修补器进行修改。现有的物品 ID 和路径都没有改变,所以现有的模组包应该可以正常运行。我建议使用此模组的开发者以某种方式追踪他们为玩家增加或移除的法力值,以免干扰其他使用此模组的模组(例如使用模组数据)。当然,你也可以不这么做,反正我不是你的老板 xD

[i][u][size=4]以下是 API 的详细信息及其使用方法[/size][/u][/i]

如果你因某种原因需要在游戏中调整最大法力值或增加法力值,有两个控制台命令可供使用。请确保在控制台中输入这些命令。

  • manaapi_法力 增加 <value>
  • 设置最大魔法值 <值>

前两项是语境标签。你无需安装此模组就能将其添加到你的模组中。但如果有人安装了此模组并发现带有这些语境标签的物品,它们将生效。这些标签会显示在工具提示上!

  • "moonslime.ManaBarApi.ManaFill/#":这是一个情境标签,你可以将其添加到任何可食用物品上。支持负数值。此标签会返还给玩家与 # 值相等的魔法值。受物品品质影响。金色品质的物品将额外恢复 80%。与常规生命值和能量值机制类似。
  • "moonslime.ManaBarApi.ManaRestore/#":这是一个上下文标签,你可以将其添加到任何可食用物品上。负值也有效。该标签会为玩家恢复与 # 相等的法力值百分比。不受物品品质影响。

内容补丁机的触发动作

  • "moonslime.ManaBarAPI.AddMana #" 用于给触发此效果的玩家增加(若为负数则为减少)# 点魔力值。
  • "moonslime.ManaBarAPI.SetMaxMana #" 此设置将触发该魔力的玩家最大魔力设置为 #。
  • "moonslime.ManaBarAPI.AddToMaxMana #" 向触发此效果的玩家增加(或减少,若为负值)# 点最大法力值。
  • "moonslime.ManaBarAPI.SetManaToMax" 该功能将触发此魔法的玩家的魔法值设置至最大值。

新游戏状态查询

  • 检查玩家当前魔力值是否大于或等于该值
    PLAYER_CURRENT_MANA_GREATER_THAN_VALUE <玩家> <#数值>
    
  • 检查玩家当前魔法值是否小于或等于指定数值
    PLAYER_CURRENT_MANA_LESS_THAN_VALUE <Player> <#Value>
    
  • 玩家的当前法力值是否介于 #Min 和 #Max 之间(默认无限制)
    PLAYER_MANA <Player> <#Min> [#Max]
    
  • 玩家的当前法力值是否介于 #Min 和 #Max 之间(默认无限制)
    PLAYER_MAX_MANA <Player> <#Min> [#Max]
    

点击此处了解在 <Player> 中填写什么内容

接下来的几个条目专门用于模组作者的法力控制,需要一些 C# 知识才能使用。IManaBarApi 是其对应的接口。

  • GetMana(Farmer farmer); 这将返回玩家当前拥有的魔法值。
  • AddMana(Farmer farmer, int amt); 此方法将增加法力值,最多达到其最大值。接受负值以移除玩家的法力值。数值将被约束,不能低于 0 或高于当前最大值。
  • GetMaxMana(Farmer farmer); 此函数将返回玩家当前的最大魔法值。
  • SetMaxMana(Farmer farmer, int newMaxMana); 这将把玩家的魔法值设置为该数值。使用时请务必小心,因为其他模组可能正在调整玩家的最大魔法值!
  • AddToMaxMana(Farmer farmer, int maxManaToAdd); 此值用于调整或降低玩家的最大法力值。因为这将增加或减少他们当前的最大值。
  • SetManaToMax(Farmer farmer); 这将把当前玩家的法力值设置为他们的最大法力值。
  • IsCurrentManaGreaterThanValue(Farmer farmer, int valueToCheckAgainst); 检查玩家魔力值是否 >= 数值。
  • IsCurrentManaLessThanValue(Farmer farmer, int valueToCheckAgainst); 检查玩家法力值 <= 给定值。

我欢迎玩家们对这款模组的建议。Github 链接在这里。即使包含模组的文件夹发生变化,模组的唯一 ID 也保持不变。资产的 Content Patcher 路径 100% 相同,应该可以与任何现有的 UI 替换兼容。

[i][u][size=4]使用此 MOD 的内容补丁示例![/size][/u][/i]

使用 Button 的额外触发动作内容

对不起,你的输入似乎不完整或为空。请提供需要翻译的游戏文本内容(例如包含对话、说明、标记符等的完整片段),我会按照你的要求逐行逐格式翻译,并保留所有特殊符号、序号、路径、代码、表格和网址。

你现在可以制作一把剑,每次用这把剑杀死一个怪物时,它会恢复 5 点魔力。以下是此功能的代码示例。

{
  "Action": "EditData",
  "Target": "Data/TriggerActions",
  "Entries": {
    "ExampleTriggerAction": {
      "Id": "ExampleTriggerAction",
      "Trigger": "Spiderbuttons.BETAS_MonsterKilled",
      "Condition": "PLAYER_HELD_ITEM Current (W)57",
      "Action": "moonslime.ManaBarAPI.AddMana 5"
    }
  }
}

看起来你只发送了一个单独的右大括号 }。请提供完整的游戏内容文本,我会按照你的要求逐行翻译成中文,保留所有格式和特殊字符。

请提供您需要翻译的游戏内容,我会按照要求逐行翻译,保留所有格式和特殊内容。

请您提供需要翻译的游戏内容,我会按照您的要求逐行翻译成中文。

看起来你没有提供需要翻译的具体内容。请提供待翻译的游戏文本(如代码、对话、UI 文本等),我会按照你的要求逐行翻译,保留所有格式和特殊符号。