Ну я тебе так не скажу по памяти, вроде как было вариант что туман войны активен, но карта изначальео разведана. Когда я у себя подобное пытался сделать по-умолчанию, то были какие-то проблемы и результат был не такой как я хотел, поэтому я вручную через эти флаги открывал и закрывал обзор.
Тебе надо методом тыка на голой карте определить что из этого отвечает на определенную видимость карты и за туман войны. На сколько я помню - доя конкретного игрока я ничего не создавал, просто общим действием "раскрыть карту" / "убрать туман" / "вернуть туман".
когда мой герой бьёт с руки, то почему-то система распознает это как атака от руки и как от заклинаний
У тебя должно отрабатывать только за урон с руки, как это я описывал.
А вот уже в иначе можно сделать проверку для всего остального.
Попробуй сделай на голой карте, а я уже посмотрю что к чему.
Frosty102, не знаю как тебе ещё объяснить, но ты вообще всё не так делаешь.
входящий урон больше 10... зачем?
обнуляешь переменные юнитов через CS... зачем? там же можно выбрать "Нет боевой единицы"
удаляй бафф яда сразу, а не после проверки и используй один бафф
Если ты хочешь отлавливать любой урон и если он не с руки то по-умолчанию является заклинанием (при этом сами заклинания НЕ триггерные на 100%), то тебе придётся писать ивенты урона на всех появляющихся на карте юнитов и выдавать каждому из них яд, что бы отличать его урон с руки от остального.
mistwood, если ты обратил внимание, то у меня время указывается в названии МБорда (мультиборд), а не в какой-либо его ячейке. Это сделано для того, что бы игрок мог скрыть МБорбд, но не лишался возможности видеть время (в доте время находится вместо Древесины и Еды).
Изменение названия МБорда не несёт утечек, на сколько я знаю.
На сколько я помню, была информация о том что GUI-шные действия ячейками МБорда имеющие возможность выбора сразу всего столбца/строки (т.е. циклом через указание 0 вместо конкретного числа) вызывают создание объекта multiboarditem, с которым и идёт работа, но далее он не чистится и не обнуляется. Ну как показывает практика, это не самое страшное из утечек. Главное не брать за правило делать так что бы каждую секунду (или чаще) обновлялись все данные на МБорде, а вместо этого изменять только конкретные значения в нужный момент:
каждую секунду писать сколько у игрока киллов? - нет
совешая килл увеличивать число и показывать в МБорде - да
но при входе новых юнитов на карту события триггера растет и растет
Скорее всего у тебя неправильное условие стоит, которое отсекает выбор всех юнитов и добавление ивентов к каждому. Таким образом, вероятно, каждый новый юнит на карте вызывает новую регистрацию ивентов для всех юнитов на карте.
Насколько я помню, яд работает только на ближниках
Нет, не только на ближниках. Абилка Отравленное оружие (орда) нормально работает юнитах с ближним типом атаки и с дальним. Есть только разница некоторая с типом снаряда - рикошет и прочее, вроде артиллерии. С ними яд не особо дружит. Но в доте оно и не нужно, более чем хватает "обычный" для ближнего боя и "дальний бой" для ренджевиков. Frosty102:
как в таком случае избежать проблем с тем же вампиризмом? Делать его триггерно, скорее всего, но это решение больше поможет, чем переделывать все.
Да, именно так - все вампиризмы и прочие абилки (пассивки на атаку) надо будет сделать полностью триггерными. Frosty102:
как в такой ситуации будет себя чувствовать жар преисподней?
Да никак вообще. Его эти яды не касаются его и ничего на них не срабатывает кроме атаки, вот и всё. Это работает совсем не так как пассивки Сларка/Найкса в доте, когда Радианс своим периодическим уроном проскакивал вперед после замаха, но до фактического удара.
Лучше при входе на карту добавлять событие на получение урона с проверкой на наличие в групе
Borodach, ну мой вариант отличается от этого тем что будет происходить ровно то же самое, но только не сразу при появлении, а тогда когда нужно, т.е. при замахе, при касте абилки (в более редких случаях). Получается так что крипы на лайнах, которые не имеют никаких пассивок на атаку никаким образом и не создают своими ударами новые ивенты, это могут делать только герои с абилками и/или соответствующими предметами, которые работают через эту механику.
но почему-то для существа А дальнего боя удар не задействует яд (так как я этот бафф сразу удаляю)
Ты быстро схватываешь)) именно так это и должно работать. Герой замахивается - чекается что у него есть яд или иная абилка/предмет. Если атакованная цель не в группе - тогда добавляем (маркируем) и создаём ивент. Когда прилетает любой урон проверяем что есть бафф яда = этот урон был с руки и нанёс яд, поэтому тут же снимает бафф яда. Далее делаем всё что необходимо, даже можно снова урон наносить (на него триггер так же сработает, но уже без яда он не будет активироваться). Ну и впринципе всё, готово. А если перед нанесением урона любым образом юниту принудительно дать бафф яда, то система подумает что это была авто-атака с руки, т.е. то о чём я изначально и говорил - можно делать скиллы урон которых будет ударным (на него срабатывают пассивки).
не понимаю в чем дело, триггер работает как-то неправильно, удары в дальнем бою он засчитывает как 3 удара
Скорее всего у тебя регистрируется 0.00 урона, которые наносятся юниту в момент получения и потери баффа (ещё вроде бы даже само по себе попадание снаряда даёт 0 урона).
Сам триггер выключать/включать не обязательно, если всё будет сделано правильно.
Не нужно чекать оба баффа яда, используй один, просто поставь его ДВА раза в самой абилке.
Удаляй бафф яда СРАЗУ ЖЕ, а уже потом проверяй чем владеет "источник урона".
если плодить много триггеров на "юнит получает урон", сильно ли забьеться память?
Joma, память будет засираться, но на столько мало, что в карте вроде доты этого никто и не заметит, если конечно не произойдёт какой-то лютый буст этого спавна ивентов. В общем - имеем что имеем, мешать не должно.
так вот оно в чем дело. Всегда удивлялся Морте которая кидает кинжал а там крита срабатывает, думал как?
Joma, нее, в доте у Мортры специально сделано что даггер критует. Тут для реализации как бы очень много места. Можно сделать в нанесении урона проверку на уровень ульты, и если он больше 0, то чекать шанс и домножать урон. Но это не будет работать на другие ударные пассивки. А ведь вся суть её нынешнего даггера как раз в том что он наносит урон равный % от текущей атаки Мортры, и уже поверх этого мы имеет эффект того что на него срабатывают ударные пассивки. То что я описал - вообще не похоже на это. Я лишь привел пример как это можно использовать.
Joma, имеется ввиду то, что когда у тебя полностью кастомный скилл триггерно наносит урон, то и детектить можно что угодно и от чего угодно. Например тот же Снайпер в доте, допустим его ульт наносит 550 маг.урона по указанной цели. Имея кастомные орбы и прочие абилки, буквально в два клика можно прицепить к наносимому урону эффект "ударного" (т.е. того, который вызывает срабатывание пассивок для авто-атаки). И вот уже на этот снайперский выстрел распространняется вампиризм, баш, дезоль, дифуза, и вообще всё что угодно. Можно заставить Урсу топать ножкой и давать всем вокруг +1 стак пассивки. Гондар кидает сюрикен и нанося урон срабатывает крит+замедление от джинажы (его пассивка). Мортра бросаед даггер в цель и он попадая критует от ульты (и вампирится, и башит если шанс так же прокнет). Вот чем это удобно.
Joma, не "при каждой атаке создавать новый триггер на получение урона", а "при каждой атаке чекать необходимость создавать новый триггер на получение урона, и создавать его только если это необходимо". А уже в этом триггере чекать наличие всяких абилок и предметов.
Это не нагружает игру, поверь.
У меня у самого мини-дота есть, и там постоянно крипы мутузятся между собой и с героями, и это никак не мешает с их орбам (пассивные абилки на атаку или предметные пассивкы) и прочим скиллам. Всё отлично работает вплоть до того, что в нужный момент с триггерого скилла можно наносить "ударный" урон, т.е. такой, на который реагируют эти самые пассивки. Например: кидаешь молот бурь, а он выжигает ману цели, потому что у героя есть манабёрн (не важно свой скилл или от предмета).
Проще чем делать все абилки триггерно, это сделать триггерно лишь часть абилок... Можно отлавливать авто-атаку героев через яд, и уже от этого отталкиваться. Это заметно проще чем если взяться за все скиллы сразу. Но, я полагаю, что со временем ты придёшь к тому что бы поставить всё на триггерную основу, т.к. это даёт полный контроль над происходящим.
Birdboy, это "размерность" массива, т.е. предустановка для дефолтного блока инициализации глобальных переменных (это то тесто в скрипте, где всем глобалкам задаются дефолтные значения). Именно в этом месте и за счёт этого параметра отрабатывает создание пустых групп и запись их в каждый из массивов переменной.
set GROUP[1] = СоздатьГруппу()
set GROUP[2] = СоздатьГруппу()
set GROUP[3] = СоздатьГруппу()
set GROUP[_] = СоздатьГруппу() // и так далее...
Это так же касается и других типов переменных - таймеры, самый очевидный из них.
Yae Miko, приходя сюда ты должен давать ответы на поставленные вопросы, а не сопли тут свои размазывать на весь экран.
Тот неловкий момент, когда очень сильно хотел кого-то унизить, но даже не знаешь, как обращаться с языком, на котором пишешь. Как же много веса в твоих "словах".
Да? Ну попробуй перебери только конкретных юнитов, скинешь потом пример.
Конкретные юниты на то и конкретные, что они конкретизируются/проверяются заранее и отфильтровываются туда, где проверка будет проходить исключительно дня них.
автор не указал что нужно
Опять же, автор не указал подробное тз
Поэтому ты решил внести конкретики от себя.
Ну продолжай костылить дальше, мне то что с того? Я лично ...
Твоим личным мнением никто не интересовался.
Я не рекламный агент
хотелось бы поговорить об оплате
Это в другое заведение.
но меня пока не спрашивал
Как видишь, и не спросят.
тебе не кажется
Нет, не кажется.
Давай может быть вместе посмотрим комментарии, например, от nazarpunk?
Ну вот ты в его стиле и ответил. Не это ли и есть лицемерие?
Почему ты решил именно меня заткнуть
Потому что я дал развернутый ответ, который с твоим ничего отщего не имеет, как и информационной ценности для вопращающего в общем и целом.
говорить "а как это, а может вы не будете уходить, у нас же есть своё, зачем вам чужое?"
Об этом речи не шло вообще. Свои интерпритации более можешь не оглашать.
neversleepy, ну у меня пока нет возможности скачать и посмотреть, а через пару дней я могу и забыть...так что... Ничего не обещаю. Может к тому моменту загадка уже будет разгадана.
Клифф это высота рельефа, т.е. уклона, она будет меняться каждый раз когда юнит поднимается или спускается двигаясь по карте в зависимости от рельефа, при этом даже не важно летающий ли он или плавающий, всё одно. Максимум что из этого можно выжать - сравнивать высоту клиффов между двумя юнитами (или юнитом и точкой), что бы определить кто стоит выше/ниже, для реализации чего-то вроде стандартных промахов или подобного.
У юнитов так же есть высота полёта - это такой параметр, который равен текущему расстоянию от поверхности земли под ногами юнита и до высоты, на которую поднята его модель. Она имеется у всех юнитов, но отлична от нуля лишь у тех, которые в стандарте имеют летающий или парящий тип движения. Например, когда Друид-ворон трансформируется его высота так же плавно меняется, ибо в облике эльфа высота нулевая, а в облике птицы - ... ну где-то 200-300 наверно, не знаю точно. Эту высоту можно регулировать триггерно, но работает только с теми юнитам, которые имеют указанные выше типы движения (или хотя бы могут превратиться в того, кто таким владеет, в чём собственно и заключается метод поднятия в воздух изначально НЕ летающих юнитов, например под действием триггерных скиллов).
Так же в игре имеется еще одна высота - высота точки на рельефе. Она равняется значению абсолютной высоты конкретной точки на рельефе относительно общего нуля. Её можно получить функцией GetLocationZ(point), где point - конкретная точка.
Для получения и сравнения абсолютных высот юнитов можно использовать высоту точки на рельефе+высоту полёта юнита. В первую очередь это применимо для создания эффекта молнии, высота которого регулируется (по XYZ, вместо XY), а не определяется автоматически высотой рельефа (при XY).
эта задача даже слишком простая чтобы спрашивать о ней
Не бывает простых или сложных задач. Всё относительно твоих собственных знаний/умений. Начинать развернутый ответ с указания на "простоту" так же бессмысленно, как и спорить что это якобы имеет смысл.
перебирать всех юнитов на карте и если они находятся на определенной высоте
Надо перебирать не всех юнитов, а только тех для которых данный эффект уместен, иначе это бесполезная нагрузка.
ставить им хп на минус 30% от текущего
Вариант с "минус 30% от текущего" никогда не убьёт юнита, т.к. часть от числа никогда не будет равна нулю, а вот значение менее 0.405 - может, но оно так же будет перебиваться регенерацией (если она у юнита имеется). Здесь куча нюансов. Да и скорее всего автору нужно всё же не от текущего.
нормально ты вряд ли сделаешь. Нужно будет костылить, ибо даже вот это условие у тебя - "Позиция юнита" создает локацию каждый раз
Всю дорогу костылили костылями и на GUI и на Jass'е, еще за долго до рефорджа. И все утечки тем или иным образом устраннялись, в обоих случаях, но немного разным инструментом - где-то чистится, где-то и вовсе недопускается.
Просто у меня вот в редакторе есть такое же условие но не на локацию а на координаты XY, а у тебя скорее всего нет
Вместо того что бы говорить человеку чего у него нет и что есть у тебя, лучше бы объяснил "почему" и чего именно у него нет, и как ему это получить. Вместо пустословия нужно заниматься развитием и образованием юзеров, а не плодить показуху и позерство. Скажи ему прямым текстом где и какой редактор ему желательно скачать и как им пользоваться. Нет желания? Тогда молчи.
Если хочешь страдать/костылить, то лучше сразу на хайве спрашивать, там в этом очень хорошо разбираются
Действительно. Зачем нам свой сайт с русскоговорящим комьюнити, когда мы всегда можем просто посылать людей сразу на хайв, м?
Отпредели чем является кнопка выбора расы. Абилка? Юнит? Предмет?
Найди событие, которым скорее всего вызывается срабатывание выбора - каст абилки, продажа юнита, продажа предмета.
Есть и другие варианты, например бывало что отлавливали "смерть юнита", т.к. покупной юнит имел 1хп и отрицательную регенерацию, от чего тут же и умирает. Не очевидной решение, но бывает и такое.
» WarCraft 3 / Видимость "туман войны" не работаетЗдравствуйте, подскажите…
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
А вот уже в иначе можно сделать проверку для всего остального.
Попробуй сделай на голой карте, а я уже посмотрю что к чему.
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
а ещё я знаю что можно извращаться с зельем вампиризма, но... )))
» WarCraft 3 / таймер времени игры
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
Изучай.
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
» WarCraft 3 / таймер времени игры
Ред. Extremator
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
Frosty102: Да, именно так - все вампиризмы и прочие абилки (пассивки на атаку) надо будет сделать полностью триггерными.
Frosty102: Да никак вообще. Его эти яды не касаются его и ничего на них не срабатывает кроме атаки, вот и всё. Это работает совсем не так как пассивки Сларка/Найкса в доте, когда Радианс своим периодическим уроном проскакивал вперед после замаха, но до фактического удара.
Сам триггер выключать/включать не обязательно, если всё будет сделано правильно.
Не нужно чекать оба баффа яда, используй один, просто поставь его ДВА раза в самой абилке.
Удаляй бафф яда СРАЗУ ЖЕ, а уже потом проверяй чем владеет "источник урона".
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
Ред. Extremator
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
Ред. Extremator
» WarCraft 3 / Как отследить урон от руки/заклинаний? Какую систему…
Ред. Extremator
» WarCraft 3 / Не понимаю в чём дело, но юниты не добавляются в группу юнитов,…
» WarCraft 3 / Иконка отрицательного и положительного эффекта
Ред. Extremator
» WarCraft 3 / Нанесение урона при нахождении на высоте
Ред. Extremator
» WarCraft 3 / Нанесение урона при нахождении на высоте
Ред. Extremator
» WarCraft 3 / Всем привет! Уже который день бьюсь головой по этому вопросу и…
Ред. Extremator
» WarCraft 3 / Нанесение урона при нахождении на высоте
» WarCraft 3 / Нанесение урона при нахождении на высоте
Нет желания? Тогда молчи.
» WarCraft 3 / Всем привет! Уже который день бьюсь головой по этому вопросу и…
Найди событие, которым скорее всего вызывается срабатывание выбора - каст абилки, продажа юнита, продажа предмета.
» WarCraft 3 / Приветствую, господа. Подскажите, а как через MPQEditor…