Триггено, перебираешь всех юнитов, и заставляешь кастовать их скиллы в самую подходящую цель.
Вот пример ИИ которое кастует спеллы как найдет цель в пределах досигаймости скилла, волну силы на расстоянии а громовую поступь вплотную.
Ну разумеется, абилку делаешь на основе аксид бомбы, бафф любойб на него и проверяешь, там бафф тут же удаляется после проверки, с такой системой небудут багатся всякие линки и прочие скиллы позволяющие уворачиваться от заклинаний и или снарядов. Тк. бафф один и негде более не юзается кроме как для отслеживания ничего не будет багатся.
Кароче при касте скилла добавляй событие на урон от кастера по цели, если цель получила 0.00 урона и у неё есть бафф способности, то значит снаряд попал, если нет то снаряд не попал в цель.
вот простенький пример такой системы:
код
scope DummyMissile
struct DMD
trigger trg
triggercondition trc
triggeraction tra
triggeraction extra
unit cast
unit targ
integer id
timer trix
boolean del
method FlushData takes nothing returns nothing
call DisableTrigger( .trg )
call TriggerRemoveCondition( .trg, .trc )
call TriggerRemoveAction( .trg, .tra )
call TriggerRemoveAction( .trg, .extra )
call TriggerClearActions( .trg )
call TriggerClearConditions( .trg )
call RemoveDataBX( .trg )
call RemoveDataBX( .trix )
call DestroyTrigger( .trg )
call DestroyTimer( .trix )
set this.trg = null
set this.trc = null
set this.tra = null
set this.extra = null
set this.cast = null
set this.targ = null
set this.trix = null
set this.id = 0
set this.del = false
endmethod
endstruct
function IsTargetHasBuff takes nothing returns boolean
local DMD st = GetDataBX( GetTriggeringTrigger( ) )
return GetEventDamage( ) == 0.00 and GetUnitAbilityLevel( st.targ, st.id ) > 0 and GetEventDamageSource( ) == st.cast and GetEventDamageSource( ) != DummyAttacker
endfunction
function Destroy_DMD takes nothing returns nothing
local DMD st = GetDataBX( GetExpiredTimer( ) )
call st.FlushData( )
call st.destroy( )
endfunction
function RemoveDMDBuff takes nothing returns nothing
local DMD st = GetDataBX( GetTriggeringTrigger( ) )
if st.del then
call UnitRemoveAbility( st.targ, st.id )
endif
call PauseTimer( st.trix )
call DisableTrigger( st.trg )
call TimerStart( st.trix, 0.00, false, function Destroy_DMD )
return
endfunction
function DummyMissile takes unit target, unit caster, integer buffid, real time, boolean del, code actions returns nothing
local DMD st = DMD.create( )
set st.cast = caster
set st.targ = target
set st.id = buffid
set st.del = del
set st.trix = CreateTimer( )
set st.trg = CreateTrigger( )
set st.trc = TriggerAddCondition( st.trg, Condition( function IsTargetHasBuff ) )
set st.tra = TriggerAddAction( st.trg, actions )
set st.extra = TriggerAddAction( st.trg, function RemoveDMDBuff )
call TriggerRegisterUnitEvent( st.trg, target, EVENT_UNIT_DAMAGED )
call TimerStart( st.trix, time, false, function Destroy_DMD )
call SetDataBX( st.trg, st )
call SetDataBX( st.trix, st )
endfunction
endscope
quq_CCCP:
при уроне все равно придется проверять на наличие таймера амулета защиты от магии или баффа оглушения от скилла
Простите, но начем с того что негейшен блокнит стан и все, мы не попали, а про отлов маг урона уже было, могу даже кинуть пример того как делается такое, на основе аксид бомбы или стана, работает как часы, блочится линками, можно увернутся всякими иллюзиями и блинками.
Простита а зачем? Для эффекта молнии? Можно сделать молнию триггерно, а так вроде можно отдать приказ на каст триггерно, не проверял но вроде у фрога в ульте см дамми юниты кастуют фрост нову в самого себя....
У нейтралов есть встроеный ИИ который их заставляет охранять место спауна, поэтому чтобы они бегали надо следить за тем какой они сейчас выполняют приказ и если они встали или развернулись снова отдавать приказ идти куда нужно.
Лучше использовать обычных игроков, у них нет ии которое будет пытаться вернуть юнитов на охрану позиции.
спросит. Провальность варианта уже в том, что пламя обреченности сбивает spell shield\linken sphere\как хотите.
Заходит такой Юнит с линкой(а если в карте несколько разных предметов со спеллщилдом, то с и с ними тоже) и у него как фейерверки все амулеты потрескались, а сало задержалось на долю секунды =)
Ну это нетак, у фрога же работает - кто то из умных людей ему подсказал с года 2 назад что в настройках негейшена есть допустимые цели, ставиш туда уязвимые, организмы а даммиков делаешь спецом либо неуяз (но они и так неуяз) либо механическими и вуаля, не блочит спеллы так как кастер спелла запрещенная цель. сам был удивлен..
Сразу скажу, меняем настройки тумана на враги наземные организмы, то будет работать только на здания.
Сам туман как уже сказано выше - делаем дамми кастом.
И еще одна полезность, т.к способность ястреба - Туман имеет не масштабируемый спеццэффект примерно на 200 аое, то лучше его удалить и установит в качестве модели дамми юниту и отмаштабировать как нужно, на подходящее аое.
Ну делайте лог с помощью PreloadExploit, смотрите что у кого было, пересмотрите реплей, какие действия были во время десинха, мб есть что то общее, потм качаем тулу и играем с самим собой по сети, повторяем то чо было в реплее во время десинха, если дисинхает то усе, значит тут косяк в коде\модели
Мда, у юнитов в варкравте видимость приближенная а не точная, ну все до 64 это 0 все больше 1800 все равно 1800, видимость кратна 64 вроде, больше 1800 ед. видимость юниту не установить, только юзать дамми юнитов с обзором или Модификаторы Видимости
Ну юзайте паразита, почти те же поля что и у аксид бомбы, слоу, урон в сек, бафф - способна стакатся, ибо имеет настроки схожие с ядами и ледяными\ядовитыми стрелами.
Но самый надежный вариант сделать все триггерно, на ауре замедления торнадо или чем нибудь еще.
аура есть аура, она не будет распространится на атаку юнита, используйте орб эффект, к примеру сферу замедления чтобы юнит при атаке накладывал на врага некоторый эффект.
ВНИМАНИЕ большинство орбов не складываются, поэтому если для вас это критично то скачиваем систему отлова физ урона и делаем пассивку полностью триггерно.
Насколько я помню это не изменяется в редакторе обьектов, это свойство щита описано в движке, не знаю есть ли константы для этого дела, скорее всего нету.
Поэтому берем и делаем триггерную версию щита молний, там достаточно просто, таймер и урон от имени кастера всем юнитам в аое.
Ред. quq_CCCP
» WarCraft 3 / SyncStoredString не работает?
» WarCraft 3 / Использsвание Способностей
Вот пример ИИ которое кастует спеллы как найдет цель в пределах досигаймости скилла, волну силы на расстоянии а громовую поступь вплотную.
» WarCraft 3 / Использsвание Способностей
» WarCraft 3 / Фаербол
» WarCraft 3 / Фаербол
Систему можно найти тут XATtach
» WarCraft 3 / Фаербол
вот простенький пример такой системы:
» WarCraft 3 / Фаербол
» WarCraft 3 / Фаербол
Урон и все остальное длаем полностью триггерно.
» WarCraft 3 / Как юзать скилллы на юнита под москитами.
» WarCraft 3 / Проблема с нейтралами
Лучше использовать обычных игроков, у них нет ии которое будет пытаться вернуть юнитов на охрану позиции.
» WarCraft 3 / Туман рики. Привет из доты.
» WarCraft 3 / Десинхрон
» WarCraft 3 / Туман рики. Привет из доты.
сам был удивлен..
» WarCraft 3 / Туман рики. Привет из доты.
Сам туман как уже сказано выше - делаем дамми кастом.
И еще одна полезность, т.к способность ястреба - Туман имеет не масштабируемый спеццэффект примерно на 200 аое, то лучше его удалить и установит в качестве модели дамми юниту и отмаштабировать как нужно, на подходящее аое.
» WarCraft 3 / Десинхрон
» WarCraft 3 / Область видимости юнита
» WarCraft 3 / Один баф перекрывает другой
Но самый надежный вариант сделать все триггерно, на ауре замедления торнадо или чем нибудь еще.
Ред. quq_CCCP
» WarCraft 3 / Вопрос по MUI
В чем проблема?
» WarCraft 3 / Aoe
ВНИМАНИЕ большинство орбов не складываются, поэтому если для вас это критично то скачиваем систему отлова физ урона и делаем пассивку полностью триггерно.
» WarCraft 3 / Как сделать так, чтобы способность "Щит молний" не наносила урон союзникам?
Поэтому берем и делаем триггерную версию щита молний, там достаточно просто, таймер и урон от имени кастера всем юнитам в аое.
» WarCraft 3 / Откат Пассивки
» WarCraft: Armies Of Azeroth / Ваше мнение
» WarCraft 3 / "пинг" по юнитам.
» WarCraft 3 / "пинг" по юнитам.
» WarCraft 3 / Положительный\отрицательный эффект
Например, |cffff0000Повреждающий бафф|r или |cff00ff00Полезный бафф|r.