PT153, ну это у тебя, тут несколько другая реализация, т.к всеравно нужны триггеры, то использовать их хочтися по максимуму.
Ну есть идея аттачить как либо к юниту все эти триггеры и при диспеле экзекутить их, в кадом триггере есть функция утилизации и обнуления эффекта.
Ну вот и решил послушать людей о реализации подобного, нам нужно добавлять, удалять триггеры из списка который прикреплен к юниту, а так же хранить на юните весь этот массив триггеров.
PT153, тебе точно нужно отследить EVENT_WIDGET_DEATH, и ни фреймом раньше, иначе бага. Так же получение других приказов на основе стана для взаимодействия с морфами.
Неуязвимость проверяют через даммика с атакой, через приказ, сможет ли атаковать или нет, просто проверка выполнения приказа. Так же пытаются нанести урон и смотрят сколько он отнял здоровья, так можно и определить неуязвимость и вычислить резист юнита к конкретному типу урона.
Событие юнит отдал приказ и тип приказа, проверяешь какой тип приказа и номер приказа, легко и просто, все необходимое в jass есть, список функций можно посмотреть в JASS_API
Для корректной работы многих фишек мемхака нам нужно следить за юнитом особенно тщательно, нужно отслеживать смерть, порой урон, приказы и многое другое, ну а раз уж есть триггер то и в нем есть функция утилизации при экзекуте, так реализован диспел. Примерно так же сделаны стандарные баффы близзардов, это внутриигровые триггеры которые крепятся за юнитом и следят за ним.
Для того же стана - не годятся таймеры, не говоря про псевдоконтроль. Идея хранить все эти триггеры-баффы в одном месте и удобно взаимодействовать с ними.
Да работа с динамическими триггерами, но условия события и действия добавлять им ненужно, нужно сделать их экзекут (всех) по нужному событию, или невсех в зависимости от параметра, на одном юните может висеть сразу несколько триггеров, а их нужно экзекутнуть.
Есть в краце - есть много, баффов\дебафов реазизованных на мемхаке, и требуется единая бд для работы с ними, чтобы реализовать сложение\подавление\рассеивание эффектов. До пока их было мало я просто делал ифами, но щяс их стало уже довольно много, и я решил привести все это дело в порядок, предварительно я решил посоветоваться с людьми, мб кто то уже делал что то подобное и реализовал это как-нибудь иначе?
NazarPunk, веер ножей, рев медведа, рев демона - остальные способности сбивают приказ идти куда либо, версия кровожадности и ледяной брони на себя онли с автокастом тоже не сбивает приказ идти куда либо но заставляет героя проигрывтаь спелл анимацию и стоять полчаса на месте...
Набежали хомячки, ага абилки без цели и каналы не сбивают текущие приказы - че курили то? Сбивают, именно сбивают всю очередь. Рев, веер ножей и еще несколько не сбивают приказ идти куда либо, но собьют чаннелинг какойнить абилки, вроде бурана...
Так что Absk, Adef, Amdf, ANms, AEim, AHds, AOwk не сбивают никаких приказов, не имеют каст тайма, не заставляют юнита проигрывать анимации каста.
Как сделать из жара приесподней и аналогов обычную абилку, которая просто уходит в кд при нажатии я описал выше.
HAMHAM, зачем? Не у всех не может, ибо все игроки будут ожидать точку синхронизации, если игрок так и не загрузит карту - он вылетит из игры, через определенное время. Все просто, ибо код и так синхронизируется, вам об этом думать ненужно.
Событие инициализации 80-90% до конца полоски загрузки, у всех игроков не одновременно, только после того как карты полностью загружены и созданы все обьекты в коде - игра стартует у всех.
"Скилл джаггера их доты" выложен в миллион и одном месте, даже я делал разбор - xgm.guru/p/wc3/omnislash
Реализация примитивна, мгновенное перемещение к цели и приказ атаковать, можно так же эмитировать атаку анимацией и уроном от лица героя как сделано в доте.
function Trig_Cast_Debug_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A0E0'
endfunction
function Timer_Return_Mana_Expires takes nothing returns nothing
local timer t = GetExpiredTimer( )
local integer id = GetHandleId( t )
local unit u = LoadUnitHandle( gg_htb_HashData, id, 0 )
call UnitRemoveAbility( u, 'BEia' )
call UnitRemoveAbility( u, 'BEim' )
// call SetUnitState( u, UNIT_STATE_MANA, LoadReal( gg_htb_HashData, id, 1 ) )
call FlushChildHashtable( gg_htb_HashData,id )
call DestroyTimer(t)
set u = null
set t = null
endfunction
function Trig_Cast_Debug_Actions takes nothing returns nothing
local unit u = GetSpellAbilityUnit( )
local timer t = CreateTimer( )
local integer id = GetHandleId(t)
call SaveUnitHandle( gg_htb_HashData,id,0, u )
call TimerStart( t, 0.00, false, function Timer_Return_Mana_Expires )
call BJDebugMsg("!")
set t = null
set u = null
endfunction
//===========================================================================
function InitTrig_Cast_Debug takes nothing returns nothing
set gg_trg_Cast_Debug = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Cast_Debug, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Cast_Debug, Condition( function Trig_Cast_Debug_Conditions ) )
call TriggerAddAction( gg_trg_Cast_Debug, function Trig_Cast_Debug_Actions )
endfunction
На мемхаке можно мгновенно отрубать включаемые абилки, вроде манащита, ну а так вроде там можно бафф удалить и отрубится сама, там иммолейшин вырубается при мане равной 0, ну ставим после каста 0 маны, потом снова сколько было, через таймер 0.00 сек, никто и незаметит что маны 0, но иммолейшин отключится.
Shiro.Emiya, протект нужно снимать, об это полно статей в инете, особенно подробно на сайте читосов это ражевано хорошо, у нас тут обычно люди не страдают читовставлятельсвом и моделетырингом.
Карту в студию!
Ну как бы есть 2 вида карт с слк оптимизацией (как дота) и без слк оптимизации, открываем карту mpq редактором, видим папку units - все карта после слк оптимизатора, в папке units будет полно тхт файлов, файлы типа xxxUnitStrings.txt, и xxxAbilityStrings.txt - это названия и описания юнитов и способностей, соответственно. а файлы типа NeutralAbilityFunc или NeutralUnitFunct отвечают за визуальную настройку юнитов и предметов, иконки там эффекты и тому подобное.
Если слк оптимизации нет, нету папки units - ищем war3map.j и копируем его (сохраните в надежное место), берем деоптимизатор -War3MapRestorrer (xgm.guru/p/wc3/w3map-restorer) и обрабатываем карту, функции скрипта не трогаем, после восстановления открываем карту в редакторе - заходим в редактор триггеров - файл > обнулить триггеры, они нам ненужны, сохраняем карту и идем переводить как белые люди все что нам интересно на "великий и могучий", после всех операций сохраняем карту, открываем в мпк редакторе и удаляем там war3map.j файл, а тот что мы сохранили ранее закидываем в карту и улыбаемсо.
Так же приходит в голову идя поднимающейся платформы, у нее вроде всего 2 высоты, но это неважно, просто проигваем анимацию туда сюда, а так же деформируем землю (типа лава поднимается) и создаем иллюзию что платформа движется вверх пока игрок что то там на ней делает, что осталось вам придумать, жмакать кнопки или по очереди атаковать какие-нибудь "магические камни". JMCode, ну не свреху вниз строить блоки а слева направа на земле а камера находится сверху, как в тетрисе...
» WarCraft 3 / Аттач группы триггеров
Ну есть идея аттачить как либо к юниту все эти триггеры и при диспеле экзекутить их, в кадом триггере есть функция утилизации и обнуления эффекта.
Ну вот и решил послушать людей о реализации подобного, нам нужно добавлять, удалять триггеры из списка который прикреплен к юниту, а так же хранить на юните весь этот массив триггеров.
» WarCraft 3 / Отрицательный реген
» WarCraft 3 / Аттач группы триггеров
» WarCraft 3 / Есть у кого наработка смены имени юнита триггерно?
» WarCraft 3 / Вопрос по механике вампиризма (триггерного) и отложению урона
» WarCraft 3 / Отслеживание приказов
» WarCraft 3 / Аттач группы триггеров
Для того же стана - не годятся таймеры, не говоря про псевдоконтроль. Идея хранить все эти триггеры-баффы в одном месте и удобно взаимодействовать с ними.
» WarCraft 3 / Аттач группы триггеров
Есть в краце - есть много, баффов\дебафов реазизованных на мемхаке, и требуется единая бд для работы с ними, чтобы реализовать сложение\подавление\рассеивание эффектов. До пока их было мало я просто делал ифами, но щяс их стало уже довольно много, и я решил привести все это дело в порядок, предварительно я решил посоветоваться с людьми, мб кто то уже делал что то подобное и реализовал это как-нибудь иначе?
» WarCraft 3 / Возможно ли отловить пересечение моделей во время их анимации?
» WarCraft 3 / Способности, отдающие приказ всей группе
» WarCraft 3 / Про способности не сбивающие приказ
8gabriel8: а причем тут это? Вопрос как сделать 4 абилки без цели не сбивающие приказы, что уже описано, так же был вопрос про манащит и аналоги.
» WarCraft 3 / Про способности не сбивающие приказ
» WarCraft 3 / Про способности не сбивающие приказ
Так что Absk, Adef, Amdf, ANms, AEim, AHds, AOwk не сбивают никаких приказов, не имеют каст тайма, не заставляют юнита проигрывать анимации каста.
Как сделать из жара приесподней и аналогов обычную абилку, которая просто уходит в кд при нажатии я описал выше.
» WarCraft 3 / Загрузка игры ?
» WarCraft 3 / Загрузка игры ?
» WarCraft 3 / Загрузка игры ?
» WarCraft 3 / Загрузка игры ?
Ред. quq_CCCP
» WarCraft 3 / Скилл из доп.кампании "До Горького Конца"
Реализация примитивна, мгновенное перемещение к цели и приказ атаковать, можно так же эмитировать атаку анимацией и уроном от лица героя как сделано в доте.
» WarCraft 3 / Про способности не сбивающие приказ
» WarCraft 3 / Про способности не сбивающие приказ
» WarCraft 3 / Перевод
Карту в студию!
Ред. quq_CCCP
» WarCraft 3 / Перевод
Если слк оптимизации нет, нету папки units - ищем war3map.j и копируем его (сохраните в надежное место), берем деоптимизатор -War3MapRestorrer (xgm.guru/p/wc3/w3map-restorer) и обрабатываем карту, функции скрипта не трогаем, после восстановления открываем карту в редакторе - заходим в редактор триггеров - файл > обнулить триггеры, они нам ненужны, сохраняем карту и идем переводить как белые люди все что нам интересно на "великий и могучий", после всех операций сохраняем карту, открываем в мпк редакторе и удаляем там war3map.j файл, а тот что мы сохранили ранее закидываем в карту и улыбаемсо.
» WarCraft 3 / [Реализация] Здание поверх зданиях!
» WarCraft 3 / [Реализация] Здание поверх зданиях!
JMCode, ну не свреху вниз строить блоки а слева направа на земле а камера находится сверху, как в тетрисе...
» WarCraft 3 / [Реализация] Здание поверх зданиях!