4. 设计你的专属BUFF强度
<p>该篇需要用到的表格有</p>
<ul>
<li>BuffConfig</li>
</ul>
<p>该篇章的内容为一个BUFF的制作方式,可能比想象中要复杂一点点,因为这涉及到该BUFF的生效方式以及销毁方式
简单讲述制作一个buff的思路就是</p>
<p><strong>< 根据需要的buff效果去找到对应的Logic脚本 > → < 为Logic脚本配置参数,来决定buff强度 > → < 为该buff配置生效时刻与生命周期 > → < 配置特效 ></strong></p>
<p>而后续正式制作的步骤中,也将采取上述的流程开始讲述</p>
<h2>0.参数介绍</h2>
<p>首先讲解一下表中各个参数与实际意义</p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">功能说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">Id</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">Type</td>
<td style="text-align: left;">决定该buff是增益还是减益。[1-增益;2-减益]</td>
</tr>
<tr>
<td style="text-align: left;">ChildType</td>
<td style="text-align: left;">0-都不是,1-修改属性类,2-强制控制类</td>
</tr>
<tr>
<td style="text-align: left;">EffectType</td>
<td style="text-align: left;">是否特殊处理特效,1-是,空/0-否</td>
</tr>
<tr>
<td style="text-align: left;">Follow</td>
<td style="text-align: left;">是否跟随buff释放者的死亡而清除,1-是,2-否</td>
</tr>
<tr>
<td style="text-align: left;">Target</td>
<td style="text-align: left;">是否可以添加给其他人1-仅自己(无法通过任何方法添加给除自身以外的目标),2-可以添加给其他人</td>
</tr>
<tr>
<td style="text-align: left;">Trigger</td>
<td style="text-align: left;">生效时刻,具体说明查阅Trigger详细说明</td>
</tr>
<tr>
<td style="text-align: left;">Life</td>
<td style="text-align: left;">销毁参数/持续时间/生命周期</td>
</tr>
<tr>
<td style="text-align: left;">Rest</td>
<td style="text-align: left;">覆盖生效方式</td>
</tr>
<tr>
<td style="text-align: left;">EffectAdd</td>
<td style="text-align: left;">特效相关,暂不推荐配置</td>
</tr>
<tr>
<td style="text-align: left;">BoneAdd</td>
<td style="text-align: left;">特效相关,暂不推荐配置</td>
</tr>
<tr>
<td style="text-align: left;">EffectTrigger</td>
<td style="text-align: left;">特效相关,暂不推荐配置</td>
</tr>
<tr>
<td style="text-align: left;">BoneTrigger</td>
<td style="text-align: left;">特效相关,暂不推荐配置</td>
</tr>
<tr>
<td style="text-align: left;">Element</td>
<td style="text-align: left;">属性伤害相关,暂不推荐配置</td>
</tr>
<tr>
<td style="text-align: left;">Logic</td>
<td style="text-align: left;">BUFF逻辑脚本,该项决定了下面三个参数的具体配置手段</td>
</tr>
<tr>
<td style="text-align: left;">FolArr</td>
<td style="text-align: left;">浮点数参数</td>
</tr>
<tr>
<td style="text-align: left;">StrArr</td>
<td style="text-align: left;">字符串参数</td>
</tr>
<tr>
<td style="text-align: left;">IntArr</td>
<td style="text-align: left;">整数参数</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">值类型</th>
<th style="text-align: left;">配置区间</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">Id</td>
<td style="text-align: left;">正整数</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">Type</td>
<td style="text-align: left;">正整数</td>
<td style="text-align: left;">指定参数[1;2]</td>
</tr>
<tr>
<td style="text-align: left;">ChildType</td>
<td style="text-align: left;">正整数</td>
<td style="text-align: left;">指定参数[0;1;2]</td>
</tr>
<tr>
<td style="text-align: left;">EffectType</td>
<td style="text-align: left;">正整数</td>
<td style="text-align: left;">固定参数[0]</td>
</tr>
<tr>
<td style="text-align: left;">Follow</td>
<td style="text-align: left;">正整数</td>
<td style="text-align: left;">推荐参数[1]</td>
</tr>
<tr>
<td style="text-align: left;">Target</td>
<td style="text-align: left;">正整数</td>
<td style="text-align: left;">指定参数[1;2]</td>
</tr>
<tr>
<td style="text-align: left;">Trigger</td>
<td style="text-align: left;">正整数</td>
<td style="text-align: left;">指定参数[1;2;3;4;5;6;7]</td>
</tr>
<tr>
<td style="text-align: left;">Life</td>
<td style="text-align: left;">正整数组</td>
<td style="text-align: left;">推荐查阅备注说明,以给出的数值为参照来填写</td>
</tr>
<tr>
<td style="text-align: left;">Rest</td>
<td style="text-align: left;">正整数组</td>
<td style="text-align: left;">推荐查阅备注说明,以给出的数值为参照来填写</td>
</tr>
<tr>
<td style="text-align: left;">EffectAdd</td>
<td style="text-align: left;">字符串</td>
<td style="text-align: left;">不推荐填写</td>
</tr>
<tr>
<td style="text-align: left;">BoneAdd</td>
<td style="text-align: left;">字符串</td>
<td style="text-align: left;">不推荐填写</td>
</tr>
<tr>
<td style="text-align: left;">EffectTrigger</td>
<td style="text-align: left;">字符串</td>
<td style="text-align: left;">不推荐填写</td>
</tr>
<tr>
<td style="text-align: left;">BoneTrigger</td>
<td style="text-align: left;">字符串</td>
<td style="text-align: left;">不推荐填写</td>
</tr>
<tr>
<td style="text-align: left;">Element</td>
<td style="text-align: left;">正整数</td>
<td style="text-align: left;">推荐参数[0]</td>
</tr>
<tr>
<td style="text-align: left;">Logic</td>
<td style="text-align: left;">字符串</td>
<td style="text-align: left;">推荐查阅备注说明,以给出的数值为参照来填写</td>
</tr>
<tr>
<td style="text-align: left;">FloArr</td>
<td style="text-align: left;">浮点数组</td>
<td style="text-align: left;">推荐查阅备注说明,以给出的数值为参照来填写</td>
</tr>
<tr>
<td style="text-align: left;">StrArr</td>
<td style="text-align: left;">字符串组</td>
<td style="text-align: left;">推荐查阅备注说明,以给出的数值为参照来填写</td>
</tr>
<tr>
<td style="text-align: left;">IntArr</td>
<td style="text-align: left;">整数组</td>
<td style="text-align: left;">推荐查阅备注说明,以给出的数值为参照来填写</td>
</tr>
</tbody>
</table>
<h2>Life与Rest详细说明</h2>
<p>Life为buff的生命周期,用于决定buff生效多久的参数。
Life中的时间参数需要除以10000后使用,也就是10000 = 1秒
Rest为buff的覆盖刷新条件,用于决定当buff被重复添加时,采取怎样的变化。
这两个参数需要组合搭配才能使buff正确地生效。</p>
<h3>Life[A,B]</h3>
<ul>
<li>当A=1时,表示该buff按时间的方式销毁,B配置为具体时间。永远不销毁时配置为0</li>
<li>当A=2时,表示该buff按生效次数销毁,B配置为每次生效减少的层数</li>
</ul>
<h3>Rest[A,B]</h3>
<ul>
<li>当A=1时,表示该buff重复被添加时,buff层数增加1。B填写为该buff的最大层数</li>
<li>当A=2时,表示该buff为刷新类buff,B不需要配置。buff被重复添加时,会重置该buff的效果</li>
</ul>
<h3>常用Life与Rest组合</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">常见用途</th>
<th style="text-align: left;">Life配置</th>
<th style="text-align: left;">Rest配置</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">被动,永久不销毁buff</td>
<td style="text-align: left;">[1,0]</td>
<td style="text-align: left;">[1,1]</td>
</tr>
<tr>
<td style="text-align: left;">生效一次后销毁/伤害脚本</td>
<td style="text-align: left;">[2,1]</td>
<td style="text-align: left;">[1,1]</td>
</tr>
<tr>
<td style="text-align: left;">5秒护盾/刷新时补充护盾值/增益效果</td>
<td style="text-align: left;">[1,50000]</td>
<td style="text-align: left;">[2]</td>
</tr>
<tr>
<td style="text-align: left;">可以叠加A次的增益效果</td>
<td style="text-align: left;">[1,0]</td>
<td style="text-align: left;">[1,A]</td>
</tr>
<tr>
<td style="text-align: left;">可以叠加A次的持续时间效果</td>
<td style="text-align: left;">[1,150000]</td>
<td style="text-align: left;">[1,A]</td>
</tr>
</tbody>
</table>
<h2>1.BUFF效果与Logic</h2>
<p>BUFF的具体效果是由所填写的Logic脚本决定的,Logic脚本有丰富的效果,可以翻阅查找需要实现的效果。在次不多做具体描述,可以翻阅Logic脚本列表</p>
<h2>2.Trigger参数</h2>
<p>Trigger参数决定了该BUFF在什么时刻生效,游戏内存在着多个时刻,不同效果的BUFF需要在正确的时刻生效才能有对应的效果。
> "如果你试图让一个受到的伤害减少的BUFF在伤害造成之后,那他等同于摆设"</p>
<p>来介绍一下Trigger的配置以及生效节点吧</p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">生效时刻</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">1<code>常用</code></td>
<td style="text-align: left;">刷新属性</td>
</tr>
<tr>
<td style="text-align: left;">2<code>常用</code></td>
<td style="text-align: left;">受击者扣血前</td>
</tr>
<tr>
<td style="text-align: left;">3</td>
<td style="text-align: left;">死亡触发</td>
</tr>
<tr>
<td style="text-align: left;">4<code>常用</code></td>
<td style="text-align: left;">被动触发</td>
</tr>
<tr>
<td style="text-align: left;">5<code>常用</code></td>
<td style="text-align: left;">攻击者计算伤害后(计算暴击等操作前,处理增伤等脚本的时机)</td>
</tr>
<tr>
<td style="text-align: left;">6</td>
<td style="text-align: left;">计算伤害的时候 (同上)取的BUFF目标是最开始释放的那个人</td>
</tr>
<tr>
<td style="text-align: left;">7</td>
<td style="text-align: left;">伤害计算完成,未结算伤害时</td>
</tr>
</tbody>
</table>
<h2>3.BUFF特效</h2>
<p>先来看一下用到的参数以及效果</p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">功能说明</th>
<th style="text-align: left;">推荐填写</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">EffectAdd</td>
<td style="text-align: left;">BUFF被添加时,生成的特效</td>
<td style="text-align: left;">翻阅<code>特效列表</code>查找所需要的特效</td>
</tr>
<tr>
<td style="text-align: left;">BoneAdd</td>
<td style="text-align: left;">BUFF被添加时,在该位置生成</td>
<td style="text-align: left;">只推荐填写<code>BodyCenter</code></td>
</tr>
<tr>
<td style="text-align: left;">EffectTrigger</td>
<td style="text-align: left;">BUFF被触发时,生成的特效</td>
<td style="text-align: left;">翻阅<code>特效列表</code>查找所需要的特效</td>
</tr>
<tr>
<td style="text-align: left;">BoneTrigger</td>
<td style="text-align: left;">BUFF被触发时,在该位置生成</td>
<td style="text-align: left;">只推荐填写<code>BodyCenter</code></td>
</tr>
</tbody>
</table>
<p>可以注意到上述表格中,有BUFF被添加时与BUFF被触发时,需要注意的是</p>
<h3>一个BUFF被添加不等于这个BUFF被触发</h3>
<p>一个BUFF被添加可能来源是敌人、是友军、是开场的时候、是技能生效的时候,任何时候都有可能被添加。而BUFF被触发时,则是各种游戏内的节点,例如受到伤害时、造成伤害时、普通攻击时、释放技能时等等
而基于这样的情况,延伸出了两种特效的存在形式
通常来说,增益减益效果与护盾类BUFF都该采取<code>EffectAdd</code>与<code>BoneAdd</code>参数,而攻击时有概率xxx与受到伤害时有概率xxx等需要一直存在,但是触发才能生效的BUFF才使用<code>EffectTrigger</code>与<code>BoneTrigger</code>参数
因为特效的制作涉及到相对专业的知识需求,与本MOD制作教程的初衷 <strong>< 只要修改我们给定的数值 ></strong> 相违背,所以仅提供可直接使用的BUFF列表而非教学如何自定义制作特效</p>