找回密码
 点一下
查看: 1682|回复: 8

我把剑刃风暴做了吸引后吹飞的效果,出问题了,帮忙看下

[复制链接]
发表于 2011-8-18 18:37:19 | 显示全部楼层 |阅读模式
我把 剑刃风暴 的伤害效果去掉改用触发来模拟,又加了吸引和吹飞的效果,首次测试效果达成,后来看变量用的有点多,就做了个瘦身处理,一些相同变量改用数组,加个判断合并了吸引和吹飞效果,然后测试就悲剧了,首先是吸引是吧怪吸像一个诡异的地方,然后就是没伤害效果了,以下是触发:
变量:JS=单位[数组] JRFB_D_X=点  JRFB_D_X=点  JRFB_D_XQ=点  JRFB_JSQ=计时器[数组]  JRFB_SS=实数[数组]
JRFB_01
    事件
        单位 - 任意单位 发动技能效果
    条件
        (施放技能) 等于 剑刃风暴
    动作
     设置 JS_DW[4] = (触发单位)
        设置 JRFB_SS[1] = 600.00
        设置 JRFB_SS[2] = 1.00
        单位 - 设置 (触发单位) 关闭 碰撞
    计时器 - 启动 JRFB_JSQ[1],应用计时方式: 循环,计时周期为 0.03 秒
    计时器 - 启动 JRFB_JSQ[2],应用计时方式: 循环,计时周期为 0.33 秒
    等待 7.10 秒(游戏时间)
        循环动作[循环整数A]从 1 到 2, 运行 (Loop - 动作)
            Loop - 动作
                计时器 - 暂停 JRFB_JSQ[(循环整数A)]
        单位 - 设置 (触发单位) 打开 碰撞
    等待 0.20 秒(游戏时间)
        设置 JRFB_SS[1] = 250.00
        设置 JRFB_SS[2] = 2.00
        计时器 - 启动 JRFB_JSQ[1],应用计时方式: 循环,计时周期为 0.05 秒
        动画 - 播放 (触发单位) 的 Attack Walk Stand Spin 动作
        特殊效果 - 在 JS_D[4] 创建特效: Abilities\Spells\Other\Tornado\TornadoElementalSmall.mdl
        特殊效果 - 删除 (最后创建的特效)
        等待 0.50 秒(游戏时间)
        计时器 - 暂停 JRFB_JSQ[1]
        动画 - 重置 (触发单位) 的动作,恢复到普通状态

JRFB_02
    事件
        时间 - JRFB_JSQ[1] 到期
    条件
        (JS_DW[4] 是存活的) 等于 TRUE
    动作
        设置 JS_D[4] = (JS_DW[4] 的位置)
        单位组 - 选取 (半径为 JRFB_SS[1] 圆心为 JS_D[4] 的圆范围内所有单位) 内所有单位做动作
            Loop - 动作
                设置 JRFB_D_XQ = ((选取单位) 的位置)
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        ((选取单位) 是存活的) 等于 TRUE
                        ((选取单位) 是 (JS_DW[4] 的所有者) 的敌对单位) 等于 TRUE
                    Then - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                JRFB_SS[2] 等于 2.00
                            Then - 动作
                                设置 JRFB_D_X = (从 JRFB_D_XQ 开始,距离 20.00 ,方向为 (JS_D[4] 到 JRFB_D_XQ 的角度) 度的位移处)
                                设置 JRFB_D_Y = (从 JRFB_D_XQ 开始,距离 20.00 ,方向为 (JS_D[4] 到 JRFB_D_XQ 的角度) 度的位移处)
                                单位 - 设置 (选取单位) 的X坐标为 (JRFB_D_X 的X轴坐标)
                                单位 - 设置 (选取单位) 的Y坐标为 (JRFB_D_Y 的Y轴坐标)
                            Else - 动作
                                设置 JRFB_D_X = (从 JRFB_D_XQ 开始,距离 8.00 ,方向为 (JRFB_D_XQ 到 JS_D[4] 的角度) 度的位移处)
                                设置 JRFB_D_Y = (从 JRFB_D_XQ 开始,距离 8.00 ,方向为 (JRFB_D_XQ 到 JS_D[4] 的角度) 度的位移处)
                                单位 - 设置 (选取单位) 的X坐标为 (JRFB_D_X 的X轴坐标)
                                单位 - 设置 (选取单位) 的Y坐标为 (JRFB_D_Y 的Y轴坐标)
                    Else - 动作
                        不做任何动作
                单位组 - 清空 最后创建的单位组 <New> 内所有单位
                单位组 - 删除 最后创建的单位组 <New>
                点 - 清除 JRFB_D_XQ
                点 - 清除 JS_D[4]
                点 - 清除 JRFB_D_X
                点 - 清除 JRFB_D_Y

JRFB_03
    事件
        时间 - JRFB_JSQ[2] 到期
    条件
        (JS_DW[4] 是存活的) 等于 TRUE
    动作
        单位组 - 选取 (半径为 250.00 圆心为 JS_D[4] 的圆范围内所有单位) 内所有单位做动作
            Loop - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        ((选取单位) 是存活的) 等于 TRUE
                        ((选取单位) 是 (JS_DW[4] 的所有者) 的敌对单位) 等于 TRUE
                    Then - 动作
                        单位 - 命令 JS_DW[4] 对 (选取单位) 造成 (((转换 (JS_DW[4] 的敏捷值(包括 加成)) 为实数) x 0.70) + (Q_GQ[((JS_DW[4] 的所有者) 的玩家索引号)] x 0.26)) 点伤害 攻击类型: 英雄 伤害类型: 普通 武器类型: 无
                        单位组 - 清空 最后创建的单位组 <New> 内所有单位
                        单位组 - 删除 最后创建的单位组 <New>
                    Else - 动作
                        不做任何动作
发表于 2011-8-18 20:03:29 | 显示全部楼层
没记错的话计时器如果要用到超过1的数组的话需要设置数组大小
然后会吸引到奇怪的地方的话
大概是因为你在单位组外面设置的点(JS_D[4] ),但是在单位组里面清除掉了的缘故吧
回复

使用道具 举报

 楼主| 发表于 2011-8-19 00:13:33 | 显示全部楼层

回 1楼(a595859893) 的帖子

多谢指点,我吧设置剑圣位置的变量设置移到单位组内吸引和吹飞正常了,只是为伤害效果还是没呢!计时器数组的大小也设置成2了,后来设置成3都还是没伤害,计时器不能用数组?后有开了个计时器变量,还是没伤害,触发设置应该没问题啊!
回复

使用道具 举报

发表于 2011-8-19 00:31:01 | 显示全部楼层
  计时器和单位组一样  必须给定一个初始值  (而且不能过高)

     然后你就在界限里边放心大胆的用吧
回复

使用道具 举报

 楼主| 发表于 2011-8-19 12:42:21 | 显示全部楼层
我粗心了,在三号触发(也就是伤害效果的触发)里没设置点
我想问下,比如我设置 点变量A的位置为B点,然后再没删除点A的情况下又设置A的位置为C点,那么这样做的话是不是会造成点泄露?还是第二次设置点A的时候算作吧A从B点移动到C点
回复

使用道具 举报

发表于 2011-8-19 12:45:16 | 显示全部楼层
如果没删掉点,可以直接移动点,直接设置似乎有泄漏……
回复

使用道具 举报

 楼主| 发表于 2011-8-19 12:54:50 | 显示全部楼层
[attachment=undefined]
回复

使用道具 举报

 楼主| 发表于 2011-8-19 13:03:00 | 显示全部楼层
图片怎么不能上传?
我把触发文字帖上来

JRFB_02
    事件
        时间 - JRFB_JSQ[1] 到期
    条件
        (JS_DW[4] 是存活的) 等于 TRUE
    动作
        设置 JS_D[4] = (JS_DW[4] 的位置)        
            单位组 - 选取 (半径为 JRFB_SS[1] 圆心为 JS_D[4] 的圆范围内所有单位) 内所有单位做动作
            Loop - 动作
                设置 JS_D[4] = (JS_DW[4] 的位置)               
                设置 JRFB_D_XQ = ((选取单位) 的位置)
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        ((选取单位) 是存活的) 等于 TRUE
                        ((选取单位) 是 (JS_DW[4] 的所有者) 的敌对单位) 等于 TRUE
                    Then - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                JRFB_SS[2] 等于 2.00
                            Then - 动作
                                设置 JRFB_D_X = (从 JRFB_D_XQ 开始,距离 20.00 ,方向为 (JS_D[4] 到 JRFB_D_XQ 的角度) 度的位移处)
                                设置 JRFB_D_Y = (从 JRFB_D_XQ 开始,距离 20.00 ,方向为 (JS_D[4] 到 JRFB_D_XQ 的角度) 度的位移处)
                                单位 - 设置 (选取单位) 的X坐标为 (JRFB_D_X 的X轴坐标)
                                单位 - 设置 (选取单位) 的Y坐标为 (JRFB_D_Y 的Y轴坐标)
                            Else - 动作
                                设置 JRFB_D_X = (从 JRFB_D_XQ 开始,距离 8.00 ,方向为 (JRFB_D_XQ 到 JS_D[4] 的角度) 度的位移处)
                                设置 JRFB_D_Y = (从 JRFB_D_XQ 开始,距离 8.00 ,方向为 (JRFB_D_XQ 到 JS_D[4] 的角度) 度的位移处)
                                单位 - 设置 (选取单位) 的X坐标为 (JRFB_D_X 的X轴坐标)
                                单位 - 设置 (选取单位) 的Y坐标为 (JRFB_D_Y 的Y轴坐标)
                    Else - 动作
                        不做任何动作
                单位组 - 清空 最后创建的单位组 <New> 内所有单位
                单位组 - 删除 最后创建的单位组 <New>
                点 - 清除 JRFB_D_XQ
                点 - 清除 JS_D[4]
                点 - 清除 JRFB_D_X
                点 - 清除 JRFB_D_Y


上面那两步(红色字部分)点的设置,测试起来缺一不可,但是要怎么排泄呢?看起来总会有一个点泄漏,在单位组里第二次设置点的之前一步先删除之前的点没问题吗?下面红色字的步骤是在单位组里进行的,能彻底删除不?
回复

使用道具 举报

 楼主| 发表于 2011-8-19 13:10:07 | 显示全部楼层
居然有273个单位组泄漏,还有6个点泄漏,是不是选取伤害和特效的单位组也要用变量保存再删除?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-16 22:09 , Processed in 0.030549 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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