|
我自己不知道 是什么原因....这是一个无CD的函数...我无意拿此来做坏事..
只是好奇里面的RB使用....所以才翻来看...不过遇到了一些问题.
想把它改写成可开关型.
我本来想用关闭触发 或 删除触发...结果这些函数不是触发.不让 我删除.
我加入一个整数判断.然后游戏开始时,玩家点击对话框来更改 变量整数 的大小.成功一半,就是 只能关闭一次.关闭后再开启就关不了...
想问问有什么办法可以让动态注册事件 可以随时开关....希望指教.
令外想问问下面这个函数中
local trigger tri = CreateTrigger() 却没有 call DestroyTrigger(tri)
这样不会泄漏吗?
下面的 2 ,3 是什么意思呢....擦汗.
[jass] call SetUnitState(I2U(uid), ConvertUnitState(2), GetUnitState(I2U(uid), ConvertUnitState(3)))
[/jass]
最后...发现里面有些 函数 没有对应的BJ找不到什么意思. 连百度加谷歌都找不到....想问问.这些函数.是不是只能通过背单词加巩固基础来得知呢....
[jass]
function H2I takes handle h returns integer
return h
return 0
endfunction
function H2S takes handle h returns string
return I2S(H2I(h))
endfunction
function I2U takes integer i returns unit
return i
return null
endfunction
function SetInt takes string h,string s,integer i returns nothing
if i==0 then
call FlushStoredInteger(udg_GC,h,s) //清空缓存吧...
else
call StoreInteger(udg_GC,h,s,i) //储存单位 请注意 这个 i
endif
endfunction
function GetUnit takes string h,string s returns unit
return GetStoredInteger(udg_GC,h,s) //获得整数
return null
endfunction
function FlushMission takes string h returns nothing
call FlushStoredMission(udg_GC,h) //清空该类别下的所有缓存数据
endfunction
function ClearCD takes nothing returns nothing
local timer t = GetExpiredTimer() //计时器
call UnitResetCooldown( GetUnit(H2S(t),"u") ) //清除CD UnitResetCooldown
call FlushMission(H2S(t)) // FlushMission
call DestroyTimer(t) //删除 计时器 t
set t = null //空
endfunction
function ClearCDCond takes nothing returns boolean
local timer t = CreateTimer() //触发
local integer uid = H2I(GetTriggerUnit()) //触发单位 变整数.
call SetUnitManaPercentBJ( I2U(uid), 100 )
call SetUnitState(I2U(uid), ConvertUnitState(2), GetUnitState(I2U(uid), ConvertUnitState(3)))
call SetInt(H2S(t),"u",uid) //计时器给存起来了.
call TimerStart(t,0.001,false,function ClearCD) //0.001秒 运行一次....暴汗..
set t = null
return false
endfunction
function InitNoCD takes nothing returns nothing
local trigger tri = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ( tri, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( tri, Condition( function ClearCDCond ) )
set tri = null
endfunction
//===================================================
function InitTrig_CD1 takes nothing returns nothing
set udg_GC = InitGameCacheBJ( "ZuiJiuShaoNv.w3v" )
call InitNoCD()
endfunction
[/jass] |
|