XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
playerzorg

offline
Опыт: 214
Активность:
Оптимизация сборки предметов
Помогите оптимизировать скрещивание предметов, при сборке предмета немного подлагивает!
И ещё когда я покупаю любой предмет у меня выводится ошибка "Этот рецепт нельзя купить", хотя её установил только на определённые предметы!
Код:
function F2F2 takes integer pF3,integer pF4,integer pF5,integer pF6,integer pF7,integer b, unit a returns nothing
        if((pF3==0)or(UnitHasItemOfTypeBJ(a, pF3) == true))and((pF4==0)or(UnitHasItemOfTypeBJ(a, pF4) == true))and((pF5==0)or(UnitHasItemOfTypeBJ(a, pF5) == true))and((pF6==0)or(UnitHasItemOfTypeBJ(a, pF6) == true))and(b!=2) then
        call RemoveItem( GetItemOfTypeFromUnitBJ(a, pF3) )
        call RemoveItem( GetItemOfTypeFromUnitBJ(a, pF4) )
        call RemoveItem( GetItemOfTypeFromUnitBJ(a, pF5) )
        call RemoveItem( GetItemOfTypeFromUnitBJ(a, pF6) )
        if b==1 then
        call AddSpecialEffectTargetUnitBJ( "origin", a, "Abilities\\Spells\\Items\\AIlm\\AIlmTarget.mdl" )
        endif
        call UnitAddItemByIdSwapped( pF7, a )
        endif
        if (pF3!=0)and(b==2) then
                call SimError(GetOwningPlayer(a), "Этот рецепт нельзя купить")
        call RemoveItem( GetItemOfTypeFromUnitBJ(a, pF3) )
        endif
endfunction

function Trig_itemscan_Actions takes nothing returns nothing
    local unit a = GetTriggerUnit()
    call F2F2('I00I',0,0,0,0,2, a)
    call F2F2('I00A',0,0,0,0,2, a)
    call F2F2('I00H',0,0,0,0,2, a)
    call F2F2('I00B',0,0,0,0,2, a)
    call F2F2('I00F',0,0,0,0,2, a)
    call F2F2('I00L',0,0,0,0,2, a)
    call F2F2('I00N',0,0,0,0,2, a)
    call F2F2('I00G',0,0,0,0,2, a)
    call F2F2('I00M',0,0,0,0,2, a)
    call F2F2('I009',0,0,0,'I004',0, a)
    call F2F2('I003',0,0,0,'I00E',0, a)
    call F2F2('I00J',0,0,0,'I00K',0, a)
    call F2F2('engs','dthb',0,0,'cnhn',1, a)
    call F2F2('rde2','rwiz',0,0,'jpnt',1, a)
    call F2F2('mgtk','ratf','I00E',0,'k3m1',1, a)
    call F2F2('mgtk','cnhn','stwa',0,'amrc',1, a)
    call F2F2('bspd','ward','skrt','engs','shwd',1, a)
    call F2F2('I004','rde1','rlif','bgst','ward',1, a)
    call F2F2('bgst','ratf','oslo',0,'rat9',1, a)
    call F2F2('belv','skrt','bspd',0,'kpin',1, a)
    call F2F2('ward','ratf','skrt',0,'penr',1, a)
    call F2F2('shwd','oslo',0,0,'gopr',1, a)
    call F2F2('modt','ckng',0,0,'I008',1, a)
    call F2F2('pmna','rhth','dsum',0,'bfhr',1, a)
    call F2F2('I00K','jpnt','mgtk',0,'kymn',1, a)
endfunction

//===========================================================================
function InitTrig_itemscan takes nothing returns nothing
    set gg_trg_itemscan = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_itemscan, EVENT_PLAYER_UNIT_PICKUP_ITEM )
    call TriggerAddAction( gg_trg_itemscan, function Trig_itemscan_Actions )
endfunction
Старый 23.02.2009, 12:41
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Опендота??? Судя по названию, именно она. Попробуй это.
Старый 23.02.2009, 17:30
playerzorg

offline
Опыт: 214
Активность:
мне именно этот код нужно оптимизировать
Старый 23.02.2009, 21:08
Toadcop

offline
Опыт: 54,313
Активность:
я кстати всё хотел сделать интуитивную и не ресурсоёмкую системку такую... я вот еще подумаю может чёнить примитивное напишу...

playerzorg лутче не оптимизирвоать а использовать заранее нормальный код =)
Старый 23.02.2009, 21:25
playerzorg

offline
Опыт: 214
Активность:
и где этот нормальный код достать? Тот код в котором двойные предметы приходится делать?
Старый 28.02.2009, 16:24
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
playerzorg
Если хочется предметов по одному, нужно поработать ручками и исправить код. Хотя то в котором по 2 предмета удобнее (не потому, что автор я), а потому что там возможностей больше и можно собирать рецепты из 7 ингридиентов.
Старый 28.02.2009, 17:19
playerzorg

offline
Опыт: 214
Активность:
разве в доте все предметы дублированы? там тоже можно из 7 ингредиентов собирать
Старый 01.03.2009, 09:32
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
playerzorg
Интересно, как вы сможете взять предмет при полном инвентере, придумаете способ не через руны, напишите.
Старый 01.03.2009, 10:08
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
playerzorg, попробуйте взять равкод проданного предмета, и сверять с вещами в инвентаре, если равкод возвращается, то все должно быть отлично.
Старый 01.03.2009, 13:17
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
Интересно, как вы сможете взять предмет при полном инвентере, придумаете способ не через руны, напишите.
Добавить герою 2 способности инвенторя вистимо...
Старый 08.03.2009, 22:30
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 19:07.