找回密码
 点一下
查看: 1345|回复: 10

【已解决】关于技能等级判断

  [复制链接]
发表于 2008-4-30 11:35:08 | 显示全部楼层 |阅读模式
一个单位拥有buff时如何判断这个buff是几级技能给予的?
问这个问题的目的主要是想做出带有被动技能效果的光环,
如何使同一种不同等级的光环之间不干扰的问题想不太明白
注:被动技能的效果会随光环等级提升!

[trigger]
单位组 - 选取 ((可用地图区域) 内的所有单位) 内所有单位做动作
    Loop - 动作
        设置 UNtemp = (选取单位)
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (UNtemp 拥有 专注光环 1) 等于 TRUE
            Then - 动作
                单位组 - 选取 (半径为 550.00 圆心为 (UNtemp 的位置) 且满足 ((((选取单位) 的类型) 等于 圣骑士) and (((选取单位) 是 (UNtemp 的所有者) 的同盟单位) 等于 TRUE)) 的所有单位) 内所有单位 (如果 ((专注光环 的等级对 (选取单位)) 大于 Buffgread) 成立则 (设置 Buffgread = (专注光环 的等级对 (选取单位))) 否则 (无动作))
                单位 - 添加 外壳 (专注) 给 UNtemp
                单位 - 设置 闪避 ---专注 等级对 UNtemp 为 Buffgread
                设置 Buffgread = 0
            Else - 动作
                单位 - 删除 外壳 (专注) 从 UNtemp
[/trigger]
 楼主| 发表于 2008-4-30 11:43:33 | 显示全部楼层
各位老大,帮帮忙啊,我找遍技能去和综合区都没有看到相关的演示啊
回复

使用道具 举报

 楼主| 发表于 2008-4-30 11:45:44 | 显示全部楼层
想想办法,给点提示我自己做也行啊   [s:186]
回复

使用道具 举报

发表于 2008-4-30 12:32:27 | 显示全部楼层
GetUnitAbilityLevel(whichUnit, buffcode)


WhichUnit,指某单位
buffcode,指那个buff的魔法效果代码,比如'BHad'指的是专注光环
回复

使用道具 举报

 楼主| 发表于 2008-4-30 12:39:53 | 显示全部楼层
引用第3楼OrS于2008-04-30 12:32发表的 :
GetUnitAbilityLevel(whichUnit, buffcode)


WhichUnit,指某单位
buffcode,指那个buff的魔法效果代码,比如'BHad'指的是专注光环

某单位在触发中可以将选取单位传递过去的吧?

GetEnumUnit() ?
回复

使用道具 举报

发表于 2008-4-30 12:46:11 | 显示全部楼层
引用第4楼inmderly于2008-04-30 12:39发表的  :
某单位在触发中可以将选取单位传递过去的吧?
当然,如果是选取单位做动作用whichunit就用GetEnumUnit()
用变量记录也一样..
回复

使用道具 举报

发表于 2008-4-30 12:59:34 | 显示全部楼层
GetUnitAbilityLevel(whichUnit, buffcode)判断BUFF的时候貌似只有1、0两个值
回复

使用道具 举报

 楼主| 发表于 2008-4-30 13:02:44 | 显示全部楼层
  1. function Trig_torf_Func001001002 takes nothing returns boolean
  2.     return ( UnitHasBuffBJ(GetEnumUnit(), 'BHad') == true )
  3. endfunction
  4. function Trig_torf_Func001A takes nothing returns nothing
  5.     set udg_a=GetUnitAbilityLevel(GetEnumUnit(), 'BHad')
  6. endfunction
  7. function Trig_torf_Actions takes nothing returns nothing
  8.     call ForGroupBJ( GetUnitsInRectMatching(GetPlayableMapRect(), Condition(function Trig_torf_Func001001002)), function Trig_torf_Func001A )
  9.     call DisplayTextToPlayer( Player(0), 0, 0, I2S(udg_a) )
  10. endfunction
  11. //===========================================================================
  12. function InitTrig_torf takes nothing returns nothing
  13.     set gg_trg_torf = CreateTrigger(  )
  14.     call TriggerRegisterTimerEventPeriodic( gg_trg_torf, 1.00 )
  15.     call TriggerAddAction( gg_trg_torf, function Trig_torf_Actions )
  16. endfunction
复制代码

但是我这样得到的值,总是0.无论是使用物品还是提升技能等级,为什么会这样啊?
回复

使用道具 举报

发表于 2008-4-30 13:38:10 | 显示全部楼层
引用第6楼libla于2008-04-30 12:59发表的  :
GetUnitAbilityLevel(whichUnit, buffcode)判断BUFF的时候貌似只有1、0两个值
真失败...是这样的..
回复

使用道具 举报

发表于 2008-4-30 13:44:21 | 显示全部楼层
1)条件里好像应该用匹配单位吧
2)要判断buff等级   通过判断与buff对应的技能等级就行了
GetUnitAbilityLevel()
回复

使用道具 举报

 楼主| 发表于 2008-5-1 23:50:52 | 显示全部楼层
谢谢各位的提示,我还是用T来做好了,触发已经加在帖子里了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 21:55 , Processed in 0.033323 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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