Приветствую. Это снова я.
Хотел запилить тему, чтобы способности улучшались с помощью диалогового окна.
Сделал предмет, при покупке которого должно появляться диалоговое окно с выбором.
Спеллы все запомнились при их получении(со спеллами проблем нету) и диалоговые кнопки должны были появится.
Однако, появилась проблема. При покупке предмета на ап спеллов, ничего не происходит. Прям, вообще.
Окно не появляется, ничего вообще как будто не происходит.
Вот сам код небольшой:
function Trig_MobileUpgrade_Actions takes nothing returns nothing
    local player Buyer = GetOwningPlayer(GetBuyingUnit())
    local integer BuyerNumber = GetConvertedPlayerId(GetOwningPlayer(GetBuyingUnit()))
    call DialogClearBJ(SpellsMenu[BuyerNumber])
    set SpellsMenu[BuyerNumber] = DialogCreate()
    
    set SpellAction[BuyerNumber] = 1
    call DialogSetMessage(SpellsMenu[BuyerNumber],"Выберите способность")
    
    set bj_forLoopAIndex = 1
    set bj_forLoopAIndexEnd = SpellCount[BuyerNumber]
    loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        set SpellsButtons[BuyerNumber][bj_forLoopAIndex] = DialogAddButton(SpellsMenu[BuyerNumber],AbilityId2String(SpellName[BuyerNumber][bj_forLoopAIndex]),'A')
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
    endloop
    
    call UnitRemoveItemSwapped( GetItemOfTypeFromUnitBJ(GetBuyingUnit(), 'I091'), GetBuyingUnit() )
    call RemoveItem( GetLastRemovedItem() )
    
    call DialogDisplay( Buyer, SpellsMenu[BuyerNumber], true )
endfunction

Глобалки которые я тут использовал:
integer SpellAction[11] - глобалку которую я назначил для проверки, какая операция в диалоговом окне будет выполнятся. (Одно диалоговое окно на два предмета - удаление спеллов и улучшение). Для удаления используется значение 2, а для прокачки 1)
integer SpellName[11][6] - сам спелл, который запомнился у игрока при его получении. [11] - это номер игрока, т.е, у кого находится спелл. А [6] - это номер спелла(максимум 6 спеллов в спеллбаре)
integer SpellCount[11] - это [6] из прошлой глобалки, отслеживающий кол-во спеллов. А также, используемый чтобы записывает, что за спелл у игрока, например: SpellName[1][1] это огненный шар а SpellName[1][2] это огненный столб.
dialog SpellsMenu[11] - это сами диалоговые окна. [11] - номер игрока.
button SpellsButtons[11][6] - кнопки. [11] - номера игрока, [6] - сама кнопка.

Проблема решена.
У объекта(магазина) не было способности "Лавка: купить предмет" и "Выбор героя".
`
ОЖИДАНИЕ РЕКЛАМЫ...
16
P.S BJ после некоторых функций я поставил обратно, потому-что думал, что дело в самих функциях. Но нет, должно быть где-то ошибка другая.
16
Спеллов вроде фулл(6 штук). Отслеживание есть.
В коде на выдачу спелла вроде все нормально.
Всё считает и сохраняется. Дело в диалоге, но не могу понять что именно.
set SpellCount[PlayerX] = (SpellCount[PlayerX] + 1)
set SpellName[PlayerX][SpellCount[PlayerX]] = udg_SpellDatabase[LSG] 
Загруженные файлы
16
Проблема решена.
У объекта(магазина) не было способности "Лавка: купить предмет" и "Выбор героя".
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.