临时添加关于伤害检测修改,其他细节等新版本稳定后再更新
This commit is contained in:
parent
874a476a0a
commit
fc956b4637
82
README.md
82
README.md
|
@ -2,7 +2,24 @@
|
|||
|
||||
针对部分用户使用 MHW 更多定型文mod时遇到的问题提供可能的处理方式,若尚未解决问题可加群*259616154*咨询
|
||||
|
||||
编写时mod版本:0.1.6
|
||||
编写时mod版本:0.2.0
|
||||
|
||||
## mod更新日志:
|
||||
特性:
|
||||
|
||||
支持单个动作内的多个伤害数据统计
|
||||
|
||||
所有内部实现全部采用async/await异步
|
||||
|
||||
单个trigger的执行转为创建异步任务,支持内部长时间阻塞
|
||||
|
||||
由于主动式伤害收集模式的实现,现在可以检查伤害为0的情况
|
||||
|
||||
Break Changes:
|
||||
|
||||
原配置文件 trigger_on.damage 条件取消,由 check.damage 替代
|
||||
|
||||
具体参考新配置文件样例
|
||||
|
||||
## 目录
|
||||
|
||||
|
@ -459,7 +476,7 @@ mhw游戏中可用的字体颜色对应代码如下:
|
|||
|
||||
如红字所说,后面那个fsmid对应的数值就是武器当前执行的动作id。有了这个id就可以参考[Q3.2](#q32-怎么创建一个完整的自动文本?)制作自动文本了
|
||||
|
||||
*方案二*:luaengine,适合除了编辑自动文本的需求外,存在其他数据获取需求,对基于luaengine编写的mod感兴趣或有制作意图的用户
|
||||
*方案二*:**luaengine**,适合除了编辑自动文本的需求外,存在其他数据获取需求,对基于luaengine编写的mod感兴趣或有制作意图的用户
|
||||
|
||||
luaengine相关就不在这阐述了,一切相关问题请移步踩蘑菇luaengine教程贴:https://www.caimogu.cc/post/943219.html
|
||||
|
||||
|
@ -528,9 +545,9 @@ param = "<STYL MOJI_GREEN_DEFAULT><SIZE 40>飞!<STYL MOJI_LIGHTBLUE_DEFAULT><S
|
|||
|
||||
### Q3.9 怎么设置发送间隔以防止说话太多刷屏?
|
||||
|
||||
A:mas-config.toml内已经内置了全局延迟发送功能,默认为1秒,具体请参考配置文件(*mod作者贴心的给你放在了最前面还加了注释哦*)
|
||||
A:mas-config.toml内已经内置了全局间隔功能,默认为1秒,具体请参考配置文件(*mod作者贴心的给你放在了最前面还加了注释哦*)
|
||||
|
||||
如果想给单个触发器设置延迟发送,可以参考如下代码:
|
||||
如果想给单个触发器设置间隔发送,可以参考如下代码:
|
||||
```toml
|
||||
[[trigger]]
|
||||
action_mode = "random"
|
||||
|
@ -607,37 +624,76 @@ param = "*超解"
|
|||
|
||||
### Q3.12 怎么给动作添加伤害检测?
|
||||
|
||||
A:使用新的触发器条件`[trigger.trigger_on.damage]`来检测,具体使用方式如下:
|
||||
A:使用新的触发器条件`[trigger.check]`来检测,具体使用方式如下:
|
||||
|
||||
这里是使用真蓄作为检测
|
||||
```toml
|
||||
# ========== 真蓄造成伤害 ==========
|
||||
[[trigger]]
|
||||
action_mode = "sequential_all"
|
||||
|
||||
[trigger.trigger_on.damage]
|
||||
value = { gt = 200 }
|
||||
# 这是mod作者与0.1.5版本添加的新的触发器条件,用于检测该动作的伤害是否大于一定值(这里写200),即真蓄伤害大于200则触发该触发器。你也可以把gt改为lt,表示小于200则触发该触发器。
|
||||
[trigger.trigger_on.fsm]
|
||||
new = { target = 3, id = {in = [135,136,137]} }
|
||||
|
||||
[[trigger.check]]
|
||||
weapon_type.value = 0
|
||||
# 武器检测
|
||||
|
||||
[[trigger.check]]
|
||||
fsm.value = { target = 3, id = {in = [135,136,137]} }
|
||||
# 鉴于伤害检测会占用触发器条件检测,故mod作者将动作检测改为可设置多个的`trigger.check`并放到这里,以防止出现两个trigger_on导致加载配置时出现冲突的情况
|
||||
[trigger.check.damage]
|
||||
# damage和旧版本的伤害检测条件相同,用于检测该动作的伤害是否大于一定值(这里写200),即真蓄伤害大于200则触发该触发器。你也可以把gt改为lt,表示小于200则触发该触发器。
|
||||
damage = { gt = 200 }
|
||||
# fsm检测的目的是检测并累计该动作期间的伤害值(目前只能实现单个动作的检测,多个动作的检测需要后续更新)
|
||||
fsm = { target = 3, id = 137 }
|
||||
# timeout检测动作的延时(毫秒计数,2000为2秒)
|
||||
timeout = 2000
|
||||
# mod作者已经将伤害检测改为可设置多个的`trigger.check`并放到这里,`trigger.trigger_on。damage`已经不再适用于新版本
|
||||
|
||||
[[trigger.action]]
|
||||
cmd = "SendChatMessage"
|
||||
param = "<STYL MOJI_LIGHTBLUE_DEFAULT><SIZE 30>强击真蓄!造成了<SIZE 40>{{damage}}<SIZE 30>伤害</SIZE></STYL>"
|
||||
param = "<STYL MOJI_LIGHTBLUE_DEFAULT><SIZE 30>强击真三蓄!造成了<SIZE 40>{{damage}}<SIZE 30>伤害</SIZE></STYL>"
|
||||
```
|
||||
上述代码若正常运行,则在任意触发强击的真蓄力斩伤害大于等于200时发送如下文本:
|
||||
上述代码若正常运行,则在触发强击的真三蓄力斩伤害大于等于200时发送如下文本:
|
||||
|
||||
![alt text](img/image-30.png)
|
||||
|
||||
**注:任何动作要添加伤害检测时请务必使用上述的格式来编写自动文本,否则当一个触发器内同时存在两个`trigger.trigger_on`结构时,mod会报错并触发如下警告:**
|
||||
#### 现在已经实现了伤害为空的检测条件,即伤害统计的部分是基于时间段内造成的伤害进行检测,可以设置大于0(造成伤害)或者小于等于0(不造成伤害或者负伤害)所以理论上总伤害为0时可以判定为未命中
|
||||
未命中的代码如下:
|
||||
```toml
|
||||
|
||||
# ========== 太刀登龙失败 ==========
|
||||
[[trigger]]
|
||||
action_mode = "sequential_all"
|
||||
name = "太刀登龙失败"
|
||||
|
||||
# 动作检测
|
||||
[trigger.trigger_on.fsm]
|
||||
new = { target = 3, id = 92 }
|
||||
|
||||
# 武器检测
|
||||
[[trigger.check]]
|
||||
weapon_type.value = 3
|
||||
|
||||
[[trigger.check]]
|
||||
[trigger.check.damage]
|
||||
damage = { le = 0 }
|
||||
# 伤害检测小于0时可以被视为未命中(你用骰子剑造成负伤害也会被算进去,lt=0的情况下总和为负值时也会触发)
|
||||
fsm = { target = 3, id = 92 }
|
||||
timeout = 2000
|
||||
|
||||
[[trigger.action]]
|
||||
cmd = "SendChatMessage"
|
||||
param = "*悲报:太刀侠空登了"
|
||||
|
||||
```
|
||||
|
||||
**注:现在已经去除了:`trigger.trigger_on.damage`,现在使用该代码进行伤害检测时,会出现报错。**
|
||||
|
||||
![alt text](img/image-31.png)
|
||||
|
||||
*`trigger.trigger_on`只能检测一个元素,该触发器内检测到多个元素。* **报错如是说到...**
|
||||
|
||||
|
||||
# 本文由Stellaraven 结合群内各种问题编写。还有问题请到群*259616154*内咨询。
|
||||
|
||||
# Thanks For Your Reading
|
||||
|
|
Loading…
Reference in New Issue