|
发表于 2009-2-1 20:43:50
|
显示全部楼层
嗯,既然a1,a2是全局变量,那么当我们修改它们的值也是需要set udg_a1= xx 吧? 这时在之后再加一句 set udg_r = 1, 触发T。按照你的说法,我们不妨可以这样写:
[jass]
globals
real udg_r = 0.00
real array udg_ra
endglobals
function Test_VarChange takes real ra, real rb, integer i returns real
if ra != rb then
return I2R(i)
endif
return 0.00
endfunction
function Test takes real r returns nothing
local real rab
set rab = udg_ra[1]
set udg_ra[1] = r
set udg_r = Test_VarChange(udg_ra[1],rab,1)
set rab = udg_ra[2]
set udg_ra[2] = r
set udg_r = Test_VarChange(udg_ra[2],rab,2)
endfunction
function Test_Func takes nothing returns boolean
call BJDebugMsg("当前改变的实数为: udg_ra["+I2S(R2I(udg_r))+"] 它的值为: "+R2S(udg_ra[R2I(udg_r)]))
set udg_r = 0.00
return false
endfunction
function Init takes nothing returns nothing
local trigger trg = CreateTrigger()
call TriggerAddCondition(trg,Condition(function Test_Func))
call TriggerRegisterVariableEvent(trg,"udg_r",NOT_EQUAL,0.00)
set trg = null
endfunction
[/jass]
PS:写了才知道有多麻烦........
PS2:附上演示(进入后按Esc) |
|