二、第一个技能:火球术!1.技能指令WIKI 介绍完了技能后表后,开始介绍如何编写技能指令。 技能相关的指令可以在wiki上查找到,技能指令wiki地址是: 打开技能指令wiki后,首先看到目录 1 战斗中的指令脚本说明 2 战斗中的脚本指令列表 以上两项并非技能指令内容,而是战斗中事件里使用的事件指令,不过在技能指令与事件指令可以相互调用。 3 专门用于战斗场景中条件查询方法 4 伤害表达式格式 以上是技能里涉及数值判定和伤害属性填写的核心部分,建议简单浏览一遍。 5 技能指令编辑说明 以上是技能的核心指令内容,基本绝大部分技能指令都可以在此处翻到。 6 战斗中的特殊对象ID 7 单位对象附加触发脚本编辑说明 以上内容是战斗中剧情事件和人物挂载事件的相关内容,用于触发和执行战斗中的事件。 2.第一个技能讲了这么久的基础内容,现在开始讲解如何制作一个技能。 此处以火球术作为范例,来讲解重要指令 add_eft 的作用 首先填写技能的基础信息,如何填写可以参考上一章的内容 由于是瞬发的主动非指向性法术,因此可以省略被动、吟唱时间动作特效与吟唱指令,同时不需要进行目标判定因此省略条件判断 来到发动成功时指令,在这里,我们需要在技能使用后,发出一个火球,所有产生技能特效的技能,都需要用到一个指令:add_eft 我们打开wiki,翻到add_eft,可以看到一长串的内容,由此也可以得知该指令的重要程度。 看到这一长串是不是有点蒙?没关系,我们先写一个简单的火球术,然后再慢慢解释。 0#add_eft#M火魔弹2#cast_pos#3:0,2500 以上指令的效果是从自身位置开始,发射一个火球 可能你还是有点蒙圈,我们开始分解一下以上指令的内容 首先,# 这个符号是分隔符,在技能里,所有技能指令都遵守 0#技能命令2 或 0*条件表达式1#技能命令1 的填写方式,第一个数字代表技能指令的生效时间,这个时间是从这一串指令被触发后开始的。 条件表达式可写可不写,如果填写了条件表达式,则这一行指令只有满足条件后才会触发。 0#add_eft 这里代表从指令触发后,第0秒开始执行add_eft这个指令 0#add_eft#M火魔弹2 add_eft的第一个指令是要产生的特效体 M火魔弹2这个内容定义在Z战斗特效对象模型 里,之后会具体讲解这里的表格如何填写,现在这个内容是告诉你使用后会产生一个火球 此处其实还可以在特效体后面加上冒号:来填写速度和大小缩放信息,这个之后再详细讲解 0#add_eft#M火魔弹2#cast_pos add_eft的第二个指令是特效体出现的位置,在wiki里有详细的位置指令说明,此处粘贴一下: 此处使用的位置信息是cast_pos,意思是技能使用时的位置。这个位置不会随主角位移而改变。如果位置需要有偏移,则可以使用偏移信息。 偏移信息的填写格式是: 位置,x,y,z 此处,x是位置向前为正,y是位置向左为正,z是位置向上为正。 假如想要火球从头上发射,则应该填写的位置是:cast_pos,0,0,200 0#add_eft#M火魔弹2#cast_pos#3:0,2500 add_eft的第三个指令是位移信息,代表着这个特效体会以什么样的形式运动,以下是wiki里对于运动信息的解释: 此处3:0,2500的意思是,向指定方向运动,偏移角度0(即正前方)移动距离2500个单位 会移动的特效,速度可以在Z战斗特效对象模型 表里修改,也可以在第一个指令上加上冒号:来修改,之后会详细讲解。 我们把 0#add_eft#M火魔弹2#cast_pos#3:0,2500 这一串指令放到 发动成功时命令 里 然后打开游戏,构建mod,勾选mod,随后进入技能编辑器。 等进入技能编辑器后,在技能ID里输入之前创建的技能的ID,点击载入后,技能就会出现在技能栏里,同时技能的信息也会加载出来 在此处说明一下,技能编辑器,起到的其实是一个实时调整技能的作用,所有的内容都不会保存,所以如果你在技能编辑器里调整好了你的技能,一定要记得把参数复制回技能的表格里。 使用技能后,可以很明显的看到一个火球飞出去了! OHHHHHH!完结撒……等等,为啥火球碰到敌人就消失了,但是没伤害? 这其实是因为 M火球术 这个特效体有伤害范围判定,但是本身没有写默认的伤害表达式,因此,我们需要在add_eft里为其补上。 接着补充add_eft的内容: 0#add_eft#M火魔弹2#cast_pos#3:0,2500#0 add_eft的第四个指令是伤害判定的目标对象,分为以下几种: 伤害判定对象: 0:敌方 1:我方单位 2:敌我双方 由于我们需要痛击的不是队友,是敌人,所以此项数值写0. (如果你是一个二五仔或混沌中立者,可以写2) 0#add_eft#M火魔弹2#cast_pos#3:0,2500#0#type:2;dmg:[%stat:s_魔法攻击%]*3;hit:1000;blk:-1000;attack_type:900;eft:火焰受击4 最核心的部分来了!add_eft的第五个指令是伤害表达式。这里的内容由于比较繁杂,可能会造成理解有些难度。我们先翻到wiki上对伤害表达式的解释: 是不是看完还有一点理解不能?如果你理解了可以略过以下内容,如果没理解可以跟着我过一遍: type:2; 这个是伤害类型,0:普通近战攻击 1:普通远程攻击 2:技能伤害 3:治疗 4:回蓝 0、1、2的区别会表现在一些特殊的判定上,3和4则是恢复性的判定。 dmg:[%stat:s_魔法攻击%]*3; 这个是伤害数值,可以在这里写表达式,此处的意思是造成玩家魔法攻击3倍的伤害。如果你的伤害不能被防御抵消,可以使用t_dmg来实现此效果。同时,所有的恢复判定使用的都是t_dmg,因此如果你发现你写的技能无法恢复血量或气力的话,可以看看是不是没有使用t_dmg attack_type:900; 此处是伤害类型,这里写的伤害类型与 W武器护甲作用表 里的数值一致,目前弯刀里使用的伤害类型有以下几种: hit:1000;blk:-1000; 此处是伤害的闪避与格挡机制,因此在这里并列写出了。意思是该技能无法被闪避无法被格挡。 顺带一提,官方wiki上有个错误,技能不能被闪避是hit:1000而不是-1000,可以理解为命中满值则不可闪避。 eft:火焰受击4 此处是技能击中敌人后出现的效果,这里使用的特效定义在 Z战斗受击特效表 里。 我们把 0#add_eft#M火魔弹2#cast_pos#3:0,2500#0#type:2;dmg:[%stat:s_魔法攻击%]*3;hit:1000;blk:-1000;attack_type:900;eft:火焰受击4 复制到技能编辑器的 发动成功栏里,然后再次点击载入按钮,重新加载技能: 可以看到,火球击中敌人后成功冒出了伤害数值,并且出现了相应的受击特效! 那么,第一个技能就大功告成了。不要忘记把技能命令复制到EXCEL表格里哦。
|