diff --git a/README.md b/README.md index 391c536..e0c7b34 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,66 @@ 针对部分用户使用 MHW 更多定型文mod时遇到的问题提供可能的处理方式,若尚未解决问题可加群*259616154*咨询 -编写时mod版本:0.1.4 +编写时mod版本:0.1.5 +## 目录 + +### [1.安装类问题](#1-安装类问题) + +[Q1.1:mod安装位置错误导致游戏无法加载mod的解决方法](#q-11-为什么我用狩技盒子安装了mod游戏正常启动但是mod没有生效) + +[Q1.2:游戏加载mod时发生崩溃的处理方法](#q-12-为什么我安装了mod但是游戏崩溃了) + +### [2.使用类问题](#2-使用类问题) + +[Q2.1:旧前置文件需要手动删除的问题](#q21-我在启动游戏时弹窗内出现如下情况怎么办) + +[Q2.2:前置不完整或者前置未更新的问题](#q22-我在启动游戏时弹窗内出现如下情况怎么办) + +[Q2.3:部分文件找不到的问题](#q23-我在启动游戏时弹窗内出现如下情况怎么办) + +[Q2.4:旧版本mod无法通过debug方式检测fsm的问题](#q24-尝试通过日志获取fsm信息出现下面情况怎么办) + +[Q2.5:配置文件名字不正确导致系统找不到配置文件的解决方式](#q25-我在启动游戏时弹窗内出现如下情况怎么办) + +[Q2.6:配置文件内触发器格式有误,日志给出具体行列报错的解决方式](#q26-我在启动游戏时弹窗内出现如下情况怎么办) + +[Q2.7:自动文本发送过多导致被系统禁言的解决方式](#q27-为什么我在游戏内发言过多被系统禁言然后禁言消息会自动弹出干扰战斗) + +[Q2.8:怎么让配置文件方便观察和编辑](#q28-怎么让配置文件方便观察和编辑) + +[Q2.9:没打开显示文件扩展名导致按Q2.5的步骤修改文件名后,系统找不到指定文件的解决方式](#q29-为什么我的文件名是mas-configtoml而情况和q25一样) + +[Q2.10:游戏内可用的快捷指令](#q210-现在这个mod有什么游戏内的快捷指令吗) + +### [3.编辑类和文本类问题](#3-编辑类和文本类问题) + +[Q3.1:toml文件的打开方式](#q31-怎么打开toml文件) + +[Q3.2:基础自动文本的创建](#q32-怎么创建一个完整的自动文本) + +[Q3.3:文本的编辑](#q33-怎么编辑文本) + +[Q3.4:寻找动作id,即Fsm](#q34-怎么去寻找武器的动作即fsm) + +[Q3.5:in函数的应用](#q35-怎么让一个触发器检测多个动作) + +[Q3.6:文本不能丢的“尾巴”](#q36-为什么我的文本修饰了还是默认的文本) + +[Q3.7:文本不能完全加载的原因以及解释](#q37-为什么我的文本只说了一部分) + +[Q3.8:复合字号与颜色文本的写法](#q38-怎么设置复合的颜色和字号文本比如alt-text这样的) + +[Q3.9:发送间隔(全局与单个自动文本)的插入方法](#q39-怎么设置发送间隔以防止说话太多刷屏) + +[Q3.10:new和old合用以实现前后两个动作的检测](#q310-怎么设置动作前后检测实现一定程度上在某些情况下的受击检测) + +[Q3.11:应用new和old来防止开电锯动作在超解动作内存在延迟输入帧的实例](#q311-为什么我盾斧开电锯会说超解的文本) + +[Q3.12:伤害检测功能的使用方法](#q312-怎么给动作添加伤害检测) # 下面根据问题类别进行分类,共分为三个板块 -## 1.安装类问题 +## 1. 安装类问题 ### Q 1.1 为什么我用狩技盒子安装了mod,游戏正常启动,但是mod没有生效? @@ -44,7 +99,7 @@ A:如果你已经按照 [Q1.1](#q-11-为什么我用狩技盒子安装了mod游 完整性检查完毕后,重新按 [Q1.1](#q-11-为什么我用狩技盒子安装了mod游戏正常启动但是mod没有生效) 中的步骤安装前置和mod。 -## 2.使用类问题 +## 2. 使用类问题 ### Q2.1 我在启动游戏时弹窗内出现如下情况,怎么办? @@ -84,19 +139,19 @@ A: ![alt text](img/image-13.png) A: 这些错误都是文本型错误,说明你的配置文件中存在不正确的文本或者触发器格式导致mod加载时出现错误。请打开mas-config.toml并按日志内![alt text](img/image-17.png)![alt text](img/image-18.png)所显示的行列数找到相关的错误原因并按照[Q3.2]( #q32-怎么创建一个完整的自动文本?)进行修复。 -### Q2.7:为什么我在游戏内发言过多被系统禁言然后禁言消息会自动弹出,干扰战斗? +### Q2.7 为什么我在游戏内发言过多被系统禁言然后禁言消息会自动弹出,干扰战斗? A:这就要怪你自己咯,设那么多又发那么多,被禁言后做出触发自动文本动作导致游戏中的你强行发言被弹窗警告。*少说点吧,话痨* -### Q2.8:怎么让配置文件方便观察和编辑? +### Q2.8 怎么让配置文件方便观察和编辑? A: 请使用vscode打开mas-config.toml,并安装toml插件,即可方便的编辑和浏览配置文件。 -### Q2.9:为什么我的文件名是mas-config.toml,而情况和[Q2.5](#q25 -为什么我在启动游戏时弹窗内出现如下情况怎么办) 一样? +### Q2.9 为什么我的文件名是mas-config.toml,而情况和Q2.5一样? A: 你可能在![alt text](img/image.png)这个地方没把*显示扩展名*![alt text](img/image-23.png)打开,把它打开然后再改名或者直接将配置文件名字改成mas-config再启动游戏。 -### Q2.10:现在这个mod有什么游戏内的快捷指令吗? +### Q2.10 现在这个mod有什么游戏内的快捷指令吗? A: 当前版本已添加三个快捷指令,直接在游戏内聊天栏输入对应指令即可 @@ -158,7 +213,15 @@ weapon_type.value = 3 这里用到了两个条件,第一个`trigger_on`表示这是一个触发器条件。 -触发器条件有且仅有一个,表示当发生触发器所指示的事件时,若满足设置的条件,则执行触发器。 +触发器条件**有且仅有一个**,表示当发生触发器所指示的事件时,若满足设置的条件,则执行触发器。 + +**注:现在可以使用另一种方式来检查武器动作,具体可参考如下代码** + +```toml + [[trigger.check]] + fsm.value = { target = 3, id = 137 } +# 这块检测代码是作者添加伤害检测后,原本用于fsm的触发器条件被伤害检测使用,故添加此检测器以防止出现两个trigger_on导致冲突的情况 +``` 一个是检测玩家的动作,`{ target = 3, id = 87 }`为动作`气刃突刺` @@ -245,7 +308,7 @@ mhw游戏中可用的字体颜色对应代码如下: `黑龙歼灭刀将要使用一种从天而降的刀法`是一个示例文本,这个就是你触发条件后发在游戏里面的文本(*想怎么下头的写法就怎么下头吧,决定权在你*) -### Q3.4:怎么去寻找武器的动作,即fsm? +### Q3.4 怎么去寻找武器的动作,即fsm? 本文给出两种方案,一种是基于0.1.1版本的更新(debug),一种是基于踩蘑菇大佬*Alcedo*所开发的luaengine框架。 @@ -272,9 +335,9 @@ mhw游戏中可用的字体颜色对应代码如下: luaengine相关就不在这阐述了,一切相关问题请移步踩蘑菇luaengine教程贴:https://www.caimogu.cc/post/943219.html -## 注:现在已添加简易fsmID表格, 如果不想自己去测可以参考[为Monster Hunter World - More Auto Shouts 制作的简易Fsm ID 表](fsmID.md)。但是该表内只录取部分笔者认为常用的fsm,其他fsm请自行按照[Q3.2](#q32-怎么创建一个完整的自动文本?)进行查找。 +## 注:现在已添加简易fsmID表格, 如果不想自己去测可以参考[为Monster Hunter World - More Auto Shouts 制作的简易Fsm ID 表](fsmID.md)。但是该表内只录取部分笔者认为常用的fsm,其他fsm请自行按照上述查找fsm的方法进行查找。 -### Q3.5:怎么让一个触发器检测多个动作? +### Q3.5 怎么让一个触发器检测多个动作? A:使用`in`函数以判断事件的值是否包含在数组内。 @@ -301,11 +364,13 @@ param = "龙杭炮发射" 现在使用in函数将这三个fsmid放入一个数组内,触发器检测到玩家使用铳枪时,会检测到玩家当前执行的动作fsmid是否包含在数组内,若包含则激活触发器并发送文本![alt text](img/image-25.png)。 -### Q3.6:为什么我的文本修饰了还是默认的文本? +**注:in有对应的反函数nin,可用于检测除内部动作之外的其他动作** + +### Q3.6 为什么我的文本修饰了还是默认的文本? A:请检查文本中是否含有``和``,这两个标签是用于控制文本样式的,请检查文本段的末尾中否含有这两个标签, 如果没有会导致该文本无法被检测到颜色和字体的修改,并以默认形式的文本发送。 -### Q3.7:为什么我的文本只说了一部分? +### Q3.7 为什么我的文本只说了一部分? A:一个param内的文本所包含的字节数存在上限(128个字节),现举例说明: ```toml @@ -320,7 +385,7 @@ param = "一二三四五六七八九十 如图,写入了30个汉字实际上只发出来了29个,说明输入文本时字段包含的字节数超过上限(129>128),导致文本中最后一个汉字的字符被截断,无法被输出。笔者建议设置自动文本时不要使文本部分的汉字与中文标点符号数量超过30,否则会使发送时文本因超过字节上限被截断。 -### Q3.8:怎么设置复合的颜色和字号文本,比如![alt text](img/image-24.png)这样的? +### Q3.8 怎么设置复合的颜色和字号文本,比如![alt text](img/image-24.png)这样的? A:gmd支持在同一句话中使用分隔的多个颜色和字号tag对不同的文本段标注,具体可参考如下代码(上图中三色字体飞圆斩的**发送器**) @@ -333,7 +398,7 @@ param = "飞!