Добавлен Волчачка,
опубликован
Я откопал из своих старых записей, датируемые 2014 годом.. Возможно подобная штука уже есть. Но для новичков я выложу. Это простой триггер удаления умирающих книг. Как вы знаете книги оставляют лаги после себя. Но это не для покупных книг, а для создающихся на аренах предметах, которые игрок может разрушить.
Все просто она получает передмет при помощи конвета его из виджета в предмет, при помощи "хеш-ретурн-бага". Хотя там в хеш таблице просто handle, int, string и float с bool-ом. Не суть.
умер предмет widget => handle => item ok
умер предмет wdiget => handle => effect error + fatal baby (Шутка у эффекта будет null)
умер предмет widget => handle => item ok
умер предмет wdiget => handle => effect error + fatal baby (Шутка у эффекта будет null)
Так вот для тех, кто не хочет искать и лазить искать подобное оставлю здесь:
vJass
library ItemDeadEvents initializer Init
globals
trigger ITEM_DEAD_TRIGGER = null
endglobals
function WidgetToItem takes widget whichItem returns item
call SaveWidgetHandle(Htb,0,0,whichItem) // Вместо Htb подставите свою переменную хеш-таблицы
return LoadItemHandle(Htb,0,0)
endfunction
private function Actions takes nothing returns nothing
call RemoveItem(WidgetToItem(GetTriggerWidget()))
endfunction
private function Init takes nothing returns nothing
set ITEM_DEAD_TRIGGER = CreateTrigger()
call TriggerAddAction(ITEM_DEAD_TRIGGER, function Actions )
endfunction
function RegisterItemDeathEvent takes item whichItem returns nothing
call TriggerRegisterDeathEvent( ITEM_DEAD_TRIGGER, whichItem )
endfunction
endlibrary
cJass
library ItemDeadEvents initializer Init{
trigger ITEM_DEAD_TRIGGER = null
item WidgetToItem(widget whichItem){
SaveWidgetHandle(Htb,0,0,whichItem) // Вместо Htb подставите свою переменную хеш-таблицы
return LoadItemHandle(Htb,0,0)
}
private void Actions(){
RemoveItem(WidgetToItem(GetTriggerWidget()))
}
private void Init(){
ITEM_DEAD_TRIGGER = CreateTrigger()
TriggerAddAction(ITEM_DEAD_TRIGGER, function Actions )
}
void RegisterItemDeathEvent(item whichItem){
TriggerRegisterDeathEvent( ITEM_DEAD_TRIGGER, whichItem )
}
}
На этом, все спасибо за просмотр..
`
ОЖИДАНИЕ РЕКЛАМЫ...
Комментарии пока отсутcтвуют.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.