Ну раз группы для вас ресурсоёмки используйте event units in range - этот ивент берт boolexpr, так же можно добавить любое условие триггеру на enterning unit.
Ну как бы там все одно да потому, код тот же что я описал выше, вот только проверять все надо в МУИ это раз, два время затраченное на синхронизацию может быть пипец каким большим...
function Trig_SyncStr_Actions takes nothing returns nothing
local string splayer = null
local player pl = Player(0)
if GetLocalPlayer() == pl then
call StoreString( udg_Data, "A", "B", "твоя строка!" )
endif
call TriggerSyncReady()
if GetLocalPlayer) == pl then
call SyncStoredString( udg_Data, "A", "B" )
endif
call TriggerSleepAction( 2.00 )
call TriggerSyncReady()
set splayer = GetStoredString( udg_Data, "A", "B" ) // выгрузи строку из кеша в локалку и делай с ней что хочешь
endfunction
//===========================================================================
function InitTrig_SyncStr takes nothing returns nothing
set gg_trg_SyncStr = CreateTrigger( )
call TriggerAddAction( gg_trg_SyncStr, function Trig_SyncStr_Actions )
endfunction
Триггер запускаем ExecuteTrigger а "Твоя строка" заменяется на глобальную переменную.
Триггено, перебираешь всех юнитов, и заставляешь кастовать их скиллы в самую подходящую цель.
Вот пример ИИ которое кастует спеллы как найдет цель в пределах досигаймости скилла, волну силы на расстоянии а громовую поступь вплотную.
Ну разумеется, абилку делаешь на основе аксид бомбы, бафф любойб на него и проверяешь, там бафф тут же удаляется после проверки, с такой системой небудут багатся всякие линки и прочие скиллы позволяющие уворачиваться от заклинаний и или снарядов. Тк. бафф один и негде более не юзается кроме как для отслеживания ничего не будет багатся.
Кароче при касте скилла добавляй событие на урон от кастера по цели, если цель получила 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 ед. видимость юниту не установить, только юзать дамми юнитов с обзором или Модификаторы Видимости
Ну юзайте паразита, почти те же поля что и у аксид бомбы, слоу, урон в сек, бафф - способна стакатся, ибо имеет настроки схожие с ядами и ледяными\ядовитыми стрелами.
Но самый надежный вариант сделать все триггерно, на ауре замедления торнадо или чем нибудь еще.
» WarCraft 3 / Багается код
» WarCraft 3 / Багается код
» WarCraft 3 / Триггерный урон для способностей типа волна
Ред. quq_CCCP
» WarCraft 3 / Pick Up a ll items?
» WarCraft 3 / Триггерный урон
Ред. quq_CCCP
» WarCraft 3 / SyncStoredString не работает?
» WarCraft 3 / Урон по области врагам
Ред. 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
В чем проблема?