找回密码
 点一下
查看: 1200|回复: 11

怎么让纯T技能对多个单位使用?

[复制链接]
发表于 2008-7-31 14:28:24 | 显示全部楼层 |阅读模式
我做了个纯T技能,是让目标单位每2秒,掉10%的血。我想请问一下怎么让这个技能对多个单位使用?也就是,我对这个单位使用后,又对另一个单位使用,而不会效果丢失。我想这应该是设置变量的问题。请大家帮帮忙。

这个是那个技能: 1.w3x (15 KB, 下载次数: 9)
发表于 2008-7-31 14:37:47 | 显示全部楼层
纯T的,还带持续效果,支持多人使用,不太现实~~
回复

使用道具 举报

发表于 2008-7-31 14:38:24 | 显示全部楼层
要用局部变量把,但是用局部变量还算不算纯T呢
回复

使用道具 举报

发表于 2008-7-31 14:42:30 | 显示全部楼层
有个折中的办法,一般技能都是给玩家的英雄用的吧,那就把变量改为数组,下标就是玩家的ID,只要不是同一个玩家用就没事了
回复

使用道具 举报

 楼主| 发表于 2008-7-31 15:09:22 | 显示全部楼层
2楼的,说说怎么做?

3楼的,在某中方面这样也限制了对多个单位使用
回复

使用道具 举报

发表于 2008-7-31 15:14:59 | 显示全部楼层
局部变量 必须得用自定义代码,就是jass 来定义.
而且调用这个变量必须再自定义代码中调用,既用 jass语言调用。
从某种意义上说这样已经不是纯T了。
回复

使用道具 举报

发表于 2008-7-31 16:59:49 | 显示全部楼层
做了一个,支持最多8000个单位同时使用,缺点是不能马上响应

1.w3x

17 KB, 下载次数: 6

回复

使用道具 举报

发表于 2008-7-31 17:52:51 | 显示全部楼层
T的话 简单的技能..
一般是 没有用到计时器的..
还可以做多人的...
一般用到计时器的话
T很难做到多人了....
回复

使用道具 举报

发表于 2008-7-31 19:50:54 | 显示全部楼层
用UI算纯T的话,随便。
可以在T里面写30%的自定义代码的话,随便。
回复

使用道具 举报

 楼主| 发表于 2008-7-31 21:02:57 | 显示全部楼层
给出解决办法就行了,我才管他是不是纯T的....

6 楼的地图打不开,我们的UI不同吧?我用的是老狼的。
回复

使用道具 举报

发表于 2008-7-31 22:15:01 | 显示全部楼层
lz怎么说你呢………………
自己的标题说要纯T的,9楼有说管他是不是纯T的,自己抽自己耳光么??

6楼的演示打开正常
回复

使用道具 举报

发表于 2008-8-1 01:16:21 | 显示全部楼层
[trigger]
can
    事件
        单位 - 任意单位 开始施放技能
    条件
        (施放技能) 等于 残
    动作
        设置 AddListInteger = 5
        设置 AddListUnitA = (技能施放目标)
        触发器 - 运行 ListAdd <预设> (无视条件)

ListAdd
    事件
    条件
    动作
        如果 (EndIndex 等于 8000) 成立则 (设置 EndIndex = 1) 否则 (设置 EndIndex = (EndIndex + 1))
        设置 ListUnitA[EndIndex] = AddListUnitA
        设置 ListInteger[EndIndex] = (AddListInteger x 10)
        如果 (BeginIndex 等于 EndIndex) 成立则 (触发器 - 开启 ListTimer <预设>) 否则 (无动作)

ListTimer
    事件
        时间 - 每 0.20 秒触发事件
    条件
        BeginIndex 不等于 (EndIndex + 1)
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                BeginIndex 小于或等于 EndIndex
            Then - 动作
                For ListIndex 从 BeginIndex 到 EndIndex, 做动作
                    Loop - 动作
                        如果所有条件成立则做动作1,否则做动作2
                            If - 条件
                                ListUnitA[ListIndex] 不等于 没有单位
                            Then - 动作
                                如果所有条件成立则做动作1,否则做动作2
                                    If - 条件
                                        (ListInteger[ListIndex] mod 10) 等于 0
                                    Then - 动作
                                        单位 - 设置 ListUnitA[ListIndex] 的生命值为 ((ListUnitA[ListIndex] 的生命百分比) - 10.00)%
                                    Else - 动作
                                如果所有条件成立则做动作1,否则做动作2
                                    If - 条件
                                        BeginIndex 等于 ListIndex
                                        ListInteger[ListIndex] 等于 0
                                    Then - 动作
                                        设置 BeginIndex = (ListIndex + 1)
                                    Else - 动作
                                设置 ListInteger[ListIndex] = (ListInteger[ListIndex] - 1)
                            Else - 动作
            Else - 动作
                For ListIndex 从 BeginIndex 到 8000, 做动作
                    Loop - 动作
                        如果所有条件成立则做动作1,否则做动作2
                            If - 条件
                                ListUnitA[ListIndex] 不等于 没有单位
                            Then - 动作
                                如果所有条件成立则做动作1,否则做动作2
                                    If - 条件
                                        (ListInteger[ListIndex] mod 10) 等于 0
                                    Then - 动作
                                        单位 - 设置 ListUnitA[ListIndex] 的生命值为 ((ListUnitA[ListIndex] 的生命百分比) - 10.00)%
                                    Else - 动作
                                如果所有条件成立则做动作1,否则做动作2
                                    If - 条件
                                        BeginIndex 等于 ListIndex
                                        ListInteger[ListIndex] 等于 0
                                    Then - 动作
                                        设置 BeginIndex = (ListIndex + 1)
                                    Else - 动作
                                设置 ListInteger[ListIndex] = (ListInteger[ListIndex] - 1)
                            Else - 动作
                如果 (BeginIndex 等于 8001) 成立则 (设置 BeginIndex = 1) 否则 (无动作)
                For ListIndex 从 1 到 (EndIndex - 1), 做动作
                    Loop - 动作
                        如果所有条件成立则做动作1,否则做动作2
                            If - 条件
                                ListUnitA[ListIndex] 不等于 没有单位
                            Then - 动作
                                如果所有条件成立则做动作1,否则做动作2
                                    If - 条件
                                        (ListInteger[ListIndex] mod 10) 等于 0
                                    Then - 动作
                                        单位 - 设置 ListUnitA[ListIndex] 的生命值为 ((ListUnitA[ListIndex] 的生命百分比) - 10.00)%
                                    Else - 动作
                                如果所有条件成立则做动作1,否则做动作2
                                    If - 条件
                                        BeginIndex 等于 ListIndex
                                        ListInteger[ListIndex] 等于 0
                                    Then - 动作
                                        设置 BeginIndex = (ListIndex + 1)
                                    Else - 动作
                                设置 ListInteger[ListIndex] = (ListInteger[ListIndex] - 1)
                            Else - 动作
        如果 (BeginIndex 等于 (EndIndex + 1)) 成立则 (触发器 - 关闭 (当前触发)) 否则 (无动作)

[/trigger]




我把T发上来吧...........如果你不要求非T不可的话,就很简单了



其实你的原技能有问题,直接设置单位生命,伤害源就没了,那个单位死后,你就没钱没经验什么都没
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-21 00:24 , Processed in 0.032966 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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