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

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

Ответ
 
Лекс

offline
Опыт: 3,280
Активность:
DGUI перенос итема
собственно волнует следующее. Скачал наработку мешочков выполненную на DGUI, немного ее переделал.
Суть в том что у меня теперь есть определенные слоты в которые должны класться только предметы определенной "группы" (например оружие, или латы)
соответственно логически помыслив решил что предметы туда попадают из инвентаря перемещением, как следствие и редактировать надо именно ту функцию которая отвечает за перемещение. В наработке долго и упорно искал что же все таки отвечает.
пришел к выводу что этот участок кода
    method ClickSlot takes integer slot returns integer
        local BAG curbag
        local integer curslot
        local item curit
        local item it = .Slot[slot]
        local integer SelectSlot = this*.MaxCount+slot
        if .BS.CurSelectSlot != -1 then
            set curbag = .BS.CurSelectSlot/.MaxCount
            set curslot = .BS.CurSelectSlot-curbag*.MaxCount
            set curit = curbag.Slot[curslot]
            call SetUnitVertexColor(curbag.WinSlot[curslot].picture, 255, 255, 255, 255)
        endif
        if it != null then
            if .BS.CurSelectSlot != SelectSlot then
                call SetUnitVertexColor(.WinSlot[slot].picture, 200, 200, 200, 255)
                set .BS.CurSelectSlot = this*.MaxCount+slot
                return GetItemTypeId(.Slot[slot])
            else
                set .BS.CurSelectSlot = -1
            endif
            return false
        elseif .BS.CurSelectSlot != -1 then
            set .Slot[slot] = curit
            call .WinSlot[slot].SetTexture(GetItemTexture(GetItemTypeId(curit)))
            call .ResetCharges(slot)
            set curbag.Slot[curslot] = null
            call curbag.WinSlot[curslot].SetTexture(TypeTextureBlank)
            call curbag.ResetCharges(curslot)
            set .BS.CurSelectSlot = -1
            if (curbag != this) then
                set curbag.CountItem = curbag.CountItem - 1
                set .CountItem = .CountItem + 1
                call SetItemCharges(curbag.Bag, curbag.CountItem)
                call SetItemCharges(.Bag, .CountItem)
            endif
        endif
        return 0
    endmethod
хотя конечно я могу и ошибаться.
вопрос в следующем - в каком конкретно участке нужно вставлять свой скрипт? и какие перменные заюзать в условии? если выложите пример - буду очень признателен.
З.ы. по сути должны быть например так - во все слоты итемы складываются нормально но во вторую ячейку можно ложить например только предметы типа "кампания".
наработка используется эта
P.s.s. я конечно понимаю что объемно обьяснил но плиз помогите очень нужно, не в службу а в дружбу
Старый 10.02.2010, 22:41
Ответ

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

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

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

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



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