А зачем тебе плодить ивенты? Это события - юнит получает урон, события никак не удаляются, можно удалить лишь триггер, да и то не в гуи.
Вовсе не надо в гуи делать все что связано с детектом урона, это сложно для уровня гуи и стоит явно переходить на jass.
Эмм есть такая книга, повышает белую атаку владельцу - работает как руна. Ну вручаеш её герою при каждом убийстве, если бонус не планируется снимать. То сделать книжками очень изи, как вручать руны и прочее можно почитать в моей статье по предметам
function Is2cc takes real r, real cx, real cy, real px1, real py1, real px2, real py2 returns boolean
local real dx = 0.00
local real dy = 0.00
local real a = 0.00
local real b = 0.00
local real c = 0.00
set px1 = px1 - cx
set py1 = py1 - cy
set px2 = px2 - cx
set py2 = py2 - cy
set dx = px2 - px1
set dy = py2 - py1
set a = dx * dx + dy * dy
set b = 2.00 * ( px1 * dx + py1 * dy )
set c = px1 * px1 + py1 * py1 - r * r
if ( -b < 0.00 ) then
return ( c < 0.00 )
elseif ( -b < ( 2.00 * a ) ) then
return ( ( 4.0 * a * c - b * b ) < 0 )
endif
return ( a + b + c < 0 )
endfunction
Определяет пересекает ли вектор окружность или нет. Юзал для ИИ чтобы определяет попадает ли путь юнита в зону агра врагов...
Криты при срабатывании заменяют обычную атаку, множеной, выводя цифры исходя из умножения текущей атаки Юнита на момент удара. Урон от крита, это такая же атака как и обычная, только увеличенная на множитель, разумеется она снижается защитой и на нее действует 100500 факторов,.
Ну как по мне - детект урона рунными браслетами самое то, если не юзать мемхак.
Правда на хайве автор сделал фигню - вроде б.д резистов, бред. Вручаем рунные браслеты и смотрим на урон, если урон выше 0 - это физический урон или клиф (клиф отлавливают точно так же как и ты атака+приказы), если урон ниже нуля - он будет хилить юнита, если у юнита фулл хп, тогда можно не парится и через 1 фрейм (таймер на 0.00 сек.), иначе нам нужно снизить юниту хп на кол-во отрец урона, чтобы избавится от хила, а потом умножаем наш урона на -1.34 если цель герой чтобы получить изначальное кол-во маг урона.
Удаляем у юнита резист, ставим флаг (глобалку как у тебя) чтобы триггер не сработал на этот урон и наносим урон, потом снова врубаем резист, таким образом мы не нарушаем систему дефольтных маг резистов и маг бонусов от благословения элуны и от атсрала.
Нет никаких баз данных и прочее, при дальнем бое лучше проверять что цель умерла -TriggerRegisterDeathEvent() именно этим событием, у цели может быть крест перерождения и аналоги, а только это событие срабатывает на смерть с крестом перерождения, особенно полезно для снятия дебафов - т.к это событие сработает при падении хп до нуля, за фрейм до того как юнит умрет и станет не выбираемым и не активным.
Это событие используется во внутриигровых триггерах (все баффы\дебафы такие триггеры) чтобы снимать к примеру оглушения.
Так же на детекте урона можно сделать удобную систему снарядов, двигать дамиков мутарно а сделать им норм анимацию и параболическую траекторию и вовсе куча кода, а так берем аксид бомбу и ждем её баффа с уроном на цели от лица кастера и все =)
Удачи в начинаниях.
ScopteRectuS, там екзекут а не call, в кондишенах не работают вейты и синх, что то там еще. Лимит операций другой, особо тонкостей не помню, но писать можно как угодно, ваше дело, особо ничего не дает. Просто return GetSpelLAbilityId() == "A000' было бы проще. Ах да, можно сделать одно условие на все спеллы и не плодить их, уже писал это не раз, могу дать свою карту для изучения, как реально сделать все спеллы удобно и не забивать себе голову подобной ахинеей.
Нахрена вам это? Почувствовали себя IseFrog'ом, triggercondition и нужны чтобы не нагружать ненужными действиями движок, а так же разделить код, на частый и легкий и тяжелый и редкий, у фрога так реализованы всякие дебафы вроде уроны, в кондишене проверяется от чего сработал триггер, если это таймер то нанести урон, иначе если триггер сработал от любого другого события то удалить весь эффект и выполнить утилизацию триггера...
Nikolay36, очень просто GetUnitTypeId( GetSpellAbilityUnit() )
Как бы это что то ненормальное, спрашивать про элементарные вещи которые описаны в статьях по jass в 101 месте, да и вовсе есть список jass функций из common.j...
Ну разумеется, продаешь ты дамика - у него нет модели а есть только иконка и описание, сразу после покупки удаляем. Не забыв перед этим владельца дамика и его тип записать в переменные для дальнейшей работы.
Довольно интересный способ реализации детекта физ урон, правда будет баговать с абилками типа "Жар приесподней", ну и для дальнего боя приказы не применимы, в среднем 0.25-0.40 сек. задержка между замахом и вылетом снаряда.
На основе рунных браслетов более надежно.
PT153, Ничего - как вы не поймете, юниты, предметы - виджеты, у них есть хп, а то что вы видите на карте команд - Ability, когда вы покупаете предмет в лавке - это такая абилка рисует кнопки с иконками и описаниями предметов, сам предмет создается в виде виджета, т.е обьект с хп который сидит на карте, он не сидит в магазине, это фикция, особая абилка создает визуализацию покупки.
Windget и Ability этим все сказано.
Только способности можно засунуть в спеллбук, а есть только одна способность требующая для каста золото\дерево - поставка ресурсов.
Не понимаю зачем вам продавать юнитов\предметы в спеллбуке, когда есть поставка ресурсов.
Как отследить факт каста тем или иным игроком я уже писал.
Гуглим JASS API - полный список функций языка JASS.
точки удаляются специальной функцией RemoveLocation( ссылка на точку)
В jass точки особо не нужны, т.к есть возможность работать на прямую с координатами и не надо ничего записывать, удалять, обнулять и так далее.
FrigatPlay, то то и оно, она при загрузке фаталит, хотя нормально открывается в редакторе.
Копируй код из нее в другую карту, там нету ретурн бага, гуи онли... Но почему то фаталит, в логе написано что карта стартует без единого игрока, конфиг чтоли запорот...
» WarCraft 3 / Способность с атакой
» WarCraft 3 / Add event DamageTaken создаёт утечку, как исправить?
Вовсе не надо в гуи делать все что связано с детектом урона, это сложно для уровня гуи и стоит явно переходить на jass.
» WarCraft 3 / Способность с атакой
» WarCraft 3 / Как создать конусные заклинания?
Юзал для ИИ чтобы определяет попадает ли путь юнита в зону агра врагов...
» WarCraft 3 / Смертельный удар игнорирует броню?
» WarCraft 3 / Выбивает из игры и за данного триггера
» WarCraft 3 / Как задетектить тайл под юнитом или разрушаемым обьектом?
» WarCraft 3 / Как добавить рандомный список зданий для постройки рабу?
» WarCraft 3 / Fervor, Critical, Evade (способности)
Правда на хайве автор сделал фигню - вроде б.д резистов, бред. Вручаем рунные браслеты и смотрим на урон, если урон выше 0 - это физический урон или клиф (клиф отлавливают точно так же как и ты атака+приказы), если урон ниже нуля - он будет хилить юнита, если у юнита фулл хп, тогда можно не парится и через 1 фрейм (таймер на 0.00 сек.), иначе нам нужно снизить юниту хп на кол-во отрец урона, чтобы избавится от хила, а потом умножаем наш урона на -1.34 если цель герой чтобы получить изначальное кол-во маг урона.
Удаляем у юнита резист, ставим флаг (глобалку как у тебя) чтобы триггер не сработал на этот урон и наносим урон, потом снова врубаем резист, таким образом мы не нарушаем систему дефольтных маг резистов и маг бонусов от благословения элуны и от атсрала.
Нет никаких баз данных и прочее, при дальнем бое лучше проверять что цель умерла -TriggerRegisterDeathEvent() именно этим событием, у цели может быть крест перерождения и аналоги, а только это событие срабатывает на смерть с крестом перерождения, особенно полезно для снятия дебафов - т.к это событие сработает при падении хп до нуля, за фрейм до того как юнит умрет и станет не выбираемым и не активным.
Это событие используется во внутриигровых триггерах (все баффы\дебафы такие триггеры) чтобы снимать к примеру оглушения.
Так же на детекте урона можно сделать удобную систему снарядов, двигать дамиков мутарно а сделать им норм анимацию и параболическую траекторию и вовсе куча кода, а так берем аксид бомбу и ждем её баффа с уроном на цели от лица кастера и все =)
Удачи в начинаниях.
» WarCraft 3 / В чём ошибка с локальными переменными?
» WarCraft 3 / triggeraction внутри triggercondition
» WarCraft 3 / triggeraction внутри triggercondition
» WarCraft 3 / triggeraction внутри triggercondition
» WarCraft 3 / Как узнать id номер боевой единицы, который применил ability
Как бы это что то ненормальное, спрашивать про элементарные вещи которые описаны в статьях по jass в 101 месте, да и вовсе есть список jass функций из common.j...
» WarCraft 3 / Как создавать предметы в нейтральном здании?
» WarCraft 3 / Fervor, Critical, Evade (способности)
На основе рунных браслетов более надежно.
» WarCraft 3 / Покупка в спелбуках
Windget и Ability этим все сказано.
Только способности можно засунуть в спеллбук, а есть только одна способность требующая для каста золото\дерево - поставка ресурсов.
Не понимаю зачем вам продавать юнитов\предметы в спеллбуке, когда есть поставка ресурсов.
Как отследить факт каста тем или иным игроком я уже писал.
» WarCraft 3 / Покупка в спелбуках
» WarCraft 3 / Есть ли тут утечки, и где посмотреть полный список Jass команд?
точки удаляются специальной функцией RemoveLocation( ссылка на точку)
В jass точки особо не нужны, т.к есть возможность работать на прямую с координатами и не надо ничего записывать, удалять, обнулять и так далее.
» WarCraft 3 / Покупка в спелбуках
» WarCraft 3 / Как сделать две способности на основе одной у юнита.
» WarCraft 3 / Передача аргументов в функции callback'ов
» WarCraft 3 / Передача аргументов в функции callback'ов
Болекспры должны кешироватся.
» WarCraft 3 / Обновление карты
Копируй код из нее в другую карту, там нету ретурн бага, гуи онли... Но почему то фаталит, в логе написано что карта стартует без единого игрока, конфиг чтоли запорот...
» WarCraft 3 / Как сделать две способности на основе одной у юнита.