|
楼主 |
发表于 2008-9-29 10:52:37
|
显示全部楼层
[jass]//===========================================================================
//检测物品拖拽到另一类物品的事件
function ItemEventDragOntoFilter takes nothing returns boolean
local integer DragTo = GetIssuedOrderId()- 852002
local integer ItemType = GetStoredInteger(udg_gameCache,I2S(H2I(GetTriggeringTrigger())),"ItemTypeDragTo")
call BJDebugMsg(I2S(ItemType)) //每次屏幕打印却都是0
if DragTo>=0 and DragTo<=5 and GetItemTypeId(UnitItemInSlot(GetTriggerUnit(),DragTo)) == ItemType then
return true
endif
return false
endfunction
function TriggerRegisterItemEventDragOnto takes trigger trig,integer TargetItemType returns nothing
call TriggerRegisterAnyUnitEventBJ(trig,EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)
call StoreInteger(udg_gameCache,I2S(H2I(trig)),"ItemTypeDragTo",TargetItemType)
call TriggerAddCondition(trig,Condition(function ItemEventDragOntoFilter))
endfunction[/jass]
想创建一种“物品拖拽到一类物品上”的事件,先用缓存讲物品类型限制绑定到触发器中,然后在条件中加以判断
却发现每次用BJDebugMsg()都只能取得0~~~
改用全局变量传递,才发现可以代码可以达到目标~~~
不知道是哪里出问题了 |
|