Во-первых, измени событие на получение урона, а не на срабатывание атаки.
А во-вторых, у тебя при каждой атаке плодятся таймеры.
Вот нормальная реализация.
index -- любое удобное для тебя число.
// Эта функции вообще не нужна
function Trig_Aura_Strenght_Conditions takes nothing returns boolean
return true
endfunction
function Aura_Strenght_Lost takes nothing returns nothing
local timer t = GetExpiredTimer()
local integer tid = GetHandleId(t)
local unit caster = LoadUnitHandle(udg_Hash,tid,47)
local integer cid = GetHandleId(caster)
call FlushChildHashtable(udg_Hash, tid)
call RemoveSavedHandle(udg_Hash, cid)
call UnitRemoveAbility(caster,'S001')
call DestroyTimer(t)
set t = null
endfunction
function Trig_Aura_Strenght_Actions takes nothing returns nothing
local unit caster = GetAttacker()
local integer cid = GetHandleId(caster)
local timer t = LoadTimerHandle(udg_Hash, cid, index)
local integer level
local integer tid
if t == null then
set t = CreateTimer()
call SaveTimerHandle(udg_Hash, cid, index, t)
set tid = GetHandleId(t)
call SaveUnitHandle(udg_Hash, tid, 47, caster)
call SaveInteger(udg_Hash, tid, 47, 1) // НЕ перезапишет юнита
call UnitAddAbility(caster, 'S001')
else
set tid = GetHandleId(t)
set level = LoadTimerHandle(udg_Hash, cid, index) + 1
call SetUnitAbilityLevel(caster, 'S001', level)
call SaveInteger(udg_Hash, tid, 47, level)
endif
call TimerStart(t, 5., false, function Aura_Strenght_Lost)
set t = null
set caster = null
endfunction
учитывают наличия других источников оглашения и их взаимодействия.
Если в карте используется только такой стан, то все взаимодействия учитываются, иначе это плохая система.
И почему "ваши"?) Способ UrsaBoss вполне нативный же.
ты не отдашь любой другой приказ
Я так понимаю, что это касается только управления от игроков.
при этом триггер "Юнит завершает применение способности" не срабатывает
Только проверил, на эту способность срабатывает. После применений ты сразу же отдаёшь новый приказ, и текущий прерывается, а событие срабатывает только по успешном завершении применения способности. Используй событие "Прекращает применение способности". Да что уж говорить, это событие срабатывает на все способности, которые могут быть отловлены событиями для способностей.
В моей карте сделан кастомный стан наряду с другими баффами. Я просто отдаю приказ стана юнитам на то время, что нужно. После истечения отдаётся приказ идти. Но стоит отметить, что у меня это делается на юнитов, которых никто не контролирует, так что стоит проверить, может ли игрок контролировать юнитов, пока они в таком стане. Полагаю, что не может, ибо даже нативный стан можно обойти триггерным приказом во время получения стана.
Способ UrsaBoss самый лучший, если не нужно делать систему кастомных баффов.
Ты же просто влепил юнита в своей карте и забыл добавить его создание в функцию во взломанной карте. А для того, чтобы его создать во взломанной карте, нужно указать верные координаты точки создания. 8gabriel8:
_0012.
Да имя переменной не решает, были бы одинаковые, jasshelper выдал бы ошибку.
Потому что .execute() и .evaluate() работают с именами функций, а не с самими функциями. Точнее говоря, vJass каждой функции, что вызываются через .execute() или .evaluate(), ставит в соответствие уникальный номер, генерирует для них массив триггеров и заполняет его триггерами, действиями и условиями которых являются обёрнутые вызовы пронумерованных функций.
После этого будут проигрываться анимации с тегом Work, вместо анимаций без этого тега. Чтобы опять проигрывались обычные анимации, нужно тег удалить.
В той статье, который дал бот все сказано слишком сыро для начинающего.
Я нечего не понял.
Плс скиньте мне пример добрые люди.
Так-то сказано всё верно. Способ с добавлением тега подходит для использования со способностями. Если же нужно только разовое проигрывание аниманции, то её нужно проиграть следующим действием.
Сделал наработку, в которой пехотинцы справа укрываются за щитом во время атаки.
Тебе нужно сделать также, но в условии также проверять, что расстояние между юнитами не больше 128. Может возникнуть проблема со зданиями, потому что расстояние считается от центров юнитов.
Считаю, что дело в самой модели, сохраняемой war3me.
Я думаю, что если сохраню в .mdl, то всё будет в порядке, но в игре возникнет такая же проблема, что описана в вопросе. А решение для неё пока такое: создать в РО юнита с импортируемой моделью и во время инициализации создавать этого юнита.
Это какой-то бред.
Скачал карту, запустил, была такая же проблема. Похимичил что-то и проблема решилась.
Прикрепляю карту, но в итоге ничего не поменялось.
Стоп, я же рабочего добавил.
Я полагаю, что дело в том, что игра воспринимает .mdl модель как .mdx, потому и не отображается. Была такая же проблема.
справедливости ради, модель даммику бывает нужна, для специальных ситуаций, с точками крепления но без геометрии - не все визуальные эффекты корректно работают на даммике без модели.
Совершенно верно, но для многих задач (в частности для задачи автора) без модели подходят.
Зачем тебе вообще модель?
Открой этот комментарий, скачай карту, увидишь, как сделан спелл и даммик. Ты можешь даже себе в карту даммика скопировать. Открываешь мою карту, выбираешь даммика, жмёшь Ctrl+C, не закрывая редактор, открываешь свою карту, заходишь в редакторе объектов во вкладку юнитов и жмёшь Ctrl+V.
Absolute, Сейчас попробовал на базе звездопада сделать. Пока просто графику поменял, эти черепа появляются, но не летят. А вообще хотел сделать "Тьму Тысячи Душ" Кил-Джедена из вов/
Ред. PT153
» WarCraft 3 / Способность: повышение атаки при каждом ударе
А во-вторых, у тебя при каждой атаке плодятся таймеры.
» WarCraft 3 / Способность: повышение атаки при каждом ударе
» WarCraft 3 / Система стана
И почему "ваши"?) Способ UrsaBoss вполне нативный же.
Ред. PT153
» WarCraft 3 / Отслеживание срабатывания способности
Да что уж говорить, это событие срабатывает на все способности, которые могут быть отловлены событиями для способностей.
» WarCraft 3 / Проблема с JNGP
» WarCraft 3 / Система стана
» WarCraft 3 / Как сделать систему переноса предметов между главами?
Ред. PT153
» WarCraft 3 / Как копировать данные ландшфат?
Ред. PT153
» WarCraft 3 / Копирование триггеров в war3map.j
8gabriel8:
» WarCraft 3 / Почему нельзя вызвать через code переменная?
» WarCraft 3 / ai и wai, классические кампании близзардов.
Ред. PT153
» WarCraft 3 / Как сменить анимацию Атаки?
Тебе нужно сделать также, но в условии также проверять, что расстояние между юнитами не больше 128. Может возникнуть проблема со зданиями, потому что расстояние считается от центров юнитов.
» Администрация XGM / Пропал вопрос
Ред. PT153
» WarCraft 3 / Не получается изменить модель эффекта ауры
» WarCraft 3 / Не получается изменить модель эффекта ауры
Ред. PT153
» WarCraft 3 / Не получается изменить модель эффекта ауры
Скачал карту, запустил, была такая же проблема. Похимичил что-то и проблема решилась.
Прикрепляю карту, но в итоге ничего не поменялось.
Ред. PT153
» WarCraft 3 / 2 вопроса на разные темы
Ред. PT153
» Администрация XGM / Кодировка
Ред. PT153
» WarCraft 3 / 2 вопроса на разные темы
Открой этот комментарий, скачай карту, увидишь, как сделан спелл и даммик. Ты можешь даже себе в карту даммика скопировать. Открываешь мою карту, выбираешь даммика, жмёшь Ctrl+C, не закрывая редактор, открываешь свою карту, заходишь в редакторе объектов во вкладку юнитов и жмёшь Ctrl+V.
» WarCraft 3 / Таймер
» WarCraft 3 / 2 вопроса на разные темы
» WarCraft 3 / Rawcode To String
» WarCraft 3 / Вот это 0x41656E77 на это - Aenw 400 рублей за помощь
Ред. PT153
» WarCraft 3 / Вот это 0x41656E77 на это - Aenw 400 рублей за помощь
» WarCraft 3 / Вот это 0x41656E77 на это - Aenw 400 рублей за помощь