Локейшены только не плоди. А как узнать какой отошел от других - меришь расстояние между каждым из них вначале и сохраняешь, если оно стало меньше - сохраняешь текущее значение, если больше то наносишь урон. На гуи думаю не осилишь такое.
respect_gg, А отдельной функции и неможет быть, это считай дебафф описаный кодом, как это делают абилки. Работа сложная и требует предусмотреть все и вся.
Тут нужно работать с динамическими триггерами и следить за юнитом очень тщательно.
Почти все дизейблы в игре построены на приказе стана и особом флаге - неприрываемый, собственно так и работает функция стана внутри движка игры, устанавливает счетчик станов ( текущее кол-во +1) больше, и принудительно записывает в начало очереди приказов - приказ стоять и смотреть на источник стана ( прикол да? Приказ стана это приказ типа цель-обьект), Но если мемхаком повысить счетчик станов на 1 и не отдавать никаких других приказов то юнит будет выполнять первый отданный приказ во что бы то нистало. При этом сломаются все стандартные дизейблы.
Что нам нужно - отслеживать смерть юнита, причем событием EVENT_WIDGET_DEATH (TriggerRegisterDeathEvent). Отлавливать приказы которые получает юнит, если это стан - то снимать счетчик на 0, а потом после окончания стана (событие на 0.00 едениц урона) повышать счетчик. Приказы триггерно отдавать точно так же, снял счетчик до нуля, приказ чето делать, поставил на то кол-во столько было.
Важно - это поле юзают многие дебаффы и абилки, к примеру морфы, поэтому не тупо ставим 0 или 1, а читаем сколько было, записываем 0, отдаем приказ, потом ставим сколько было, обязательно проверяя чтобы счетчик был выше 0 или равен нулю.
Счетчик станов (Он же флаг неприрываемости) находится по оффсету 0x198/
ReadRealMemory( pHandle + 0x198 )
Где p Handle это адресс юнита.
Важное НО, получение адресса юнита сравнительно тяжелая операция (ConvertHandle), поэтому имеет смысл записать адресс куда-нибудь, чтобы потом работать с ним, адресса у юнитов остаются не изменными всю игру, как и у абилок (даже если их удалять и добавлять).
у вас в коде используется cjass, а вы его отрубуили, конечно ругается, в жасее нету такого "||", вместо него используется "or", если чо локалки в жассе обьявлять можно лишь вначале функции. То что я скинул с сижасом работать должно.
Фильтр то для группы религия юзать не позволяет? Ну ==true, icefrog разлогинься!
Если выражение возвращает boolean или функция, то незачем писать == True оно само по себе True., или false.
Работало на мемхаке, при том только если делать из изначально летающего другие типы, после смерти тип сбрасывался в исходный. А так делайте морфы и не парьтесь.
Только модели с такой анамацией атаки могут изображать сплешь или Крит, вроде блейдмастера, зависит от модели, пособность зардкодно включает анимационный тег. Демоническая сила работает лишь у юнитов ближнего боя.
Да не говори DracoL1ch, нахер вам этот весь гемор с защитой каких то там моделей, которые в 90% случаев никому не усрались.
Защита подобного уровня вполне себе возможна на 1.26-1.27 патчах, но стоить она вам будет дорого, и мало что изменит. P.S один чувак уже делал такую хрень насрутерам, тырил модели с запороленого темидой микс архива, т.к он извлекал их из памяти, то получались длл, которые просто подргружал мемхаком в карту где эти модели требовались - все работало. Лучше не спрашивайте сколько это стоит.
Кстати далеко ходить не надо - дота айкапа, пустышка, где внутри 1 единственная длл.
Вы готовы за это платить деньги и сидите на патче 1.26а?
Мемхак в помощь, импорт будет в виде отдельной Длл а не файлов текстур и моделей, причём её тупо заполненный микс архив, а Патч памяти игры под эти модели.
Но если сильно захотят всеравно выудят.
Enum Units of player matching condition или как то так, в общем есть функция - выбрать всех юнитов игрока, при этом отсеить их фильтром, ставим условие что юнит жив и здание.
Обычный суммон, с инвентарем. При смерти вручаем крест перерождение и перемешяем в угол карты, хайдим и паузим, при повторном вызове - телепортируем у прищвавшему. В доте там очень примитивный и кривой код.
» WarCraft 3 / Вылеты во время игры
» WarCraft 3 / Расстояние между юнитами
Ред. quq_CCCP
» WarCraft 3 / 5. Функции в jass
» WarCraft 3 / Управление контролем (мемхак)
» WarCraft 3 / Проблема с мемхаком
» WarCraft 3 / Управление контролем (мемхак)
Почти все дизейблы в игре построены на приказе стана и особом флаге - неприрываемый, собственно так и работает функция стана внутри движка игры, устанавливает счетчик станов ( текущее кол-во +1) больше, и принудительно записывает в начало очереди приказов - приказ стоять и смотреть на источник стана ( прикол да? Приказ стана это приказ типа цель-обьект), Но если мемхаком повысить счетчик станов на 1 и не отдавать никаких других приказов то юнит будет выполнять первый отданный приказ во что бы то нистало. При этом сломаются все стандартные дизейблы.
Что нам нужно - отслеживать смерть юнита, причем событием EVENT_WIDGET_DEATH (TriggerRegisterDeathEvent). Отлавливать приказы которые получает юнит, если это стан - то снимать счетчик на 0, а потом после окончания стана (событие на 0.00 едениц урона) повышать счетчик. Приказы триггерно отдавать точно так же, снял счетчик до нуля, приказ чето делать, поставил на то кол-во столько было.
Важно - это поле юзают многие дебаффы и абилки, к примеру морфы, поэтому не тупо ставим 0 или 1, а читаем сколько было, записываем 0, отдаем приказ, потом ставим сколько было, обязательно проверяя чтобы счетчик был выше 0 или равен нулю.
Счетчик станов (Он же флаг неприрываемости) находится по оффсету 0x198/
Важное НО, получение адресса юнита сравнительно тяжелая операция (ConvertHandle), поэтому имеет смысл записать адресс куда-нибудь, чтобы потом работать с ним, адресса у юнитов остаются не изменными всю игру, как и у абилок (даже если их удалять и добавлять).
» WarCraft 3 / Откат спелла до применения
» WarCraft 3 / Проблема с мемхаком
» WarCraft 3 / Управление контролем (мемхак)
» WarCraft 3 / Проблема с мемхаком
» WarCraft 3 / Утечка при массовом касте
Если выражение возвращает boolean или функция, то незачем писать == True оно само по себе True., или false.
» WarCraft 3 / Проблема с мемхаком
Ред. quq_CCCP
» WarCraft 3 / Какие остались сервера Warcraft'а.
Ну еще штуки три наьерутся из забугорных, вроде RGC.
Куча китайских, но туда не пробиться, из за требований к регистрации.
» WarCraft 3 / Как триггерно изменить тип юнита из пешего на летающий?
» WarCraft 3 / Как триггерно изменить тип юнита из пешего на летающий?
» WarCraft 3 / Pick every unit
» WarCraft 3 / Защита импортных файлов
» WarCraft 3 / Демоническая сила.
» WarCraft 3 / Защита импортных файлов
Защита подобного уровня вполне себе возможна на 1.26-1.27 патчах, но стоить она вам будет дорого, и мало что изменит.
P.S один чувак уже делал такую хрень насрутерам, тырил модели с запороленого темидой микс архива, т.к он извлекал их из памяти, то получались длл, которые просто подргружал мемхаком в карту где эти модели требовались - все работало. Лучше не спрашивайте сколько это стоит.
» WarCraft 3 / Как сделать много плавающих текстов над юнитом?
» WarCraft 3 / Проблема в редакторе обьектов
» WarCraft 3 / Защита импортных файлов
Мемхак в помощь, импорт будет в виде отдельной Длл а не файлов текстур и моделей, причём её тупо заполненный микс архив, а Патч памяти игры под эти модели.
Но если сильно захотят всеравно выудят.
» WarCraft 3 / Как триггерно убить все здания игрока?
» WarCraft 3 / Медведь Друида как в Доте.
» WarCraft 3 / Откуда скачать Reforged?