XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Datel

offline
Опыт: 294
Активность:
Сетка
Как можно изменить способность сетка чтобы её можно было кастовать на землю а она летит в сторону цели и чтобы срабатывала на объекты типа деревьев?
Старый 25.06.2010, 22:13
Helpmeplz

offline
Опыт: 11,738
Активность:
Никак.
нужно делать на основе другого AOE заклинания.
тебе в тему Заклинания на заказ или в статьи по триггерам
Старый 25.06.2010, 22:15
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
возьми любой аое спел
анимация атаки сеть
триггер
юнит применил спел
условие спел
действия
присваиваем в переменные положения таргет поинта
запуск таймера дабы прождать время пока долетит сеть
в таргет поинте пикаем юнитов
если враг то создать дамми и применить спел сеть(анимацию атаки убери)
AlexKARASb добавил:
opendota
там смотри спел Геомансера
Старый 25.06.2010, 22:20
Datel

offline
Опыт: 294
Активность:
Ну я понял конечно что надо другое переделать но пока не нашёл.
Я попробовал триггерно так чтобы создавался юнит сетка и срабатывало на расстоянии но там не хочется делать лишние массивы чтобы он себя не поймал в сеть))
Старый 25.06.2010, 22:24
Ksan

offline
Опыт: 13,248
Активность:
Datel, тебе сделать на жассе или на гуи? На гуи будут утечки, на жассе - нет.
Старый 25.06.2010, 22:32
Datel

offline
Опыт: 294
Активность:
Впринцыпе без разницы как, но надо так чтобы сетка которая вылетает из юнита летела в сторону цели и при попадании в юнита давала ему бафф сетки и уничтожалась а в дерево просто уничтожалась (эффект потом добавлю).
Старый 25.06.2010, 22:45
Ksan

offline
Опыт: 13,248
Активность:
Держи. Будут вопросы по спеллу - задавай.
Твоя орфография хорошая, но хромает на обе ноги...© Винни-Пух
Прикрепленные файлы
Тип файла: w3x Set.w3x (19.3 Кбайт, 22 просмотров )
Старый 26.06.2010, 00:54
Datel

offline
Опыт: 294
Активность:
А что такое Hashtable? У меня все триггеры с этим не идут.
Старый 26.06.2010, 08:59
Rapture

offline
Опыт: 16,634
Активность:
Datel, у тебя какая версия вара?
Пропатчи до последней.
Rapture добавил:
Datel:
Hashtable
хеш таблица
Старый 26.06.2010, 09:17
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Datel:
и чтобы срабатывала на объекты типа деревьев?
Ksan, она у тебя сквозь деревья летает -_-
Vampirrr добавил:
    if ( not ( GetSpellAbilityId() == 'A000' ) ) then
        return false
    endif
    return true
и пора бы уже избавиться от этого..чем тебе
return GetSpellAbilityId() == 'A000'
не нравиться?)
А еще, вместо того, что бы запускать таймер внутри таймера паравос , не сделать юниту-сетке UnitApplyTimedLife? И в первом же таймере сверять - если дамми все, гг, то дестроить его, если же нет - то нет..
Старый 26.06.2010, 09:37
Datel

offline
Опыт: 294
Активность:
Rapture, версия 1.20 я не знаю в чём дело.
Старый 26.06.2010, 11:12
Doc

offline
Опыт: 63,163
Активность:
Нужна 1.24 >_<
Старый 26.06.2010, 11:14
Datel

offline
Опыт: 294
Активность:
Вобщем я понял что такое хэш. Он прикрепляется к юниту или просто как массив? И чем будет хуже не использовать его?
вот наработка для прошлого варианта осталось только прописать какой юнит скастовал. (триггер проверяет каждые 0.01 секунду каждую сетку и её окружение)
function Trig_Untitled_Trigger_009_Conditions takes nothing returns boolean
    return true
endfunction




function Trig_Terrain_Func004004 takes nothing returns nothing

    if udg_ud > DistanceBetweenPoints(GetUnitLoc(udg_unit2), GetUnitLoc(GetEnumUnit())) and udg_caster!=GetEnumUnit() then
        set udg_ud=DistanceBetweenPoints(GetUnitLoc(udg_unit2), GetUnitLoc(GetEnumUnit()))
        set udg_unit=GetEnumUnit()
    endif
endfunction

function Trig_Terrain_Func004003 takes nothing returns nothing

    if udg_dd > DistanceBetweenPoints(GetUnitLoc(udg_unit2), GetDestructableLoc(GetEnumDestructable())) then
        set udg_dd=DistanceBetweenPoints(GetUnitLoc(udg_unit2), GetDestructableLoc(GetEnumDestructable()))
        set udg_dest=GetEnumDestructable()
    endif
endfunction




function Trig_Untitled_Trigger_009_Func001002 takes nothing returns nothing
local effect e
set udg_unit2=GetEnumUnit()


call ForGroupBJ( GetUnitsInRangeOfLocAll(400.00, GetUnitLoc(udg_unit2)), function Trig_Terrain_Func004004 )
call EnumDestructablesInCircleBJ( 400, GetUnitLoc(udg_unit2), function Trig_Terrain_Func004003 )

if ( udg_unit!=null and udg_dest!=null ) then
    if udg_ud>udg_dd then
        (добавить бафф)
    else
        call AddSpecialEffectLocBJ( GetDestructableLoc(udg_dest), "Abilities\\Spells\\Orc\\Ensnare\\ensnareTarget.mdl" )
        set e=GetLastCreatedEffectBJ()
        call RemoveUnit(udg_unit2)
        call PolledWait (5.00)
        call DestroyEffectBJ(e)   //не уничтожается
    endif

    call KillUnit( udg_unit2 )
else
    if udg_dest!=null then 
        call AddSpecialEffectLocBJ( GetDestructableLoc(udg_dest), "Abilities\\Spells\\Orc\\Ensnare\\ensnareTarget.mdl" )
        set e=GetLastCreatedEffectBJ()
        call RemoveUnit(udg_unit2)
        call PolledWait (5.00)
        call DestroyEffectBJ(e)   //не уничтожается
    endif

    if udg_unit!=null then 
        (добавить бафф) 
    endif
    call KillUnit( udg_unit2 )

endif

set udg_unit=null
set udg_dest=null
set udg_unit2=null
set udg_ud=0
set udg_dd=0

endfunction



///
function Trig_Untitled_Trigger_009_Actions takes nothing returns nothing

set udg_unit=null
set udg_ud=500
set udg_dest=null
set udg_dd=500
    call ForGroupBJ( GetUnitsOfTypeIdAll('n006'), function Trig_Untitled_Trigger_009_Func001002 )
endfunction
///



//===========================================================================
function InitTrig_Setka_Collision takes nothing returns nothing
    set gg_trg_Setka_Collision = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_Setka_Collision, 0.01 )
    call TriggerAddCondition( gg_trg_Setka_Collision, Condition( function Trig_Untitled_Trigger_009_Conditions ) )
    call TriggerAddAction( gg_trg_Setka_Collision, function Trig_Untitled_Trigger_009_Actions )
endfunction

Отредактировано XimikS, 28.06.2010 в 14:23.
Старый 28.06.2010, 00:52
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Datel, ээ, он каг бэ ни к чему не прикрепляется..Ты в Хэшэ можешь сохранить значения чего угодно, это считай тот же массив, индексом которого является хэндл таймера. А если его не использовать - муи будет сделать сложнее..
Vampirrr добавил:
Datel:
call DestroyEffectBJ(e) не уничтожается
а если поллед вейт убрать - уничтожается?
Старый 28.06.2010, 01:40
Datel

offline
Опыт: 294
Активность:
~Vampirrr, Да. Если убрать wait то эффект спокойно удаляется. Впринцыпе можно попробовать сделать без хэш таблицы а через два массива.

Datel добавил:
А бафф добавить с помощью даммика.
Старый 28.06.2010, 11:57
Dragon_S
где-то там..
offline
Опыт: 3,603
Активность:
попробуй это:
Миниатюры
Кликните на картинку для увеличения
Название:  effect.jpg
Просмотров: 27
Размер:  20.0 Кбайт  
Старый 28.06.2010, 12:49
Datel

offline
Опыт: 294
Активность:
Dragon_S, Нет. Что то не работает)

//Datel добавил:
//Кстати а скажите в чём прикол? Я сделал чтобы сетка кастовала каст сетку ( XD ) но если саму сетку направить на чела (именно на чела а не в его сторону ) то не кастуется)))

Не. Разобрался) Просто сетка долго поворачивается и неуспевает скастовать))).

Datel добавил:
Две проблемы) Эффект с дерева не уничтожается ( он после wait ничего не делает может изза пика? ), и надо ещё двумя массивами записать id кастующего и сетки чтобы сравнить. Кроме хэша ничего больше нету как можно удобней записать?)

Отредактировано Datel, 28.06.2010 в 22:49.
Старый 28.06.2010, 22:52
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Datel:
Если убрать wait то эффект спокойно удаляется.
какой делаем вывод?
Старый 28.06.2010, 23:03
Datel

offline
Опыт: 294
Активность:
Vampirrr, Или из-за таймера или из-за пика всех сеток wait не работает)

А что если сделать даммика с баффом?)
Старый 28.06.2010, 23:17
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
wait не работает)
эхэх не неси бред, не вейт не работает, а после него поток прерывается и ничего записаное тобой ранее в стеке не останется
от вампа тебе намек убери вейт -.-
Старый 28.06.2010, 23:35
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 22:12.