找回密码
 点一下
查看: 1283|回复: 4

无光之盾技能求助

[复制链接]
发表于 2008-3-7 20:20:16 | 显示全部楼层 |阅读模式
function Trig_JS_Actions takes nothing returns nothing
local unit hero = GetTriggerUnit()
local real D = GetEventDamage()
local real Life = GetUnitState(hero,UNIT_STATE_LIFE)
local real ReviseLife = Life+0.25*D*GetUnitAbilityLevel(hero,'A000')
call SetUnitLifeBJ(hero,ReviseLife)
endfunction
function Trig_JS_Conditions takes nothing returns boolean
if GetUnitAbilityLevel(GetTriggerUnit(),'A000')> 0 then
return true
else
return false
endif
endfunction
function InitTrig_JS takes nothing returns nothing
    local unit hero =FirstOfGroup(udg_bird)
    set gg_trg_JS = CreateTrigger()
    call TriggerRegisterUnitEvent(gg_trg_JS,hero,EVENT_UNIT_DAMAGED)
    call TriggerAddCondition(gg_trg_JS,Condition(function Trig_JS_Conditions))
    call TriggerAddAction( gg_trg_JS, function Trig_JS_Actions )
endfunction

刚学jass,很多东西都不懂,别笑话我,我本来打算做个类似无光之盾的技能,只不过是按照%减少伤害,也就是按照%加血,函数在上面,这个trigger无论怎么都不启动,在监测地图的时候还能进入地图,就是不启动。gg_trg_bird 是共享的一个单位组,我把英雄加到这个组里面,传递到这个trigger里面,不知道怎么的很是不成功

评分

参与人数 1威望 -5 收起 理由
沉默の罪恶 -5 标题又要我改?

查看全部评分

发表于 2008-3-7 20:30:09 | 显示全部楼层
因为全局变量触发是在地图初始化时就已经注册好的,此时udg_bird肯定为空,也就是触发里的单位为空,当然是没有用的
回复

使用道具 举报

 楼主| 发表于 2008-3-7 20:46:10 | 显示全部楼层
哦,明白了,如果我要是将他放置到别的trigger中,它本来也是其他trigger的延续,设定一个本地的 trigger用来注册单位受到伤害就可以了吧
回复

使用道具 举报

发表于 2008-3-7 20:46:38 | 显示全部楼层
恩,这样应该是可以的
回复

使用道具 举报

 楼主| 发表于 2008-3-7 20:48:13 | 显示全部楼层
太感谢了!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 19:30 , Processed in 0.059673 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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