Мне нужно сделать эту проверку в шапке редактора триггеров, чтобы в дальнейшем в триггере со спеллом можно было писать так:
if (SlotItem(caster,'Item') then
KillUnit(caster)
endif
Что нужно написать в шапке, чтоб мой способ работал?
if (SlotItem(caster,'Item') then
KillUnit(caster)
endif
Что нужно написать в шапке, чтоб мой способ работал?
Принятый ответ
native UnitHasItem takes unit whichUnit, item whichItem returns boolean
function UnitHasItemOfTypeBJ takes unit whichUnit, integer itemId returns boolean
return GetInventoryIndexOfItemTypeBJ(whichUnit, itemId) > 0
endfunction
// Данная функция утечна, так как indexItem не обнуляется
function GetInventoryIndexOfItemTypeBJ takes unit whichUnit, integer itemId returns integer
local integer index
local item indexItem
set index = 0
loop
set indexItem = UnitItemInSlot(whichUnit, index)
if (indexItem != null) and (GetItemTypeId(indexItem) == itemId) then
return index + 1
endif
set index = index + 1
exitwhen index >= bj_MAX_INVENTORY
endloop
return 0
endfunction
function UnitHasItemOfType takes unit whichUnit, integer itemId returns boolean
local integer index = 0
loop
if GetItemTypeId(UnitItemInSlot(whichUnit, index)) == itemId then
return true
endif
set index = index + 1
exitwhen index == bj_MAX_INVENTORY
endloop
return false
endfunction
// Можно ещё так написать
function UnitHasItemOfType takes unit whichUnit, integer itemId returns boolean
local integer index = 0
loop
exitwhen GetItemTypeId(UnitItemInSlot(whichUnit, index)) == itemId
set index = index + 1
exitwhen index == bj_MAX_INVENTORY
endloop
return index < bj_MAX_INVENTORY
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован PT153
Отредактирован Skolz
local integer index = 0
loop
if GetItemTypeId(UnitItemInSlot(whichUnit, index)) == itemId then
return true
endif
set index = index + 1
exitwhen index == bj_MAX_INVENTORY
endloop
return false
endfunction
PT153, вот это нужно просто в шапку кинуть, указать кастера и всё?