找回密码
 点一下
查看: 1110|回复: 5

删除变量...

[复制链接]
发表于 2012-5-28 21:14:42 | 显示全部楼层 |阅读模式
       我在发动技能之后创建了几个变量,正常情况下是技能释放完了删就掉变量,但是放技能的中途被敌人击杀掉了,我的变量会对地图有影响吗?
       放技能的中途被敌人击杀掉了,英雄死亡后马上删掉技能的变量,会影响技能释放结束后要删掉的变量吗?
发表于 2012-5-29 00:19:31 | 显示全部楼层
   据说  没有做动作的变量 = 不存在的非生物体
回复

使用道具 举报

发表于 2012-5-29 00:23:09 | 显示全部楼层
技能施放完了删除变量?

如果不需要在结束施法时做什么动作的话变量就是在实现所有效果之后就直接删除,
另外你说的中途被杀了什么的。。
如果没用到延时类的(等待、计时器等),那么这整个T的动作是在被杀前会全部完成
如果用了延时类的动作,那么传递过去的变量可能会删不掉,但是这类东西都要捕捉单位死亡的吧,捕捉到死亡然后暂停计时器神马的。。所以就在这个捕捉死亡的T里删
回复

使用道具 举报

发表于 2012-5-29 20:01:44 | 显示全部楼层
延迟到期时判断单位是否死亡即可
死亡了就清除
没死亡就正常

如果是用了等待,同样
注意跳过后面的动作即可
如果是等待,死亡事件删除的话
也许会有bug
回复

使用道具 举报

 楼主| 发表于 2012-5-30 22:33:24 | 显示全部楼层
我本来的技能:凋零之歌
[trigger]凋零之歌(红色)
    事件
        单位 - 任意单位 开始施放技能
    条件
        (施放技能) 等于 凋零之歌 (触发器)
        ((触发单位) 是 玩家1(红色) 的同盟单位) 等于 TRUE
    动作
        设置 dlzg[1] = (触发单位)
        循环动作[循环整数A]从 1 到 36, 运行 (Loop - 动作)
            Loop - 动作
                设置 d[(循环整数A)] = (从 (dlzg[1] 的位置) 开始,距离 600.00 ,方向为 ((转换 (循环整数A) 为实数) x 10.00) 度的位移处)
        循环动作[循环整数A]从 1 到 35, 运行 (Loop - 动作)
            Loop - 动作
                闪电效果 - 创建一道 死亡之指 闪电效果,从 d[(循环整数A)] 到 d[((循环整数A) + 1)]
                设置 a1[(循环整数A)] = (最后创建的闪电效果)
        闪电效果 - 创建一道 死亡之指 闪电效果,从 d[36] 到 d[1]
        设置 a1[36] = (最后创建的闪电效果)
        触发器 - 开启 凋零之歌 2 <预设>
        触发器 - 开启 凋零之歌 3 <预设>
        等待 10.50 秒
        触发器 - 关闭 凋零之歌 2 <预设>
        触发器 - 关闭 凋零之歌 3 <预设>
        循环动作[循环整数A]从 1 到 36, 运行 (Loop - 动作)
            Loop - 动作
                点 - 清除 d[(循环整数A)]
                闪电效果 - 删除 a1[(循环整数A)]
        点 - 清除 jiaodu[1]
        设置 dlzg[1] = 没有单位
[/trigger]


[trigger]凋零之歌 2
    事件
        时间 - 每当游戏逝去 0.01 秒
    条件
    动作
        设置 jiaodu[1] = (dlzg[1] 的位置)
        循环动作[循环整数A]从 1 到 36, 运行 (Loop - 动作)
            Loop - 动作
                设置 d[(循环整数A)] = (从 jiaodu[1] 开始,距离 600.00 ,方向为 ((转换 (循环整数A) 为实数) x 10.00) 度的位移处)
        循环动作[循环整数A]从 1 到 35, 运行 (Loop - 动作)
            Loop - 动作
                闪电效果 - 移动 a1[(循环整数A)] ,使其连接 d[(循环整数A)] 到 d[((循环整数A) + 1)]
        闪电效果 - 移动 a1[36] ,使其连接 d[36] 到 d[1]
[/trigger]


[trigger]凋零之歌 3
    事件
        时间 - 每当游戏逝去 1.00 秒
    条件
    动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                (dlzg[1] 是存活的) 等于 TRUE
                (凋零之歌 (触发器) 的等级对 dlzg[1]) 等于 1
            Then - 动作
                单位组 - 选取 (半径为 600.00 圆心为 jiaodu[1] 且满足 ((((匹配单位) 的类型) 不等于 复仇守卫 (陷阱)) 且 (((匹配单位) 不等于 dlzg[1]) 且 (((匹配单位) 是存活的) 等于 TRUE))) 的所有单位) 内所有单位做动作
                    Loop - 动作
                        单位 - 命令 dlzg[1] 对 (选取单位) 造成 (1.00 x (转换 (智力 对 dlzg[1] (包括 加成)) 为实数)) 点伤害,攻击类型: 魔法 伤害类型: 普通
                        特殊效果 - 删除 (新建特效 Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl 并绑定到 (选取单位) 的 origin 附加点上)
            Else - 动作
                单位组 - 选取 (半径为 600.00 圆心为 jiaodu[1] 且满足 ((((匹配单位) 的类型) 不等于 复仇守卫 (陷阱)) 且 (((匹配单位) 不等于 dlzg[1]) 且 (((匹配单位) 是存活的) 等于 TRUE))) 的所有单位) 内所有单位做动作
                    Loop - 动作
                        单位 - 命令 dlzg[1] 对 (选取单位) 造成 (2.00 x (转换 (智力 对 dlzg[1] (包括 加成)) 为实数)) 点伤害,攻击类型: 魔法 伤害类型: 普通
                        特殊效果 - 删除 (新建特效 Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl 并绑定到 (选取单位) 的 origin 附加点上)
[/trigger]

如果中途英雄死亡的话........

[trigger]hero 10
    事件
        单位 - 任意单位 死亡
    条件
        (((触发单位) 的所有者) 不等于 玩家1(红色)) 且 (((触发单位) 的所有者) 不等于 玩家2(蓝色))
        ((触发单位) 的类型) 等于 巫妖
        ((触发单位) 是镜像单位) 等于 FALSE
    动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                Or - 任意条件成立
                    条件
                        ((触发单位) 的所有者) 等于 玩家3(青色)
                        ((触发单位) 的所有者) 等于 玩家5(黄色)
                        ((触发单位) 的所有者) 等于 玩家7(绿色)
                        ((触发单位) 的所有者) 等于 玩家9(灰色)
            Then - 动作
                游戏 - 对 (所有符合 ((匹配玩家) 等于 ((触发单位) 的所有者)) 的玩家) 发送文本信息: (((触发单位) 的名字) + (已经阵亡,|cffffcc00 + ((转换 HeroReviveTime 为字符串) + |r秒后复活!!)))
                计时器 - 启动 Time19,应用计时方式: 一次性,计时周期为 HeroReviveTime 秒
                计时器 - 为 (最后启用的计时器) 创建计时器窗口,标题: (((触发单位) 的名字) + <空字符串>)
                计时器 - 改变 (最后创建的计时器窗口) 的标题颜色为 (100.00%, 100.00%, 100.00%) 透明度为 0.00%
                设置 TimeWindow19 = (最后创建的计时器窗口)
                触发器 - 关闭 凋零之歌 2 <预设>
                触发器 - 关闭 凋零之歌 3 <预设>
                循环动作[循环整数A]从 1 到 36, 运行 (Loop - 动作)
                    Loop - 动作
                        点 - 清除 d[(循环整数A)]
                        闪电效果 - 删除 a1[(循环整数A)]
                点 - 清除 jiaodu[1]
                设置 dlzg[1] = 没有单位
                等待 HeroReviveTime 秒
                计时器 - 删除 TimeWindow19
                英雄 - 立即复活 (触发单位) 在 (玩家1(红色) 的游戏开始位置) , 显示 复活动画
                单位 - 设置 (触发单位) 的生命值为 100.00%
                单位 - 设置 (触发单位) 的魔法值为 100.00%
                游戏 - 对 (所有符合 ((匹配玩家) 等于 ((触发单位) 的所有者)) 的玩家) 发送文本信息: (((触发单位) 的名字) + |Cffff0000已经复活 !|r)
                单位 - 设置 (触发单位) 无敌的
                等待 3.00 秒
                单位 - 设置 (触发单位) 可攻击的
            Else - 动作
                游戏 - 对 (所有符合 ((匹配玩家) 等于 ((触发单位) 的所有者)) 的玩家) 发送文本信息: (((触发单位) 的名字) + (已经阵亡,|cffffcc00 + ((转换 HeroReviveTime 为字符串) + |r秒后复活!!)))
                计时器 - 启动 Time20,应用计时方式: 一次性,计时周期为 HeroReviveTime 秒
                计时器 - 为 (最后启用的计时器) 创建计时器窗口,标题: (((触发单位) 的名字) + <空字符串>)
                计时器 - 改变 (最后创建的计时器窗口) 的标题颜色为 (100.00%, 100.00%, 100.00%) 透明度为 0.00%
                设置 TimeWindow20 = (最后创建的计时器窗口)
                循环动作[循环整数A]从 1 到 36, 运行 (Loop - 动作)
                    Loop - 动作
                        点 - 清除 d2[(循环整数A)]
                        闪电效果 - 删除 a2[(循环整数A)]
                点 - 清除 jiaodu[2]
                设置 dlzg[2] = 没有单位
                等待 HeroReviveTime 秒
                计时器 - 删除 TimeWindow20
                英雄 - 立即复活 (触发单位) 在 (玩家2(蓝色) 的游戏开始位置) , 显示 复活动画
                触发器 - 关闭 凋零之歌 2 复制 <预设>
                触发器 - 关闭 凋零之歌 3 复制 <预设>
                单位 - 设置 (触发单位) 的生命值为 100.00%
                单位 - 设置 (触发单位) 的魔法值为 100.00%
                游戏 - 对 (所有符合 ((匹配玩家) 等于 ((触发单位) 的所有者)) 的玩家) 发送文本信息: (((触发单位) 的名字) + |Cffff0000已经复活 !|r)
                单位 - 设置 (触发单位) 无敌的
                等待 3.00 秒
                单位 - 设置 (触发单位) 可攻击的
[/trigger]

(LT3C两边都有一样的英雄,所以复活英雄的触发器是用“判断英雄是否队长同盟单位”做,应该简单一点)
我用单位死亡事件来删除延时技能变量....试过,有BUG(魔兽突然崩溃弹出.)
求大神找出根本原因和解决方法!
回复

使用道具 举报

发表于 2012-5-31 04:04:19 | 显示全部楼层
触发看的有点乱……
给楼主一个小技巧

在你设置变量XX=XX之前 把这个变量清空
就像

删除dian
设置变量dian=XX单位的位置

删除danweizu
设置变量danweizu=dian范围内单位

删除shandianxiaoguo
创建闪电效果XXX
设置变量shandianxiaoguo=最后创建的闪电效果

这样的话到最后就不需要来仔细检查排泄了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 20:41 , Processed in 0.052822 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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