diff --git a/README.md b/README.md index fbcfe55..391c536 100644 --- a/README.md +++ b/README.md @@ -285,9 +285,9 @@ A:使用`in`函数以判断事件的值是否包含在数组内。 action_mode = "sequential_all" [trigger.trigger_on.fsm] -new = { target = 3, id = {in = [110,112,114]} } +new = { target = 3, id = {in = [110,114]} } -# in是一个函数,用于判断事件的值是否包含在数组内,需要用花括号{}包起来。 +# in是一个函数,用于判断事件的值是否包含在数组内,需要用花括号{}包起来。同理,你也可以在花括号内使用'nin'来排除动作 [[trigger.check]] weapon_type.value = 7 @@ -361,6 +361,56 @@ action_mode = "random" ``` 下面添加`cooldown`字段,即可设置单触发器的发送间隔(以秒计算)。 +### Q3.10:怎么设置动作前后检测,实现一定程度上在某些情况下的受击检测? + +A:使用`old`和`new`字段,可检测执行该动作的上一个动作,具体请参考如下代码(这里贴出一段登龙被打导致登龙失败的自动文本): + +```toml +# 登龙被打导致登龙失败 + [[trigger]] + action_mode = "random" + + [trigger.trigger_on.fsm] + old = { target = 3, id = {in = [87,89,90,91]} } + new = { target = 1, id = {nin = [87,89,90,91]} } +# 这里用了 in 和 nin 两个函数,一个是检测登龙的动作,一个检测玩家的状态(fsmtarget = 1是持刀和硬直时的 d)基于笔者最新的发现,即在检测前后两个动作时,新动作检测的是硬直态的话就可以实现动作被打断的检测。 + [[trigger.check]] + weapon_type.value = 3 + + [[trigger.action]] + cmd = "SendChatMessage" + param = "太刀侠登龙时被打飞了,其他武器纳刀默哀30秒" + +``` +`old`用于检测当前动作的上一个动作`new`用于检测当前动作。当前的动作符合`new`内的动作且上一个符合`old`内包含的动作时,触发器才会触发。 + +比如上面`old`内是检测登龙的拆分动作(气刃突刺,起跳,空中抬刀预备动作,气刃兜割下劈),`new`内是检测玩家处于纳刀和硬直状态`target = 1`(*内部`fsmid`暂未完全测试,建议填写一个不超过100的数字*), 当登龙被打断时,系统会先检测上一个动作是否是登龙中的动作,然后检测下一个动作是不是玩家的纳刀和硬直状态,若符合则触发该触发器并发送![alt text](img/image-29.png) + +### 为什么我盾斧开电锯会说超解的文本? + +A:目前因为开电锯时存在延迟输入帧(就是可以在超解动作开始时的约0.2秒内按钩爪键可以把超解动作转换为开电锯的动作),导致开电锯按晚了会有超解文本发送。 + +目前笔者找到了一种基于[Q3.10](#q310-怎么设置动作前后检测,实现一定程度上在某些情况下的受击检测)的解决方法,具体请参考如下代码(**可以直接复制粘贴并应用**): + +```toml + # ========== 盾斧超解动作 ========== +[[trigger]] +action_mode = "random" + +[trigger.trigger_on.fsm] +old = { target = 3, id = 120 } +new = { target = 3, id = {in = [0,1,3,6,19,20,21,22]} } +# 这里new把所有超解完毕后可能的派生(站立,移动,回避)都贴了出来并放在超解后的动作检测里,借此以防止在超解的延迟输入帧内开电锯的的问题出现 + +[[trigger.check]] +weapon_type.value = 9 + +[[trigger.action]] +cmd = "SendChatMessage" +param = "*超解" + +``` +**注:该触发器是基于超解完毕后的动作判定触发的,所以使用时并不会在“理想的”时机内发送文本,延迟发送功能请期待后续更新** # 本文由Stellaraven 结合群内各种问题编写。还有问题请到群*259616154*内咨询。 # Thanks For Your Reading diff --git a/fsmID.md b/fsmID.md index 3475c20..d0492dc 100644 --- a/fsmID.md +++ b/fsmID.md @@ -41,6 +41,7 @@ id = 124:强化射击派生的飞身跃入斩 id = 125,127,129:jr非红刀三段,125第一段,127第二段,129第三段 id = 126,128,130: jr红刀三段(精准连击),126第一段,128第二段,130第三段 id = 131,132:jr终结插拔,131为非红刀插拔,由fsmid = 129击中怪物派生;132为红刀插拔,由fsmid = 130击中怪物派生 +id = 133, 134:jr插拔落地,133为非红刀插拔落地,134为红刀插拔落地 id = 91:后撤蓄力斩 id = 99:后撤蓄力斩命中动作 id = 100:后撤蓄力斩命中起跳 @@ -350,6 +351,7 @@ id = 115:强化跳跃斩(骑乘值很高) id = 14:急袭突刺(下戳) id = 129:空中钩爪派生 id = 131:空中钩爪派生命中 +id = 132:下戳落地派生虫印连段 ``` ### 弓箭(武器编号:11) #### 射击 @@ -431,5 +433,14 @@ id = 104,105,106,107:四向一段滑步(104前,105后,106左,107 id = 108,109,110,111:四向二段滑步(108前,109后,110左,111右) 注:回避装填是武器模型相对位置的改变,不改变人物动作 ``` + +### 全局fsm(测的是fsm target = 1,即纳刀态以及硬直类数据,有待补充) +```text +id = 325:猫车 +id = 361:正面被击飞(小起身后摇) +id = 362:背面被击飞(小起身后摇) +id = 360:背面被击飞(大起身后摇,可装死) +id = 359:正面被击飞(大起身后摇,可装死) +``` ## 本表部分数据由mod群*259616154*内群友***璀云霄***测出,相关数据已由Stellaraven验证并更正部分错误,并做出了大量的动作补充及其说明,若有除表内动作之外的动作检测需求,可向笔者反馈。 # Thanks For Your Reading diff --git a/img/image-29.png b/img/image-29.png new file mode 100644 index 0000000..17f036b Binary files /dev/null and b/img/image-29.png differ