|
Q:什麽是Unit Editor?
A:是地图编辑器内建的修改器,进入WE後找Module => Object Editor,里面就有Unit Editor(单位编辑器、UE)、Ability Editor(技能编辑器、AE)、Doodad Editor等功能,分别可以让玩家编辑单位、技能、物品、饰物等。
Q:如何在不启动Melee AI 的情况下让电脑所操控的单位会自己使用技能?
A:不必使用AI,电脑操控的单位就会自动视情况使用技能。至於如何修改电脑使用技能的判断方式,没有简单的办法,只能用很多的触发来控制罗。
Q:如何创造一个全新的单位(或技能、物品、……等)?
A:没有办法,在Object Editor中,你只能够根据原有物件的资料,建立新的物件。当你建立一个物件时,电脑会给它一个新的ID。新物件的资料完全沿用旧有物件,除非你修改它(变成粉红色)。
Q:如何将非英雄改成英雄?
A:没有办法,如果要建立新英雄,你可以用英雄为原型,再把它的模型和动画等改为你想要的。
Q:为什麽我修改了火枪兵(Rifleman)的射程为2000,但游戏中火枪兵的射程却没有改变?
A:还必须修改目标取得距离(Acquiration Range)。那个数值代表单位主动攻击的判定距离,如果在这个距离中有看到敌方单位,这个单位就会主动去攻击。例如你把大法师的目标取得距离改为9999,当你远方的单位和敌人作战时,你的大法师就会远从基地跑过去助阵。
Q:WAR3中攻击力是如何计算的?例如我想让某单位攻击力为11~14,升级时增加1~4,应该如何设定?
A:WAR3攻击力数值由以下数值决定: Attack - Base :基本攻击力 Attack - Number of Dice: 攻击波动的骰子面数 Attack - Sides Per Die:确定攻击波动的骰子每面的攻击力令Base = A,Number of Dice = B,Sides Per Die = C,则一个单位的攻击力的范围是:A+B ~ A+BC例如:一级的步兵 Base=11,Number of Dice = 1,Sides Per Die = 2则步兵的攻击力范围就是: 11+1 ~ 11+1*2 = 12 - 13另外升级通常是直接把Number of Dice加一(可以到Upgrade Editor中改)。所以对於原来的问题,可以设成Base = 10,Number of Dice = 1,Sides Per Die = 4。
Q:如何增加单位移动速度的最大值及视野最大值?
A:移动速度最大值可在游戏常数和Unit Editor中修改,但游戏内定最大522(即使你按着Shift把它调到超过也没有用);视野最大值内定1800,同样是无法超过的。
Q:传送站(Way Gate)要如何使用?
A:
放置一个Way Gate
放置一个Region在你想让这个传送站传送到的地方
.点选传送站进行设定。在General可以找到Way Gate Active: Destination的选项,把它打勾,并且在右边选择刚刚设置的Region即可
Q:如何修改单位的颜色?
A:进入Unit Editor,寻找Art - Tinting Color 1 ~ Art - Tinting Color 3,它们分别是单位红、蓝、绿色的显示比例。
Q:Art - Cast Point, Art - Cast Backswing, Art - Attack Point, Art - Attack Backswing是做什麽用的?
A:Art - Cast Point是指施法开始,到法术施放出来的延迟时间。就是因为有Cast Point的设定,所以像Banish这种没有冷却时间的技能还是不能同时施放无限多个敌人。Art - Cast Backswing是指施法开始,到施法者停止施法动作的延迟时间。同样地,Art - Attack Point是指单位做出攻击动作到敌人实际被砍伤(近战,Weapon Type = Normal),或者飞弹射出(远程)的间隔时间。Art - Attack Backswing是指攻击,到停止攻击动作的延迟时间。这四个项目通常要配合动画的播放时间调整,才会显得和谐。
Q:如何修改杀死单位所得到的经验值?
A:
修改Stats - Point Value,这个值为原经验值的比例。例如你设定杀死1级单位可得25经验值,而你把Peasant设为1级,Point Value设为50,那麽你杀死一个Peasant只能得到 25 * 50% = 12.5 的经验值
到游戏常数,修改以下几个数值:
Hero XP Gained - Normal, Table 一般单位经验值,表格
Hero XP Gained - Normal, Previous Value Factor 一般单位经验值,前一级因素
Hero XP Gained - Normal, Level Factor 一般单位经验值,等级因素
Hero XP Gained - Normal, Constant Factor 一般单位经验值,常数
Hero XP Gained - Hero, Table 英雄经验值,表格
Hero XP Gained - Hero, Previous Value Factor 英雄经验值,前一级因素
Hero XP Gained - Hero, Level Factor 英雄经验值,等级因素
Hero XP Gained - Hero, Constant Factor 英雄经验值,常数
Hero XP Gained - Creep Reduction Table 中立怪减成表
Hero XP Gained - Summoned Unit Factor 杀死召唤单位能得到的EXP比例 读取资料时,会优先读取表格的资料。如果该等级没有表格资料,电脑就会最後一个表格资料和其它数据来计算目前等级的资料。假设f(x)代表杀死x级一般单位所得经验,A = Previous Value Factor,B = Level Factor,C = Constant Factor则f(x) = A*f(x-1) + B*x + C举例来说,如果Hero XP Gained - Normal, Table = 100, 200, 300Hero XP Gained - Normal, Previous Value Factor = 1Hero XP Gained - Normal, Level Factor = 100Hero XP Gained - Normal, Constant Factor = 50那麽结果如下:Lv1: 100Lv2: 200Lv3: 300Lv4: 1*300 + 100 * 4 + 50 = 750Lv5: 1*750 + 100*5 + 50 = 1300Lv6: 1*1300 + 100*6 + 50 = 1950………………这是杀死一般单位的经验值。杀死英雄的经验则用另外一组数据Hero, Table、Hero Previous Value Factor、……杀死Creep则要考虑中立怪减成表,这个表代表的是,当杀死它的英雄有X级时,所得到的经验值相对於原值(一般单位)的比例。假设Hero XP Gained - Creep Reduction Table = 80,70,60,50,0 ,则:一级英雄杀死一级怪 = 100 * 80 = 80二级英雄杀死一级怪 = 100 * 70 = 70五级英雄杀死一级怪 = 100 * 0 = 0六级英雄杀死一级怪 = 100 * 0 = 0二级英雄杀死叁级怪 = 300 * 70 = 70叁级英雄杀死五级怪 = 1300 * 60 = 780………………另外,一般游戏中,杀死召唤单位,只能得到一半的经验值,这就是Hero XP Gained - Summoned Unit Factor的设定,相必这个不必多说了吧?
Q:如何修改物品的效果?例如制作一支可以补10000 HP 的药或补50 Mana 的药?
A:物品的效果是由技能所掌管,因此先在Item Editor中找到该物品所拥有的技能,再到Ability Editor修改物品拥有的那些技能即可。
Q:如何让可使用的装备显示魔力消耗及冷却时间?
A:将使用性的技能放在物品技能表的第一格即可
Q:如何设定一个单位无敌?
A:为该单位加上一个技能Invulnerable(Neutral)或者由它做底改成的技能、用触发器的Make Unit Vulnerable/Invulnerable动作,或者在Unit Editor中将该单位的Target As改为Invulnerable。前面二种做法会让单位的装甲值显示为Invulnerable;後者的做法则不会。一般情况下,可以命令单位对无敌的对象攻击或施法,然後电脑会告诉你不能对无敌单位作用。如果希望单位不只无敌,而且是连点都不能点,可以在Unit Editor中将该单位的Target As改为None或者给它Locust(蝗虫)技能。
Q:如何找到一个技能或单位的ID(如A000、ANrc、…… )?
A:Object Editor => View => Display Values As Raw Data打勾即可(或者按Ctrl + D)
Q:如何解出War3的声音?
A:进入WE寻找Sound Editor,就能在里面找到所有音效(.wav)和音乐(.mp3)的档案,以及执行汇入或汇出的工作。
进阶篇--
Q:如何把已修改好的Unit(或者Ability、Item、Upgrade、Destructible、Trigger、……)资料完全移到另外一张地图上使用?
A:进入Object Editor => Unit Editor => File => Export Unit Settings,储存成任意的档名(千万不是直接找到另一张地图放进去哦!);再打开另外一张地图,进入Object Editor=>Unit Editor=>File=>Import Unit Settings,把之前存的档名汇入就大功告成了。※注意:汇出/汇入功能会把原来的档案完全取代,例如你在A、B两地图都写了一些资料,当你把A地图的资料汇入B地图时,B地图的资料会全部不见,换成A地图的资料。如果你只想把A地图的资料加到B地图里,请慢慢复制/贴上。
Q:如何让一个单位不能被玩家选取?
A:为该单位加上一个技能Locust(蝗虫),它是CL大绝召出的小虫的技能。Locust的效果是:
使单位不能被选取
使单位不会被当作目标(类似无敌,但是对Invulnerable有效的技能或攻击对它也无效)
使单位不会在左下角的迷你地图中显示
在Trigger中使用unit in region将抓不到它
Q:如何让一个单位不能被玩家选取,但是可以被攻击或被技能杀死?
A:为该单位加上Locust和改过的Chaos技能,它们的组合效果是:
使单位不能被选取
使单位不会在左下角的迷你地图中显示
Q:如何移除单位身上的攻击、集结点之类的预设按钮?
A:通常用 Unit - Remove Ability 可以用来移除一些按钮(要用JASS写):Remove Unknown (Aatk) 可以移除攻击Remove Unknown (Amov) 可以移除 移动/巡逻/停止Remove Unknown (Aral) 可以移除集结点…………
触发器:
基本篇--
Q:我想把地图A的触发复制到地图B,但是为什麽总是缺少变数而出错?
A:因为在贴上触发的时候不会贴上原触发的变数,所以就会出错。解决方法是打开复制未知变数的功能:File => Preferences => General =>Automatically create unknown variables while pasting trigger data
Q:如何让游戏开啓後,起始位置不会出现主城和工人?
A:进入Trigger Editor,找到Melee Initialization,如果没改过的话应该如下:Melee InitializationEvents Map initializationActions Melee Game - Use melee time of day (for all players) //使一开始的游戏时间是早上一颗星(如果删掉就会从00:00开始) Melee Game - Limit Heroes to 1 per Hero-type (for all players) //让所有玩家不能生产重覆的英雄 Melee Game - Give trained Heroes a Scroll of Town Portal (for all players) //让第一个生产出来的英雄有传送卷轴 Melee Game - Set starting resources (for all players) //让所有玩家一开始有一定的Gold和Lumber Melee Game - Remove creeps and critters from used start locations (for all players) //如果某起始位置有玩家,就删除附近的Creep Melee Game - Create starting units (for all players) //产生主城和工人於玩家的起始位置 Melee Game - Run melee AI scripts (for computer players) //让电脑玩家有AI Melee Game - Enforce victory/defeat conditions (for all players) //使用一般的胜利/失败设定(毁掉对方所有建者胜)将蓝色的那一条删掉即可
Q:如何设定玩家的起始金钱和木材?
A:新增一条Trigger--Init ResourceEvent Map initializationActions: Player - Set <游戏者> Current gold to <数量>内容请自行根据需要修改
Q:要让被杀死的小兵掉钱,就像CREEP一样 ?
A:在 Trigger Editor 里面用 Player - Turn Player Flag On/Off 开启金钱奖励,这样杀死该玩家的单位就有钱了。在 Unit Editor 里面用 Stats - Bounty Awarded - 来修改某杀死某单位的金钱数量。
Q:假设在一张 RPG 地图中,给每一位玩家一个工人,让玩家选英雄:Event Unit - A unit enters <Region>Action Unit - Create 1 <Unit-Type> for Triggering Player at center of <Region> facing ...为什麽单位进入该Region时没有反应?(2003.08.20)
A:设定错误。由於引发事件的是单位,而不是玩家,所以 Trigging Player 无法表明到底是哪一个玩家。正确的设定方式如下:Event Unit - A unit enters <Region>Action Unit - Create 1 <Unit-Type> for (Owner of (Triggering Unit)) at center of <Region> facing ...
Q:为什麽这样写,游戏开始却看不到计时器出现? Init Timer Events Map initialization Conditions Actions Countdown Timer - Start TimeRaminging as a One-shot timer that will expire in 660.00 seconds Countdown Timer - Create a timer window for (Last started timer) with title Time Left
A:Map initialization是在loading时执行,所以你无法看到计时器出现。如果想在游戏一开始出现讯息、计时器、……之类的东西,必须用Time - Elapsed game time is 0.00 seconds 做为事件
Q:如何更改英雄取得经验的比例?
A:Action - Hero - Hero Experience Rate,设成多少百分比看自己的情况决定罗。
Q:如何制作当玩家离线时分享控制权?
A:Event:玩家离线 Action: Player - Pick 同盟 and do ( Player - For Triggering Player, Turn Share vision and full share unit to Picked Player )
Q:请问如何做出随机效果?
A:用If/Then/Elsel中的Random Integer/Real做判断,例如:
(Random integer number between 1 and 10) Equal to 1//1~10中的随机一个整数为1 → 1/10的机率
(Random percentage) Less than or equal to 30.00//30%的机率
Q:Letterbox 和 Cinematic似乎都是打开影片模式,二者有什麽区别?
A:Cinematic会全开地图,Letterbox不会全开地图(此外,关闭Letterbox模式後,Fog of War和Black Mask 会自动重设)。
Q:使用Create Special Effect on Unit时,attach的部分可以填写什麽?会有什麽影响?
A:这个是用来决定特效放置的部位。详细请自己测试。
主要部位:
overhead
漂浮在单位的头顶上,但不随单位的动作而晃动
head
在单位的头上,并随单位头部的动作而晃动
chest
在单位的胸部
origin
预设,一般在单位的脚旁
hand
手上
foot
脚上
weapon
武器上(只对英雄有效)
sprite
幽灵,有些会移动会旋转(只对建 、机械单位及Blood Mage有效)
medium
不详(只对建 有效)
large
不详(只对建 有效)
部位位置修正:
left
左边(如hand left=左手)
right
右边
mount
不详(for mounted units)
rear
不详(for quadrupeds)
first
修饰sprite的位置,其馀不详(只对建 有效)
second
不详(只对建 有效)
third
不详(只对建 有效)
fourth
不详(只对建 有效)
fifth
不详(只对建 有效)
sixth
不详(只对建 有效)
rallypoint
集结点(只对建 有效)
Q:在Unit - Play Animination中,可以填入什麽字串?
A:单位的动画指令可以在Previewer中预览,如图
此主题相关图片如下:
原则上填入Animination那栏的文字就好了,大小写不限,例如stand, walk, death, ...。如果要播放像stand - 3, attack - 2这类特定的动画,就必须用JASS写,函数为:SetUnitAnimationByIndex,但是填入的数字代表什麽动作就得自行测试了。
Q:如何用触发器抓到有重生技能而在死亡重生的单位?
A:没有办法抓到
Q:在建立阵列时,有一个size选项是做什麽用的?
A:它是用来设定初始值的。在地图初始化时,电脑会把该阵列从xxx[0]~xxx[size]设定初值。这个功能是为了避免某些变数没有初始值而不能使用。因为在GUI Trigger中,某些控制码变数没有建立的语法,如果不设定初值,在游戏中就不会有值,例如Dialog, Dialog Button, .....等,这类数心须初始化以避免出问题(可以用JASS建立的,但如果只用GUI就不要忘了初始化)。至於其他类型的变数如Integer, Real, ......,基本上不管它也不会有很大的影响。
进阶篇--
Q:如何制作增加生命回复率+50% 的技能或道具(例如一个英雄每秒可回4HP,装上该道具後每秒可回6HP)?
A:目前的AE中没有合适的技能(有Mana的,但没有HP的),因此,如果你想制作这类技能的话,就得用Trigger设定:一般回血的公式(如果你的地图有改,请自行变通)是 => (Str x 0.05) x (1 + 回血率加成) + 额外回血点数我们只需要计算回血率的加成部份 => (STR x 0.05) x 回血率加成设定单位每秒增加算出来的生命值即可
Q:什麽是魔法书?它有什麽功用?
A:魔法书是指Spell Book这个技能。这个技能是一本书,可以在里面放很多个技能。以下简介它的数值:
Data - Spell List:设定魔法书中的魔法,最好用主动技,且注意Order ID是否和其它技能重覆。据说有一些被动技或灵气放在魔法书里会失效,但笔者目前尚未研究出来。
Data - Maximum Skills、Data - Minimum Skills:设定最高和最低魔法数量,单位得到魔法书技能时,里面的魔法是从Spell List中抽出随机Min~Max个。
Data - Shared Spell Cooldown:设定各魔法是否共享冷却时间,如果打勾,则使用里面的任一魔法,整个魔法书会等待冷却时间。
Data - Base Order ID:设定「开书」动作的指令ID,一般来说不必理它,除非你要给一个单位放上n本魔法书,那麽开书的ID就不能重覆。
Q:如何制作一个击中目标时,在目标身上发出寒冰爆的效果?
A:可以用物品的「球」技能(例如Orb of Slow)制作,主要数据说明如下:
Chance To Hit Heroes/Summons/Units (%):攻击英雄/召唤单位/一般单位时,发动的机率
Data - Effect Ability:发动的技能,如果是对人,则直接对目标发动;如果是对地或无目标,则在目标的位置发动。
Data - Enabled Attack Index:启动攻击。像一般游戏中,山王拿了火球能打空就是因为这个设定。
以这个问题来说,只要做一个Orb技能,在Effect Ability那栏放上寒冰爆就好了。
Q:混沌之雨(Rain of Chaos)如何使用?
A:混沌之雨可以让单位分批召唤出一个又一个的单位,主要资料解说如下:
Data - Ability For Unit Creation:使用来召唤单位的技能,一般都用炼狱魔,如果使用别的技能很容易发生Bug。
Data - Number Of Units Created(2):召唤2只炼狱魔
Stats - Duration - Normal(1.00):召唤单位延迟,也就是每隔1秒召出一只
在使用Rain of Chaos时,Ability For Unit Creation设定的套用技能只提供召唤用,因此像耗魔、射程、范围、冷却时间等,都是由Rain Of Chaos决定,而不是由套用的技能决定。顺便简介Inferno(炼狱魔)技能的资料:
Data - Duration(360.00):召唤单位存在360秒
Data - Impact Delay(1.00):召唤延迟,也就是在技能生效、动画产生後1秒,才创造出炼狱魔。一般配合动画时间设定。
Duration - Normal/Hero(2.00/4.00):敲到 单位/英雄 时,晕眩 2/4 秒
Q:变身技能的资料分别代表什麽意思?
A:主要资料简介如下:
Data - Normal Form Unit:原来的形态
Data - Alternate Form Unit:变身後的形态
Data - Altitude Adjustment Duration:高度调整时间
Data - Landing Delay Time:着陆延迟时间
Data - Morphing Flags:有以下几个选项--
Immediate Landing:立即播放着陆动画
Immediate Take Off:立即播放升空动画
Permanent:永久,也就是永远变不回来(Destroyer Form)
Requires Payment:需要花费。必须要有足够的金钱、木材和食物才能变身(Destroyer Form)
Uninterruptible:不可中断变身
Stats - Area of Effect:寻找着地点的范围,-1大概是代表不寻找
Stats - Duration - Hero:操作延迟,假设设成1,则当你按下变身的按钮1秒後才会开始变身 ;但有些技能这个选项代表变身持续时间。
Stats - Duration - Normal:变身时间
此外,各变身技能略有一些不同:
Stone Form变身後不必等待冷却时间就可变回来,并可设定变身後回血速度加成
Burrow/Submerge变身後会变成「遁地」状态
Corporeal Form变身後会变成Ethereal(无实体)状态
Avatar不会改变形态,只会变大。有魔免、生命增加、攻击力增加、防御力增加等效果。Stats - Area of Effect代表变身的增大比例。此技能无法指定Buff。
Metamorphosis可设定变身後增加的生命值上限及生命回复速度
Chemical Rage可设定攻速和移动速度加成,但那只是愰子。也就是说,攻速和移动速度实际上是藉由变身後的单位决定的,那二个数据只是方便技能说明文字套用而已
Robo-Goblin可设定力量和防御力加成
Q:Summon Lava Spawn(召唤熔炎魔)的资料分别代表什麽意思?
A:主要资料简介如下:
Data - Generation Count(3):代数为3代。被召唤出来的是第一代;第一代分裂变成两只二代;第二代分裂变成两只叁代;第叁代打人就不会再分裂了。
Data - Life Duration Split Bonus(12.00):分裂时增加12秒的生命时间(二只都一样)。虽然分裂後时间条会补满,但是缩减的速率和原先不同,因此实际上只是增加,而不是补满。
Data - Max Hitpoint Factor(0.50):分裂时增加目前受伤的50%血量。如果 50/400 时分裂,则增加350*0.5 = 175 HP(二只HP相等)
Data - Split Attack Count(14):攻击14次才会分裂
Data - Split Delay(5.00):分裂前要抖5秒
Q:Defend(举盾)/Elune's Grace(艾鲁恩的幽雅)的资料各自代表什麽意思,如何设定?
A:主要资料简介如下:
Data - Attack Speed Factor(0.10):举盾时攻速减少10%
Data - Movement Speed Factor(0.30):举盾时移动速度减少30%
Data - Damage Dealt (%)(1.00):举盾时攻击敌人,敌人受到100%伤害
Data - Damage Taken (%)(0.50):遭受穿刺攻击时,承受50%伤害
Data - Magic Damage Reduction(1.00):遭受法术或Magic攻击时,承受100%伤害
Data - Chance to Deflect(30.00):30%机率反弹攻击
Data - Deflect Damage Taken (Piercing)(0.00):反弹穿刺攻击时,承受0%的伤害。
Data - Deflect Damage Taken (Spells)(1.00):反弹魔法攻击时,承受100%的伤害。
Stats - Target Allowed:可反弹攻击的对象
此外:
游戏常数有个Gameplay - Defend Can Deflect,如果这个设为false,则举盾技能一定不会反弹。如果你怎麽改反弹的数值却不会反弹请看一下这个常数。
Deflect Damage Taken (Piercing/Spells) 如果设为100%,则系统会判定为不反弹 穿刺/魔法 攻击。只要此栏不是设成100%,反弹回攻击者的伤害和原来的伤害一样。
反弹的攻击型态和被动技效果与原来的攻击一样,并考虑攻击者的装甲和被动技能。例如凤凰用50Magic攻击力打武士,虽然会反弹,但是反弹回去凤凰不受伤害(凤凰对魔法免疫);有缓毒的林精攻击武士,反弹回去林精自己中毒。
反弹只能弹回武器型态为(Weapon Type)为Missile, Missile(Splash), Missile(Bounce), Missile(Line)的攻击。
建 的攻击不会被反弹,如果Target Allowed中有Structure(建 ),当建 攻击而机率上刚好反弹时,武士会受到Deflect Damage Taken该承受的伤害,但是武器不会反弹回去。
Q:如何用触发制作技能?
A:用触发制作技能是一门大学问,触发技能写得好不好,几乎可以用来判断一个Mapper的功力。效果的写法无限多,就看大家怎麽发挥罗。以下提供几个触发技能的基本技巧:
隐藏单位和隐藏技能:这是触发技能的一大基本功,光是这一部分就能衍生出许许多多的特殊效果,例如:
指定一个目标,使目标及临近敌军睡着的群体催眠术(将单位技能改为群体技能)
指定一个地点,使临近敌军睡着的群体催眠术(将单位技能改为群体技能)
指定一个区域,使区域内敌军睡着的群体催眠术(将单位技能改为群体技能)
在施法者身上产生邪狂气(使指令目标的技能改为不指定目标)
指定一个敌军,使它随机受到缓慢、妖火、诅咒、酒醉等效果(混合技能效果) 原则上全地图建立一种隐藏单位就够了,技能等都可用触发加。不过请特别注意:
隐藏单位不应该被别人看到,可以用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:忽略科技需求,省得还要调整科技(当然把需求的科技全删掉也可以)
特效单位:顾名思义就是把单位拿来当特效用。因为光是用触发没办法改变特效的大小、颜色、透明度、高度等设定。一般都是建立一个单位,把模组改为想要的特效、把影子删掉、并加上Locust(蝗虫)技能以免受其它单位技能影响。不要用时再用触发删除即可。
要改变大小可用Animination - Change Unit Size
改变高度可用Animination - Change Unit Flying Height,注意单位移动类型必须设为Fly
改变颜色和透明度可用Animination - Change Unit Vertex Coloring配合Unit - Change Color
改变动作可用Animination - Play Unit Animation
技能启动:触发技能的事件大致上有以下几种--
以无效果的技能启动:当单位施展某技能,就启动触发效果。一般以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作为事件
微动作:想制作跳砍、击退等兼具力与美感的技能吗?这类技能其实就是像卡通一样,在极短的时间内做间断的动作,使它看起来像连续的一样:
[触发一]:当单位施展技能时,设定相关变数。计次变数归零,并开启[触发二]。
[触发二]:一开始是关闭的。每过0.0x秒,根据[触发一]的变数进行小幅的移动或动作设定。每次执行时计次变数加一,当它大於一定数值时就完成技能效果并关闭此触发。以上做法有个小小的缺点是时间不完全精确,因为Turn Off时触发的事件仍然在计时中。假设[触发二]是每0.05秒执行一次,当[触发一]启动时,可能间隔0~0.05秒才开始执行[触发二]。如果该技能连此种微小的误差都必须考虑的话,请爱用计时器:
建立一个计时器
[触发一]:当单位施展技能时,设定相关变数。计次变数归零,设定计时器重覆计时,0.0x秒归零。
[触发二]:以[计时器归零]作为事件,根据[触发一]的变数进行小幅的移动或动作设定。每次执行时计次变数加一,当它大於一定数值时就完成技能效果并暂停计时器 。
可能有人想问:为什麽不用For回圈和Wait来做,如此一来可以直接用Triggering Unit之类的函数,也可以省下不少变数?
但是很可惜的是--Wait有延迟,最多可达约0.2秒。虽然一般情况下,0.2秒小到看不见。但是如果你想让一个单位连续移动,0.2秒的延迟已足够使它看起来断断续续,因此不适合用这个方法。
这一类的技能要特别注意突发状况的处理,例如跳砍时施法者挂掉了怎麽办?击退时目标乱跑怎麽办?一般都会用暂停和无敌来预防这些状况发生。但是用触发处理暂停的话,假设技能一和技能二都会使目标在效果期间暂停。如果技能一发动之後技能二又对同一个目标发动怎麽办?技能一暂停目标=>技能二暂停目标=>......=>技能一解除暂停目标=>(这段期间技能二还没解除,但是目标的暂停已被取消。可能会出问题)=>技能二解除暂停目标。解法方法可以用技能来使目标无敌,但暂停则较麻烦,请不要制造出二个以上的暂停技能同时作用在同一目标的机会。
连结技能:一般做法分成叁部分--
[触发一]:以单位开始施展技能作为事件。为开始施展时的相关设定
[触发二]:以每0.0x秒作为事件(或者用计时器的做法),是施法中的实际效果。由[触发一]开启、[触发叁]关闭。
[触发叁]:以单位停止施展技能作为事件。为技能停止时的处理
利用Player - Enable/Disable Ability、Unit - Add Ability和Unit - Remove Ability来允许玩者使用技能或隐藏不想给玩者看到的技能(用Add/Remove Ability比较准确,但是由於英雄技能一但被移除就无法学习,因此多半只能用Enable/Disable Ability处理)。使用Player - Enable/Disable Ability请特别注意单位所有权转移的问题。
利用不同的Buff做为判断单位是否正受某些技能的影响,进而精确抓出想要的单位。
此外,用触发制作技能时,请特别注意以下几点:
技能可否同时发动:有些技能要用变数储存资料,如果有二个以上的单位在同一时间发动这种技能,可能会有BUG。
技能可否重学:用Upgrade等设定的技能要注意重修的问题。
可否略过冷却:有用到变数或Turn On/Off Trigger的技能要注意。
施法者改变玩家:如果施法者为谁拥有对技能有影响的话要注意。
Q:如何制作一个群体催眠术?
A:使用触发将单体技能群体化是最基本的触发技能制作。基本的手法是当施放主技能时,建立隐藏单位对目标附近的所有单位施放相应的隐藏技能。
建立隐藏单位Temp Caster
Ability清空
Art - Animination - Cast Point、Art - Animination - Cast Backswing 设为0
Movement Type设为None
以催眠术为底,建立隐藏技能。假设命名为"子催眠术"
Casting Time 设为0:不能有施法时间,否则不能在一瞬间对大量目标施法
Cooldown 设为0:不能有冷却时间,不然对一个目标施法後就没了
Mana Cost 设为0:Mana不够就不能放了
Techtree - Check Dependencies 设为True:省得还要调整科技
建立主技能,因为实际的效果是由隐藏技能发动,因此主技能最好不要有任何的效果,只要能指定目标或地点就好了。笔者建议用Channel做底。假设这个技能命名为"群体催眠术"
接下来就是写触发罗:Group Sleep Events Unit - A unit Starts the effect of an ability Conditions (Ability being cast) Equal to 群体催眠术 Actions -------- 建立隐藏单位 -------- Unit - Create 1 Temp Caster for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees -------- 将隐藏单位隐藏起来 ,如果要省去这条就得依照上一个问题所述, -------- -------- 将模组、影子、小地点显示等问题处理掉 -------- Unit - Hide (Last created unit) -------- 设定隐藏单位的生命时间,时间到时它将会死亡。时间长短只要够它施法即可-------- Unit - Add a 2.00 second Generic expiration timer to (Last created unit) -------- 给予隐藏单位技能,并设定等级与施法者同 -------- -------- 也可以一开乐就把技能放隐藏单位身上,但是这样就必须为不同技能建立不同种隐藏单位,反而较麻烦。 -------- Unit - Add 子催眠术 to (Last created unit) Unit - Set Level of 子催眠术 for (Last created unit) to (Level of (Ability being cast) for (Triggering unit)) -------- 选取目标附近半径300内的单位,对它们施法 -------- -------- 指定区域的技能,会计算单位的Collision Size(碰撞体积), -------- -------- 也就是说一个单位视为一个圆,只要被削到就会受到效果。 -------- -------- 但是触发的Pick Unit不一样,单位视为一个点,它的座标必须落在指定的圆形区域内才会被触发抓到 -------- -------- 一般游戏单位的碰撞体积都在16~32内,所以如果你要做是指定区域的技能, -------- -------- 最好在触发中填入较技能的范围稍大的数字才会较精确 -------- Unit Group - Pick every unit in (Units within 300.00 of (Position of (Target unit of ability being cast))) and do (Actions) Loop - Actions -------- 命令隐藏单位面对选到的单位 -------- -------- 因为转身也要时间,所以为了在一瞬间完成施法,只好用触发帮它转 -------- Unit - Make (Last created unit) face (Picked unit) over 0.00 seconds -------- 命令隐藏单位对选到的单位施展催眠术 -------- Unit - Order (Last created unit) to Undead Dreadlord - Sleep (Picked unit)
如果要做指定地点或区域的群体催眠术,可以将(Position of (Target unit of ability being cast))改成Target point of ability being cast(指定区域的技能,触发也只能抓到指定的点,也就是该区域的中心)
如果要做不指定目标的群体催眠术,可以将(Position of (Target unit of ability being cast))改成(Position of (Casting Unit))
Q:如何制作一个击退技能(遇障碍物停止)?
A:
这里建议直接用暴风槌等晕眩技做主技能,射程调短、飞弹速度调到很大。晕眩时间调到较移动时间略长(此例击退时间约2.0~秒,因此晕眩设为约3秒以避免击退中目标乱动)
KnockBack Events
Unit - A unit Starts the effect of an ability Conditions (Ability being cast) Equal to 击退
Actions -------- 计次变数 --------
Set index = 0 -------- 目标 --------
Set target = (Target unit of ability being cast) -------- 角度 --------
Set angle = (Angle from (Position of caster) to (Position of target)) -------- 开启效果 --------
Trigger - Turn on KnockBackEffect <gen>
KnockBackEffect(一开始是关闭的)
Events
Time - Every 0.05 seconds of game time Conditions Actions -------- 计次变数加一 --------
Set index = (index + 1) -------- 以下移动目标 -------- -------- 先尝试移动目标,如果遇到障碍物,目标移动後的点(P3)会和想移动的点(P2)距离过远 -------- -------- P1=原位置 -------- -------- P2=预定移动位置 -------- -------- P3=移动後的位置 -------- Set P1 = (Position of target) Set P2 = (P1 offset by 50.00 towards angle degrees) Unit - Move target instantly to P2, facing (Facing of target) degrees Set P3 = (Position of target) If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions (Distance between P2 and P3) Less than 5.00 Then - Actions Else - Actions -------- 目标移动後的点(P3)会和想移动的点(P2)距离过远,表示遇到障碍物。此时移回单位并关闭触发 -------- Unit - Move target instantly to P1 Trigger - Turn off (This trigger) If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions index Greater than or equal to 20 Then - Actions -------- 计次器大於一定值,表示已经被击退够远了,关闭触发(停止击退效果) -------- Trigger - Turn off (This trigger) Else - Actions
这样的触发同一时间只能支援一个击退,所以地点上只能有一个单位会施展此技能。并且冷却时间应该超过击退效果持续时间(2.0~秒)以避免二个以上的击退同时发动造成变数错乱及BUG。
制作地图教程
第一次运行的时候.会出现这个说话框.而且会有几秒钟的等待.而且在右下角会出现确定按钮.不过我已经不是初次运行了.所以没有那个按钮了.
成功运行以后会出现一个感觉满复杂的界面.内容很多.当然喽.(对于运行显的卡的同志们注意了,点工具栏的窗口,把刷子表关了就不卡了)相对来说实用性也很高.以后我们所做的每一步都会在这里显示出来.或者通过这里.设计trigger(触发器.简称T)以及物体编辑器等等丰富的内容.
地图名:在保存地图的时候会提示你输入名字.方便管理和分类.
菜单栏:分为 文件 编辑 查看 层面 情节 工具 高级 模块 窗口 帮助 .编辑器的所有功能都可以在这里找到并运行.
常用工具栏:可以有多层.一些常用的快捷键等都可以放置在这里.以方便使用.
微型地图:也就是预览图.在对战的时候可通过这个查看地图的大概地型和样式.
预览区:在地图编辑的时候.常需要看一些单位在不同视角和方位以及不同的动作.就是在这里看的.
刷子表:里面有 地型 单位 地型装饰物 等直接显示在地图上的内容进行分类的列表.可选择并放置在地图上.
地图属性显示:也称为状态栏.当前鼠标所在的坐标.以及地型层面(厚度).还有已经运行WE的时间(好像不准呀.@@).
Q:怎样才能在地图中喷漆??
答:首先,打开地图编辑器“WE”新建地图,然后点击 输入管理器(F12)把你想要的图片输入里边,不过一般采用TAG格式或者Blp格式,其他格式没有办法显示,然后就是通过触发事件编辑器来编辑
比如:新建一个触发器
在事件那里添加“新事件开端”,玩家-聊天信息 玩家1(红色)当输入以下内容的聊天信息“tupian”匹配方式为 完全匹配
下面添加一个动作 图象- 显示图象 把要显示的图象添加进去就可以不过显示完要记得删除哦~!
还有触发器是半英文的,建议你去下载一个汉化解压包,解压出来一个叫UI的文件夹丢到魔兽安装目录下就可以了
如何设置特殊竞技场
怎么设置像X HERO里面的那样如果1个玩家到了1个地方,就会弹出一些选项:去XXXX,去XXXXX等等而且有些地方的每个玩家只能去1次,有些地方可以重复进入,一旦PK成功,以后将不能再进入?另外如果一些PK场有人的话,其他玩家不能进入?
====================================================
我觉得应该用变量数组来实现.定义havaGone[8]为布尔型如果havaGone[玩家索引]=false //表示没有去过能去,set havaGone[玩家索引]=true,移动单位到某地方相同的,PK成功是否成功也可以用变量数组来实现
提问:如何让一个单位的模型变为类似气化状态的半透明?
注意,是气化状态啊,不是隐身我以前试过N种方法,包括虚无形态,但是在施放和恢复的时候进行交换单位的时候总是出现问题,而且我想变为半透明之后仍然可以进行和受到物理攻击,怎么弄?目前我试过的最相似的方法就是“永久的隐形”。谁有更好的方法?高人指点!
==========================================================
答:修改模型的透明度动画-----修改单位颜色 注意100%是完全透明,0%才是默认状态 |
|