32

» WarCraft 3 / Триггерный урон для способностей типа волна

Ну раз группы для вас ресурсоёмки используйте event units in range - этот ивент берт boolexpr, так же можно добавить любое условие триггеру на enterning unit.
32

» WarCraft 3 / Pick Up a ll items?

Это же уже 100500 раз обсуждалось, готовых систем туча. Поиска в помощь.
32

» WarCraft 3 / Триггерный урон

Ну разумеется нет, для этих пассивок нужен факт атаки а не тупо урон, урон наносится после удачного факта атаки.
32

» WarCraft 3 / SyncStoredString не работает?

Ну как бы там все одно да потому, код тот же что я описал выше, вот только проверять все надо в МУИ это раз, два время затраченное на синхронизацию может быть пипец каким большим...
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 а "Твоя строка" заменяется на глобальную переменную.
32

» WarCraft 3 / Урон по области врагам

ssbbssc:
naxim:
Юзай способность буран с одной волной. Не?
Буран и своих угощает
Так если что, это можно настроить и у огненного дождя и у бурана, а так же огненного столба, достаточно правильно указать допустимые цели!
32

» WarCraft 3 / SyncStoredString не работает?

Через вейт, в потоке триггера только.
call TriggerSyncStart()

if GetLocalPlayer() == pl then
	`call SycnStored....( cache, "", "" )
enid
call TriggerSleepAction(2.00)
call TriggerSyncReady()
Незабываем что синк не мгновенный, я тоже радовался когда на ракапе у меня синкнулись 4 значения через 15 секунд...
32

» WarCraft 3 / Использsвание Способностей

Триггено, перебираешь всех юнитов, и заставляешь кастовать их скиллы в самую подходящую цель.
Вот пример ИИ которое кастует спеллы как найдет цель в пределах досигаймости скилла, волну силы на расстоянии а громовую поступь вплотную.
Загруженные файлы
32

» WarCraft 3 / Использsвание Способностей

Ну конечно можно, напишите свой ИИ, сделайте скиллы на основе автокастов\орбов вроде сферы замедления...
32

» WarCraft 3 / Фаербол

ssbbssc:
quq_CCCP:
проверка на бафф в итоге. хорошо
Ну разумеется, абилку делаешь на основе аксид бомбы, бафф любойб на него и проверяешь, там бафф тут же удаляется после проверки, с такой системой небудут багатся всякие линки и прочие скиллы позволяющие уворачиваться от заклинаний и или снарядов. Тк. бафф один и негде более не юзается кроме как для отслеживания ничего не будет багатся.
32

» WarCraft 3 / Фаербол

Эмм пример, не думаю что автор будет юзать jass.
Систему можно найти тут XATtach
32

» WarCraft 3 / Фаербол

Кароче при касте скилла добавляй событие на урон от кастера по цели, если цель получила 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
32

» WarCraft 3 / Фаербол

ssbbssc:
quq_CCCP:
при уроне все равно придется проверять на наличие таймера амулета защиты от магии или баффа оглушения от скилла
Простите, но начем с того что негейшен блокнит стан и все, мы не попали, а про отлов маг урона уже было, могу даже кинуть пример того как делается такое, на основе аксид бомбы или стана, работает как часы, блочится линками, можно увернутся всякими иллюзиями и блинками.
32

» WarCraft 3 / Фаербол

Эмм а что мешает делать снаряд из аксид бомбы или молотка бурь?
Урон и все остальное длаем полностью триггерно.
32

» WarCraft 3 / Как юзать скилллы на юнита под москитами.

Простита а зачем? Для эффекта молнии? Можно сделать молнию триггерно, а так вроде можно отдать приказ на каст триггерно, не проверял но вроде у фрога в ульте см дамми юниты кастуют фрост нову в самого себя....
32

» WarCraft 3 / Проблема с нейтралами

У нейтралов есть встроеный ИИ который их заставляет охранять место спауна, поэтому чтобы они бегали надо следить за тем какой они сейчас выполняют приказ и если они встали или развернулись снова отдавать приказ идти куда нужно.
Лучше использовать обычных игроков, у них нет ии которое будет пытаться вернуть юнитов на охрану позиции.
32

» WarCraft 3 / Туман рики. Привет из доты.

nvc123:
prog, Melissa, quq_CCCP, 16GB, судя по опен доте там используется дамми и стандартный туман
Кто бы спорил?
32

» WarCraft 3 / Десинхрон

Ну мб в абилке дело,у меня такое было - еще встречал совсем несуразный баг, юнит в группу не попадал...
32

» WarCraft 3 / Туман рики. Привет из доты.

Melissa:
16GB, я всё ждал, кто же наконец про
Melissa:
пламя обречённости
спросит. Провальность варианта уже в том, что пламя обреченности сбивает spell shield\linken sphere\как хотите.
Заходит такой Юнит с линкой(а если в карте несколько разных предметов со спеллщилдом, то с и с ними тоже) и у него как фейерверки все амулеты потрескались, а сало задержалось на долю секунды =)
Ну это нетак, у фрога же работает - кто то из умных людей ему подсказал с года 2 назад что в настройках негейшена есть допустимые цели, ставиш туда уязвимые, организмы а даммиков делаешь спецом либо неуяз (но они и так неуяз) либо механическими и вуаля, не блочит спеллы так как кастер спелла запрещенная цель.
сам был удивлен..
32

» WarCraft 3 / Туман рики. Привет из доты.

Сразу скажу, меняем настройки тумана на враги наземные организмы, то будет работать только на здания.
Сам туман как уже сказано выше - делаем дамми кастом.
И еще одна полезность, т.к способность ястреба - Туман имеет не масштабируемый спеццэффект примерно на 200 аое, то лучше его удалить и установит в качестве модели дамми юниту и отмаштабировать как нужно, на подходящее аое.
32

» WarCraft 3 / Десинхрон

Ну делайте лог с помощью PreloadExploit, смотрите что у кого было, пересмотрите реплей, какие действия были во время десинха, мб есть что то общее, потм качаем тулу и играем с самим собой по сети, повторяем то чо было в реплее во время десинха, если дисинхает то усе, значит тут косяк в коде\модели
32

» WarCraft 3 / Область видимости юнита

Мда, у юнитов в варкравте видимость приближенная а не точная, ну все до 64 это 0 все больше 1800 все равно 1800, видимость кратна 64 вроде, больше 1800 ед. видимость юниту не установить, только юзать дамми юнитов с обзором или Модификаторы Видимости
32

» WarCraft 3 / Один баф перекрывает другой

Ну юзайте паразита, почти те же поля что и у аксид бомбы, слоу, урон в сек, бафф - способна стакатся, ибо имеет настроки схожие с ядами и ледяными\ядовитыми стрелами.
Но самый надежный вариант сделать все триггерно, на ауре замедления торнадо или чем нибудь еще.