Приветствую. Это снова я.
Хотел запилить тему, чтобы способности улучшались с помощью диалогового окна.
Сделал предмет, при покупке которого должно появляться диалоговое окно с выбором.
Спеллы все запомнились при их получении(со спеллами проблем нету) и диалоговые кнопки должны были появится.
Однако, появилась проблема. При покупке предмета на ап спеллов, ничего не происходит. Прям, вообще.
Окно не появляется, ничего вообще как будто не происходит.
Хотел запилить тему, чтобы способности улучшались с помощью диалогового окна.
Сделал предмет, при покупке которого должно появляться диалоговое окно с выбором.
Спеллы все запомнились при их получении(со спеллами проблем нету) и диалоговые кнопки должны были появится.
Однако, появилась проблема. При покупке предмета на ап спеллов, ничего не происходит. Прям, вообще.
Окно не появляется, ничего вообще как будто не происходит.
Вот сам код небольшой:
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] - сама кнопка.
Принятый ответ
Проблема решена.
У объекта(магазина) не было способности "Лавка: купить предмет" и "Выбор героя".
У объекта(магазина) не было способности "Лавка: купить предмет" и "Выбор героя".
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. Netherstorm
В коде на выдачу спелла вроде все нормально.
Всё считает и сохраняется. Дело в диалоге, но не могу понять что именно.
У объекта(магазина) не было способности "Лавка: купить предмет" и "Выбор героя".