nazarpunk, я все не дождался от тебя красивых молний в твоих спеллах, блин ну уже же жевали, сделай крассивый спелл с молниями где они как дефолтные летят в центр модельки из руки кастера а не из ног в ноги, по земле тащются....
Extremator, у бх - они кароче пошли костылем, у виндвалка выключили урон от подлого удара и ждут пока бх кого то начнет атаковать, имея бафф ВВ, после создают еще 1 триггер и ждут пока бх нанесёт любой урон цели или цель сдохнет, или время выйдет 2 сек. Если бх промажет, или дагон тут же после замаха кастанёт - появятся красивые красные циферки и цель получит немного физ урона, который наносят триггерно.
У Ланаии чуть получше, но так же костыльно. Ждут приказа атаки из инвиза, после плодят триггер ждущие урона или отмены приказа, чтобы не абузили, то было такое.
Ой и геморно это, в идеале по флагу и детекту урона с помощью мемхака, там сразу видно что юниту прилетел крит на фикс урон.
Удар из виндвалка это спец атака, типа крита, это что то вроде каста огненной или ядовитой стрелы. Амулет защиты срабатывает на удар из виндвалка, блокируя его - тогда цель ваще урона не получит, и событие урона не сработает.
ScorpioT1000, ну это в UJAPI, с мемхаком в калбеки аргументы передавать можно, че дальше то?
Ни в хт, никуда не записать, code чисто для калбеков и никуда в jass его не запихать. ExecuteFunc не очень в плане производительности, нет конечно в обычных условиях похер, но вот 70000 вызовов наверное кончатся фаталом. Там создается новый поток и вычисляется событие которое его вызвало для того чтобы из потока родителя, в дочерний поток перешли все GetTrigger*** нативки, его можно представить как создание еще 1 триггера, добавления ему указанной функции и подцеплению к событию что вызвало поток родитель.
Что делать то собрался? fast_call и std_call это жутко медленные костыли чтобы вызывать внутренние функции игры из жасса, к примеру функции оглушения юнита (которая находятся внутри game.dll), и использовать их бездумно = увидеть фпс в 6 кадров.
функция это code, указатель на функцию, она не может быть обьявлена массивом, но через C2I функцию мемхака можно получить целочисленный указатель на эту функцию, и записать его в массив целочисленных, после вернуть обратно и вызвать через ForGroup или ForForce, execute func не очень по производительности по сравнению с калбеками. ExecuteTrigger еще хуже в этом плане, скидывали же мемхак с тестом скорости.
В целом можно сделать массив групп\триггеров \таймеров и добавлять каждому по фунцкции, и вызывать.
Так же стоит сразу задуматься о том как передать в калбеки данные...
rsfghd, отсутствие функции GetUnitImpactZ без мемхака,т.к дефолтные молнии то летят не в ноги юниту а в центр модельки, точку начала атаки, у кадого юнита в РО там заданы параметры. Так вот чтобы рисовать красивые молнии нужно делать бд с этими параметрами.
Эльрат, увы но обычно весь софт для депротекта делает ошибки, поэтому то импорт пропадёт то описание способности, то еще что нибудь.
Поэтому если правим чужую карту, по которой уже прошлись оптимизаторами - то работаем с кодом отдельно, с объектными данными отдельно, и все тщательно проверяем чтобы не было багов. Ну jass код (карта там изначально писалась на jass, правим в JASS craft'e)
На самом деле где будет через сек вряд ли (юнит в любое мгновение может повернутся, остановится, получить условную сетку), но чуть пораньше можно, просто записывать текущие и прошлые координаты раз 50 в секунду, если координаты изменились построить вектор, в направлении которого и идет движение, далее можно по этому вектору чуть чуть пододвинуть юнита, используется чтобы без багов сделать юниту скорость бега выше 522.
Хз зачем. ScorpioT1000, face юнита не совсем то куда он щяс собрался, ибо есть prop window, т.е юнит не устанавливает четко face на цель при касте спеллов, беге и атаке, для начала\окончания этих действий достаточно чтобы угол попал в prop window, а у большинства юнитов это 60 градусов. Можно очень удивится сделав дебаг каста волны силы таурена, какой угол между кастером и точкой каста и угол взгляда таурена.
Просто вход-выход из региона, самое то. Сам реген тупо абилкой, ну если уж совсем заморочится то морфом в другого юнита ( такого же, но с другой базовой регенерацией), за одно сделаешь скорость перемещения в воде и на суше разную.
nazarpunk, ага, автор давно пропал, исходы вроде выложены, там мпк редактор вшитый есть, но не закончен, чтобы в карту сохранять код. Увы никто не заморочился.
Кнопка создается только для конкретного диалога, на неё же и вешается событие. Поэтому не выйдет, хз зачем это нужно?
Если один и тот же текст, ептить переменную для него.
Нет нету, промахи дело сложное. Их ваще не отследить, т.к в игре несколько механизмов промахов, один это способность которая проверяется при атаке, вторая это хайграуны, третья это расстояние или какие либо манипуляции с целью, вроде блинка.
Свои промахи можно на мемхаке реализовать, но там очень сложный код, не для гуишников + разработан только на 1.26а.
Нырнуть и вынырнуть - это тупо морф, как и закопка но проверяется местность при касте и всё.
Так что приказом можно кастануть и превращение в сфинкса и закопку могильщика.
Можно, но там нужно длл прям спецом разрабатывать чтоюы она могла работать в момент загрузки карты, ах да нужно распокавать длл в папку с игрой и потом загружать. через LoadLibraryA.
Как насчет использовать дамми каст дыхения ледяных змеев, чем подобное. Пауза хреновый вариант.
В целом jass учите, если хотите делать подобные триггеры.
» WarCraft 3 / Оживший огонь
» WarCraft 3 / бесконечная молния
» WarCraft 3 / Как отследить удар из невидимости?
У Ланаии чуть получше, но так же костыльно. Ждут приказа атаки из инвиза, после плодят триггер ждущие урона или отмены приказа, чтобы не абузили, то было такое.
» WarCraft 3 / Как отследить удар из невидимости?
Удар из виндвалка это спец атака, типа крита, это что то вроде каста огненной или ядовитой стрелы. Амулет защиты срабатывает на удар из виндвалка, блокируя его - тогда цель ваще урона не получит, и событие урона не сработает.
Ред. quq_CCCP
» WarCraft 3 / Как эффективно реализовать полиморфизм? (мемхак+)
Ни в хт, никуда не записать, code чисто для калбеков и никуда в jass его не запихать. ExecuteFunc не очень в плане производительности, нет конечно в обычных условиях похер, но вот 70000 вызовов наверное кончатся фаталом. Там создается новый поток и вычисляется событие которое его вызвало для того чтобы из потока родителя, в дочерний поток перешли все GetTrigger*** нативки, его можно представить как создание еще 1 триггера, добавления ему указанной функции и подцеплению к событию что вызвало поток родитель.
» WarCraft 3 / Как эффективно реализовать полиморфизм? (мемхак+)
функция это code, указатель на функцию, она не может быть обьявлена массивом, но через C2I функцию мемхака можно получить целочисленный указатель на эту функцию, и записать его в массив целочисленных, после вернуть обратно и вызвать через ForGroup или ForForce, execute func не очень по производительности по сравнению с калбеками. ExecuteTrigger еще хуже в этом плане, скидывали же мемхак с тестом скорости.
В целом можно сделать массив групп\триггеров \таймеров и добавлять каждому по фунцкции, и вызывать.
» WarCraft 3 / бесконечная молния
» WarCraft 3 / Что делать если Fatal Error при запуске карты? Warcraft 3.
» WarCraft 3 / Сломать карту
Поэтому если правим чужую карту, по которой уже прошлись оптимизаторами - то работаем с кодом отдельно, с объектными данными отдельно, и все тщательно проверяем чтобы не было багов. Ну jass код (карта там изначально писалась на jass, правим в JASS craft'e)
» WarCraft 3 / Сломать карту
» WarCraft 3 / Будущая точка
Хз зачем.
ScorpioT1000, face юнита не совсем то куда он щяс собрался, ибо есть prop window, т.е юнит не устанавливает четко face на цель при касте спеллов, беге и атаке, для начала\окончания этих действий достаточно чтобы угол попал в prop window, а у большинства юнитов это 60 градусов. Можно очень удивится сделав дебаг каста волны силы таурена, какой угол между кастером и точкой каста и угол взгляда таурена.
» WarCraft 3 / Включить/отключить регенерацию
» WarCraft 3 / Сломать карту
» WarCraft 3 / jass
» WarCraft 3 / Как приостановить себя во время скольжения? (дота)
» WarCraft 3 / Как управлять своей молнией каждому юниту отдельно, а не всем одной
» WarCraft 3 / Система Linken's Sphere [Lua]
» WarCraft 3 / Скрытая геройская способность( без даммика)
» WarCraft 3 / Использование кнопок
Если один и тот же текст, ептить переменную для него.
» WarCraft 3 / Есть ли условие или событие по типу: боевая еденица промахнулась = да или любая еденица промахнулась.
» WarCraft 3 / Есть ли условие или событие по типу: боевая еденица промахнулась = да или любая еденица промахнулась.
Свои промахи можно на мемхаке реализовать, но там очень сложный код, не для гуишников + разработан только на 1.26а.
» WarCraft 3 / Приказы
Так что приказом можно кастануть и превращение в сфинкса и закопку могильщика.
» WarCraft 3 / [MemHack] Загрузка .mix файла с модельками прямо в игре
» WarCraft 3 / Заморозка юнитов
В целом jass учите, если хотите делать подобные триггеры.
» WarCraft 3 / Заклинание дух воды
Сделать кастом не проблема.