Триггерные снаряды
Из чего делаются триггерные снаряды? Из юнитов же? А можно как то без них сделать, не захламляя Редактор Объектов?

Лучший ответ:
ScopteRectuS, создаём в ро юнита с моделью которая не имеет ничего кроме точки крепления
после чего триггерно крепим модель к этому юниту как эффект
вроде была наработка



Просмотров: 106

» Лучшие комментарии


XGM Bot #1 - 2 недели назад 0
Похожие вопросы:

» ответ
юнит получает урон
1 ответ на 2 вопроса
» ответ
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
  1. чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
  2. действие проиграть звук и указываешь твою фразу
  3. выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
  1. система отлова урона
  2. морф юнита либо орбы
всё что я не описал есть в статьях
тебе нужны первые 2 раздела ("Основы" и "Триггеры и объекты")
» ответ
Emerald Gem, тут нужна система снарядов
создаёшь свои собственный снаряды на основе юнитов
триггерно двигаешь их
триггерно проверяешь попадание в цель
короче скачай готовую систему снарядов(их дофига на этом сайте а в гугле вообще 100500) и модифицируй её
либо прочти статьи про триггерное движение и сделай свою
если ты не знаешь джасс а учить не собираешься то можешь сделать осадной тип атаки своим юнитам
он тогда будет бить по точке а не по юниту (можно будет увернуться от снаряда просто отойдя в сторону)
» ответ
В РО, такое невозможно сделать. Подробно на триггерах? Ну вот пример, а если нужно ещё подробнее, то учебник по Jass в руки.
На проклятие в РО,или любой другой спелл,ставится минимальная дистанция
function Trig_Spell_Actions takes nothing returns nothing
local location loc = Location(GetWidgetX(GetSpellAbilityUnit()),GetWidgetY(GetSpellAbilityUnit()))
local unit u = null
if GetSpellAbilityId() == 'АЙ ДИ СКИЛЛА' then
set u = CreateUnitAtLoc(GetOwningPlayer(GetSpellAbilityUnit()),'АЙ ДИ ДАММИ ЮНИТА-ЭФФЕКТА',loc,0.00)
call IssueTargetOrder(u,"curse",GetSpellTargetUnit())
endif
call RemoveLocation(loc)
set loc = null
endfunction

//===========================================================================
function InitTrig_Spell takes nothing returns nothing
    local integer i = 0
    set gg_trg_Spell = CreateTrigger()
    loop 
    exitwhen i > 12
        call TriggerRegisterPlayerUnitEvent(gg_trg_Spell, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
    set i = i + 1
    endloop
    call TriggerAddAction( gg_trg_Spell , function Trig_Spell_Actions )
endfunction
Потом тоже самое, только отследить каст проклятия, проверить тип юнита и удалить его из игры.
» ответ
Вместо
function InitTrig_CreepSpell takes nothing returns nothing
    set gg_trg_CreepSpell = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(gg_trg_CreepSpell, Player(1), EVENT_PLAYER_UNIT_SPELL_EFFECT, function CreepSpellFilter) 
    call TriggerAddAction(gg_trg_CreepSpell, function CreepSpellActivation)
endfunction
сделай так:
function InitTrig_CreepSpell takes nothing returns nothing
    set gg_trg_CreepSpell = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(gg_trg_CreepSpell, Player(1), EVENT_PLAYER_UNIT_SPELL_EFFECT, null) //function CreepSpellFilter
    call TriggerAddCondition(gg_trg_CreepSpell, Condition(function CreepSpellFilter))
    call TriggerAddAction(gg_trg_CreepSpell, function CreepSpellActivation)
endfunction
и вот здесь:
if IsUnitEnemy(GetFilterUnit(), Player(10)) then
        set Dummy = CreateUnit(Player(1), 'e004', CasterX, CasterY, bj_RADTODEG*Atan2(TargetY - CasterY, TargetX - CasterX))
		call IssuePointOrder(Dummy, "attackground", TargetX, TargetY)
        call UnitApplyTimedLife(Dummy, 'BTLF', 3)
        set Dummy = null
    endif
поменяй местами IssuePointOrder и UnitApplyTimedLife, чтобы было вот так:
    if IsUnitEnemy(GetFilterUnit(), Player(10)) then
        set Dummy = CreateUnit(Player(1), 'e004', CasterX, CasterY, bj_RADTODEG*Atan2(TargetY - CasterY, TargetX - CasterX))
        call UnitApplyTimedLife(Dummy, 'BTLF', 3)
        call IssuePointOrder(Dummy, "attackground", TargetX, TargetY)
        set Dummy = null
    endif

biridius #2 - 2 недели назад (отредактировано ) 0
молот бурь/кислобомба/подобное + ждать в зависимости от расстояния
ScopteRectuS #3 - 2 недели назад 0
biridius, а если цель двигается, то расстояние же меняется.
pro100master #4 - 2 недели назад 0
ScopteRectuS, так чего не угодил юнит?? Так как стандартные способности тоже основан на юнит то есть обьект с эффектом дамми
biridius #5 - 2 недели назад (отредактировано ) 0
ScopteRectuS, ну делать таймером все то же самое что с снарядом-юнитом, только вместо него снаряд от абилки
считать координаты в зависимости от скорости снаряда с направлением к цели, и точно как с снарядом-юнитом по достижении цели делать что надо
quq_CCCP #6 - 2 недели назад 0
Ну кислотная бомба + событие юнит получает урон, условие что он имеет бафф аксид бомбы, действие - удалить бафф и сделать твои действия, довольно удобно и просто в реализации.
ScopteRectuS #7 - 2 недели назад 0
biridius, quq_CCCP, да и не всегда есть цель, возможно это будет просто эффект, который двигается куда-то (для красочности заклинания).
quq_CCCP #8 - 2 недели назад 0
ScopteRectuS, Ну веер ножей, ракетный удар, ну или идем к модельщику и он вам делает модель спецэффекта, как сделана шива в доте. Кольцо там спецэффект.
ScopteRectuS #9 - 2 недели назад 0
quq_CCCP, нет , вы не поняли, например хук пуджа, или бласт, торнадо вокера из доты. чтобы был такой крюк, волна, торнадо, нужно создать юнитов такой модели. А я имею ввиду без редактора объекта, а только с помощью триггеров.
Или например, создать одного юнита на всю карту, и использовать только его, меняя его модель через мемхак, можно ли так сделать?
nvc123 #10 - 2 недели назад 3

ScopteRectuS, создаём в ро юнита с моделью которая не имеет ничего кроме точки крепления
после чего триггерно крепим модель к этому юниту как эффект
вроде была наработка