在魔兽世界援助盟友材料争霸地图编辑器中,如何设置盟友建筑向己方出售物品

查看: 4473|回复: 7
魔兽地图编辑器-技能篇导读(转)
点击注册会员,更多精品好玩的地图等你来下载!
才可以下载或查看,没有帐号?
如果你看过了单位篇的介绍,相信你对WE已经不是那么陌生了把,所以现在我们就开始对魔兽中的技能进行探究。在开始前我要阐明为了照顾新手,我对技能只进行较易懂,较狭义的讲解,并且只对技能的共同特征进行讲解。
首先技能分为3类,单位技能,英雄技能,物品技能。
1。单位技能:技能无须学习,不能主动的升级,只要单位拥有技能就可以使用。
1。单位技能无论你设置多少级,一但放在单位身上都默认为1级,但这并不是说单位技能的等级没用,在以后的触发篇(Trigge)中,我们可以通过触发器来变换技能等级。
2。英雄技能:技芸梢匝埃梢灾鞫纳叮辉谟⑿鄯⒒幼饔茫桓龅ノ灰话阒荒苡涤?个英雄技能。
3。物品技能:技能无须学习,不能主动的升级,只要单位拥有带有此技能的物品就可以使用,只在物品发挥作用。
在魔兽中3类技能没有明确的类别限制,各个技能的类别可以通过设置进行改变。也就是说,英雄技能一样可以设置为单位技能,单位技能一样可以设置为物品技能等等,这样我们使各类技能之间的特性变为共性。
首先,我们一样要进行一些步骤。
1。打开WE,按下F6开启物体编辑器。
2。点击技能编辑栏,在右边出现的树型分支中选择人类—英雄—专注光环。
3。Ctrl—C复制,Ctrl—V粘贴,出现一个专注光环技能在自定义分支中。
<p id="rate_596" onmouseover="showTip(this)" tip="虽然很老
却很实用&FB + 50
" class="mtn mbn">
光影效果:设置光影类效果,如:死亡之指的红色闪电,先知的连锁闪电。
1。光影效果的特点就是在2个点之间创造1个闪电型效果,什么叫闪电型效果?就是像闪电一样可变化长度且快速传导的效果,它的启始点是释放单位的位置,终止于目标单位的位置。
2。不是任何有启始点和终止点的技能都可以设置光影效果,能拥有光影效果的技能有连锁闪电,死亡之指,医疗波等等。
3。大部分可以设置光影效果的技能只能有1种光影效果,如:死亡之指,法力吸取等,但个别技能可以有2种光影效果,如:连锁闪电,医疗波等,这种技能的光影效果的分为主要和次要两部分,主要的就是施法单位和第一目标单位之间的光影效果,次要就是上级目标单位和下级目标单位之间的光影效果。但如果只设置1种光影效果,那么就默认主要和次要的光影效果都是同样的。
动画名字:设置单位释放技能时做出的动作,一般共有的动作为:attack(攻击的动作),walk(行走的动作),stand(站立的动作),spell(释放魔法的动作),death(死亡的动作)等等,我们可以在WE中查找自己想要的动作。
1。有些单位是没有上述的动作的,因为各个单位模型文件中的动作不一样,动作名字也不一样。
2。在WE中查找单位的动作,可以通过WE中窗口命令中的单位面板来查找,开启单位面板,在单位面板中找选出想要的单位,这时在WE左边的物体观察窗口中会显现单位,可以动作的单位就会显现相关的动画,以及动画名称。
3。有些动画有一些参数,如Attack - 1,Attack - 2,Attack Slam,Stand victory等等,我们在设置动画时应这样设置,如:Attack - 1,设置成:
│attack │
再如:Stand victory,Attack Slam设置成:
│stand │ │attack │
│victory │ , │slam │。
图标—关闭:设置可开启或关闭的技能开启后的图标,如:圣骑的无敌开启后的图标。
图标—普通:设置技能图标。
图标—研究:设置学习技能的图标,也就是加点时的图标。
图象—目标:设置释法后,目标单位的技能图象效果。也就是在你施法的目标上显示一个图象模型文件。
1。图象—目标只能针对有明确目标的技能,也就是单体技能。一般只能设置1个,多了无用,但个别技能可以设置多个。
2。图象—目标的技能图象效果是不会持续的,只能存在很短的时间,有多短?也就是1次图象效果动画的时间,如你设置的图象模型文件没有动画,那么将不会显示。
3。图象—目标的设置使我们可以随心所欲的改变施法时在目标单位上显现的图象效果,换句话说,它可以使我们的技能更COOL,比如:我们可以将圣骑的神圣之光技能的图象—目标设置成圣骑的复活技能的效果,这样在使用神圣之光给盟友加血时,会有个光柱或天使从天而降的效果。
图象—目标附加点:设置图象—目标的图象效果可以在目标单位上创建几个。最大为6,最小为默认0,这个0不是代表无,而是与图象—目标设没设置有关,没设置在大也没用,只要设置了图象—目标,就会有图象被创建。
图象—目标附加点1:设置第一个目标图象创建在目标单位身上的位置。图象—目标附加点2/3/4/5/6:同理。
1。新手对于图象—目标附加点也许很难理解,举个例:当我们得到物品闪电球时,会有个闪电球在我们的武器上旋转,这个就是创建了1个闪电球的动画图象在单位武器上,他的附加点就是weapon(武器),而我们中了暗影突袭的毒后头上就会有个黑色小鬼,这个小鬼的附加点就是overhead(头上),这样也许你会好理解些。
2。由于附加点是个十分庞大字符串库,所以我在此引用长风长歌的解析:
主要部位:  &&
overhead 漂浮在单位的头顶上,但不随单位的动作而晃动&&
head 在单位的头上,并随单位头部的动作而晃动&&
chest 在单位的胸部 ,并随单位胸部动作而晃动
origin 预设,就是在单位的位置上,不会晃动&&
hand 手上(有时和在武器上很难分清)会随手动
foot 脚上 会随脚动
weapon 武器上 会随武器动一般在武器的半截位置或尖端&&
sprite 游符,小精灵(只对建筑、机械单位及英雄血法有效)也就是围着血法转的球体,配合下面的first second third fourth fifth sixth使用,但不是所有建筑或机械都有这六个位置,这六个位置对于不同事物是不同的。用时可以自己测试。若没有修饰默认为first&&
medium 中间(只对建筑有效)配合下面的first second third fourth fifth sixth使用,测试结果是最后一种部位有效。
large 全体(只对建筑有效) 同上
mount 坐骑(只对有坐骑的有效,说明的见下面举例)
rear (对四足动物或有坐骑的有效)就是他们的屁股位置
部位位置修正:  &&
left 左边(如hand left=左手,输入left hand也是)&&
right 右边&&
rallypoint 集结点,但是这个集结点是指默认集结点位置,不会随你在游戏中的点选而改变
具体搭配挺多大概有:
left chest,right chest,left mount,right mount,left hand,right hand,left rear,right rear,mount rear,left foot,right foot,weapon left,weapon right&&
举例:拿人族骑士来说吧(因为他几乎所有部位俱全)特效是旗帜
origin-在身体偏右侧地面上,会随骑士移动移动,单不受他的修饰性动作的影响
hand=right hand/hand right-在右手,手举起时旗帜会挥动
left hand/hand left-在左手,同上
head-在头上,扭头时旗帜也动(没有left head与right head)
chest-向前进时胸部前倾,旗帜也是
left chest=left mount=mount left=chest left、right chest=right mount=mount right=chest right:身体一侧,会随身动
left/right:在左/右前腿,会随腿动而动
rear=right rear:在右后腿(马的腿)
left rear:在左后腿
mount:在马头上
mount rear 马屁股上
foot= (right foot )=right
left foot=left
weapon left(不可写left weapon):左手武器尖端
weapon=weapon right:右手武器
此外1 没有overhead left//origin left等语句
2 如果使用了错误语句如:left eye只会从左到右执行有意义部分即left;若写成了eye left则什么也不执行。
最后在说一句,不是所有的单位都有以上附加点的。
箭矢技巧:设置释放技能时发出的箭矢图象。
1。此项其实就和单位设置中的箭矢图象一样,就是你射出技能击打目标的图象。如:死亡缠绕投出的哪个骷髅。如果我们将此项去掉,那么此种技能将看不到射出的图象,这对我们编辑某种急发技能很有帮助,如:我们将山丘的风暴之锤的箭矢技巧删除,在设置图象—目标为季风,这样就会看见一道闪电从天而降击中目标,然后目标就被击晕。还是一个COOL
2。不是所有的技能都可以设置箭矢技巧,需要原技能有的才可以用。
箭矢速度:设置箭矢技巧的飞行速度。这个还是我在单位篇中说的,如果太底,等你第2个技能发出来时,你的第一个技能还没击中目标了。
图象—按钮位置—关闭—X:设置可开启或关闭的技能开启后图标的横排位置。也就是技能图标在单位命令栏的横排位置。
图象—按钮位置—关闭—Y:设置可开启或关闭的技能开启后图标的纵排位置。
图象—按钮位置—普通—X/Y:设置技能图标的位置。
图象—按钮位置—研究—X/Y:设置学习技能时技能图标的位置。
1。技能图标的位置具体如下:
│X0,Y0│X1,Y0│X2,Y0│X3,Y0│
│X0,Y1│X1,Y1│X2,Y1│X3,Y1│
│X0,Y2│X1,Y2│X2,Y2│X3,Y2│
2。技能与技能图标位置之间最好不要重叠,这样技能也许会看不见。如果位置重叠,技能会隐藏,但被动技能一样发挥作用,这提示我们一个隐藏技能的方法。但他不是100%的有用,这也许是WE的一个BUG。
图象—施法者:同图象—目标,只是它作用在技能释放者头上。
影响区域:设置技能的作用区域。
1。此项只对圆周面攻击技能有作用,如:牛头的战争践踏,山丘的雷霆一击,各种光环技能,对牛头的震荡波技能无作用,对于震荡波一类的面攻击技能,在他的数据类设置项里有相关项可设置。
2。此项的原理是设置以施法者为圆心的攻击圆形区域的半径大小,一个屏幕的宽度差不多是2000左右。
所定允许:设置技能可对其施法或作用的单位类型,可参照单位篇中的所定允许。
1。关于技能的所定允许,我说可以参照单位篇中的所定允许,并不是说它和单位篇中的道理一样,小小的改动是可以的,但是当你想对技能的所定允许进行大幅度的改变时,你照着单位的所定允许改是不行的,因为每种技能的所定允许是WE事先设置定的,也就是什么样的技能就会有什么样的所定允许,就好像ID一样,在这里他的所定允许的ID改变或混乱了,这个技能都不会达到你要的效果。所以这时我们就要找和我们想要的所定允许差不多的技能,将其所定允许复制下来进行粘贴,再在最小范围内进行改变。
持续时间—单位:设置技能对普通单位持续的时间。
持续时间—英雄:设置技能对英雄持续的时间。
1。持续时间只对有持续效果的技能有作用,比如:圣骑的无敌时间,山丘的风暴之锤击晕的时间,暗影突袭中毒的时间等等,对与没有持续效果的技能此项无作用。
2。持续时间为0时并不是没有,而是永远持续,直到单位死亡。所以最短魔法效果时间都是0.01秒。
3。持续时间还关系着魔法效果的时间(魔法效果将在下面讲解)。
物品技能:设置此技能是物品技能。False为假,True为真。
英雄技能:设置此技能是英雄技能。False为假,True为真。
1。如果以上2项都为False,那么此技能就为单位技能。
特效:设置技能特效效果,就是一种图象效果。
1。特效只作用与可设定持续时间且面攻击的技能,如:先知的地震,巫妖的死亡凋零等。
2。特效只作用在施法的区域,不在单位身上出现,如:先知地震升起的火山,巫妖死亡凋零的那一片暗影。
3。换掉或去掉特效都不会影响技能的作用,只是图象效果变了,比如 :将鹿子的宁静特效换成先知的地震,那么在施展宁静时,就会是地震的图象效果,但还是宁静在作用。
4。特效是可以具体编辑的,如:我们可将巫妖死亡凋零中的暗影换成圣骑的神圣之光或巫妖的霜之星星。这样可以个性化我们的技能,创造新的技能效果。它的具体编辑过程是:
a.在物体编辑器中选择魔法效果栏,在左边的树状分支中找到你要编辑的特效(你可以使用编辑中的查找命令来寻找),记住是特效不是魔法效果。
b.选种想要编辑的效果后,右边会出现相应的设置项,现在你可以自己编辑特效了,但一般特效的附加点请不要改变,因为特效是作用在区域的效果。
c.最后在你的技能中起用你编辑的特效。
魔法效果:设置技能魔法效果,就是一种图象效果。
1。魔法效果只作用与可设定持续时间的技能,如:圣骑的无敌,山秋的风暴之锤,巫妖的死亡凋零,各种光环技能等
2。魔法效果只在目标单位身上出现,随目标单位移动而移动,是持续显示的,持续时间和持续时间项有关,如:圣骑无敌的光罩,山秋风暴之锤击晕单位的晕圈,巫妖死亡凋零单位头上的黑色小火(一般人没注意)
3。换掉或去掉魔法效果都不会影响技能的作用,只是魔法效果变了。如:将圣骑的专注光环的魔法效果换成吸血光环,那么各个单位就会呈现吸血光环效果,但作用的还是专注光环。如去掉魔法效果,一般的技能看不到魔法效果,但部分技能的部分效果一样出现,如暗影突袭每秒出现中毒的伤害(真是阴魂不散呀)。
4。魔法效果是可以具体编辑的,方法同特效的编辑。在这里要说明的是魔法效果和特效在编辑中不同的是,特效编辑中的图标在游戏中没用,而魔法效果的图标就会在单位的状态栏中显示出来。
等级:设置技能可有几级。
1。此项一般只有英雄技能有意义,因为单位技能无论你设置多少级,他都只有1级有用。
2。并非单位技能无用,我们可以用触发编辑器设置其等级的变化,将在以后的触发篇中说明。
3。物品技能完全没用。
要求等级:设置英雄学习技能需要的等级,只对英雄技能有效。
跳级要求:设置技能学习的跳级要求,默认0为每2级可学习。
魔法释放时间:设置在发出魔法前等待的时间,也就是让你的单位将动作做够在释放魔法。典型代表:血法的火。
魔法释放时间间隔:设置魔法释放后恢复的时间。
魔法释放范围:设置技能施法单位和目标单位之间可距离的范围,如果你想做BT的技能,把这个改高点就可以吓死人,如:大家看过在自己基地用死亡凋零打对方基地的巫妖吗。
魔法消耗:设置技能施展需要的魔法值。
科技树—是否使用:设置技能使用是否有科技限制。若有,技能就必须完成相关科技的建造才能使用。
科技树—要求:设置用来限制的科技。
科技树—要求—等级:设置用来限制的科技还必须达到的等级。
1。如果你在做RPG地图,一般可以将科技类的限制全去掉。
写完以上后,大部分人也许还是对技能感到很茫然,这是肯定的,因为我只讲了技能的共性,而各个技能的特性却未讲分毫,不是笔者偷懒,而是WE中的技能上百—量大,但都浅而易懂—简单,所以我若在此一一点到,未免烦琐了些。为了生动大家对技能的理解,激发大家对技能的研究,我就试做几个技能给大家看看:
技能1:一个面攻击的霜之星星。
原形技能:山丘的雷霆一击。
步骤1:将雷霆一击图标和名字改为霜之星星。
步骤2:将雷霆一击图象—施法者去掉
步骤3:将雷霆一击持续时间改为2秒。
步骤4:在物体编辑器技能栏中找到霜之星星,将其图象—目标项复制下来。
步骤5:在物体编辑器魔法效果栏中找到雷霆一击魔法效果,在它的图象—目标项粘贴。
步骤6:把雷霆一击魔法效果的图标去掉。
步骤7:将技能赋予英雄,放上些敌方单位测试。
如果你成功了,你可以试试用大法师的暴风血技能改改。
技能2:一个群体攻击的死亡之指。
原形技能:先知的连锁闪电。
步骤1:将连锁闪电图标和名字改为死亡之指的图标。
步骤2:将连锁闪电的2个光影效果改为死亡之指。
步骤3:将连锁闪电图象—特别的改为死亡之指图象—特别的。
步骤4:对技能的相关数据进行修改,攻击力改高。
步骤5:将技能赋予英雄,放上些敌方单位测试。
如果你成功了,你可以试试用加纳的叉状闪电技能改改。
技能3:降低敌人防御力的光环。
原形技能:圣骑的专注光环。
步骤1:将专注光环的图标和名字改为你喜欢的名字。
步骤2:按住Shift双击(这样允许你输入负数)专注光环数据—装甲奖励在里面输入-100
步骤3:在物体编辑器技能栏中找到减速光环(使用编辑中的查找命令查找),将减速光环设置中的所定允许复制,粘贴到你的专注光环所定允许中。
步骤4:在物体编辑器魔法效果栏中找到专注光环魔法效果,将里面的图标换成你设置的图表,相关介绍也换成减防光环的介绍。
步骤5:将技能赋予英雄,放上些敌方单位测试。
如果你成功了,你可以试试邪恶光环等其他光环。
以上的例子只是小小的变化,但我们却可以从中找到一片森林,也可以说WE中的每一个技能都是片森林等待着你动用想向力发现。
Powered by
X3.2 Designed by查看: 2711|回复: 9
魔兽争霸III技能指南
主题精华荣誉值
偶久副站长
Renee的前言:
这是Wc3c的PitzerMike在06年3月整理的一份技能指南,即使是现在看来也相当有用,我曾说过只要看完这文你基本就直接变高人,可以去外头随便找个we网站混膜拜当饭吃。
我当时曾翻译过此文,但是由于不幸GA服务器回档,导致全没,我自己又没有存稿。所以一直很气馁,如今二年之后,又重新回来翻译了这篇文章,主要还是由于看到Ors的转载的关系。
由于个人习惯原因,文中出现的技能名和您的we中技能名可能不同,我是按照wow的技能译名来翻译的,不过鉴于每个技能都会说明其ID,因此这应该不会造成歧义。
原文也存在许多根本性错误和过时信息,这在译文中都已经更正,所以如果您在观看过程中发现原文和译文的不同之处,请不必在意。
另外,如果您有自己的技能小窍门,也请回帖补充。
好了,我们开始吧。
魔兽争霸III技能指南
这是一份有关魔兽争霸III对象编辑器当中小秘密的简介。有众所周知的,也有极为冷僻的。不过这些东西大部分并非我的个人发现,而是整个网站集体智慧的结晶。每个在Wc3c发帖的人都为这指南出了份力,我所做的仅仅是整理工作而已。对于文中可能出现的拼写/语法问题还请大家能谅解,如果您在其中发现什么描述性错误或者有什么要补充请回帖告知。
BTW,您最好使用火狐来浏览本教程,因为在IE下观看本页面会出现很长的横向滚动条……
希望这能给我们网站帮上点忙,这样即使我们失去了宝贵的会员,也至少能保住这些知识。
技能:
ANcl(引导):这个技能本身就是为了作为假技能而存在的,在游戏中没有任何实际效果,却可以引发技能事件。你可将其设定为单位目标、点目标、AOE、单位、点目标或者干脆无目标技能,是否显示图标以及是否显示AOE范围。此外另有还拥有物理技能、终极技能和单独施法三个选项。还能通过设置引导时间和禁止其他技能这两项来改变整个引导行为,后者可令单位在引导时控制栏按钮暂时消失。你也可以改变施法者和目标身上的特效图像,唯一遗憾的是无法添加buff。另外,你还可以更改该技能的基础命令ID,这样就可以使该技能的多个的副本在同一个单位身上互不干扰地运作。当然,法术的实际效果还得靠你的触发来实现。
jass:&&Copy code
function Channel_Conditions takes nothing returns boolean
& &return GetSpellAbilityId() == &你的自定义引导技能id&
endfunction
function Channel_Actions takes nothing returns nothing
endfunction
function Channel takes nothing returns nothing
& &local trigger t = CreateTrigger()
& &call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_CAST)
& &call TriggerAddCondition(t, Condition(function Channel_Conditions))
& &call TriggerAddAction(t, function Channel_Actions)
endfunction
1.18版本以后,此技能在法术书中也能正确地生效,并能正常进行工程升级。唯一潜在的问题是该法术可被致昏技能打断。要想绕过此问题只有靠ANab(强酸炸弹)之类技能来模拟昏技。
Amrf(乌鸦形态):允许你改变地面单位的飞行高度
jass:&&Copy code
call UnitAddAbility(u, 'Amrf')
call UnitRemoveAbility(u, 'Amrf')
添加删除该技能后,你就能用SetUnitFlyHeight()来调整单位u的高度,即使它是个地面单位,但是对建筑无效。
Sca1(混乱):原文描述有误,so暂时pass
Aloc(蝗虫):拥有蝗虫技能的单位无法被选择、无法成为目标并忽略一切地形限制。这意味着你只能通过触发来控制它。它的头顶也不会显示生命条。就目前版本,靠UnitRemoveAbility(u, 'Aloc')是无法正确消除蝗虫效果的。如果你在添加蝗虫以后添加混乱技能,单位会变得无法选择却仍能成为目标并且遵守地形限制。一种消除蝗虫技能的方案是先隐藏单位再删除技能,然后再重新显示单位,不过这并不完美,存在的问题是你无法点选单位,而只能框选。
jass:&&Copy code
function UnitRemoveLocust takes unit u returns nothing
& && &local boolean backup = not IsUnitHidden(u)
& && &call ShowUnit(u, false)
& && &call UnitRemoveAbility(u, 'Aloc')
& && &call ShowUnit(u, backup)
endfunction
Amec(机械小动物):通过这个技能召唤的单位,在非控制者(包括非共享控制的盟友)看来就像是中立友善的单位。唯一的区别是,当敌人右键点击该单位时发布的是攻击命令。你无法更改此技能召唤的单位类型,因为它只会在当前地形的小动物中随机选择,不过你可以响应召唤事件,然后给它来个变身。
jass:&&Copy code
function Transform_Conditions takes nothing returns boolean
& &return GetUnitTypeId(GetSummoningUnit()) == &unit type that can cast mechanical critter&
endfunction
function Transform_Actions takes nothing returns nothing
& &call DestroyEffect(AddSpecialEffect(&Abilities\\Spells\\Orc\\FeralSpirit\\feralspiritdone.mdl&, GetUnitX(GetSummonedUnit()), GetUnitY(GetSummonedUnit())))
& &call UnitAddAbility(GetSummonedUnit(), &chaos ability id&)
endfunction
function Transform takes nothing returns nothing
& &local trigger t = CreateTrigger()
& &call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SUMMON)
& &call TriggerAddCondition(t, Condition(function Transform_Conditions))
& &call TriggerAddAction(t, function Transform_Actions)
endfunction
当然你也可以更改单位的所属种族,然后将其加入当前地形的小动物列表,效果一样。
AId1, AItg, AIlf, AImb, AIsi, Aamk, AIsr, AIdd, AIas, AIms, Arel, AIrm, AIcs(护甲加成,攻击加成,生命加成,法力加成,视野加成,属性加成,符文护腕,物品防御,攻速加成,速度加成,生命恢复,法力恢复,物品暴击):这些技能可以改变单位的护甲、攻击、生命、法力、视野、敏捷、力量、智力、魔抗、反伤、免伤、攻速、移速、回血、回魔、暴击和闪避的加成数值。幸运的是这些技能的效果都能叠加,因此通过位标识技术,你就可以只靠有限几个技能副本来组合出任意加成值。具体可以参看Weaaddar和Blade两人的加成模板系统。所有的技能都能在负值下奏效,不过视野加成这技能有点例外,如果单位身上拥有能侦测隐形的技能,它就无法减小视野。'AIdd’和'Aegr'(艾露恩的赐福)这两个技能拥有相同的数据域:魔法抵抗、伤害削减、和反弹,可它们的攻击速度因子和移动速度因子两项没有实际效果。一个特殊的bug允许你不添加任何永久技能就能改变一个单位的生命和法力上限。方法很简单:做一个自定义的AIlf(生命加成)或AImb(法力加成)技能,然后将其级数设为1级以上,1级的加成值为0,而2级的加成值设为你目的值的负数。比方说你想加200就设为-200。现在,用UnitAddAbility()添加该技能,再用SetUnitAbilityLevel()将其等级设为2。这些技能存在bug,因此你会发现没有实际加成。然后你立刻用UnitRemoveAbility()删除这个技能。这次war3会试图一并取消这-200的加成(虽然因为bug的存在,这个值之前并没有加上),结果是,单位凭空增加了200的生命/法力上限。至此,你已成功地不添加任何永久技能就改变了单位的生命/法力值。
ANvc(火山):该技能是唯一可以创建可破坏物/装饰物的技能,也许会有点用途吧。
Absk, Adef, Amdf, ANms, AEim, AHds(狂暴,防御,魔法防御,法力盾,献祭,圣盾术):这些技能使用时不会打断施法者的当前命令。后五个可以切换打开和关闭状态(前提是在游戏常数中开启此功能).将它们的效果值设为0,并捕捉开启和关闭命令就可以简单地自定义他们。当然如果你不希望显示buff,那么捕捉到命令后记得用UnitRemoveAbility()删除之。不过,这些技能在被删除时会发布两次关闭命令,因此记得加上简单的规避措施来避免捕捉到这些事件。
jass:&&Copy code
function WasUnOrder takes nothing returns boolean
& &return OrderId2String(GetIssuedOrderId()) == &undefend& or OrderId2String(GetIssuedOrderId()) == &magicundefend& or OrderId2String(GetIssuedOrderId()) == &unmanashield& or OrderId2String(GetIssuedOrderId()) == &unimmolation& or OrderId2String(GetIssuedOrderId()) == &undivineshield&
endfunction
function Defense_Condition takes nothing returns boolean
& &return GetTriggerEventId() != EVENT_PLAYER_UNIT_ISSUED_ORDER or ((OrderId2String(GetIssuedOrderId()) == &defend& or OrderId2String(GetIssuedOrderId()) == &undefend&) and GetUnitAbilityLevel(GetOrderedUnit(), 'Adef') & 0 and GetUnitState(GetOrderedUnit(), UNIT_STATE_LIFE) & 0)
endfunction
function TriggerRegisterDefenseEvent takes trigger t returns triggercondition
& &call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
& &return TriggerAddCondition(t, Condition(function Defense_Condition))
endfunction
function MagicDefense_Condition takes nothing returns boolean
& &return GetTriggerEventId() != EVENT_PLAYER_UNIT_ISSUED_ORDER or ((OrderId2String(GetIssuedOrderId()) == &magicdefend& or OrderId2String(GetIssuedOrderId()) == &magicundefend&) and GetUnitAbilityLevel(GetOrderedUnit(), 'Amdf') & 0 and GetUnitState(GetOrderedUnit(), UNIT_STATE_LIFE) & 0)
endfunction
function TriggerRegisterMagicDefenseEvent takes trigger t returns triggercondition
& &call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
& &return TriggerAddCondition(t, Condition(function MagicDefense_Condition))
endfunction
function ManaShield_Condition takes nothing returns boolean
& &return GetTriggerEventId() != EVENT_PLAYER_UNIT_ISSUED_ORDER or ((OrderId2String(GetIssuedOrderId()) == &manashield& or OrderId2String(GetIssuedOrderId()) == &unmanashield&) and GetUnitAbilityLevel(GetOrderedUnit(), 'ANms') & 0 and GetUnitState(GetOrderedUnit(), UNIT_STATE_LIFE) & 0)
endfunction
function TriggerRegisterManaShieldEvent takes trigger t returns triggercondition
& &call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
& &return TriggerAddCondition(t, Condition(function ManaShield_Condition))
endfunction
function Immolation_Condition takes nothing returns boolean
& &return GetTriggerEventId() != EVENT_PLAYER_UNIT_ISSUED_ORDER or ((OrderId2String(GetIssuedOrderId()) == &immolation& or OrderId2String(GetIssuedOrderId()) == &unimmolation&) and GetUnitAbilityLevel(GetOrderedUnit(), 'AEim') & 0 and GetUnitState(GetOrderedUnit(), UNIT_STATE_LIFE) & 0)
endfunction
function TriggerRegisterImmolationEvent takes trigger t returns triggercondition
& &call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
& &return TriggerAddCondition(t, Condition(function Immolation_Condition))
endfunction
function DivineShield_Condition takes nothing returns boolean
& &return GetTriggerEventId() != EVENT_PLAYER_UNIT_ISSUED_ORDER or ((OrderId2String(GetIssuedOrderId()) == &divineshield& or OrderId2String(GetIssuedOrderId()) == &undivineshield&) and GetUnitAbilityLevel(GetOrderedUnit(), 'AHds') & 0 and GetUnitState(GetOrderedUnit(), UNIT_STATE_LIFE) & 0)
endfunction
function TriggerRegisterDivineShieldEvent takes trigger t returns triggercondition
& &call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
& &return TriggerAddCondition(t, Condition(function DivineShield_Condition))
endfunction
由于这里用到的判断条件所限,这些事件不能和其它无目标事件放在一起,但此外的事件可以。你也需要根据实际状况更改WasUnOrder()函数的内容。第一个技能'Absk'不用考虑这些情况,因为它本身就不存在关闭状态。如果你不在意施法动画的话,有一个简单的法子可以使几乎所有技能都不打断当前命令——将施法单位的图像 – 动画施放点和图像 – 动画回复点都设为0,这样单位就会立即施法,然后继续执行之前的命令。
Arpl, Arpm, Arpb, Afzy, Apsh, Amel, Arai, AUcb (补充生命,补充法力,补充生命和法力,狂热,相位变换,尸控术,腐尸甲虫):这些技能都能自动施放,而且左键点击就能使用,无需指定目标。可以用于制作左键和右键点击效果不同的按钮。用技能施放命令可以捕捉左键点击,用开启和关闭自动施放命令可以捕捉右键点击。当然最好在自定义界面中去掉那个自动施法的金色边框。前三个技能的效果能简单地移除,将持续时间设为0.01也能将'Afzy'无效化。然而你无法实际消除'Apsh'的相位变换效果。后3个技能需要附近有尸体才能点击。你可以将绞肉车的创建和运载尸体技能放到一本隐藏的魔法书里添加给单位,这样就可以提供所需的尸体了。
Apit, Aneu, Aall, Asid(购买物品,选择英雄,盟友商店,出售物品):有机地组合这些技能能让你的商店像奥法宝库一样只对自己人出售物品。区别是AddItemToStock()函数依然会奏效。而RemoveItemFromStock()只对被AddItemToStock()添加的物品有效,因此你得在对象编辑器中清空你商店的制造物品和出售物品两栏,然后在地图初始化时用AddItemToStock()来实现添加物品。添加和删除所售单位的做法亦类似,把'Asid' 换成 'Asud'即可。删除'Aall'的话,商店就向所有玩家公开营业。顺便,'Asud'技能会让所有玩家(包括敌方)都看得到这个商店。有'Aneu'或'Aall'技能的单位可用于共享技能和物品,即使敌人也可以使用该单位的所有技能和物品(可以在该技能的允许目标中更改)。
Ablo(嗜血术):增大目标单位的体型。一般来说你可以用一个隐藏单位来施放这个技能。将该技能持续时间设为0会时体形变更效果永久化。用触发删除嗜血buff就可以恢复体形。
Apiv, Agho, Aeth(永久隐身,鬼魂,可见的鬼魂):这些技能会令单位隐身,拥有永久隐身的单位会在攻击和施法时暂时失去隐身效果。因此这个技能可被用来制作先知的三级幽魂狼之类的单位。而拥有鬼魂技能的单位在攻击和施法时仍能保持隐身,拥有2个永久隐形的话也有相同效果(原文有误)。另外,Aeye(侦查结界)技能会自动给召唤出来的单位带上永久隐形。
Abur, Abdt (潜地,潜地侦测):潜地的单位和隐身差不多,潜地侦测这个技能有个数据域理论上能区分地侦测隐身单位和潜地单位,但实际上没有区别,看来暴雪并没有真正区分过潜地和隐形的隐身效果差别。
Aasl(龙卷风减速光环):该光环是用来添加无实际效果的buff的绝好技能。只要把允许目标设为自身,然后将数据效果设为0.此技能还不显示技能图标。最妙的是,当单位身上拥有一个以上这种技能时,它们的buff图标会叠加。鉴于'Aasl'本质上是个负面光环,因此其buff的提示是红色的,不过你可以在它名字上加颜色代码来改变这一点。比方说|cffff0000我是个坏蛋红色Buff|r 或是 |cff00ff00我是绿色的好人Buff|r.如果你觉得这技能不合意,也可以用其它光环,将它们放进被禁用的魔法书里就能隐藏图标。
ANpi(永久献祭):关于这个技能,作者说了许多,大意是可以把它加到目标单位身上来做个持续耗费对方魔法和生命的debuff技能。不过作者没有考虑到伤害源的问题,因此整段pass.当然,实际上只有持续耗费生命的效果需要考虑伤害源问题。
ACnr(生命恢复光环):一个可令附加特效随单位一起改换玩家颜色的不错技能。将生命恢复量设0允许目标设为自身。然后然后将你想添加的效果模型放到图像 - 目标一栏。这样被附加的特效模型会自动带上所属单位的玩家颜色。在有变身技能的情况下也能正常使用。假如出现突发情况导致颜色还是出错,可以用下面的简单代码来修正:
jass:&&Copy code
call SetUnitColor(&unit&, GetPlayerColor(GetOwningPlayer(&unit&)))
Aspi(尖刺路障):一个可以给单位附加特效又没什么副作用的技能。比Asph(球体)来得可靠多了。
Atwa(龙卷风游荡者):有这个技能的单位能比一般单位更加贴身地跟随目标。你得将该技能的影响范围设到最大。这样,如果此单位没有攻击能力,就可以用右键指令命令它近距离跟随目标了。
AIbf(建造微型农场):允许单位建造建筑,建造者甚至可以没有修理技能(或者其他什么乱七八糟的技能)。你也可以在这个技能中设置建造所耗的时间。
Aher(英雄):这个技能的图像 – 施法者一栏指定了所有英雄升级时候的特效。当然该技能默认是看不到的,你需要改动AbilityData.slk来显示它(像DDWE这种扩展编辑器里就默认有了),做法是将文件中该技能的useInEditor标记为1.
Amov(移动):移动技能指定了所有单位进入传送门时显示的特效。(当然它本身也是单位能移动的必要条件,如果删除这个技能单位就无法移动。这个很奇怪地没提到。)
AImo(怪兽诱捕):这技能很有意思,会引诱指定范围内的野怪。你也可以设置它的引诱间隔。
ANeg(工程升级):工程升级的出现终于解决了触发所添加的技能无法学习的问题。它允许我们使用触发更改技能学习界面。想要达到这一效果,英雄需要拥有能被替换掉的替身技能。这种占位技能必须和所需添加的技能拥有相同的级数,因此你一般需要准备两个,一个用来替换一般技能,另一个用来替换终极技能。我一般拿Arpb(补充生命和法力)做占位技能的模板,不过你用其它的也无所谓。将占位技能级数设为3,跳级设为2然后重复地填进英雄的英雄技能一栏。当然记得要在地图初始化时禁用它们,免得他们被玩家看到了。然后你就能用工程升级来将他们替换成想要的技能,当工程升级被添加时,其数据 - 技能升级一栏所指定的技能会被依次逐一替换,而被删除时,就会反着换回来。因此如果你不想看到工程升级的图标的话,这里有一个取巧的手段。如果你想将技能A换成B,那么就在工程升级的数据栏中反过来填B,A.这样,当你添加这个工程升级的时候会毫无效果,因为B不存在,而当你删除的时候,A技能就会被换成B,这样你就可以不添加任何永久性技能来完成这个替换了。当技能被替换成功后,他们就可在学习界学习。注意这法子只能正确替换未被学过的技能。用在学过的技能或普通技能上的话,被替换掉的只有原技能的施法距离、作用范围、持续时间、图标、允许目标等等数据,而不会真正改变改技能的核心。比方说你把光环替换为治疗技能会改变它的图标、提示等值,但它终究还是个光环。如果被替换的技能处于禁用状态,结果只会更加古怪而不可预测。另外工程升级也只对英雄有效,擅自添加给普通单位会导致游戏崩溃。如果你只想工程升级一个技能,可以将其它3个技能升级数据域改成单位永远也不会有的技能。此外工程升级在级数大于3时无法正确应用&dataA5&之类的动态提示。而且其默认buff也无法替换,不过这不是什么问题,因为它根本不显示。
Aspb(魔法书):魔法书基本上就是一个容器,可以装下11种其它技能。它可以装主动技能、自动施放技能、被动技能以至英雄技能。第一点好处是即使它被禁用,其中的被动技能也能正常生效。因此它可以用来隐藏任何被动技能,帮你节省按钮栏位。另一好处是你可以在运行时添加和删除魔法书中的技能。方法是把想添加的技能放进另一本魔法书内添加给单位,然后将第二本魔法书禁用。只要两本魔法书的命令ID相同,后一本魔法书中的技能就会显示到前一本里。给每一个技能准备一本魔法书就能实现动态添加了。该技能还有一个优点是,里面的技能可以通过英雄的学习界面来升级。唯一的缺点是它们一开始就是1级而非0级。不过你可以在英雄学会第1级以后再添加魔法书给他。
jass:&&Copy code
function Learn_Actions takes nothing returns nothing
& &if GetLearnedSkillLevel() == 1 and GetLearnedSkill() == &hero skill& then
& && &call UnitRemoveAbility(GetTriggerUnit(), GetLearnedSkill())
& && &call UnitAddAbility(GetLearningUnit(), &adder spellbook ability&)
& && &call MakeUnitAbilityPermanent(u, &adder spellbook ability&)
& && &call MakeUnitAbilityPermanent(u, &ability inside spellbook&)
& &endif
endfunction
function Learn takes nothing returns nothing
& &local trigger t = CreateTrigger()
& &call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_HERO_SKILL)
& &call TriggerAddAction(t, function Learn_Actions)
endfunction
当然,用于添加技能的魔法书必须一开始就对玩家禁用。另外要将魔法书的最少技能数和最大技能数设为一样来避免bug。不过这里还是存在一些小问题。你似乎无法用触发来使用书中的主动技能。而且在运行时被添加的技能不够法力施放也不会使整本书图标变蓝。不过这都是些小瑕疵,没什么大不了的。
Abun(运送货物(兽人地洞)):这个技能添加给单位后会令其失去攻击能力,连攻击图标和快捷键都会消失。然后删除这个技能又会恢复其攻击能力。和宝珠类技能一起使用的话就能彻底地开关单位的可用攻击方式了。
AIdf, AIll, AIsb(黑箭物品,新闪电宝珠,减速宝珠):这些技能都带有数据 - 影响技能数据栏。可指定任何一个单位目标技能作为影响技能。单位的每次攻击都有可能在目标身上施加该影响技能,其几率可自行指定。如果将几率设为100%,那么每次攻击都会生效,而且攻击不会miss.不过这类技能一旦添加给单位,其对应的影响技能的图标会出现在单位的控制栏,而且像被动技能一样处于无法点击状态。可惜的是似乎没有什么好方法去除这个图标。你也可以放个无图标的引导技能来做影响技能,可这样就没有实际的效果了。如果你不想启用近战单位的对空能力,就把数据 – 允许攻击索引一项设为0.目前有一个bug,单位自动攻击时不会给目标施加影响技能,即使几率是100%,你可以通过触发器来解决此问题。宝珠类技能还可以用于附加特效、变更单位投射图像和启用攻击方式。至于说箭矢类技能,不管你怎么改,'ANia'(焚化箭矢)永远使用'ANic'(焚化)的默认值,因此一张地图上一般只能拥有一个这种技能了。
Aroc(弹幕):弹幕允许单位同时攻击多个目标,因此可以用作多重射击技能。每个目标都会受到单位的基础攻击伤害及该技能中设定的附加伤害。实际攻击的目标数为数据 - 最大目标数加1.投射图像数据域中填写的模型可以多于一种,这样就会覆盖单位自身的投射图像,而每次攻击时都会在此列表中随即选择一种投射图像。影响范围一项能改变附加攻击的范围,不过不会影响到主箭矢,只会影响到附加的箭矢。如果你不想限制伤害量,将数据 - 最大总伤害设为0即可。可惜的是,弹幕无法和其他攻击附加效果正确叠加。大部分此类技能都会将弹幕效果无效化,比如所有的自动施放箭矢,只有AHfa(灼热之箭)和一些宝珠技能是例外。宝珠类技能只有在其影响技能发动的时候才会令弹幕无效化。其他所有技能,像暴击、减速毒药、冰冻气息、闪电攻击、火油等等能和弹幕叠加,不过通常只对主箭矢的目标生效。而像攻击加成、攻速加成之类基础附魔效果却能对所有目标生效。AHfa(灼热之箭)尤其特别。它是唯一能和弹幕叠加的箭矢类技能,而且当它开启自动攻击时甚至会令一个不兼容的宝珠技能无效化,而重新激活弹幕效果,你可以用这特性来制作能开关的多重箭。
Apxf(凤凰之火):这个技能也可以给单位多重射击能力,不过伤害不基于单位的攻击力。它由自己的冷却时间、投射图像、伤害和持续伤害,而且会对范围内的敌人自动施放。其持续时间数据域决定了它持续伤害的持续时间和攻击同一个目标的间隔。如果有需要,你可以用物品来添加多个相同的凤凰之火技能,它们能同时生效。
ANcs(集束导弹):如果你想制作一个重复投掷箭矢的技能,尤其是AOE技能,可以用集束导弹,只要设好每波的导弹数和波数就好。
ANab, AEsh(强酸炸弹,暗影突袭):强酸炸弹极为通用,而且可能是最好的直接伤害技能模板。它拥有许多不错的特性,可以降低移动速度]攻击速度和护甲、还有直接伤害效果、持续伤害效果、buff、投射图像——而且如果有必要,所有这些效果都能简单地被移除。而且它不会给目标单位附加昏迷之类的麻烦效果。暗影突袭的数据域和强酸炸弹差不多,不过少了护甲削减一项,此外它的每次伤害会以飘字形式显示在目标的头顶。用一个空buff可以去除这个花哨效果。
AItg(攻击加成):一般来说你会需要将这技能的攻击加成设为-1然后添加给隐藏单位来无伤害地施放其攻击附加效果。方法是将施法者基本攻击力设为0,攻击色子数设1,色子面数设0,然后将你的自定义攻击加成技能添加给隐藏施法者。这样施法者不会造成任何伤害,但攻击附加技能依然会生效。这法子可以用于添加火油、冰冻气息、减速毒药之类技能的buff。顺便,负值的攻击力是无法治疗目标的(原文说反了)。
AOcr(暴击):如果你不知道单位的实际攻击力却希望将其攻击力变为0,那么将这个技能几率设为100,伤害倍率设为负数就能达到目的。而且由于每次伤害都是0,它甚至不会显示红色的伤害飘字。
AOcl, Amgl(闪电链,月刃):闪电链是个不错的带闪电效果的纯伤害技能模板,也可以用作导弹弹跳的技能。你可以调整闪电链的目标数量和伤害削减因子。至于月刃的作用方式则完全不同。月刃技能实际上除了提供一个被动图标外毫无效果。实际的弹射加成来自于科技。
Ahrl(食尸鬼伐木):可以用于判断某个可破坏物是否是树。
jass:&&Copy code
function IsDestructableTree takes destructable d returns boolean
& &local boolean i = IsDestructableInvulnerable(d)
& &local unit u = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), &invisible caster&,GetWidgetX(d), GetWidgetY(d), 0)
& &local boolean result = false
& &call UnitAddAbility(u, 'Ahrl')
& &if i then
& && &call SetDestructableInvulnerable(d, false)
& &endif
& &set result = IssueTargetOrder(u, &harvest&, d)
& &call RemoveUnit(u)
& &if i then
& && &call SetDestructableInvulnerable(d, true)
& &endif
& &return result
endfunction
AIgu, AIgf(夜视雕文,强固雕文):使用这两种技能书可以将指定升级应用于英雄所在玩家(下面一大段错误论断,pass了)
Acoa, Acoh, Adec(骑乘角鹰,分离):写在这里纯粹为了提醒您这个技能的存在。自然它可以用于融合2个单位,也可以单纯地作为某个需要一对不同类型的单位合力使用的技能的模板,只要捕捉技能施放事件然后打断之即可。
Awarp(传送门):传送门技能也可以在运行时被添加给单位。然后你就可以用WaygateSetDestination()函数和WaygateActivate()函数来设置传送属性。你也可以用路径阻断器来阻止比方说飞行单位使用传送门。想要更改传送特效你要改的是Amov(移动)技能。
jass:&&Copy code
function SetupWaygate takes unit u, unit target returns nothing
& &call UnitAddAbility(u, &waygate ability&)
& &call UnitAddAbility(u, 'Aivs')
& &call UnitAddAbility(u, 'Agho')
& &call UnitAddAbility(u, 'Aloc')
& &call SetUnitScale(u, 0.01, 0.01, 0.01)
& &call WaygateSetDestinationLocBJ(u, PolarProjectionBJ(GetUnitLoc(target), 96, AngleBetweenPoints(GetUnitLoc(u), GetUnitLoc(target))))
& &call WaygateActivate(u, true)
endfunction
function ConnectRects takes rect left, rect right returns nothing
& &local unit lu = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), 'ncop', GetRectCenterX(left), GetRectCenterY(left), 0)
& &local unit ru = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), 'ncop', GetRectCenterX(right), GetRectCenterY(right), 0)
& &call SetupWaygate(lu, ru)
& &call SetupWaygate(ru, lu)
endfunction
图腾:一旦一个单位拥有图腾这一分类,它控制栏的按钮包括快捷键会全部消失。除此以外没有任何效果,你仍可以通过触发来操纵它。此单位依然能响应右键点击指令,如果你不想这样可以用以下代码拦截该指令:
jass:&&Copy code
function Catch_Order_Actions takes nothing returns nothing
& &if GetIssuedOrderId() == OrderId(&smart&) then
& && &call PauseUnit(GetOrderedUnit(), true)
& && &call IssueImmediateOrder(GetOrderedUnit(), &stop&)
& && &call PauseUnit(GetOrderedUnit(), false)
& &endif
endfunction
function Catch_Order takes nothing returns nothing
& &local trigger t = CreateTrigger()
& &call TriggerRegisterUnitEvent(t, gg_unit_hpea_0006, EVENT_UNIT_ISSUED_TARGET_ORDER)
& &call TriggerRegisterUnitEvent(t, gg_unit_hpea_0006, EVENT_UNIT_ISSUED_POINT_ORDER)
& &call TriggerAddAction(t, function Catch_Order_Actions)
endfunction
工人:工人分类有2个基本效果。拥有这个分类的单位在空闲时,你的屏幕左下会显示空闲工人的图标,而且该单位不会自动攻击。然而如果你在运行时添加工人分类,那就只会有第二种效果而不会显示空闲工人图标。如果你想创造一个无视敌人存在的单位,这会是个好法子。
jass:&&Copy code
call UnitAddType(u, UNIT_TYPE_PEON)
如果你还将单位的状态 - 可以逃跑一栏设为假,它被攻击的时候也不会逃跑。至于说想要创建一个平时无视敌人,但会在被攻击时反击的单位,你可以用'Apiv'(永久隐身)技能,将其持续时间设为-1,自动攻击目标设为假。这样该单位不再隐身,却也不会自动攻击目标。
自杀/工兵: 拥有'Asds'(自毁)技能的单位自动被标记上自杀分类,在右键点击敌人的时候会自动扑上去自毁。基本上很少看到有这样的地图,因此你可以用这个分类来区分单位,通常会省下很多触发工作。
视为目标:在战斗 - 视为目标数据域你可以看到另一批分类标记,利用这些标记可以为你的法术更详尽地区分目标,而不是简单地只认空中地面建筑英雄这几个大类。
Buff:
添加buff:如前所述,你可以用Aasl(龙卷风减速光环)或是隐藏在魔法书里的光环来简单地给单位添加buff却不显示技能图标。只要将光环的数据效果设0,允许目标设为自己。
隐藏buff图标:很可惜,许多技能的默认buff无法被去除。即使你将技能的buff数据域设空,它多半也会给你加上该技能的默认buff.将buff图标涂黑,提示信息设空也无法真正去掉这个buff,鼠标移上去的时候还是会出现一个空的提示框。唯一差不多可行的方案是事先在单位身上放一个不可叠加的buff,然后将你的法术buff设成跟它一样,这样你施放这个技能以后,控制栏就不会再显示新的buff(因为已经有这个buff了)。没错,我知道这法子真的很土,但目前我也就只会这一手。
可堆叠的buff:像'Bpsd'(毒药(堆叠)) 之类的buff,在某些情况下无法被添加。就这个buff而言就是目标之前没中过毒的前提下无法添加。这法子可以用于在某些前提下才能加的buff,当然并不是对所有技能都适用。
用户界面:在一个技能升级以后,其buff的提示信息有时并不会即时更新。此时你可以添加并删除任意技能来刷新界面。我通常用Adis(驱散魔法)技能做:
jass:&&Copy code
function UnitRefreshUI takes unit u returns nothing
& &call UnitAddAbility(u, &refresher ability&)
& &call UnitRemoveAbility(u, &refresher ability&)
endfunction
MakeUnitAbilityPermanent():该函数可令你的单位在变身后依然保有某个技能。比方说你添加混乱时就得把单位已有的技能永久化。此外拥有子技能的技能,比方说魔法书或是有影响技能宝珠,你也必须将这些永久化,除非你想在变身后失去它们。
IssueInstantTargetOrder():该函数目前唯一的用途似乎只有命令单位将自己物品栏里的物品交给另一单位。其中的order参数应为&smart”, target widget参数是想被转移的物品,instant target widget参数为要被交给的目标。被命令的单位会直接走向目标单位然后将物品交给它。
SetUnitX(), SetUnitY():这2个函数在击退系统或是类似的循环移动单位的系统中特别有用。它们忽略大部分的目标点是否可用检测,因此执行速度比SetUnitPosition()快得多,可以做出流畅得多的移动效果。缺陷是你得自行判断目标点是否在地图界外,否则可能造成游戏崩溃。当然,不要用loop+wait的组合,用timer.(作者似乎没有提到很重要的一点,这2个函数移动单位不会打断单位的当前命令甚至是引导中的法术)
隐藏的指令ID:
851971(smart)智能指令:可以以点或者对象为目标发布指令,就像右键点击(这个有哪点隐藏了?)
852000技能菜单:这个命令强制英雄打开技能学习菜单。假如用于普通单位身上,会暂时性地清除其所有控制栏按钮。重新选择该单位后恢复正常。(至少作者写此文的时候是这样,实际上在1.21b中,对普通单位发布该命令已经没效了)
851994(build)建造菜单:无目标命令,可以命令可建造建筑的单位打开建造菜单。
2007移动物品到栏位:这些是对象目标命令,将目标物品移动到英雄的对应物品栏格,比方说852002是移动到第一格,852003是第二格,以此类推。
2013使用栏位中的物品:这些指令会命令英雄使用对应物品栏格的物品。该指令的目标方式(无目标/单位目标/点目标)由物品本身决定。852008是使用第一格的物品,而852009是第二格,以此类推。
851976(cancel)取消:无目标命令,相当于点击取消按钮。以前曾一度可以用它来捕捉取消按钮的点击事件,不过如今版本中似乎已经没效了。(对此我也有怨念,本来我一个好好的可学习多个英雄技能的系统就这样废了)
851973昏迷:当单位因某个致昏技能(如战争践踏)而昏迷时,它会收到这个命令。基本上可视为一个原地不动且停止攻击的命令。被命令的单位无法攻击和移动。(按,其实该说法不是很确切,因为实际上它跟停止命令也没差多少)
主题精华荣誉值
Lv.3, 积分 174, 距离下一级还需 26 积分
我顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
主题精华荣誉值
Lv.10, 积分 2945, 距离下一级还需 555 积分
<p id="rate_524" onmouseover="showTip(this)" tip="你继续顶&智力 -2
" class="mtn mbn">
主题精华荣誉值
Lv.4, 积分 207, 距离下一级还需 93 积分
主题精华荣誉值
Lv.4, 积分 226, 距离下一级还需 74 积分
看的好晕呀!!
主题精华荣誉值
Lv.6, 积分 765, 距离下一级还需 35 积分
哈哈哈哈哈好!
主题精华荣誉值
Lv.5, 积分 451, 距离下一级还需 49 积分
额,不好意思,我是打酱油的
主题精华荣誉值
Lv.4, 积分 246, 距离下一级还需 54 积分
ddddddddddd
主题精华荣誉值
Lv.6, 积分 637, 距离下一级还需 163 积分
我只想有人告诉我怎么弄进地图= =。。。
主题精华荣誉值
Lv.2, 积分 79, 距离下一级还需 21 积分

我要回帖

更多关于 魔兽争霸3地图编辑器 的文章

 

随机推荐