Всем привет!
в этой теме описывают про него как его использовать
и здесь тоже
и здесь тоже
и собственно вопрос
есть некий герой который должен через приказ нападать на Ящик
Ящик это разрушаемый объект
когда он получает приказ Атаки, с этого Ящика падает предмет, 1 предмет имеет шанс 60% на выпадение другой 40%
и теперь вопрос
каким образом сказать этому герою чтобы подобрал этот предмет?
пробовал через LastDropedItem() не получилось
есть некий герой который должен через приказ нападать на Ящик
Ящик это разрушаемый объект
когда он получает приказ Атаки, с этого Ящика падает предмет, 1 предмет имеет шанс 60% на выпадение другой 40%
и теперь вопрос
каким образом сказать этому герою чтобы подобрал этот предмет?
пробовал через LastDropedItem() не получилось
неужели надо Колхозить функцию которая проверит полученный Приказ и проверить Разрушаемый объект?
или как-то проверить координаты этого ящика и подобрать его во время атаки?
или как-то проверить координаты этого ящика и подобрать его во время атаки?
вот что пытаюсь сделать
set udg_Dest[1] = gg_dest_LTcr_0000
call TriggerRegisterDeathEvent( gg_trg_Neutral_Hostile_Drop_Tables, udg_Dest[1] )
function T takes nothing returns nothing
local widget w = GetTriggerDestructable()
local real x = GetWidgetX(w)
local real y = GetWidgetY(w)
local itempool ItemPool = CreateItemPool()
local item i
call ItemPoolAddItemType(ItemPool, 'phea', 60)
call ItemPoolAddItemType(ItemPool, 'pman', 40)
set i = PlaceRandomItem(ItemPool, x, y)
call DestroyItemPool(ItemPool)
call UnitAddItem(GetTriggerUnit(), i)
//GetTriggerUnit() не работает!
set ItemPool = null
set i = null
endfunction
function InitTrig_Neutral_Hostile_Drop_Tables takes nothing returns nothing
set gg_trg_Neutral_Hostile_Drop_Tables = CreateTrigger( )
call TriggerAddAction( gg_trg_Neutral_Hostile_Drop_Tables, function T )
endfunction
пример взял с хайва
идеи?
идеи?
Принятый ответ
нашел решение
function Trig_d_Actions takes nothing returns nothing
set udg_H = InitHashtable()
set udg_Dest[1] = gg_dest_LTcr_0000
call TriggerRegisterDeathEvent( gg_trg_t, udg_Dest[1] )
endfunction
//===========================================================================
function InitTrig_d takes nothing returns nothing
set gg_trg_d = CreateTrigger( )
call TriggerAddAction( gg_trg_d, function Trig_d_Actions )
//Map Initialization
endfunction
function T takes nothing returns nothing
local widget w = GetTriggerDestructable()
local real x = GetWidgetX(w)
local real y = GetWidgetY(w)
local itempool ItemPool = CreateItemPool()
local item i
local unit u = LoadUnitHandle(udg_H, StringHash("System"), StringHash("UNIT"))
call ItemPoolAddItemType(ItemPool, 'phea', 60)
call ItemPoolAddItemType(ItemPool, 'pman', 40)
set i = PlaceRandomItem(ItemPool, x, y)
call DestroyItemPool(ItemPool)
call UnitAddItem(u, i)
set ItemPool = null
set i = null
set u = null
endfunction
//===========================================================================
function InitTrig_t takes nothing returns nothing
set gg_trg_t = CreateTrigger( )
call TriggerAddAction( gg_trg_t, function T )
endfunction
function Trig_vsd_Actions takes nothing returns nothing
call SaveUnitHandle(udg_H, StringHash("System"), StringHash("UNIT"), GetOrderedUnit())
endfunction
//===========================================================================
function InitTrig_vsd takes nothing returns nothing
set gg_trg_vsd = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_vsd, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
call TriggerAddAction( gg_trg_vsd, function Trig_vsd_Actions )
endfunction
таким образом Работает
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. Centyrion
Ред. Centyrion