找回密码
 点一下
查看: 1797|回复: 9

Jass中,条件中做动作和动作中做动作,那个效率高?

[复制链接]
发表于 2010-10-21 15:01:50 | 显示全部楼层 |阅读模式
比如:
function AB_c takes nothing returns nothing
    .....................
endfunction
function AB_b takes nothing returns boolean
      if GetSpellAbilityId()=='AUan' then
          call AB_c()
      endif
      return false
endfunction
function AB_a takes nothing returns nothing
      local trigger t=CreateTrigger()
      call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
      call TriggerAddCondition(t,Condition(function AB_b))
      set t=null
endfunction


function AB_c takes nothing returns nothing
    .....................
endfunction
function AB_b takes nothing returns boolean
     return  GetSpellAbilityId()=='AUan'
endfunction
function AB_a takes nothing returns nothing
      local trigger t=CreateTrigger()
      call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
      call TriggerAddCondition(t,Condition(function AB_b))
      call TriggerAddAction(t,function AB_c)
      set t=null
endfunction

哪种的效率更高呢?或者一样高?
发表于 2010-10-21 20:15:29 | 显示全部楼层
这个可以搜索,以前的研究是速度上条件较快,具体不记得了,去综合区翻帖子吧。
其实这种速度的差别完全可以忽略,最影响速度的还是算法
回复

使用道具 举报

 楼主| 发表于 2010-10-22 12:31:05 | 显示全部楼层

回 1楼(疯人¢衰人) 的帖子

谢谢!我去找找
回复

使用道具 举报

发表于 2010-10-24 10:20:42 | 显示全部楼层
其实条件运行效率略高些,但没有量级差,只是有3个差别。
1.条件当然比动作先运行,所以条件效率高的条件之一
2.条件内局部变量会自动排泄,所以也是效率高的条件之一
3.条件内不能执行触发等待
回复

使用道具 举报

 楼主| 发表于 2010-10-25 13:33:33 | 显示全部楼层

回 3楼(醉酒少女) 的帖子

谢谢啦
回复

使用道具 举报

发表于 2010-10-26 17:45:10 | 显示全部楼层
引用第3楼醉酒少女于2010-10-24 10:20发表的 :
其实条件运行效率略高些,但没有量级差,只是有3个差别。
2.条件内局部变量会自动排泄,所以也是效率高的条件之一  


这么说不用一个一个排泄了?
set XX=null
set XX=null
set XX=null
回复

使用道具 举报

发表于 2010-10-26 19:26:04 | 显示全部楼层
引用第3楼醉酒少女于2010-10-24 10:20发表的  :
其实条件运行效率略高些,但没有量级差,只是有3个差别。
1.条件当然比动作先运行,所以条件效率高的条件之一
2.条件内局部变量会自动排泄,所以也是效率高的条件之一
3.条件内不能执行触发等待

第二条不对吧。

不过触发使用条件还有一个好处是,triggercondition本身不需要排泄,它会随着触发的销毁而被销毁。
回复

使用道具 举报

发表于 2010-11-5 09:55:32 | 显示全部楼层
第二点 看linzefei的对TriggerCondition的研究帖吧~
我自己也没做过测试,不过按他做的测试来说是会自动排泄。
不过大家最好养成个习惯,有借有还,再借不难。
回复

使用道具 举报

发表于 2010-11-18 13:09:25 | 显示全部楼层
额   不知道大家都用 什么函数 代替  等待动作
回复

使用道具 举报

发表于 2010-11-18 21:26:30 | 显示全部楼层
timerstart
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 00:44 , Processed in 0.069218 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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