ЛооуХпГуль, при создании новых нужно что-то делать со старыми. Как вариант - проходиться циклом по всем и удалять их. Но я бы всё же поискал способсоздавать только для тех юн тов, которые еще не имеют своего закрепленного за ними текст-тага.
Здесь скорее надо реорганизовать момент создания пар юнит+текст, и выбирая всех нужных юнитов применять к каждому этот метод. А движение всех текстом будет осуществляться отдельным глобальным методом.
Хреновая идея, т.к. у игры лимит на число одновременно отображаемых плавающих текстов (100 шт. вроде). Поэтому в лучшем случае создавать их все скрытыми, и показывать только те, которые нужно в данный момент видеть. В зависимости от реализации и нужд, это может быть как и бесполезной нагрузкой, так и вполне реализуемой механикой (смотря что именно это будет).
По скриншотам:
На первом скрине, второе действие, цикл А от 1 до 100, ты указал "выбранный юнит". В событии "игрок пишет в чат" вообще нет юнитов отвечающих ему как-либо (т.е. здесь юнит будет отсутствовать). А вообще - выбранный юнит это тот, которого ты пытаешься сгруппировать и с ним уже происходит работа (через ForGroup).
В следующем действии ты обращаешься к отряду (группируешь юнитов) и создаёшь плавающий текст у "выбранного юнита". Здесь выбранный юнит это тот с которым происходит работа во время перебора всего отряда. Но ты совершенно неправильно применяешь цикл и попытку нумеровать пары юнит-текст.
На втором всё вроде нормально, кроме того моменты что в цикле Б ты ссылаешься на целую А. Ну а вообще должно работать, если переменные правильно запишешь.
В общем. Там где создаёшь текст, тебе нужно сделать счетчик - создай целочисленную переменную и устанавливай её значение на +1 от текущего ( set N = N + 1 ). Сразу после создания текста, без цикла Б, установи переменную "text" как последний созданный текст, но в качестве индекса массива используй не целую Б, а свою новую переменную (которыю ты делаешь как +1).
set N = N + 1
set text[N] = Последний созданный текст
Так же сделай и с юнитом - запиши выбранного в переменную init_t[N].
Второе действие в первом триггере - удали. Выбранного юнита ты будешь записывать как я тебе описал выше. Но скорее всего тебе придется либо обнулять N перед группированием, либо придумать как переписывать текущие тексты не создавая лишних... Это по-сути не сложно, но доя тебя пока явно сложно. Попробуй хотя бы так.
Является ли destructible group в данном примере утечкой? Если да, то как мне удалить destructible group?
На сколько я помню, нет такого объекта как "группа разрушаемых" (или предметов). Там немного по другому происходит отбор объектов. Вроде бы создаётся область, в её пределах выбираются все подходялие разрушаемые объекты, и всё.
А при попытке выбрать объекты внутри окружности там еще добавляется проверка что дистанция между центром области и координатами конкретного объекта меньше чем радиус указанной окружности.
MrSaW, нет, не могут.
Выводи сообщения с именами юнитов и числами, каждый раз когда что-то перестаёт считаться... Это помогает найти место где происходит ошибка.
Не надо многократно в течении исполнения триггера ссылаться на "цель каста", если присутствуют такие действия как "создать/удалить юнита", "отдать приказ кастовать", "добавить/удалить абилку юниту" и т.п. Создай еще олну переменную и запиши цель там же где ты записываешь кастера, а потом сравнивай уже через неё.
Упрости блок "если/тогда/иначе" сократив его до одной проверки на союзность цели. При совпадении - кастуй стан в цель, иначе - выбирай всех вокруг и кастуй в них "корни".
Массовый применение абилок можно сделать одним юнитом, если обнулить время замаха/отмаха каста у самого дамми-юнита (скорость движения должна быть нулевой).
При касте абилки проверяй что "цель каста" является null
Если это так - то каст был в точку.
А если цель каста всё же есть - значит не в точку, а на юнита.
Хотя тут еще можно пробовать ловить разрушаемые и предметы, но это надо что б сама абилка могла нацеливаться на такие объекты.
SсRealm, ну может ему надо наносить урон оттуровня, по 50 за уровень + 25
Или ты предлагаешь чекать 10-20 уровней поотдельности? (Да, во многих картах и таке бывает)
PUVer, ой не...это ж какой-то гемор получается. Это надо помнить количество всех видов предметов для всех возможных юнитов... Этотже не адекватная альтернатива. Разве я не прав? Разве старый добрый цикл с перебором инвентаря чем-то хуже?!
Нужно посчитать количество этих предметов в инвентаре.
Можно циклом от 1 до 6 пройтись по всем ячейка и при совпадении делать +1 в переменную.
Если после цикла она больше или равна 3, то удаляешь когти 3 раза.
Переменную перед циклом обнуляй.
Цельные строки специально так выносятся в .wts файл
Есть даже функция в GUI, которая специально преобразует конкретную строку в такой "макрос".
Так в ряде случаев проще работать с текстом.
Версия карты остаётся ровно та же самая, а вот тексты можно именять и/или переводить на другой язык.
На счет локал-плеера - актуально как в первый же день.
Функция вывода текста работает на конкретных указанных игроков. Что бы показать текст всем игрокам, нужно пройтись по ним как циклом (для этого есть группа игроков - force). Но есть уникальная в своём роде функция "локал-плеер", которая возвращает того игрока, у которого она отрабатывает (проще говоря если вывести всем игрокам "имя локал-плеера", то каждый игрок увидит своё собственной имя). Для того что бы не юзать цикл на всех игроков (или форс) можно вывести текст для конкретного игрока, но указать там "локал-плеера", таким образом каждый игрок получит для себя самого текст. Разница лишь в том что игра будет по-факту отправлять одно сообщение, а получат их все игроки, и они могут разниться. А если через форс - игра отсправит по олному сообщению каждому игроку (итого до 12).
Почему гуишная функция использует проверку на форс, но работает с локал-плеером? - да потому что таким образом проще отсеять тех, кому надо выводить сообщения (и оно будет одно, как я сказал выше). Иначе мы бы просто писали каждому игроку через форс по отдельному сообщению.
Нейни, вверху окна есть вкладки, одна из них называется Вид. В ней есть перечень отображаемых в РО разделов. Там же можно вкл/выкл тот самый режим, о котором ты спрашиваешь.
Чаще обращай внимание на имеющиеся возможности, изучай содержимое подобных вкладок.
Я тут поэкспериментировал - нифига он не ловит "вызов" юнита.
Максимум что можно выжать из этой концепции - появление или смерть "облака".
Появление регистрируется через "вход в область карты".
Смерть как обычно, через "юнит умирает".
В обоих случаях мы получает только само "облако", и никак не может сослаться на Труповозку.
Я поменял "облако" на Светлячка - он создаётся москитным, и ему можно сразу приказать юзать под себя Самопожертвование. Можно использовать задержку времени жизни что бы отсрочить эффект каста абилки, либо ей самой дать время приготовления.
WilliamBz, нееее... Вот это всё что я написал нужно сделать, а уже вместо триггерного выделения юнитов и уничтожения у них маны можно использовать абилку Светлячков. Хотя там и с триггерным отловом совсем не сложно.
А попробуй сделать так: Берёшь абилку от труповозки, ту саму которая создаёт "ядовитое облако" в месте куда она выстреливает, и даёшь её балисте. Само "облако" (юнита) настраиваешь так что бы он не смещался в сторону при создании, и модельку убери. Создай триггер, который будет регистрировать призыв юнита юнита, и попробуй определить его владельца (не забываем о том что в GUI-переводе событие неправильно названо, там вызыван/вызывает перепутаны). Если удастся получить и самого "юнита-облако", и эту самую "труповозку", то можно триггерно сжечь ману всем вокруг (либо использовать "самопожертвование" светлечков, для облака разумеется).
Попробуй. Если получится, то это будет самое постое и менее замороченное, чем отлов урона, позиций атаки и прочего...
» WarCraft 3 / Как привязать ТЕКСТАГ в юниту???
» WarCraft 3 / Как привязать ТЕКСТАГ в юниту???
Разве нет? И все всё всегда хавали ))
» WarCraft 3 / Как сделать проверку?
» WarCraft 3 / Как отследить чей игрок убил юнита
Отредактирован Extremator
» WarCraft 3 / Как привязать ТЕКСТАГ в юниту???
» WarCraft 3 / Как удалить destructible group?
» WarCraft 3 / Помогите! Сломались триггеры
Выводи сообщения с именами юнитов и числами, каждый раз когда что-то перестаёт считаться... Это помогает найти место где происходит ошибка.
» WarCraft 3 / Помогите! Сломались триггеры
» WarCraft 3 / Сила тьмы
Уровень физической защиты оно НЕ игнорирует.
Отредактирован Extremator
» WarCraft 3 / Не пойму механику способности
Если это так - то каст был в точку.
А если цель каста всё же есть - значит не в точку, а на юнита.
» WarCraft 3 / Не могу отследить уровень способности
Или ты предлагаешь чекать 10-20 уровней поотдельности? (Да, во многих картах и таке бывает)
» WarCraft 3 / Не могу отследить уровень способности
» WarCraft 3 / Не отображается окно слоя.
» WarCraft 3 / Как привязать ТЕКСТАГ к юниту?
» WarCraft 3 / Крафт из одинаковых предметов
» WarCraft 3 / Крафт из одинаковых предметов
Можно циклом от 1 до 6 пройтись по всем ячейка и при совпадении делать +1 в переменную.
Если после цикла она больше или равна 3, то удаляешь когти 3 раза.
Переменную перед циклом обнуляй.
Отредактирован Extremator
» WarCraft 3 / Отображение текста
Есть даже функция в GUI, которая специально преобразует конкретную строку в такой "макрос".
Так в ряде случаев проще работать с текстом.
Версия карты остаётся ровно та же самая, а вот тексты можно именять и/или переводить на другой язык.
» WarCraft 3 / помогите скачать Jass New Gen Pack warcraft 3
» WarCraft 3 / Переход редактора с русского на английский нажатием кнопок
Отредактирован Extremator
» WarCraft 3 / Как добавить пассивное сожжение маны баллисте?
Максимум что можно выжать из этой концепции - появление или смерть "облака".
Появление регистрируется через "вход в область карты".
Смерть как обычно, через "юнит умирает".
В обоих случаях мы получает только само "облако", и никак не может сослаться на Труповозку.
Я поменял "облако" на Светлячка - он создаётся москитным, и ему можно сразу приказать юзать под себя Самопожертвование. Можно использовать задержку времени жизни что бы отсрочить эффект каста абилки, либо ей самой дать время приготовления.
» WarCraft 3 / Как добавить пассивное сожжение маны баллисте?
» WarCraft 3 / Как добавить пассивное сожжение маны баллисте?
Отредактирован Extremator
» WarCraft 3 / Как добавить пассивное сожжение маны баллисте?
» WarCraft 3 / локальная fogmodifier
Отредактирован Extremator
» WarCraft 3 / Иконки на заказ