|
楼主 |
发表于 2008-8-27 14:10:12
|
显示全部楼层
六、 某些技能实例
最后这一部分是几个基础的T技能的制作过程,希望诸位新手可以旁类侧通,对自己的技能制作有点帮助。(为了排泄用了UI,需要看演示请自己下个老狼的u,我会尽量少用UI的。)
1、 跳劈
这里的跳劈是指跳过去劈,不是致命一击的别称。跳劈是个基础的动作类技能,虽然不太多,但是还是有新手问的,所以第一个要讲解的就是这个技能。
跳劈这个技能的核心问题就是跳。跳就意味着我们要改变单位的高度。第二个问题就是我们用什么作为主体技能呢?假定我们要做的这个技能是一个单位目标的主动技能,那么风暴之锤是一个比较好的选择,原因是这个技能有眩晕效果,因为我们跳过去是需要时间的用风暴之锤可以省去我们暂停目标单位的过程(但是这样做会打断对方技能),当然大家可以根据自己的目的选择任意的单体单位目标技能作为主体技能。我们在使用风暴之锤之前需要做些修改:初步确定伤害和眩晕时间,删除投射物模型,修改对应的技能说明等。并且把风暴之锤的魔法效果——被击晕的(暂停)——的显示-目标-效果项清空,这样就不会显示眩晕的效果了,另外把显示-图标项、文本-工具提示-效果项也清空,避免露馅。(一般我们的主体技能和魔法效果复制一个新的,以避免冲突。如果确认不会使用原技、原魔法效果能不会用,也可以在原技能修改)
首先是通用的事件和条件,假定我们已经做好了一个原型为风暴之锤的主体技能,其名为跳劈:
[trigger]
事件
单位 – 任意单位 开始施放技能
条件
(施放的技能) 等于 跳劈
[/trigger]
下面就是做动画效果了。如果直接使施法单位跳过去会有些麻烦,因为单位碰撞的关系,无论使用哪种方法移动都会涉及到碰撞的问题而影响效果。所以我们要做个马甲,用一般的单位修改都可以,不过用小精灵修改比较方便,因为它不会攻击其他单位。依旧是复制个自定义的小精灵。因为这个跳劈技能是为剑圣做的,所以马甲的模型要改为剑圣的,然后添加蝗虫技能,改移动类型为飞行。这样马甲就做好了。
下面就是这个T的动作部分内容。
[trigger]
动作
设置 shifadanwei = (施法单位)
设置 shifadanweiweizhi = (shifadanwei 的位置)
设置 mubiaodanwei = (技能施放目标)
设置 mubiaodanweiweizhi = (mubiaodanwei 的位置)
设置 juli = (shifadanweiweizhi 和 mubiaodanweiweizhi 之间的距离)
设置 fangxiang = (shifadanweiweizhi 到 mubiaodanweiweizhi 的角度)
单位 - 隐藏 shifadanwei
单位 - 立即移动 shifadanwei 到 mubiaodanweiweizhi
单位 - 创建 1 个 小精灵 给 中立被动 在 shifadanweiweizhi ,面向角度为 fangxiang 度
设置 majia = (最后创建的单位)
单位 - 改变 majia 的队伍颜色为 ((shifadanwei 的所有者) 的颜色)
设置 gaodu = 0.00
动画 - 播放 majia 的 attack slam 动作
动画 - 改变 majia 的动画播放速度为正常速度的 (18500.00 / juli)%
For i 从 1 到 (转换 (juli / 50.00) 为整数), 做动作
Loop - 动作
设置 dian = (从 shifadanweiweizhi 开始,距离 ((转换 i 为实数) x 20.00) ,方向为 fangxiang 度的位移处)
单位 - 立即移动 majia 到 dian
动画 - 改变 majia 的飞行高度为 ((35000.00 x (转换 i 为实数)) / juli) ,变换速率: 120.00
点 - 清除 dian
等待 0.01 秒
For i 从 1 到 (转换 (juli / 50.00) 为整数), 做动作
Loop - 动作
设置 dian = (从 shifadanweiweizhi 开始,距离 ((juli / 2.00) + ((转换 i 为实数) x 18.00)) ,方向为 fangxiang 度的位移处)
单位 - 立即移动 majia 到 dian
动画 - 改变 majia 的飞行高度为 (700.00 - ((35000.00 x (转换 i 为实数)) / juli)) ,变换速率: 120.00
点 - 清除 dian
等待 0.01 秒
单位 - 删除 majia
单位 - 显示 shifadanwei
[/trigger]
因为涉及到单位的播放动画速度和单位的移动,具体的一些参数还有待调整。
如果你的跳劈不是直接发动的,比如是使用疾风步后才用,那么你可以更改事件和条件,怎么改你自己想一想吧。
演示-跳劈.w3x
(19 KB, 下载次数: 2430)
2、移动影子
也就是移动的时候有影子,这里采用了鬼一做的一个技能作为演示,因为它使用的很巧妙。由于原来的技能有些问题,我略微做了修改,
使用了四个T,如下:
[trigger]
YIDONGYINGZI1
事件
单位 - 任意单位 开始施放技能
条件
(施放技能) 等于 移动影子
动作
设置 Hero = (触发单位)
触发器 - 开启 YIDONGYINGZI2 <预设>
[/trigger]
[trigger]
YIDONGYINGZI2
事件
时间 - 每 0.16 秒触发事件
条件
动作
设置 P_s[1] = (Hero 的位置)
设置 JuXing = (以 P_s[1] 为中心,宽 10.00 ,高 10.00 的矩形区域)
设置 JiaoDu = (Hero 的面向角度)
点 - 清除 P_s[1]
计时器 - 开启 JSQ ,计时方式: 一次性 时间设置: 0.08 秒
[/trigger]
[trigger]
YIDONGYINGZI3
事件
时间 - JSQ 到期
条件
动作
如果 ((Hero 拥有 移动影子) 等于 FALSE) 成立则 (触发器 - 关闭 YIDONGYINGZI2 <预设>) 否则 (无动作)
如果所有条件成立则做动作1,否则做动作2
If - 条件
(JuXing 内存在 Hero) 等于 FALSE
Then - 动作
设置 P_s[2] = (JuXing 的中心点)
单位 - 创建 1 个 步兵 给 (Hero 的所有者) 在 P_s[2] ,面向角度为 JiaoDu 度
动画 - 播放 (最后创建的单位) 的#6 的动作
动画 - 改变 (最后创建的单位) 的颜色比例为(50.00%, 50.00%, 50.00%),透明度为 50.00%
动画 - 改变 (最后创建的单位) 的尺寸缩放为:(90.00%, 90.00%, 90.00%)
单位 - 设置 0.50 秒 普通 类型的生命周期对 (最后创建的单位)
单位 - 设置 (最后创建的单位) 爆炸死亡 在死亡时
点 - 清除 P_s[2]
Else - 动作
无动作
[/trigger]
[trigger]
YIDONGYINGZI4
事件
单位 - 任意单位 死亡
条件
((死亡单位) 的类型) 等于 步兵
动作
单位 - 删除 (死亡单位)
[/trigger]
使用了狂战士技能作为主要技能,使用了步兵作为马甲。
这个技能的思路是施放技能时触发触发器YIDONGYINGZI1,设置好施放单位变量,开启触发器YIDONGYINGZI2。
触发器YIDONGYINGZI2是每0.16秒再次设置变量,并开启一个计时器,时间是0.08秒。计时器到期后运行触发器YIDONGYINGZI3.为了方便排泄,鬼一使用了矩形来传递点。而且矩形也用来判断单位是否移动。这个触发是初始关闭的。
触发器YIDONGYINGZI3是创建马甲,播放移动动画,改变颜色,设置生命周期。
触发器YIDONGYINGZI4是删除死亡的马甲,之所以用这样的方法是为了去除地图上的马甲单位,又不会出现冲突。
总体思路就是单位如果移动了就在之前的一个位置做一个影子,如果没有就不做。
这种方法比较特别,因为每一次创造影子时单位的动作都不是单位当前或者单位在影子处的动作,而且影子完全没有移动。
通常的方法是在单位后面创造一个或几个影子马甲,然后隔一段时间发布一次移动到主体单位命令,这种的我就不做了,大概的动作前面有说,相信你一定可以自己做出来。
演示-移动影子.w3x
(15 KB, 下载次数: 1328)
3、击退践踏
动作类技能施放画面的三大效果已经在前两个演示中演示了两个(跳跃、影子)这里我在为地三个效果——击退——做个演示。
击退践踏,顾名思义,就是发动战争践踏同时击退范围内的单位。这个技能的演示很常见,不过还是现做一个给大家吧。
这个技能很简单:
[trigger]
未命名触发器 001
事件
单位 - 任意单位 开始施放技能
条件
(施放技能) 等于 战争践踏
动作
设置 shifadian = ((施法单位) 的位置)
单位组 - 添加 (半径为 450.00 圆心为 shifadian 且满足 (((匹配单位) 是 ((施法单位) 的所有者) 的敌对单位) 等于 TRUE) 的所有单位) 内所有单位到 danweizu
设置 danweizushuliang = 0
单位组 - 选取 danweizu 内所有单位做动作
Loop - 动作
设置 danweizushuliang = (danweizushuliang + 1)
设置 danwei[danweizushuliang] = (选取单位)
设置 dian[1] = ((选取单位) 的位置)
设置 juli[danweizushuliang] = ((450.00 - (dian[1] 和 shifadian 之间的距离)) / 10.00)
设置 fangxiang[danweizushuliang] = (shifadian 到 dian[1] 的角度)
特殊效果 - 创建并绑定特效到 origin 对 (选取单位) ,使用模型: Objects\\Spawnmodels\\Undead\\ImpaleTargetDust\\ImpaleTargetDust.mdl
设置 texiao[danweizushuliang] = (最后创建的特效)
点 - 清除 dian[1]
单位组 - 清空 danweizu 内所有单位
等待 0.50 秒
For i[1] 从 1 到 10, 做动作
Loop - 动作
For i[2] 从 1 到 danweizushuliang, 做动作
Loop - 动作
设置 dian[1] = (danwei[i[2]] 的位置)
设置 dian[2] = (从 shifadian 开始,距离 ((dian[1] 和 shifadian 之间的距离) + juli[i[2]]) ,方向为 fangxiang[i[2]] 度的位移处)
单位 - 立即移动 danwei[i[2]] 到 dian[2]
点 - 清除 dian[1]
点 - 清除 dian[2]
等待 0.01 秒
For i[1] 从 1 到 danweizushuliang, (特殊效果 - 删除 texiao[i[1]])
[/trigger]
自己看吧。
演示-击退践踏.w3x
(19 KB, 下载次数: 1986)
4、刀剑风暴
这个技能不是指对战游戏里剑圣的6级技能,而是指澄海里剑圣的15级技能。这个技能实际上是两个部分,一个是正常的刀剑风暴,另一个是周围的雷电。刀剑风暴没什么可说的,就是正常的,设置好相应的数据就好了。周围的闪电则需要用T来做。这里用到的从属技能是震荡波(牛头人酋长技能,常称之为冲击波),其投射物是闪电盾的。
马甲用什么改都行,不过要保证单位不会自动攻击,一般用小精灵改,不过工人类别的是在左下角有显示的,这一点要注意。
设置好从属技能的冲击波后就要来写T了。
[trigger]
未命名触发器 001
事件
单位 - 任意单位 开始施放技能
条件
(施放技能) 等于 剑刃风暴
动作
设置 shifadanwei = (施法单位)
计时器 - 开启 timer[1] ,计时方式: 一次性 时间设置: 20.00 秒
计时器 - 开启 timer[2] ,计时方式: 一次性 时间设置: 0.50 秒
触发器 - 开启 未命名触发器 002 <预设>
触发器 - 开启 未命名触发器 003 <预设>
[/trigger]
[trigger]
未命名触发器 002
事件
时间 - timer[2] 到期
条件
动作
设置 dian[1] = (shifadanwei 的位置)
设置 dian[2] = (从 dian[1] 开始,距离 500.00 ,方向为 (随机实数,最小值: 0.00 最大值: 360.00) 度的位移处)
单位 - 创建 1 个 小精灵 给 玩家1(红色) 在 dian[1] ,面向角度为 默认建筑朝向 度
单位 - 设置 1.00 秒 普通 类型的生命周期对 (最后创建的单位)
单位 - 对 (最后创建的单位) 发布 兽族牛头人酋长 - 震荡波 命令到目标点: dian[2]
计时器 - 开启 timer[2] ,计时方式: 一次性 时间设置: 0.50 秒
点 - 清除 dian[1]
点 - 清除 dian[2]
[/trigger]
[trigger]
未命名触发器 003
事件
单位 - 任意单位 死亡
条件
((死亡单位) 的类型) 等于 小精灵
动作
单位 - 删除 (死亡单位)
[/trigger]
[trigger]
未命名触发器 004
事件
时间 - timer[1] 到期
条件
动作
触发器 - 关闭 未命名触发器 002 <预设>
触发器 - 关闭 未命名触发器 003 <预设>
[/trigger]
第二三个T是初始关闭的。T的内容不用我再说明了吧。如果嫌旋风附近的雷电太少可以把第二个T的动作内容循环几次。
演示-刀剑风暴.w3x
(19 KB, 下载次数: 1999)
5、冰火符
这个技能是一个状态类型的技能,就是单位发动技能后,单位身边会出现两个符,一冰一火,被这两个符碰到的单位会被冻结或被火烧。
需要的触发器如下:
[trigger]
未命名触发器 001
事件
单位 - 任意单位 开始施放技能
条件
(施放技能) 等于 冰火符
动作
设置 shifazhe = (施法单位)
设置 shifazheweizhi = ((施法单位) 的位置)
设置 dian[1] = (从 shifazheweizhi 开始,距离 120.00 ,方向为 0.00 度的位移处)
设置 dian[2] = (从 shifazheweizhi 开始,距离 120.00 ,方向为 180.00 度的位移处)
设置 bingfu = (新建 (shifazhe 的所有者) 的 冰冻符文 在 dian[1] 面向角度:180.00 度)
设置 huofu = (新建 (shifazhe 的所有者) 的 火焰符文 在 dian[2] 面向角度:0.00 度)
设置 jiaodu = 0.00
计时器 - 开启 timer1 ,计时方式: 循环 时间设置: 0.05 秒
计时器 - 开启 timer2 ,计时方式: 一次性 时间设置: 60.00 秒
触发器 - 开启 未命名触发器 002 <预设>
点 - 清除 shifazheweizhi
For i 从 1 到 2, (点 - 清除 dian)
[/trigger]
这个T的作用是记录相关信息并开启技能效果的触发器。
[trigger]
未命名触发器 002
事件
时间 - timer1 到期
条件
动作
设置 shifazheweizhi = (shifazhe 的位置)
设置 dian[1] = (从 shifazheweizhi 开始,距离 120.00 ,方向为 jiaodu 度的位移处)
设置 dian[2] = (从 shifazheweizhi 开始,距离 120.00 ,方向为 (jiaodu + 180.00) 度的位移处)
单位 - 立即移动 bingfu 到 dian[1] ,并面向 shifazheweizhi
单位 - 立即移动 huofu 到 dian[2] ,并面向 shifazheweizhi
设置 jiaodu = (jiaodu + 15.00)
点 - 清除 shifazheweizhi
触发器 - 开启 未命名触发器 002 <预设>
For i 从 1 到 2, (点 - 清除 dian)
[/trigger]
这个T初始关闭,是旋转单位的
[trigger]
未命名触发器 003
事件
时间 - timer2 到期
条件
动作
单位 - 删除 bingfu
单位 - 删除 huofu
触发器 - 关闭 未命名触发器 002 <预设>
[/trigger]
这个T是关闭技能效果的。
技能的施放是通过修改了的凤凰火焰技能加上的。通过添加地图范围内带有这个技能魔法效果的单位,可以修改这个技能的附带效果,比如冰符碰到的单位被冰封(眩晕)被火碰到的单位沉默(灵魂燃烧技能)。这些效果使用对应的单位添加上就可以了。
演示-冰火符.w3x
(20 KB, 下载次数: 1296)
6、概率范围眩晕
这个是个被动技能,就是单位进行攻击时有一定概率击晕面前一定范围的单位。
前面都是主动技能,这里给大家做一个被动技能的演示。这个被动技能是模拟的,并没有主动技能,如果你要一个类似的英雄技能,你可以做一个没有施放效果的被动技能,通过这个技能的等级来影响数据。这里我就不添加主动技能了。
要范围眩晕,可以使用的从属技能有几个,例如,穿刺、战争践踏……我这里使用的是穿刺。
技能的T为:
[trigger]
未命名触发器 001
事件
单位 - 任意单位 被攻击
条件
(攻击单位) 等于 danwei
(随机实数,最小值: 0.00 最大值: 100.00) 大于或等于 50.00
动作
设置 dian[1] = (danwei 的位置)
单位 - 创建 1 个 弓箭手 给 玩家1(红色) 在 dian[1] ,面向角度为 (danwei 的面向角度) 度
单位 - 立即移动 (最后创建的单位) 到 dian[1]
设置 dian[2] = (从 dian[1] 开始,距离 300.00 ,方向为 (danwei 的面向角度) 度的位移处)
单位 - 对 (最后创建的单位) 发布 不死族地穴领主 - 穿刺 命令到目标点: dian[2]
单位 - 设置 1.00 秒 普通 类型的生命周期对 (最后创建的单位)
[/trigger]
[trigger]
未命名触发器 002
事件
单位 - 任意单位 死亡
条件
((死亡单位) 的类型) 等于 弓箭手
动作
单位 - 删除 (死亡单位)
[/trigger]
这个也不用什么解释了吧,攻击——判断并计算概率——发动技能。
演示-概率范围眩晕.w3x
(19 KB, 下载次数: 1784)
7、尸体爆炸
尸体爆炸这个技能的制作难度在于尸体的选取。选取尸体可以采用两种方法:
第一种是用对尸体自动施放的技能(如暗夜精灵的复仇之魂技能)选取,这个只要获得单位施放技能命令就可以了,获取的数据是技能施放的目标(单位类型),这种方法的好处是可以把部分效果直接用技能做出来,T的内容很少。
第二种是选取范围内单位,条件是范围内单位的生命值为0.具体动作如下:
未命名触发器 002
[trigger]
动作
单位组 - 选取 (半径为 xxx 圆心为 yyy 且满足 ((生命值 对于 (匹配单位)) 大于或等于 10.00) 的所有单位) 内所有单位做动作
Loop - 动作
[/trigger]
这是圆范围的,矩形的可以参照演示中制作尸体的T的条件,那个是对于矩形范围内的尸体数量的判断。
这个演示中使用的是第一种选择方法,用到了水元素作为主体技能,从属技能有复仇之魂,雷霆一击(这个可以改,根据自己的效果)用了两个马甲。具体的自己看演示吧。
这个演示主要是给大家演示一下如何选取尸体这种特殊的物体,技能施放画面什么的并没有认真做。
使用的T如下
[trigger]
未命名触发器 002
事件
单位 - 任意单位 被召唤(召唤单位)
条件
任一条件成立
条件
((召唤单位) 的类型) 等于 治疗守卫
((召唤单位) 的类型) 等于 弓箭手
动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
((召唤单位) 的类型) 等于 治疗守卫
Then - 动作
单位 - 对 (召唤单位) 发布 暗夜精灵族复仇天神 - 激活复仇之魂 命令
Else - 动作
动画 - 改变 (召唤单位) 的颜色比例为(100.00%, 100.00%, 100.00%),透明度为 100.00%
单位 - 对 (召唤单位) 发布 人族山丘之王 - 雷霆一击 命令
[/trigger]
这是个一体化的T,两个技能的触发内容组合到一个T里了。根据不同的召唤单位发布不同的动作。
演示-尸体爆炸.w3x
(19 KB, 下载次数: 949)
|
|