32

» WarCraft 3 / не работает call IssueTargetOrder(d, "thunderbolt, u)?

Принятый ответ
Руками молоток пробовали применять?
так же правильнее будет делать так
       set bj_lastCreatedUnit = CreateUnit( bj_groupEnumOwningPlayer, 'hdum', GetUnitX( enemy ), GetUnitY( enemy ), GetUnitFacing( enemy ) )
        call UnitAddAbility( bj_lastCreatedUnit, 'Ast1' )
        call UnitShareVision( enemy, bj_groupEnumOwningPlayer, true )
        if not IssueTargetOrder( bj_lastCreatedUnit, "creepthunderbolt", enemy ) then
            call BJDebugMsg("Ошибка - невозможно выполнить приказ!")
        endif
        call UnitShareVision( enemy, bj_groupEnumOwningPlayer, true )
        call UnitApplyTimedLife( bj_lastCreatedUnit, 0, 1.00 )
32

» WarCraft 3 / Как программно добавить/удалить морф алхимику?

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

» WarCraft 3 / Как сделать кастомное описание предемтов во время игры?

Первое отличается от второго названием, первое предпочтительнее ибо нативка.
Ну несколько версий предметов, вот не помню работают ли формулы типа < DataA1 > в описании предметов, но вот уровни предметных абилок менять можно.
32

» WarCraft 3 / Анимация "Горгулья" Работает не правильно.

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

» WarCraft 3 / Москиты и бафы (и красивые здания!)

Эмм а сделать через сферу чародея крови никак? У зданий куча точек, к примеру точки для крепления огня, пропиши их в сфере и установи модель того что тебе нужно, добавляя сферу зданию ты прилепиш к нему эти самые модели в точки крепления огня, здание развалится и.ничего удалять ненужно, само удалится.
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, судя по опен доте там используется дамми и стандартный туман
Кто бы спорил?