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

关于BUFF失去...

[复制链接]
发表于 2011-11-11 20:01:43 | 显示全部楼层 |阅读模式
我想问下如何判定单位失去BUFF然后对其造成伤害、单位要在指定单位组里0.0
试过用单位获得BUFF来完成、但是好想这样搞的话没了BUFF就会一直伤害
发表于 2011-11-11 22:16:49 | 显示全部楼层
用局部变量最简单……YDWE里有这个东西……
不过不是判断buff,而是对技能施放目标在N秒后造成伤害,不过状态被驱散也会造成伤害的话就要用单位组记录单位了……
回复

使用道具 举报

发表于 2011-11-12 16:37:19 | 显示全部楼层
嗯...  请问J版的可以? 可以移植,要创建一个名为HT的哈希表

我不是有意的,不过那个被认为粉广告的演示地图里真的有
http://bbs.islga.org/read-htm-tid-546305-page-1.html
以下是部分Jass,移植的话要补全
[jass]function IfEndBuff takes nothing returns nothing
    local timer t=GetExpiredTimer()
    local integer th=GetHandleId(t)
    local unit u=LoadUnitHandle(udg_HT,th,2)
    if (GetUnitAbilityLevel(u,LoadInteger(udg_HT,th,3))>0)==LoadBoolean(udg_HT,th,4) then
    call ReadAndDofunc(th,4)
    call PauseTimer(t)
    endif                              
    set t=null
    set u=null                    
endfunction

function EndBuff takes unit u,integer b,integer ti,boolean i,code c returns nothing
    local timer t=CreateTimer()
    local integer th=GetHandleId(t)
    local boolexpr func=Condition(c)
    call SaveUnitHandle(udg_HT,th,2,u)
    call SaveInteger(udg_HT,th,3,b)
    call SaveBoolean(udg_HT,th,4,i)
    call SaveBooleanExprHandle(udg_HT,th,4,func)
    call TimerCast(t,0.1,ti*10+1,function IfEndBuff)
    set t=null
    set func=null
endfunction[/jass]

请注意EndBuff函数
注释--u=被检测的单位、b=被检测的BUFF、i=最大检测时间
b=成立条件、c=执行函数
b=true, 有BUFF则执行c
b=false, 没有、BUFF消失则执行c

如LS所说 YDWE有专门检测BUFF的触发,具体就不了解了~
回复

使用道具 举报

 楼主| 发表于 2011-11-13 20:43:07 | 显示全部楼层

回 1楼(lo) 的帖子

lo:用局部变量最简单……YDWE里有这个东西……
不过不是判断buff,而是对技能施放目标在N秒后造成伤害,不过状态被驱散也会造成伤害的话就要用单位组记录单位了……
(2011-11-11 22:16)
其实我只是想搞群体飓风、单位落地后受到伤害
回复

使用道具 举报

 楼主| 发表于 2011-11-13 20:43:25 | 显示全部楼层

回 2楼(zh62920) 的帖子

zh62920:嗯...  请问J版的可以? 可以移植,要创建一个名为HT的哈希表

我不是有意的,不过那个被认为粉广告的演示地图里真的有
http://bbs.islga.org/read-htm-tid-546305-page-1.html
以下是部分Jass,移植的话要补全
....... (2011-11-12 16:37)
我不会J
回复

使用道具 举报

发表于 2011-11-13 21:43:30 | 显示全部楼层
如果飓风的话,其实挺简单的……
设置技能施放目标为一个变量(最好用局部变量)然后等待数秒,然后让英雄对这个变量造成伤害,然后清除掉这个变量。(YDWE里有局部变量的功能)
回复

使用道具 举报

发表于 2011-11-15 13:59:49 | 显示全部楼层
飓风....可以被驱散的
回复

使用道具 举报

发表于 2011-11-15 14:50:09 | 显示全部楼层
那就为飓风多设置0.3秒的持续时间(不知道会不会被发现……),施放技能时,添加目标进单位组,然后等到时间了判断单位是否在单位组中,是的话就造成伤害……
然后在再驱散做一个触发……
回复

使用道具 举报

发表于 2011-11-15 20:59:28 | 显示全部楼层
如果LZ以后还会经常用类似的问题
建议你学学移植,现在很多演示为了方便使用T的人都做成可移植版的
所以很多需要J的情况只要会移就能用T实现。
我认为,T的进阶就是移植和基础的自定义代码
回复

使用道具 举报

 楼主| 发表于 2011-11-16 12:53:25 | 显示全部楼层

回 5楼(lo) 的帖子

lo:如果飓风的话,其实挺简单的……
设置技能施放目标为一个变量(最好用局部变量)然后等待数秒,然后让英雄对这个变量造成伤害,然后清除掉这个变量。(YDWE里有局部变量的功能)
(2011-11-13 21:43)
我搞过、但是不知道为什么没有伤害
回复

使用道具 举报

 楼主| 发表于 2011-11-16 13:07:50 | 显示全部楼层

回 7楼(lo) 的帖子

lo:那就为飓风多设置0.3秒的持续时间(不知道会不会被发现……),施放技能时,添加目标进单位组,然后等到时间了判断单位是否在单位组中,是的话就造成伤害……
然后在再驱散做一个触发…… (2011-11-15 14:50)
我试过用单位组了、对区域满足条件单位释放飓风、并添加单位到单位组、第2个触发就单位每0.01秒判定单位组是否拥有飓风BUFF、是側无动作、不是側造成伤害...
回复

使用道具 举报

 楼主| 发表于 2011-11-16 13:09:36 | 显示全部楼层

回 8楼(zh62920) 的帖子

zh62920:如果LZ以后还会经常用类似的问题
建议你学学移植,现在很多演示为了方便使用T的人都做成可移植版的
所以很多需要J的情况只要会移就能用T实现。
我认为,T的进阶就是移植和基础的自定义代码 (2011-11-15 20:59)
T.T看见英文就头晕了、学不了
回复

使用道具 举报

发表于 2011-11-16 13:16:03 | 显示全部楼层
  Jass不只是英文

     其实的说 TJ混用还是可以的
回复

使用道具 举报

 楼主| 发表于 2011-11-16 17:47:37 | 显示全部楼层

回 12楼(uoer) 的帖子

uoer:  Jass不只是英文

     其实的说 TJ混用还是可以的 (2011-11-16 13:16)
覀口覀、不是英语麽
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 17:20 , Processed in 0.048056 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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