找回密码
 点一下
查看: 1107|回复: 6

0秒无敌的多单位使用问题

[复制链接]
发表于 2009-9-6 08:39:28 | 显示全部楼层 |阅读模式
我写了2个T
事件:XX接受伤害
动作:设置A=XX
            设置XX无敌的
      开启TIME 一次0秒
      (下面是伤害的计算)。。。。

事件:TIME到期
动作:设置A可以被攻击的

这个T在运用的时候没什么问题,因为英雄无敌是回合制的,但是昨天在做终极九头怪的时候,终极九头怪可以同时攻击周围的所有敌人,那样等于是许多单位一起触发了那个T,因为是同时,估计A也被多次覆盖了,总之最后只有一个单位取消了无敌,其他单位还是在无敌状态。。。那么看来,范围杀伤魔法也会造成这个结果了,很郁闷

T要怎么改才能实现多个单位同时运用0秒无敌而不矛盾呢?谢谢大家
发表于 2009-9-6 09:06:33 | 显示全部楼层
虽然没有处理过此类问题,但是感觉上是用数组来解决。
回复

使用道具 举报

发表于 2009-9-6 09:29:50 | 显示全部楼层
很简单。LS的思路是正确的。
当接受伤害事件被触发时,使用全局变量数组(index=0-数量-1)来存储需要0秒无敌的单位。
使用一个整型变量来保存当前数组里的单位数量。
具体可以这么写:

    设置 Units[Index] = 你的单位
    设置 Index = (Index + 1)


然后在计时器响应的trigger里写:
    For循环整数A从 1 到 8190, 做动作
        Loop - 动作
            自定义代码: exitwhen udg_Index <= 0
            单位 - 设置 Units[Index] 可攻击的
            设置 Units[Index] = 没有单位
            设置 Index = (Index - 1)

这样既可。
回复

使用道具 举报

发表于 2009-9-6 09:30:43 | 显示全部楼层
1、如ls所说的数组,但是操作起来复杂程度并不小
2、用J
回复

使用道具 举报

发表于 2009-9-6 10:00:40 | 显示全部楼层
把单位放进单位组不就行了..   
事件:单位受到伤害
条件:自己弄
动作
    设置单位无敌:
        添加单位到 (伤害免疫单位组)
    开启0秒计时器

事件:计时器到期
条件:无
动作:
          选取(伤害免疫单位组) 内单位做动作
     LOOP
                   设置选取单位不无敌
          从单位组删除选取单位
     ENDLOOP
回复

使用道具 举报

 楼主| 发表于 2009-9-6 11:03:10 | 显示全部楼层
  谢谢大家~~~下午去试试
回复

使用道具 举报

发表于 2009-9-6 11:12:20 | 显示全部楼层
机制自己写
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 21:48 , Processed in 0.031640 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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