关于Takes Bug在1.24c里运行的效果……请求头目解答一下
function I2I takes integer i returns integerreturn i
endfunction
function U2U takes unit u returns unit
if u == null then
call BJDebugMsg( "0" )
else
call BJDebugMsg( "1" )
endif
return u
endfunction
function I2UHelper takes integer i returns unit
call I2I( i )
if false then
return null
endif
endfunction
function I2U takes integer i returns unit
return U2U( I2UHelper( i ) )
endfunction
Trigger 1
事件
时间 - Elapsed game time is 0.00 seconds
环境
动作
Set U = 国王祭坛 0001 <情报>
Custom script: call BJDebugMsg( I2S( GetHandleId( I2U( GetHandleId( udg_U ) ) ) ) )
Custom script: call BJDebugMsg( "Trigger 1End" )
上面就是我的测试代码和触发。
结果什么也没有显示。
于是我把I2UHelper换成这个样子:
function I2UHelper takes integer i returns unit
if false then
return null
endif
call BJDebugMsg( I2S( i ) )
call I2I( i )
endfunction
这回有结果了:
1048587(这个应该是在I2UHelper里发送的信息的)
于是再换另一个代码:
function I2I takes integer i returns integer
return i
endfunction
function I2IHelper takes integer i returns integer
call I2I( i )
if false then
return 0
endif
endfunction
function Convert takes integer i returns integer
return I2I( I2IHelper( i ) )
endfunction
触发:
Trigger 1
事件
时间 - Every 0.50 seconds of game time
环境
动作
Set U = 国王祭坛 0001 <情报>
Custom script: call BJDebugMsg( "Trigger 1 Start" )
Custom script: call BJDebugMsg( I2S( Convert( GetHandleId( udg_U ) ) ) )
Custom script: call BJDebugMsg( I2S( Convert( 100 ) ) )
Custom script: call BJDebugMsg( "Trigger 1 End" )
Trigger 2
事件
时间 - Every 0.51 seconds of game time
环境
动作
Custom script: call BJDebugMsg( "Trigger 2" )
Custom script: if IsTriggerWaitOnSleeps( gg_trg_Trigger_1 ) then
Custom script: call BJDebugMsg( "Trigger 1 is Sleeping" )
Custom script: else
Custom script: call BJDebugMsg( "All Right" )
Custom script: endif
结果是不断重复
Trigger 1 Start
Trigger 2
All Right
似乎每次执行到I2XHelper的最后返回值的时候,Trigger就被卡住了……
貌似是1.24c在执行函数时,函数不再能从前一个执行的函数里获取返回值了?
不知道是不是我测试的有问题呢……请求头目解答~~ 1.24C解决了Takes Bug…… 但是TakesBug的代码还是能通过jass语法检查 大约只是修改了返回值
--------------------------------------------------------------------------
《魔兽争霸III:冰封王座》版本历史\\
--------------------------------------------------------------------------
--------------------------------------------------------------------------
- 补丁 1.24c
--------------------------------------------------------------------------
修正
- 修正了在游戏剧情第六章的人类战役中,游戏地图无法读取的问题。
- 修正了一个会允许JASS函数在某种条件下返还错误值的问题。
- 修正了一个会导致TriggerEvaluate本地函数在某种条件下会返还错误值的问题。
- 修正了在使用GroupEnum本地函数时会出现少量内存泄漏的错误。
- 修正了当在PPC Mac系统上使用CreateImage本地函数时会发生崩溃的错误。
- 对Mac版本的地图编辑器进行了升级,使其能够兼容近期的JASS改动。
1.24c做的就是修改这个………………
语法仍然嫩通过通过,但是效果没了
在beta的时候照wc3c某帖子的说法貌似是改为返回未初始化值,后面的都被跳过了,正是发布后没试过,不过应该不会差太多 - -
介个有啥用? 在1.24b的时候可以实现和return bug一样的效果
页:
[1]