Например купил в лавке меч на 10 урона. в слоте кликнул по мечу. и за 100 монет он улучшится до 2 лвла и урон будет равен 20. Ну прокачка предметов.

А что у тебя не получается? Делаешь предмет используемым и с прибавкой к урону, копируешь предмет и делаешь больше прибавку к урону. Делаешь триггер с событием юнит использует предмет, либо юнит приводит способность в действие, в условии указываешь тип предмета или способность предмета и наличие у игрока 100 золота, в действии убираешь у героя использованный предмет и вручаешь новый. и 100 золота у владельца юнита забираешь)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
17
принципиально чтобы было показано в описании что этот меч +2 и урон у него 20
4
ledoed:
принципиально чтобы было показано в описании что этот меч +2 и урон у него 20
да
26
А что у тебя не получается? Делаешь предмет используемым и с прибавкой к урону, копируешь предмет и делаешь больше прибавку к урону. Делаешь триггер с событием юнит использует предмет, либо юнит приводит способность в действие, в условии указываешь тип предмета или способность предмета и наличие у игрока 100 золота, в действии убираешь у героя использованный предмет и вручаешь новый. и 100 золота у владельца юнита забираешь)
Принятый ответ
17
тогда создаем 10 итемов меча от +1 до +10 и описываем их по нужным нам характеристикам,потом даем этим мечам способность Ултушить и от бд улутшать на нужный нам предмет,тоесть если в инвентаре итем I000 то улутшаем его => I001
15
Создаёшь массив из предметов типа "Хрустальный шар" убираешь ему способность разведки местности, добавляешь кастомные 2 способности:
Повышение урона
Фейк повышение любой характеристики на 0 ед.
Далее логика на гуи: Юнит использовал предмет, проверка типа предмета и золота, действие - убрать предмет старый, дать новый, установить значение золота как текущее значение минус ( сколько стоит апгрейд )
Рабочий код:
        local ItemUpgrade = CreateTrigger()
        TriggerRegisterUnitEvent(ItemUpgrade,GetTriggerUnit(), EVENT_UNIT_USE_ITEM)
        TriggerAddAction(ItemUpgrade,function() 
            if GetItemTypeId(GetManipulatedItem()) == FourCC('I000') and GetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD) > 100  then
            RemoveItem(GetManipulatedItem())
            UnitAddItemByIdSwapped(FourCC('I001'),GetTriggerUnit())
            SetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD,PLAYER_STATE_RESOURCE_GOLD-100)
            elseif GetItemTypeId(GetManipulatedItem()) == FourCC('I000') then BJDebugMsg('Нехватает золота для улучшения')
            end
        end)
30
Зачем хрустальный шар, если любому предмету можно дать абилку?
15
Clamp:
Зачем хрустальный шар, если любому предмету можно дать абилку?
Хм, я просто не был уверен что любой предмет становится кликабельный после того как ему вручают активную абилку. :)
30
Даже если бы было нельзя, хрустальный шар — плохая идея, поскольку требует указания цели.
15
Clamp:
Даже если бы было нельзя, хрустальный шар — плохая идея, поскольку требует указания цели.
Если дать абилку повышение характеристики то никакого указания цели не потребуется, я тестировал метод который описал выше.
30
Если дать абилку повышение характеристики то никакого указания цели не потребуется, я тестировал метод который описал выше.
Ок, упустил этот момент. Так или иначе, можно в любой предмет добавить одну активную абилку. Если у неё есть стоимость в мане, то для того, чтобы она отображалась на предмете, абилка должна быть первой в списке.
совершенно бесполезные для меня знания я помню лучше всего...
2
Clamp, можно добавить 2 и болиее активки если имеют разные параметры цели например блогодать утер и коил рыцаря смерти)))
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.