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

为什么有的时候不使用BJ函数却不能实现效果?

[复制链接]
发表于 2007-8-19 17:12:44 | 显示全部楼层 |阅读模式
为什么有的时候不使用BJ函数却不能实现效果?

[codes=jass]
function bbb takes nothing returns nothing
    call TimerDialogDisplay( udg_ReviveC[ GetUnitPointValue( GetDyingUnit() ) ], true )
    call DestroyTimerDialog( udg_ReviveC[ GetUnitPointValue( GetDyingUnit() ) ] )   
    call DestroyTimer( udg_Revive[ GetUnitPointValue( GetTriggerUnit() ) ] )
    call ReviveHero( GetDyingUnit(), 100, 100, true )
endfunction

function aaa takes nothing returns nothing
    if (not ( IsUnitType( GetTriggerUnit() , UNIT_TYPE_HERO ) == true ) ) then
        return
    endif
    set udg_Revive[ GetUnitPointValue( GetTriggerUnit() ) ] = CreateTimer()
    call TimerStart( udg_Revive[ GetUnitPointValue( GetTriggerUnit() ) ], 10, false, function bbb )
    call CreateTimerDialog( udg_Revive[ GetUnitPointValue( GetTriggerUnit() ) ] )
    call TimerDialogSetTitle( bj_lastCreatedTimerDialog, GetUnitName( GetTriggerUnit() ) )
    set udg_ReviveC[ GetUnitPointValue( GetTriggerUnit() ) ] = bj_lastCreatedTimerDialog
    call TimerDialogDisplay( bj_lastCreatedTimerDialog, false )
    return
endfunction

//===========================================================================
function InitTrig_Death takes nothing returns nothing
    set gg_trg_Death = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Death, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition( gg_trg_Death, Condition( function aaa ) )
endfunction
[/codes]

这个触发用了后无法复活,而且不显示计时器窗口!!!!但是我改成BJ函数却能实现!(但是不能复活英雄,只有窗口)这是怎么回事????????????

我用的  NEW GEN  


在论坛设置JASS字体高亮怎么做的??????
 楼主| 发表于 2007-8-19 18:28:26 | 显示全部楼层
没人能帮我解决下吗?????????????????
回复

使用道具 举报

 楼主| 发表于 2007-8-19 19:25:01 | 显示全部楼层
为什么啊??????????怎么解决啊????????????? 连个回答的人都没有......
回复

使用道具 举报

发表于 2007-8-19 20:10:53 | 显示全部楼层
别连着发~~我帮你解决还不行么~~

3连灌水是必须扣分的~~



如果可以的话请把两个版本的jass文件发上来方便比对~~

另外~~jass的标记是
  1. [codes=jass][/codes]
复制代码
回复

使用道具 举报

发表于 2007-8-19 21:00:03 | 显示全部楼层
问题帮你解决了~~

首先是bj_lastCreatedTimerDialog这个全局变量~~这里根本不该用~~用CJ函数创造的时钟对话框根本不会对这个变量赋值~~赋值是在BJ函数里进行的~~

正确写法是这样
[codes=jass]
    set udg_Revive[ GetUnitPointValue( GetTriggerUnit() ) ] = CreateTimer()
    call TimerStart( udg_Revive[ GetUnitPointValue( GetTriggerUnit() ) ], 10, false, function bbb )
    set udg_ReviveC[ GetUnitPointValue( GetTriggerUnit() ) ] = CreateTimerDialog( udg_Revive[ GetUnitPointValue( GetTriggerUnit() ) ] )
    call TimerDialogSetTitle( udg_ReviveC[ GetUnitPointValue( GetTriggerUnit() ) ], GetUnitName( GetTriggerUnit() ) )
    call TimerDialogDisplay( udg_ReviveC[ GetUnitPointValue( GetTriggerUnit() ) ], true )
[/codes]

然后是那个bbb~~用timer引发的函数根本不属于本触发器体系之内~~根本就是另外一个触发器~~怎么可能还能取到GetTriggerUnit()甚至是GetDyingUnit() 呢?~~因此当然复活不了~~用个全局数组来保留死掉的单位吧~~
回复

使用道具 举报

 楼主| 发表于 2007-8-20 12:06:00 | 显示全部楼层
谢谢LS的了!!!!!!扣分无所谓,明白就好了!!!!!!!!!!!!!!非常感谢!!!!!  
回复

使用道具 举报

发表于 2007-8-22 20:25:42 | 显示全部楼层
我被多扣几分会变成正的吧?
回复

使用道具 举报

发表于 2007-8-22 20:43:01 | 显示全部楼层
据说您是因为搞投机行为才被扣成负的.
实际上,你在投机之前,买一负分清0的物品,之后就一切都好办了.

只不过,我一次最多可以扣500分,如果你同意的话,我可以试试,多扣几次,扣几千不成问题.
回复

使用道具 举报

发表于 2007-8-22 21:29:01 | 显示全部楼层
好可怕的LS...
据说偶实验过,不会变成正的。
回复

使用道具 举报

发表于 2007-8-22 21:53:46 | 显示全部楼层
啊呀呀~~其实过了那么久~~老狼确实也应该转正了~~我去后台改改吧~~
回复

使用道具 举报

 楼主| 发表于 2007-8-23 15:51:29 | 显示全部楼层
引用第7楼朱朱于2007-08-22 20:43发表的  :
据说您是因为搞投机行为才被扣成负的.
实际上,你在投机之前,买一负分清0的物品,之后就一切都好办了.

只不过,我一次最多可以扣500分,如果你同意的话,我可以试试,多扣几次,扣几千不成问题.


猪猪太狠毒了!!!!!!!!!!!!!!

PS:要扣给我扣的比老狼还低!要不别扣!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-23 06:00 , Processed in 0.031895 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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