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

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

Ответ
 
ArchWorm
Матрица незалежности
offline
Опыт: 4,675
Активность:
Баг в InvX
В системе Vexorian'a под названием InvX есть маленький баг, из-за которого загруженный архимаг не может автоматически автоэкипировать предметы.
Вот патч:
Код:
function InvX_RestoreUnit takes gamecache g, string mission, string key, player p, real x, real y, real f returns unit
 local unit u=RestoreUnit(g,mission,key,p,x,y,f)
 local integer i=0
 local integer j
 local integer id
 local integer N=6
 local integer cp=GetStoredInteger(g,mission,key+"InvX_Page")
 local integer tp
 local integer sl=GetStoredInteger(g,mission,key+"InvX_TotalSlots")
 local item it
 local string k
 local integer t
 local boolean renb=GetAttachedBoolean(u,"InvX_ForgetAutoEquip")
    loop
        exitwhen i>=N
        call RemoveItem(UnitItemInSlot(u,i))
        set i=i+1
    endloop
    call InvX_EnhanceInventory(u,sl)
    call InvX_RestoreEquipment(g,mission,key,InvX(),u)
    call InvX_Goto(u,0,cp)
    set N=InvX_GetN( u,sl)
    set tp=GetAttachedInt(u,"InvX_TotalPages")
    set j=0    
    call InvX_DisableEvents(u,true)
    call AttachBoolean(u,"InvX_ForgetAutoEquip",true)
    loop
        exitwhen j>=tp
        set i=0
        set t=0
        loop
            exitwhen i>=N
            set k="InvX"+I2S(j)+";"+I2S(i)
            set id=GetStoredInteger(g,mission,key+k)

            if id!=0 and not(InvX_IsItemIdDummy(id)) then
                set t=t+1
                set it=InvX_RestoreItem(g,mission,key+k,0,0)
                call SetItemVisible(it,false)
              //  call SetItemCharges(it,GetStoredInteger(g,mission,key+k+"c"))
                if j==cp then
                    call InvX_SilentAddItemSlot(u,it,i)
                else
                    call AttachObject(u,k,it)
                endif
                call InvX_CheckGet(u,it,false,false,false,false)
                if GetStoredBoolean(g,mission,key+k+";Equiped") then
                    call InvX_Equip(u,it,GetStoredString(g,mission,key+k+";EquipSlot"),false,false)
                endif
            endif
            set i=i+1
        endloop
        call InvX_SetPageCount(u,j,t)
        set j=j+1
    endloop
    call InvX_DisableEvents(u,false)
    if not(renb) then
        call AttachBoolean(u,"InvX_ForgetAutoEquip",false)
    endif
    set bj_lastCreatedUnit=u

 set u=null
 return u
endfunction

Чтобы исправить баг, надо вставить этот кусочек на место функции InvX_RestoreUnit(находится в триггере InvX).

Я решил открыть эту тему, потому что p01nT попросил меня об этом на форуме wc3campaigns
Старый 15.09.2006, 15:18
p01nTT

offline
Опыт: 11,160
Активность:
ArchWorm12612 thx , это только в версии 2.0 preview?
Старый 15.09.2006, 18:19
ArchWorm
Матрица незалежности
offline
Опыт: 4,675
Активность:
Это везде, в старых версиях тож.
Старый 15.09.2006, 18:24
p01nTT

offline
Опыт: 11,160
Активность:
ArchWorm12612 ok
Старый 15.09.2006, 22:29
Ответ

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

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

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

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



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