找回密码
 点一下
查看: 1709|回复: 13

第一次做的类冲锋技能,顺便提几个问题

[复制链接]
发表于 2012-5-28 18:20:14 | 显示全部楼层 |阅读模式
为什么用的是同一个移动触发器,有时来回的距离不一致,
还有个问题就是怎么记录单位组内每个单位的不同实数,比如转身速度。
下面是技能触发,嗯
[trigger]CC
    事件
        单位 - 任意单位 发动技能效果
    条件
        (施放技能) 等于 彻骨穿刺
    动作
        设置 C = (施法单位)
        单位 - 设置 C 无敌的
        单位 - 设置 C 暂停
        单位 - 设置 C 关闭 碰撞
        动画 - 播放 C 的第9 号动作
        等待 0.50 秒(游戏时间)
        触发器 - 开启 CC1 <预设>
        等待 0.40 秒(游戏时间)
        触发器 - 关闭 CC1 <预设>
        动画 - 播放 C 的第11 号动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                (转换角度 (C 的面向角度) 为实数) 大于或等于 180.00
            Then - 动作
                单位 - 设置 C 的面向角度为 (转换实数 (((转换角度 (C 的面向角度) 为实数) - 180.00) 的绝对值) 为角度) 度
            Else - 动作
                单位 - 设置 C 的面向角度为 (转换实数 (((转换角度 (C 的面向角度) 为实数) + 180.00) 的绝对值) 为角度) 度
        动画 - 播放 C 的第9 号动作
        等待 0.50 秒(游戏时间)
        触发器 - 开启 CC1 <预设>
        等待 0.40 秒(游戏时间)
        触发器 - 关闭 CC1 <预设>
        动画 - 播放 C 的第11 号动作
        单位 - 设置 C 恢复
        单位 - 设置 C 可攻击的
        单位 - 设置 C 打开 碰撞
[/trigger]
[trigger]CC1
    事件
        时间 - 每当游戏逝去 0.02 秒
    条件
    动作
        特殊效果 - 在 (坐标(((C 所在X轴坐标) + (随机实数,最小值: -20.00 最大值: 20.00)), ((C 所在Y轴坐标) + (随机实数,最小值: -20.00 最大值: 20.00)))) 创建特效: Abilities\Spells\Undead\Impale\ImpaleMissTarget.mdl
        特殊效果 - 删除 (最后创建的特效)
        可破坏物 - 选取 160.00 范围以 (C 的位置) 为中心的区域内所有可破坏物做动作(多个动作)
            Loop - 动作
                可破坏物 - 杀死 (选取的可破坏物)
        点 - 清除 (C 的位置)
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                Or - 任意条件成立
                    条件
                        ((从 (C 的位置) 开始,距离 40.00 ,方向为 (转换角度 (C 的面向角度) 为实数) 度的位移处) 处的 可通行地面 通行状态为关闭) 等于 TRUE
                        ((可用地图区域) 内包含 (从 (C 的位置) 开始,距离 40.00 ,方向为 (转换角度 (C 的面向角度) 为实数) 度的位移处)) 等于 FALSE
            Then - 动作
                不做任何动作
            Else - 动作
                单位 - 立即移动 C 到 (从 (C 的位置) 开始,距离 40.00 ,方向为 (转换角度 (C 的面向角度) 为实数) 度的位移处)
                点 - 清除 (C 的位置)
                单位组 - 选取 (半径为 400.00 圆心为 (C 的位置) 且满足 (((((匹配单位) 是 建筑) 等于 FALSE) 且 (((匹配单位) 是存活的) 等于 TRUE)) 且 ((((匹配单位) 是 机械) 等于 FALSE) 且 (((匹配单位) 是 (C 的所有者) 的敌对单位) 等于 内所有单位做动作
                    Loop - 动作
                        特殊效果 - 创建并绑定特效到 origin 对 (选取单位) ,使用模型: Abilities\Spells\Undead\Impale\ImpaleMissTarget.mdl
                        特殊效果 - 删除 (最后创建的特效)
                        单位 - 命令 C 对 (选取单位) 造成 85.00 点伤害(是 攻击伤害, 不是远程攻击) 攻击类型: 英雄 伤害类型: 普通 武器类型: 无
                点 - 清除 (C 的位置)
[/trigger]
发表于 2012-5-28 19:19:57 | 显示全部楼层
好多啊。。
回复

使用道具 举报

 楼主| 发表于 2012-5-28 22:46:34 | 显示全部楼层
有图有真相:
这是基本上准的一次移动:
RIGHT.gif

这是不管真么看都不准的一次移动:
WRONG.gif
回复

使用道具 举报

发表于 2012-5-28 23:17:54 | 显示全部楼层
楼主点的排泄有问题
至于记录变量一般用数组或者哈希表
数组的话就是给单位捆绑自定义值之内的可以把每一个单位区分开的东西 然后
设置变量 shishu[单位自定义值]=单位面向角度
设置变量 shishu2[单位自定义值]=单位的当前移动速度
……
哈希表的话和上面类似了把
保存实数 单位面向角度到 haxibiao的 主索引1 子索引 单位自定义值   里面
不过哈希表需要1.24版本的支持 1.20无法使用

并且 自定义值的运用也不是很简单的……因为本人没有摸头摸透所以不细说了
回复

使用道具 举报

 楼主| 发表于 2012-5-28 23:47:04 | 显示全部楼层

回 破喉咙 的帖子

破喉咙:楼主点的排泄有问题
至于记录变量一般用数组或者哈希表
数组的话就是给单位捆绑自定义值之内的可以把每一个单位区分开的东西 然后
设置变量 shishu[单位自定义值]=单位面向角度
设置变量 shishu2[单位自定义值]=单位的当前移动速度
....... (2012-05-28 23:17)
摸头?一休?
回复

使用道具 举报

 楼主| 发表于 2012-5-28 23:51:08 | 显示全部楼层
哎哎,喉咙桑说的不是很懂。是给每个单位绑定自定义值,再设置变量,这么说每个单位都要新建一个变量了? 是吗?
回复

使用道具 举报

发表于 2012-5-29 00:18:27 | 显示全部楼层
无聊做了个演示  
按下ESC可以显示每个单位的自定义值
你用技能可以保存每个单位的位置和面向角度
然后用另外一个技能让他们回到保存的位置和角度

自定义值+数组变量保存演示.w3x

20 KB, 下载次数: 19

回复

使用道具 举报

发表于 2012-5-29 00:35:52 | 显示全部楼层
[trigger]可破坏物 - 选取 160.00 范围以 (C 的位置) 为中心的区域内所有可破坏物做动作(多个动作)
Loop - 动作
可破坏物 - 杀死 (选取的可破坏物)
点 - 清除 (C 的位置)[/trigger]
一共创建了两个点,然后删除了后创建的一个……

创建点的动作是“C的位置”,于是
“选取 160.00 范围以 (C 的位置) 为中心” 会创建一个点
“-点 - 清除 (C 的位置)” 会创建一个点,不过这个点被删除了


[trigger]如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
If - 条件
Or - 任意条件成立
条件
((从 (C 的位置) 开始,距离 40.00 ,方向为 (转换角度 (C 的面向角度) 为实数) 度的位移处) 处的 可通行地面 通行状态为关闭) 等于 TRUE
((可用地图区域) 内包含 (从 (C 的位置) 开始,距离 40.00 ,方向为 (转换角度 (C 的面向角度) 为实数) 度的位移处)) 等于 FALSE
Then - 动作
不做任何动作
Else - 动作
单位 - 立即移动 C 到 (从 (C 的位置) 开始,距离 40.00 ,方向为 (转换角度 (C 的面向角度) 为实数) 度的位移处)
点 - 清除 (C 的位置)[/trigger]
不做任何动作会调用函数占用效率(虽说约等于没有占用……)
然后清除点的问题同上


至于移动距离不等。。这个问题个人觉得是“等待”的误差造成的……
回复

使用道具 举报

发表于 2012-5-29 00:37:15 | 显示全部楼层
破喉咙:楼主点的排泄有问题
至于记录变量一般用数组或者哈希表
数组的话就是给单位捆绑自定义值之内的可以把每一个单位区分开的东西 然后
设置变量 shishu[单位自定义值]=单位面向角度
设置变量 shishu2[单位自定义值]=单位的当前移动速度
....... (2012-05-28 23:17)
120可以用缓存~
回复

使用道具 举报

 楼主| 发表于 2012-5-29 00:44:26 | 显示全部楼层
谢谢 ,大致明白了

然后是移动的问题
回复

使用道具 举报

 楼主| 发表于 2012-5-29 01:12:49 | 显示全部楼层

回 chyj4747 的帖子

chyj4747:[trigger]可破坏物 - 选取 160.00 范围以 (C 的位置) 为中心的区域内所有可破坏物做动作(多个动作)
Loop - 动作
可破坏物 - 杀死 (选取的可破坏物)
点 - 清除 (C 的位置)[/trigger]
一共创建了两个点,然后删除了后创建的一个……
....... (2012-05-29 00:35)
啊啊啊啊啊啊啊啊,点点点点[s:210]
回复

使用道具 举报

发表于 2012-5-29 01:26:59 | 显示全部楼层
你需要用变量记录点……
回复

使用道具 举报

发表于 2012-5-29 19:48:32 | 显示全部楼层
思密达,打开碰撞大丈夫
回复

使用道具 举报

发表于 2012-5-30 02:11:50 | 显示全部楼层

回 xu695622238 的帖子

xu695622238:思密达,打开碰撞大丈夫&#160;(2012-05-29 19:48)&#160;
思密达!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-22 19:53 , Processed in 0.063120 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表