STALKERfree, нет эта абилка уникальная, она не морф а призыв, за земляной пандой ездит скрытый и оглушенный герой, бафф следит за попыткой выбрать героя и выбирает земляную панду. На самом деле её можно в стандартном редакторе реализовать, без мемхака и прочего.
Зачем близарды добавили проверки на абилки - хз, есть мнение что из за баланса, в мили картах есть лавка гоблина с книжкой забвения, чтобы нельзя было вызвать юнита и переучится на другие спеллы, добавили такие проверки.
OVOgenez, анрайз уже демонстрировал модель в формате DLL, как она в, памяти игры есть, так её выколупывают, это чтобы обходить всякие защиты на архивы. Китайцы могли пойти дальше и подобным образом модель сделать чтобы без спец инжектора такую модель в карту себе не утановить...
В, целом уже кидали примеры карт с конвертом скрипта в байт-код.
EugeAl, лучше не удалять триггер, а создать отдельный глобальный, как и не юзать экшены, а только TriggerCondition() и EvaluateTrigger().
В любом случае костыли...
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, ага, автор давно пропал, исходы вроде выложены, там мпк редактор вшитый есть, но не закончен, чтобы в карту сохранять код. Увы никто не заморочился.
» WarCraft 3 / Почему эффект создаётся под персонажем не ровно? World Editor.
» WarCraft 3 / Запихнуть "Три Стихии" в руну
Зачем близарды добавили проверки на абилки - хз, есть мнение что из за баланса, в мили картах есть лавка гоблина с книжкой забвения, чтобы нельзя было вызвать юнита и переучится на другие спеллы, добавили такие проверки.
» WarCraft 3 / Запихнуть "Три Стихии" в руну
» WarCraft 3 / Unlock .mdx MDLBX
В, целом уже кидали примеры карт с конвертом скрипта в байт-код.
» WarRaft / Функции
В любом случае костыли...
» WarCraft 3 / Где можно скачать мод для зума на картах без него?
» WarCraft 3 / Как найти максимальное число в массиве
» WarCraft 3 / Оживший огонь
» WarCraft 3 / Боевая единица атакована
Не трогая 100500 других наработок и рассказов на тему как же детектить атаки?
» 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 / Как приостановить себя во время скольжения? (дота)