Сделал триггерное воскрешение чтоб можно было воскрешать конкретных юнитов и поставить разные условия, но эффект не крепится к заменённому юниту, думаю потому что гуи действие замены удаляет старого и создаёт нового юнита, но как мне прикрепить спецэффект? Пока из того что приходит в голову только создание точки в месте воскрешения, а потом её удаление, есть ли способ легче?

Функция воскрешения боевой единицы:
    function ReviveUnit takes unit whichUnit returns boolean
        if IsUnitType( whichUnit, UNIT_TYPE_HERO ) then
            return ReviveHero( whichUnit, GetUnitX( whichUnit ), GetUnitY( whichUnit ), false )

        elseif ( reviverUnit != null ) then
            call SetUnitX( reviverUnit, GetUnitX( whichUnit ) )
            call SetUnitY( reviverUnit, GetUnitY( whichUnit ) )
            return IssueImmediateOrderById( reviverUnit, 852094 )

        else
            set reviverUnit = CreateUnit( Player( PLAYER_NEUTRAL_PASSIVE ), DUMMY_UNIT_ID, GetUnitX( whichUnit ), GetUnitY( whichUnit ), 0.0 )
            call UnitAddAbility( reviverUnit, 'Aloc' )
            call SetUnitInvulnerable( reviverUnit, true )
            call UnitAddAbility( reviverUnit, 'A016' ) // Воскрешение Паладина.
            call SetUnitPathing( reviverUnit, false )

            return IssueImmediateOrderById( reviverUnit, 852094 )
        endif

        return false
    endfunction
Воскрешение Паладина:
Иначе:
Я бы не рекомендавал использовать Replace Unit, но если Вы этого так хотите, то замените "GetEnumUnit( )" на "bj_lastReplacedUnit" при создании эффекта. И перенесите это ниже функции Replace Unit.
P. S:
А еще эффекты можно удалять сразу же после их создания. В Вашем случае это будет выглядеть как:
	сall DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\Human\\Resurrect\\ResurrectTarget.mdl", bj_lastReplacedUnit, "origin" ) )
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
20
вопрос похожий поднимался с неделю назад
еще раз про замену - это ПОЛНОЕ УДАЛЕНИЕ старого юнита и СОЗДАНИЕ НОВОГО на месте прежнего
все
старый теряется, совсем, абсолютно и навсегда, а также все связанные с ним данные и висящие на нем кастом велью и прочее
17
Clamp, Если так то легче просто использовать точки для наложения спецеффекта и удалять их. чем парится с даммиками.
30
Для применения "воскрешения" нужен даммик.
21
Функция воскрешения боевой единицы:
    function ReviveUnit takes unit whichUnit returns boolean
        if IsUnitType( whichUnit, UNIT_TYPE_HERO ) then
            return ReviveHero( whichUnit, GetUnitX( whichUnit ), GetUnitY( whichUnit ), false )

        elseif ( reviverUnit != null ) then
            call SetUnitX( reviverUnit, GetUnitX( whichUnit ) )
            call SetUnitY( reviverUnit, GetUnitY( whichUnit ) )
            return IssueImmediateOrderById( reviverUnit, 852094 )

        else
            set reviverUnit = CreateUnit( Player( PLAYER_NEUTRAL_PASSIVE ), DUMMY_UNIT_ID, GetUnitX( whichUnit ), GetUnitY( whichUnit ), 0.0 )
            call UnitAddAbility( reviverUnit, 'Aloc' )
            call SetUnitInvulnerable( reviverUnit, true )
            call UnitAddAbility( reviverUnit, 'A016' ) // Воскрешение Паладина.
            call SetUnitPathing( reviverUnit, false )

            return IssueImmediateOrderById( reviverUnit, 852094 )
        endif

        return false
    endfunction
Воскрешение Паладина:
Иначе:
Я бы не рекомендавал использовать Replace Unit, но если Вы этого так хотите, то замените "GetEnumUnit( )" на "bj_lastReplacedUnit" при создании эффекта. И перенесите это ниже функции Replace Unit.
P. S:
А еще эффекты можно удалять сразу же после их создания. В Вашем случае это будет выглядеть как:
	сall DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\Human\\Resurrect\\ResurrectTarget.mdl", bj_lastReplacedUnit, "origin" ) )
Загруженные файлы
Принятый ответ
21
Clamp, нет, ( 0.0 == бесконечность ) лишь в тех случаях, когда речь идёт о времени действия. В остальных случаях (здесь точно) - 0.0 считается как ноль, а не бесконечность.
17
ScopteRectuS, Даже в случае со временем 0 не всегда бесконечность
ScopteRectuS, Попробую с этим что-то сделать
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.