Можно ли как-нибудь сделать так, чтобы предмет был в инвентаре героя изначально и его не нужно было подбирать?

Принятый ответ

Событие: Generic unit Завершает подготовку боевой единицы
Условие: (Trained unit) равно Герой равно Да
Действие: Герой - Give (item) to (Trained unit)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
29
6 лет назад
0
При помощи функции UnitAddItemToSlotById()
0
3
0
А можно сделать это как-нибудь без jass? Через триггеры или редактор объектов, например.
3
26
6 лет назад
Отредактирован 8gabriel8
3
Событие: Generic unit Завершает подготовку боевой единицы
Условие: (Trained unit) равно Герой равно Да
Действие: Герой - Give (item) to (Trained unit)
Принятый ответ
0
21
6 лет назад
0
по идее есть же функция гуишная давать тренированным героям свиток портала
просто один раз достаточно при айните и всем дает
можно с ней пошаманить попробовать
по идее если свиток портала во что-то переделать это что-то и должно будет даваться
ну и раз такая функция есть, то при крайней нужде теоретически должно быть возможно хакнуть редактор и сделать подобное для любого предмета, просто овчинка вряд ли стоит выделки
2
28
6 лет назад
Отредактирован nvc123
2
ClotPh, эта функция просто создаёт триггер описанный выше
если что, то триггеры можно создавать не только через кнопку "создать триггер"
2
21
6 лет назад
2
ClotPh, там свиток даётся только первому юниту, если не изменить значение переменной.
globals
	integer bj_MELEE_MAX_TWINKED_HEROES = 0
endglobals

function MeleeGrantItemsToHero takes unit whichUnit returns nothing
    local integer owner   = GetPlayerId(GetOwningPlayer(whichUnit))

    // If we haven't twinked N heroes for this player yet, twink away.
    if (bj_meleeTwinkedHeroes[owner] < bj_MELEE_MAX_TWINKED_HEROES) then
        call UnitAddItemById(whichUnit, 'stwp')
        set bj_meleeTwinkedHeroes[owner] = bj_meleeTwinkedHeroes[owner] + 1
    endif
endfunction

function MeleeGrantItemsToTrainedHero takes nothing returns nothing
    call MeleeGrantItemsToHero(GetTrainedUnit())
endfunction

function MeleeGrantHeroItems takes nothing returns nothing
    local integer index
    local trigger trig

    // Initialize the twinked hero counts.
    set index = 0
    loop
        set bj_meleeTwinkedHeroes[index] = 0

        set index = index + 1
        exitwhen index == bj_MAX_PLAYER_SLOTS
    endloop

    // Register for an event whenever a hero is trained, so that we can give
    // him/her their starting items.
    set index = 0
    loop
        set trig = CreateTrigger()
        call TriggerRegisterPlayerUnitEvent(trig, Player(index), EVENT_PLAYER_UNIT_TRAIN_FINISH, filterMeleeTrainedUnitIsHeroBJ)
        call TriggerAddAction(trig, function MeleeGrantItemsToTrainedHero)

        set index = index + 1
        exitwhen index == bj_MAX_PLAYERS
    endloop

    // Register for an event whenever a neutral hero is hired, so that we
    // can give him/her their starting items.
    set trig = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(trig, Player(PLAYER_NEUTRAL_PASSIVE), EVENT_PLAYER_UNIT_SELL, filterMeleeTrainedUnitIsHeroBJ)
    call TriggerAddAction(trig, function MeleeGrantItemsToHiredHero)

    // Flag that we are giving starting items to heroes, so that the melee
    // starting units code can create them as necessary.
    set bj_meleeGrantHeroItems = true
endfunction
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.