在魔兽地图编辑器里怎么创造技能
发布网友
发布时间:2022-04-29 05:11
我来回答
共1个回答
热心网友
时间:2022-06-19 05:20
自制技能并不简单,这应该是个技巧活,由于无法上传附件,我推荐几个网站,比如魔兽地图吧、YDWE月协,U9魔兽地图制作等,里面有很多技能演示图提供下载。以下类容粘贴自台湾某高手写的教程,很强大。
用触发制作技能是一门大学问,触发技能写得好不好,几乎可以用来判断一个Mapper的功力。效果的写法无限多,就看大家怎麽发挥罗。以下提供几个触发技能的基本技巧:
1.隐藏单位和隐藏技能:这是触发技能的一大基本功,光是这一部分就能衍生出许许多多的特殊效果,例如:
•指定一个目标,使目标及临近敌军睡着的群体催眠术(将单位技能改为群体技能)
•指定一个地点,使临近敌军睡着的群体催眠术(将单位技能改为群体技能)
•指定一个区域,使区域内敌军睡着的群体催眠术(将单位技能改为群体技能)
•在施法者身上产生邪狂气(使指令目标的技能改为不指定目标)
•指定一个敌军,使它随机受到缓慢、妖火、诅咒、酒醉等效果(混合技能效果)
原则上全地图建立一种隐藏单位就够了,技能等都可用触发加。不过请特别注意:
•隐藏单位不应该被别人看到,可以用Hide Unit触发将隐藏单位隐藏,或者把单位的Model设为不存在(随便打个.或空白即可)
•隐藏单位不应该留下影子,可以将单位的影子消除,或者用Hide Unit触发将隐藏单位隐藏
•隐藏单位不要在小地图上显示出来,可以把Hide Minimap Display改为True、加上蝗虫技能,或者用Hide Unit触发将隐藏单位隐藏
•隐藏单位不应该能被攻击或受法术影响,可以把Target As改为None、加上蝗虫技能,或者用Hide Unit触发将隐藏单位隐藏
•隐藏单位死亡时不应该留下 体,可以把Death Type改为Can't Raise, Does not Decay,或者用Hide Unit触发将隐藏单位隐藏
•隐藏单位用完当然就要处理掉。可以用Unit - Kill + Unit - Remove(根据B社所言,移除一个被隐藏的单位可能会出某些问题。如果一个单位是被隐藏的,最好先杀死再移除)、用Unit - Add Expiration Timer,或者把隐藏单位的生命值设很低并月设定每秒扣血,让它自动死亡。
•Art - Animination - Cast Point、Art - Animination - Cast Backswing设为0:不要有施法时间才能在一瞬间完成施法
•如果隐藏单位要发射飞弹类的技能或攻击,最好不要让它占有体积,否则位置会怪怪的。可以把Movement Type设为None,或者用触发Unit - Turn Collision Size Off
接着是隐藏技能,也就是让隐藏单位施展的技能。请特别注意以下数据的设定:
•Casting Time 设为0:不能有施法时间,否则不能在一瞬间对大量目标施法(少数技能如Shadow Strike( 影击)例外)。
•Cooldown 设为0:不能有冷却时间,不然对一个目标施法後就没了
•Mana Cost 设为0:Mana不够就不能放了
•Techtree - Check Dependencies 设为False:忽略科技需求,省得还要调整科技(当然把需求的科技全删掉也可以)
2.特效单位:顾名思义就是把单位拿来当特效用。因为光是用触发没办法改变特效的大小、颜色、透明度、高度等设定。一般都是建立一个单位,把模组改为想要的特效、把影子删掉、并加上Locust(蝗虫)技能以免受其它单位技能影响。不要用时再用触发删除即可。
•要改变大小可用Animination - Change Unit Size
•改变高度可用Animination - Change Unit Flying Height,注意单位移动类型必须设为Fly
•改变颜色和透明度可用Animination - Change Unit Vertex Coloring配合Unit - Change Color
•改变动作可用Animination - Play Unit Animation
3.技能启动:触发技能的事件大致上有以下几种--
•以无效果的技能启动:当单位施展某技能,就启动触发效果。一般以Unit Starts the effect of an ability作为事件
•攻击时发动:一般以Unit Is attacked作为事件,发动者为Attacking Unit。注意此事件并非单位击中目标时发动,所以会有些许的不精确(最严重的可能是触发启动了,单位却没有真的击中目标)。
•被攻击时发动:以Unit Is attacked作为事件,发动者为Attacked Unit(Triggering Unit)。注意此事件并非单位被击中时发动,所以会有些许的不精确(最严重的可能是触发启动了,单位却没有被击中)。
•杀人时发动:以Unit Dies作为事件,发动者为Killing Unit
•被杀时发动:以Unit Dies作为事件,发动者为Dying Unit(Triggering Unit)
•召唤单位时,在召唤出的单位附近产生效果:以Unit Spawns a summoned unit作为事件
•受伤害时发动:以Unit Takes damage作为事件
4.微动作:想制作跳砍、击退等兼具力与美感的技能吗?这类技能其实就是像卡通一样,在极短的时间内做间断的动作,使它看起来像连续的一样:
[触发一]:当单位施展技能时,设定相关变数。计次变数归零,并开启[触发二]。
[触发二]:一开始是关闭的。每过0.0x秒,根据[触发一]的变数进行小幅的移动或动作设定。每次执行时计次变数加一,当它大於一定数值时就完成技能效果并关闭此触发。
以上做法有个小小的缺点是时间不完全精确,因为Turn Off时触发的事件仍然在计时中。假设[触发二]是每0.05秒执行一次,当[触发一]启动时,可能间隔0~0.05秒才开始执行[触发二]。如果该技能连此种微小的误差都必须考虑的话,请爱用计时器:
建立一个计时器
[触发一]:当单位施展技能时,设定相关变数。计次变数归零,设定计时器重覆计时,0.0x秒归零。
[触发二]:以[计时器归零]作为事件,根据[触发一]的变数进行小幅的移动或动作设定。每次执行时计次变数加一,当它大於一定数值时就完成技能效果并暂停计时器 。
可能有人想问:为什麽不用For回圈和Wait来做,如此一来可以直接用Triggering Unit之类的函数,也可以省下不少变数?
但是很可惜的是--Wait有延迟,最多可达约0.2秒。虽然一般情况下,0.2秒小到看不见。但是如果你想让一个单位连续移动,0.2秒的延迟已足够使它看起来断断续续,因此不适合用这个方法。
这一类的技能要特别注意突发状况的处理,例如跳砍时施法者挂掉了怎麽办?击退时目标乱跑怎麽办?一般都会用暂停和无敌来预防这些状况发生。但是用触发处理暂停的话,假设技能一和技能二都会使目标在效果期间暂停。如果技能一发动之後技能二又对同一个目标发动怎麽办?
技能一暂停目标=>技能二暂停目标=>......=>技能一解除暂停目标=>(这段期间技能二还没解除,但是目标的暂停已被取消。可能会出问题)=>技能二解除暂停目标。解法方法可以用技能来使目标无敌,但暂停则较麻烦,请不要制造出二个以上的暂停技能同时作用在同一目标的机会。
5.连结技能:一般做法分成叁部分--
[触发一]:以单位开始施展技能作为事件。为开始施展时的相关设定
[触发二]:以每0.0x秒作为事件(或者用计时器的做法),是施法中的实际效果。由[触发一]开启、[触发叁]关闭。
[触发叁]:以单位停止施展技能作为事件。为技能停止时的处理
6.利用Player - Enable/Disable Ability、Unit - Add Ability和Unit - Remove Ability来允许玩者使用技能或隐藏不想给玩者看到的技能(用Add/Remove Ability比较准确,但是由於英雄技能一但被移除就无法学习,因此多半只能用Enable/Disable Ability处理)。使用Player - Enable/Disable Ability请特别注意单位所有权转移的问题。
7.利用不同的Buff做为判断单位是否正受某些技能的影响,进而精确抓出想要的单位。
此外,用触发制作技能时,请特别注意以下几点:
o技能可否同时发动:有些技能要用变数储存资料,如果有二个以上的单位在同一时间发动这种技能,可能会有BUG。
o技能可否重学:用Upgrade等设定的技能要注意重修的问题。
o可否略过冷却:有用到变数或Turn On/Off Trigger的技能要注意。
o施法者改变玩家:如果施法者为谁拥有对技能有影响的话要注意。