vantuz9719, Никак, выбор рассы происходит до старта карты и в процессе игры не изменяется.
Есть вероятность что такое можно сделать подгрузкой собственной dll, но если вы задаёте такие вопросы - это явно не для вас.
ClotPh, считай каждый раз когда по юнит начинает атаку, запускается список ссылок, который и дергает триггеры. Событий огромное множество, близарды почти нехрена для jass и не реализовали, в самом движке гораздо больше прибабахов.
Оказывается все аое спеллы юзают UnitDamageTarget но они могут передавать ей фильр, группу... А мы нет, поэтому это почти юзлесс функция которая дамажит всех.
Тут все дело в том, что такое событие - это охиреть как удобно для мили юнитов, т.е событие - Юнит успешно завершил атаку, позволит больше не трахать себе мозг всякими детектами урона и изи делать пассивки на подобии башей, орбов. Но это будет выглядеть не так:
call TriggerRegisterUnitEvent( trig, unit, EVENT_UNIT_ATTACK_FINISH )
А скорее вот так:
local integer pUnitDamageHandler = pUnitVtable+0x120
local integer oldprotection = ChangeOffsetProtection(pUnitDamageHandler,4,0x40)
set Memory[pReservedMemoryForDamageHandler/4+0]=0xB890C08B
set Memory[pReservedMemoryForDamageHandler/4+1]=pDamageTarget
set Memory[pReservedMemoryForDamageHandler/4+2]=0xB8900889
set Memory[pReservedMemoryForDamageHandler/4+3]=pDamageEspData
set Memory[pReservedMemoryForDamageHandler/4+4]=0x68602089
set Memory[pReservedMemoryForDamageHandler/4+5]=pTriggerHandle
set Memory[pReservedMemoryForDamageHandler/4+6]=0xB890C08B
set Memory[pReservedMemoryForDamageHandler/4+7]=pTriggerExecute
set Memory[pReservedMemoryForDamageHandler/4+8]=0xC483D0FF
set Memory[pReservedMemoryForDamageHandler/4+9]=0xB8906104
set Memory[pReservedMemoryForDamageHandler/4+10]=pRealUnitDamageHandler
set Memory[pReservedMemoryForDamageHandler/4+11]=0xCCCCE0FF
//call BJDebugMsg(Int2Hex(pReservedMemoryForDamageHandler))
call WMem(pUnitDamageHandler,pReservedMemoryForDamageHandler)
set oldprotection = ChangeOffsetProtection(pUnitDamageHandler,4,oldprotection)
Код который бы брал хендл юнита и триггера и оставлял бы код на на этом внутреннем событии - Юнит успешно завершил атаку, который бы просто при срабатывании события запускал триггер и записывал в глобальные переменные необходимые данные...
Но увы где, что, как - еще не опубликовали. Ждемс...
Diaboliko, не там бьудет бага, дело в том что каст - создать скелета удаляет труп (точнее хайдит), хотя и не создаст скелета если в настройках способности указать - "кол-во призванных = 0", но это может аукнутся если юнит 1-2 (какой-нить минотавр с дикой атакой), а дефолтная гальванизация его не оживит. Для этого нужно пользоваться триггерами, как хорошо что способность - поднять скелета, является способностью требующей цель юнита (да знаю что она мгновенная, нужно всеголишь нажать на кнопку, указывать труп ненужно), GetSpellTargetUnit - вернет труп на которого применялась способность, ну а дальше все просто.
ClotPh, сплешь есть только у дракон кнайта, при промахе удар со сплешем наносит 50% урона по цели, накладывая на неё эффекты.
Все остальное клиф атака, что даёт баттл фьюри или пассивка свена, бафф магнуса. ПО цели вы будите промахиваться исправно, не нанося урона.
Motherde, Там несколько геморойно, сама ловушка это декорация.
Нужно создать область на земле в размер ловушки, и триггер.
Ну при инициализации заставы все ловушки на карте проиграть анимацию смерти, так будет гарантия что ловушка не будет срабатывать когда не надо (визуальный эффект).
Триггер с событием время прошло, периодический, раз в сколько сек. ты хочшеь чтобы срабатывала ловушка.
При срабатывании первого триггера, нужно либо наносить урон всем юнитам в области для ловушки...
Ну еще есть более замороченный вариант, так как огненная ловушка горит примерно 2 сек. То нам потребует периодический триггер.
Ну есть проверка на SlotState - т.е состояние слота игрока.
В цикле от 1 до 12 (макс) перебираешь всех игроков по принципу - Slot state = Играет и PlayerController == человек (как то так это в гуях выглядит)
От и все, заносишь игроков по 1 в таблицу.
При ливе игрока, изменяешь всю таблицу, уменьшаешь кол-во строк и пересчитываешь позиции всех игроков в таблице.
Ну а кто вам мешает, могу подкинуть карт.
Договариваемся с автором и получаем исходник или делаем как авторы Лод доты - тупо ломаем карту не спрашивая автора и пилим все как хотим (нужен скилл катеростроения выше среднего)
» WarCraft 3 / Блокиратор пути
» WarCraft 3 / Интерфейс
Есть вероятность что такое можно сделать подгрузкой собственной dll, но если вы задаёте такие вопросы - это явно не для вас.
» WarCraft 3 / Канал
» WarCraft 3 / Лив игрока при игре в мултиплеере
» WarCraft 3 / Стены
» WarCraft 3 / Unit атакует?
Оказывается все аое спеллы юзают UnitDamageTarget но они могут передавать ей фильр, группу... А мы нет, поэтому это почти юзлесс функция которая дамажит всех.
» WarCraft 3 / Unit атакует?
Но увы где, что, как - еще не опубликовали. Ждемс...
» WarCraft 3 / Авто-каст
» WarCraft 3 / Авто-каст
» WarCraft 3 / Авто-каст
» Dota 2 / Результаты конкурса героев Dota 2
Все остальное клиф атака, что даёт баттл фьюри или пассивка свена, бафф магнуса. ПО цели вы будите промахиваться исправно, не нанося урона.
» WarCraft 3 / Авто-каст
» WarCraft 3 / Авто-каст
» WarCraft 3 / Как создать ловушку?
Нужно создать область на земле в размер ловушки, и триггер.
Ну при инициализации заставы все ловушки на карте проиграть анимацию смерти, так будет гарантия что ловушка не будет срабатывать когда не надо (визуальный эффект).
Триггер с событием время прошло, периодический, раз в сколько сек. ты хочшеь чтобы срабатывала ловушка.
При срабатывании первого триггера, нужно либо наносить урон всем юнитам в области для ловушки...
Ну еще есть более замороченный вариант, так как огненная ловушка горит примерно 2 сек. То нам потребует периодический триггер.
» Dota 2 / Результаты конкурса героев Dota 2
» RenderEdge / [RenderEdge] Memory Hack
» WarCraft 3 / Лив игрока при игре в мултиплеере
» WarCraft 3 / Конкурс карт от 2kxaos продлён до 24-го августа
» WarCraft 3 / Общие войска
Используйте таймеры.
» WarCraft 3 / Защита карты
» WarCraft 3 / Как убрать созданный модификатор видимости?
» WarCraft 3 / Меню паузы
В цикле от 1 до 12 (макс) перебираешь всех игроков по принципу - Slot state = Играет и PlayerController == человек (как то так это в гуях выглядит)
От и все, заносишь игроков по 1 в таблицу.
При ливе игрока, изменяешь всю таблицу, уменьшаешь кол-во строк и пересчитываешь позиции всех игроков в таблице.
» WarCraft 3 / Насчет заброшенных карт/проектов
Договариваемся с автором и получаем исходник или делаем как авторы Лод доты - тупо ломаем карту не спрашивая автора и пилим все как хотим (нужен скилл катеростроения выше среднего)
» WarCraft 3 / Лив игрока при игре в мултиплеере
Карту в студию. Эти 2 триггера ни при чем.
» WarCraft 3 / Что делать с этим багом?