Добрый день!
Нужна моделька темной Изеры, можно слепить из ее стандартной модели (только цвета поменять и все), или же если где-то есть, то скинуть на нее ссылку.
Срок неограничен, но буду искренне благодарен, если работа будет выполнена быстрее
код приложен под катом, бери и правь.
Хештаблица - ну банальное прикрепление данных к обьекту, в данном случае к триггеру юнита, call SaveUnitHandle( хештаблица, id триггера, ключ, юнит), SaveUnitHandle( HashData, id, 0, targ ). Насет абилки кольца защиты, есть такой предмет - кольцо защиты, и есть у него способность, которая повышает защиту, копируюем её, бонус защиты на ноль настраиваем, а в полях Граффика маг, спецэффект. Это нужно чтобы прекрепить спецэффект к юниту, который не пропадет при морфе, сокрытии или других действиях. Просто пустышка для визуального эффекта, можно использовать и другие способности, но абилка бонуса защиты не имеет иконки и не багут\мешает другим способностям, работают у всех юнитов (бонус атрибутов фатальнет у не героев).
Всё равно не понятно, лучше скринами прислать, так проще будет
Добрый день!
Нужна моделька пурпурного дракона по типу такой (рога желательно сделать длинными)
Имя: Орион
Анимация ходьбы, полёта, атаки и кастов можно сделать как у других драконов: к примеру как у Изеры.
Желательно управиться за 2 месяца, желаю вдохновения и удачи в работе.
Действие, условие второго триггера, хэш-таблица, время, способности на основе кольца с нулевым значением и эффектом сна. Короче проще скрин самих триггеров отправить, так будет понятнее намного.
function Trig_Surge_Expires_Conditions takes nothing returns boolean
local trigger trg = GetTriggeringTrigger()
local integer id = GetHandleId(trg)
local unit targ = LoadUnitHandle( HashData, id, 0 )
call DisableTrigger(trg)
call UnitRemoveAbility( targ, 'A0C9' )
call UnitRemoveAbility( targ, 'B07W' )
call RemoveSavedHandle( HashData, ExSurge, GetHandleId(targ))
call FlushChildHashtable( HashData, id )
call S0I(trg)
set trg = LoadTriggerHandle( HashData, ExPhaseKey, GetHandleId(targ) )
if trg == null then
//call SetUnitPathing( targ, true )
endif
set targ = null
set trg = null
return false
endfunction
function Trig_Surge_Actions takes nothing returns nothing
local unit targ = GetSpellTargetUnit( )
local real dur = RMaxBJ( 1.50 * GetUnitAbilityLevel( GetSpellAbilityUnit(),'A0R7' ) + 1.50, 3.01 )
local trigger trg = LoadTriggerHandle( HashData, ExSurge, GetHandleId(targ) )
local integer id
if trg != null then
call TriggerEvaluate(trg)
endif
set trg = LoadTriggerHandle( HashData, ExPhaseKey, GetHandleId(targ) )
if trg != null then
call TriggerEvaluate(trg)
endif
set trg = CreateTrigger()
set id = GetHandleId(trg)
call SaveTriggerHandle( HashData,ExSurge, GetHandleId(targ), trg )
call SaveUnitHandle( HashData, id, 0, targ )
call TriggerAddCondition( trg, Condition(function Trig_Surge_Expires_Conditions ) )
call TriggerRegisterDeathEvent( trg, targ )
call TriggerRegisterTimerEvent( trg, dur, false )
call UnitAddAbility( targ, 'A0C9' )
call UnitMakeAbilityPermanent( targ, true, 'A0C9' )
call SetUnitAbilityLevel( targ, 'A0C9', GetUnitAbilityLevel( GetSpellAbilityUnit(),'A0R7' ) )
call AuraUpdateEffect( targ, 'A0R7' )
call IO1(UD,GetUnitX(targ),GetUnitY(targ))
call DestroyEffect(AddSpecialEffectTarget("effects\\Surge.mdx",targ,"origin"))
if not IsUnitType( targ,UNIT_TYPE_FLYING)then
//call SetUnitPhased(targ)
endif
set targ = null
set trg = null
endfunction
function Trig_Surge_Conditions takes nothing returns boolean
if GetSpellAbilityId() == 'A0R7' then
call Trig_Surge_Actions()
endif
return false
endfunction
function Register_Surge takes nothing returns nothing
local trigger trg = CreateTrigger( )
local integer nIndex = 1
call TriggerAddCondition( trg, Condition( function Trig_Surge_Conditions ) )
loop
exitwhen nIndex > 11
if IsSlotPlayer( Player( nIndex ) ) then
call TriggerRegisterPlayerUnitEvent( trg, Player( nIndex ), EVENT_PLAYER_UNIT_SPELL_EFFECT, OnlyHero )
endif
set nIndex = nIndex + 1
endloop
set trg = null
endfunction
Это код способности surge, из доты, когда то давно делал. Ну собственно тут довольно примитивный код и как раз пример как нужно следить за юнитом, тут реализован и диспел и перебивание баффа при повторном применении, это не намного сложнее кастомного сна, который я описал выше.
Просто добавляем в кондишене второго триггера услвоие с GetTriggerEventId() == ну и событие, к примеру EVENT_WIDGET_DEATH чтобы снимать эффект при смерти, уроне выше 0 не от кастера или от истечении времени.
А можешь скрин прислать как создать способность,ибо по описанию не совсем понятны некоторые детали(
А в чем проблема, т.к сон сбивается при уроне, то стандартные способности не подойдут, берешь обычное высасывание жизни, и создаешь триггер событием которого будет - юнит приводит способность в действие, условие - примененная способность == твоё сосание жизни, ну и действие:
Применяем на жертву PauseUnit, вручаем жертве способность на основе кольца защиты с нулевым бонусом и прекрепленным эффектом сна, далее создаем новый триггер, с событиями - юнит получает урон, юнит умирает, время вышло, кастер отдел приказ, цель точка, цель обьект, без указания цели. Ну и добавляем триггеру новое условие, в котором будем делать действия. Сохраняем в хештаблицу юнита цель и нашего кастера. Выгружаем в условии вновь созданного нами триггера, проверяем от чего сработал триггер, если триггер сработал от смерти, или урона, или от приказа не равного - приказу похищения жизни, триггер отключаем, у юнита удаляем паузу и абилку пустышку для визуального эффекта. Если цель получила урон не от кастера, и урон выше 0 - то паузим кастера и тут же сбиваем паузу, попутно так же выключая триггер и снимая с жертвы паузу и спецэффект. Ну и не забываем обнулять все локальные переменные и удалять триггер в конце.
Тоесть таким образом союзный вражеский юнит не собьёт ульт?
Ну и добавляем триггеру новое условие, в котором будем делать действия: какое условие ставить? И хэш-таблица как сохраняется?
А в чем проблема, т.к сон сбивается при уроне, то стандартные способности не подойдут, берешь обычное высасывание жизни, и создаешь триггер событием которого будет - юнит приводит способность в действие, условие - примененная способность == твоё сосание жизни, ну и действие:
Применяем на жертву PauseUnit, вручаем жертве способность на основе кольца защиты с нулевым бонусом и прекрепленным эффектом сна, далее создаем новый триггер, с событиями - юнит получает урон, юнит умирает, время вышло, кастер отдел приказ, цель точка, цель обьект, без указания цели. Ну и добавляем триггеру новое условие, в котором будем делать действия. Сохраняем в хештаблицу юнита цель и нашего кастера. Выгружаем в условии вновь созданного нами триггера, проверяем от чего сработал триггер, если триггер сработал от смерти, или урона, или от приказа не равного - приказу похищения жизни, триггер отключаем, у юнита удаляем паузу и абилку пустышку для визуального эффекта. Если цель получила урон не от кастера, и урон выше 0 - то паузим кастера и тут же сбиваем паузу, попутно так же выключая триггер и снимая с жертвы паузу и спецэффект. Ну и не забываем обнулять все локальные переменные и удалять триггер в конце.
Тоесть таким образом союзный вражеский юнит не собьёт ульт?
Anariys3333, кстати это весьма странная проблема, я не первый раз уже это слышу. Когда сам делаю, то все норм, скорее всего где то есть какие то недопустимые параметры
» WarCraft 3 / Нужна модель? - Вам сюда!
» WarCraft 3 / Нужна модель? - Вам сюда!
» WarCraft 3 / Нужна модель? - Вам сюда!
Нужна моделька темной Изеры, можно слепить из ее стандартной модели (только цвета поменять и все), или же если где-то есть, то скинуть на нее ссылку.
Срок неограничен, но буду искренне благодарен, если работа будет выполнена быстрее
» WarCraft 3 / Как создать способность
» WarCraft 3 / Нужна модель? - Вам сюда!
Нужна моделька пурпурного дракона по типу такой (рога желательно сделать длинными)
Имя: Орион
Анимация ходьбы, полёта, атаки и кастов можно сделать как у других драконов: к примеру как у Изеры.
Желательно управиться за 2 месяца, желаю вдохновения и удачи в работе.
» WarCraft 3 / Как создать способность
» WarCraft 3 / Как создать способность
» WarCraft 3 / Как создать способность
» WarCraft 3 / Как создать способность
» WarCraft 3 / Как создать способность
» WarCraft 3 / Проблема с озвучкой
» WarCraft 3 / Проблема с озвучкой
» WarCraft 3 / Проблема с озвучкой персонажа
» WarCraft 3 / Проблема с озвучкой персонажа