Суть джасс чтоб после смерти виджета то есть предмет, а потом из него получить ссылку предмета .
Толкни чуток где такие функции +)
пример кода реализации и узнать виджет предета как?
function onTest takes nothing returns nothing
    // пример
    local widget w = GetTriggerWidget()
    
    
    
endfunction

function InitTrig_test takes nothing returns nothing
    local trigger t = CreateTrigger()
    
    call TriggerRegisterDeathEvent(t, gg_item_desc_0013)
    call TriggerRegisterDeathEvent(t, gg_item_fgsk_0014)
    call TriggerRegisterDeathEvent(t, gg_item_lnrn_0009)

    call TriggerAddAction(t, function onTest)
endfunction

Есть же fogstate bug. xgm.guru/forum/showthread.php?t=31733
Вообще можно через хэш-таблицы:
globals
	hashtable Data = InitHashtable()
endglobals
function Widget2Item takes widget object returns item
	call SaveWidgetHandle(Data,0,0,object)
	return LoadItemHandle(Data,0,0)
endfunction
А с помощью fogstate bug и хэша можно вообще из любой целочисленной получить любой handle:
function Int2Item takes integer id returns item
	call SaveFogStateHandle(Data,0,0,ConvertFogState(id))
	return LoadItemHandle(Data,0,0)
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
18
Предмет из виджета делается только через RB
22
если ты про ретурнг буг ок шас проверю
UPD
вообшем чуток апгрейдил для нужды и сработал
Мемхак
globals
        widget Widget //This is not used, it's here just to fool Jasshelper
        widget l__Widget
        item Item //This is not used, it's here just to fool Jasshelper
        item l__Item
endglobals

function setWidget takes widget w returns nothing
        set l__Widget = w
        return //Prevents Jasshelper from inlining this function
endfunction
    
function setItem takes item i returns nothing
        set l__Item = i
        return //Prevents Jasshelper from inlining this function
endfunction

private function Typecast5 takes nothing returns nothing
        local item Widget //Jasshelper will implicitly rename this to l__Widget
        local widget Item  //Jasshelper will implicitly rename this to l__Item
endfunction
    
//# +nosemanticerror
function W2IT takes widget c returns item
        call setWidget(c)
        return l__Widget
endfunction
    
//# +nosemanticerror
function IT2W takes item c returns widget
        call setItem(c)
        return l__Item
endfunction
33
Есть же fogstate bug. xgm.guru/forum/showthread.php?t=31733
Вообще можно через хэш-таблицы:
globals
	hashtable Data = InitHashtable()
endglobals
function Widget2Item takes widget object returns item
	call SaveWidgetHandle(Data,0,0,object)
	return LoadItemHandle(Data,0,0)
endfunction
А с помощью fogstate bug и хэша можно вообще из любой целочисленной получить любой handle:
function Int2Item takes integer id returns item
	call SaveFogStateHandle(Data,0,0,ConvertFogState(id))
	return LoadItemHandle(Data,0,0)
endfunction
Принятый ответ
18
Кет, блин)
Вот нужно сделать новую и полноценную статью про хештаблицу, со всеми фишками.
33
UrsaBoss, прочтя статью про хэштаблицу, можно догадаться о том, что я написал. Вот fogstate — менее очевидная штука, да. Скорее нужна бы статья про typecast в JASS. (Наверное олдфаги это и так знают, а остальные и не подумывают об этом написать =)
22
Кет, хм, спасибо нового узнал хотя я его вроде видел давно но почему то не спомнил... Но у мя мемхак стоит значит через него расширяю
Чтобы оставить комментарий, пожалуйста, войдите на сайт.