Если у юнита тип перемещения включён на "нет", но есть скорость перемещения, он будет перемещаться сквозь любые объекты. Если же у него перемещение стоит "летающий", то его могут заблочить только воздушные юниты и воздушные блокираторы пути. Но в случае с летающим типом, это станет заметно как он "плавно" взбирается на вертикальные стены рельефа.
Мне кажется проблема в этом, он не просто передвигает, он перемещает с одной дистанции на другую, т.е рывками
Криво реализовано движение. У тебя смещение происходит сразу на 300 единиц, поэтому пролетаешь декорации, и потому, что функция SetUnitXY перемещает в точку беспрепятственно, игнорируя занимаемое юнитом пространство. Попробуй сделать так:
поменяй это
Этот эксперимент очень легко повторить, если для выпадения выставить "любой случайный предмет - разное" или "любой случайный предмет - для кампании". И ничего выпадать не будет.
У всех этих предметов в РО в параметре "Включить как случайный выбор" установлено значение "нет". Если сменить это значение на "да", то предмет будет выпадать.
Выпадающие при смерти предметы - это тоже jass скрипт, он генеруется при сохранении карты. И там есть триггеры. Потому в любом случае без триггеров не обойтись
Вобщем озарение как всегда пришло внезапно - понял что GetSpellAbilityUnit срабатывает на дамми и записывает в массив его, а не цель щита. Просто передвинул махинации с дамми в конец функции Actions. Всё отменно работает. Всем спасибо все свободны
В РО у способности есть есть строка Графика - Анимации, там указываешь ту, что хочешь видеть при её использовании. Например, для Огненных стрел Жрицы Луны используется анимация attack, для Молота бурь Горного Короля анимация spell throw, а для Покоя Хранителя Рощи анимация spell channel. Для двух последних способностей в РО указывается два слова, оба слова через пробел не работают, например, указывай отдельно spell и throw или spell и channel. Если у модели нет анимаций с таким названием, но есть анимации, которые содержат одно из этих слов, то будут проигрываться они. Там ещё есть тонкости, о которых долго печатать надо, да и они тебе могут не понадобиться. Пробуй.
quq_CCCP, Ну я на хайве видел полуджассовый вампиризм. Так мне и нужно вручать при замахе, чтоб если героя диспелят он вампиризм при атаке вернул. А утечку показывает, как я атакую, сразу хендл на один повышается. Может руна не удаляется? ClotPh, Вообще не понял о чём ты.
Решил проблему, утечка возникала из -за не удаления руны, она почему-то не удаляется изнутри триггера, создал отдельный для удаления и нет утечки.
Вы хотя бы пробуете перед тем, как задать вопрос сделать что-то самостоятельно?
При создании Задания выбирается его тип: Основной/Дополнительный и т.д.
Unit - Order (Last created unit) to Attack-Move To (Rally-Point of (Random unit from (Units owned by (Owner of (Last created unit)) of type Barracks)) as a point)
Last created unit будет идти убивая все на пути в точку сбора Барраков
Боевая единица - умирает "Здание 1"
Боевая единица - умирает "Здание 2"
Боевая единица - умирает "Здание 3"
Боевая единица - умирает "Здание 4"
Боевая единица - умирает "Здание 5"
А дальше добавить условие через И:
Юнит "Здание 1" мёртв == ДА
Юнит "Здание 2" мёртв == ДА
Юнит "Здание 3" мёртв == ДА
Юнит "Здание 4" мёртв == ДА
Юнит "Здание 5" мёртв == ДА
В итоге твой триггер сработает тогда когда умрёт одно из зданий, и в этот момент мертвы будут все 5 (т.е. в момент разрушения последнего из них).
Вариант 2
Общее событие смерти для всех юнитов.
В условии проверяешь ТИП юнита, если он равен твоему зданию (напр. Ферма), тогда проверяешь через И что все здания мертвы, как в предыдущем варианте. Это подходит если у тебя все 5 зданий одного типа, а не разные, и нет иных условий.
Поробовал поменять на хеш-таблицы и карта запустилась на рефордже (не знаю про 1.26, но скорее всего тоже будет работать). Менял все чере мпк редактор, ибо если менять редактор мира, в из карты выидывает с поражением, не стал с этим заморачиваться, да и через блокнот редактировать код в данном случае удобней. Кстати эта защита видимо забытые технологии древних. По крайней мере я ничего подобного не видел. Да и то что в карте есть такая защита и саму карту не прогоняли через оптимизаторы, говорит о том что она мега древняя. Ну это так отступление.
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
глобальный массив не нужен. сохраняй группу в хэш-таблицу на хэндл героя, потом загружай ее когда надо. у каждого героя будет своя группа
вот пример, молот бурь съедает юнита а удар грома ставит всех юнитов обратно
Причина: причин было много, а я искал лишь одну
Самыми распространёнными оказались элементарные ошибки в коде, отсутствие параметров, параметры не того типа данных (привет динамическая типизация) или лишние параметры, из за чего происходили "рандомные рассинхроны при обрыве потока"
Огромное спасибо пользователю prog, что откликнулся и смог найти ошибки, а нашёл он их при помощи языкового сервера sumneko lua для VScode
не стоит использовать ждать
создаём для юнита целочисленную переменную time
1 триггер
Событие
периодическое событие - каждые 0.1 сек.-
Условие
time > 0
Действие
set time = time - 1
если time == 0 то понизить уровень способности "незаметность" для "герой" до 1
2 триггер
Событие
боевая единица - юнит атакован
Условие
Атакующий юнит=герой или Атакованный юнит=герой
Действие
set time=30
боевая единица - повысить уровень способности "незаметность" для "герой" до 2
не забудь закрыть вопрос (для этого выбери лучший ответ)
Dimari93, во первых
для того чтобы написать комментарий не надо цитировать предыдущий
во вторых
ai файл это файл с джасс кодом
не знаешь джасс - ничего не поймёшь в ai и следовательно не сможешь модифицировать
в общем все возможные ответы даны и разжёвано так что любой знающий основы джасс поймёт
вопрос закрыт
Когда юнит погружается в транспорт, используют событие - юнит погружен в транспорт. Пассажира обязательно надо пометить чем-то, например, в группу добавить. А когда выгружают пассажиров, то пассажир перед погрузкой получает приказ "стоп" с условием юнит в группе.
Дирижабль достаточно уничтожить, и все пассажиры должны будут автоматом выгружены. Или удалить попробовать.
Прежде всего, зачем по таймеру для каждого игрока, а тем более на каждого кастера, если можно обойтись одним таймером на всех?
Группы я бы тоже не хранил для каждого игрока, а вместо этого хранил бы по хендлу цели сколько осталось тактов кровотечения и от чьего имени наносить урон, а всех юнитов с кровотечением складывал бы в одну группу для всех.
Постоянное создание-удаление групп, в принципе, тоже не лучшая идея, лучше их чистить и повторно использовать.
Ну и я бы не стал использовать анонимную функцию в таймере - она тут не нужна, все отлично передается глобалками.
Думаю, что можно сделать через группу. В твоём триггере просто перебираешь всех юнитов и двигаешь куда тебе нужно. Тогда тебе нужно будет только добавлять в группу новых юнитов, которые должны так двигаться. А если не хочешь, чтобы юнит двигался - удаляешь его из группы.
Например, создаешь триггер, который регистрирует новых юнитов, вошедших в карту. В условии проверяешь тип юнита. Если подходит, то добавляешь его в ту группу, что я описал выше.
это не отключение индексирования, это отключения ресайкла индексов
т.е. если юнит умрет и ремувнется с мапы, его индекс достанется другому юниту
а наработка с цифрами есть на гуи без всяких индексов и там всего три триггера
Возможно у тебя реально проблема в последней, например он сканирует список всех карт, находит какое-то непотребство и падает в ошибку, надо проследить и почистить этот путь
Я не понимаю как работать без него, особенно без ро
В идее выбираешь режим редактор, а не игры, и работаешь в редакторе как обычно
Я условия проверил, и они работают. ну она работает от случая к случаю. Что-то изменяю, и пашет. Вношу изменения снова, не работает. вернее, часть условия работает верно.
Пример, есть 4 игрока:
красный (собственно я) => несколько юнитов могут не двигаться, а остальные разбегаются
синий (подконтрольный союзник) => несколько юнитов могут не двигаться, а остальные разбегаются
голубой враг
фиолетовый нейтральный
все войска кроме подвижных подконтрольных являются как бы препятствием
пример, я сделал все работало. кроме синего неподвижных юнитов, решил в условиях похимичить, и сломал, короче, перестали работать: теперь, на голубого не работает. иногда не пашет на друкгих.
забавно но факт: тут бывает где то в условиях обрывается поток, и поэтому не работает что то. что делать то? условие как бы нужное, ну раз не пашет, надо понять причину
--если этот юниты подконтрольны частично
local flag1=GetPlayerAlliance(PlaYer, pp, ALLIANCE_SHARED_CONTROL)
--если этот юниты подконтрольны полностью
local flag2=GetPlayerAlliance(PlaYer, pp, bj_ALLIANCE_ALLIED_ADVUNITS)
--если игрок нейтральный
--local flag3=GetPlayerAlliance(PlaYer, pp, ALLIANCE_PASSIVE)
продвинутый контроль не нужен, только обычного достаточно. В редакторе его не включить, нужно частичный и только потом открывается полный. Также и через триггеры. Думаю, что достаточно проверять частичное, иначе продвинутый обрывает поток
flag2=GetPlayerAlliance(PlaYer, pp, bj_ALLIANCE_ALLIED_ADVUNITS)
» Grand Theft Auto / Ford Escape XLT (2001)
» WarCraft 3 / Война за природу
» WarCraft 3 / Столкновение юнитов
» WarCraft 3 / Анимация выпадение предмета
» WarCraft 3 / Ошибка при загрузке карты
» WarCraft 3 / Некорректно работает спелл - [Jass]
» WarCraft 3 / триггер задания
» WarCraft 3 / как поменять размер кода
» WarCraft 3 / Как проверить, что юнит кастует?
» WarCraft 3 / Точки крепления
» WarCraft 3 / Помогите исправить триггер
» WarCraft 3 / дирижабль
» WarCraft 3 / Для помощи
» Администрация XGM / ban
» WarCraft 3 / Юниты стакаются
» WarCraft 3 / Помогите доделать триггер
» WarCraft 3 / помощь с англ триггерами
» WarCraft 3 / Превышение лимита скорости
» WarCraft 3 / Герой в алтаре
» WarCraft 3 / Как сделать FFA карту?
» WarCraft 3 / AutoLoad RPG Maps
» WarCraft 3 / Не понимаю, почему не работает ИИ