魔兽首页最新地图防守地图对抗地图角色剧情TD塔类图标准战役ORPG地图其它地图
魔兽论坛攻略秘籍补丁工具RPG 录像制图教学制图资源魔兽战队新图试玩通魔作坊

您的位置:魔兽争霸U9网 >> 制图教学

关于触发运行效率的研究

作者:Red_Wolf    文章来源:U9论坛    点击数:    更新时间:2006-8-30 18:42:28
关于触发运行效率的研究                    ——  Red_Wolf

前段时间经过研究发现,比起执行条件,执行动作要消耗很多的资源。
下面是测试图:


附件: Text.w3m (2006-6-15 16:21, 16.73 K)
该附件被下载次数 19


按Left键将生成一个每0.001秒运行一次的触发,该触发只有以下动作:

function A takes nothing returns nothing
    set udg_I=Pow(67.67867,67.6767)
    set udg_I=Pow(67.67867,67.6767)
    set udg_I=Pow(67.67867,67.6767)
    call SetUnitLifeBJ( gg_unit_Hamg_0005, GetRandomReal(1,500) )
endfunction


按Right键生成一个每0.001秒运行一次的触发,该触发只有以下条件:

function C takes nothing returns boolean
    set udg_I=Pow(67.67867,67.6767)
    set udg_I=Pow(67.67867,67.6767)
    set udg_I=Pow(67.67867,67.6767)
    call SetUnitLifeBJ( gg_unit_Hamg_0005, GetRandomReal(1,500) )
    return false
endfunction


可以看到在条件和动作里执行了一样的代码,然后看下面的测试结果:

首先进入游戏,只按Left键,
当按6次时,CPU占用率过50%
按 13次时,游戏开始卡

再退出游戏,重建,只按Right键,
按 15次时,CPU占用过50%
按 34次时,游戏开始卡


可以看到,结果是非常明显的。
那么,我们在以后在写触发时,特别是那些运行比较频繁的触发时,就可以考虑不写动作而把要执行的代码写到条件里去,这样是可以提高不少效率的。



那么在条件里运行代码的做法和在动作里运行有什么区别吗?答案是有的,在条件中是不能使用等待命令的,所有在等待命令之后的动作都将被忽略,不过我们可以用Timer计时器或用TriggerExecute调用函数来代替等待。

下面是另一个测试:

1.在动作中的SetUnitLifeBJ前加等待命令

function A takes nothing returns nothing
    set udg_I=Pow(67.67867,67.6767)
    set udg_I=Pow(67.67867,67.6767)
    set udg_I=Pow(67.67867,67.6767)
    call TriggerSleepAction(1)
    call SetUnitLifeBJ( gg_unit_Hamg_0005, GetRandomReal(1,500) )
endfunction


2.在条件中使用Timer计时器

function Tm takes nothing returns nothing
    call SetUnitLifeBJ( gg_unit_Hamg_0005, GetRandomReal(1,500))
    call DestroyTimer(GetExpiredTimer())
endfunction

function C takes nothing returns boolean
    set udg_T = CreateTimer()
    set udg_I=Pow(67.67867,67.6767)
    set udg_I=Pow(67.67867,67.6767)
    set udg_I=Pow(67.67867,67.6767)   
    call TimerStart(udg_T,1,false,function Tm)
    return false
endfunction


结果令人意想不到的是,这种在条件中创建无数Timer计时器的做法仍然比使用动作要有效率。   

那么,不用我说大家也知道这意味着什么了,是的,我们可以完全摒弃传统的触发写法了。



责任编辑:admin
进入论坛参与针对本文章的讨论
文中部分附件请进入论坛下载
本文章地址:
  • 上一篇:通魔之路(WE主讨论区):【技能演示】酸性喷吐
  • 下一篇:
  • 相关文章

    进入论坛参与针对本文章的讨论用户评论

    地图 攻略
    热门搜索: 仙之侠道 真三国无双 Dota Allstar

    地图专区导航

    热门地图攻略

    热门地图周排行

    最新推荐地图

    地图下载总排行

      
    关于我们  -  联系我们  -  广告优势  -  广告服务
    建议意见:玩家点击留言  商务合作:客户点击留言
    西安优久数码科技有限公司 版权所有 陕ICP证08000654号