9

» WarCraft 3 / Спавн юнитов из области в другую область

Не знаю как на русский перевели Picked, но именно этот вариант нужен для работы с юнитами в группе с помощью "Выбрать каждого юнита ... несколько действий". Скорее всего "выбранный юнит".

Скрин.
Загруженные файлы
9

» WarCraft 3 / Воскрешение в форме друида

Помню упоминание бага когда хендл героя менялся. Но я не знаю с чем связано это. Мб и не в этом дело.
И да, можно глянуть триггеры целиком?
9

» WarCraft 3 / есть ли что то похожее на BlzGetMouseFocusUnit()

Обычно во время Shift определение последующих приказов не работает.
Работает в момент получении очередного приказа.
9

» WarCraft 3 / Группа из N-ых юнитов считаеться как 1-н.

Если речь только о совместном движении отряда и общем уроне, то это изи делается.

Просто дублируешь приказ отданный одному юниту на всех.
И связываешь всех в отряде эмпатией.
9

» WarCraft 3 / Лагает из-за большой группы

Нативные функции вызывают утечки, если их не обнулять. Та же работа с точками.
Сами по себе они не формируют утечек же.
rsfghd:
В бж for group нет утечек, туда лишь добавили условие по уничтожению группы если bj_wantDestroyGroup равна true. Но следующие функции вызывают утечку, например, выбрать всех юнитов на карте, там создаётся локальная группа которая никуда не девается
Я так и написал, разве нет?
9

» WarCraft 3 / Группа из N-ых юнитов считаеться как 1-н.

PAMEXI:
map_maiker:
А для незнакомых с c&с 3 можно пояснить? Типа отрядов чтобы было?
Вот пример: www.youtube.com/watch?v=6GKF0_eSd7M&t=1s
Ничего же не ясно.
Гляньте эту ссылку: xgm.guru/p/wc3/detachsys
Там система отрядов DoW заявлена, но мб подойдёт.
А если не подойдёт, то опишите необходимый функционал, тогда и думать можно.
9

» WarCraft 3 / Лагает из-за большой группы

Изначально было как обычно, через множество групп с нужной выборкой и их очистку. Но было падение фпса, спустя определенное время игры. С помощью счетчика хендлов выяснили что "Pick every unit in" вызывает утечки. Был предложен такой вот метод выбора всех юнитов через локалку и с помощью ifthenelse отсеивать нужных. В принципе помогло с фпсом. Он стабильный. Но вот видимо все эти переборы вызывают микрофризы.
А утечки точно из-за самого выбора? Насколько знаю, нативные функции утечек не вызывают, а BJ реализация ForGroup вроде без утечек...
Мб дело в обработке группы было?
И на счёт групп - пробовали выделить заранее штук сто-двести глобальных групп и использовать по необходимости? Без создания новых.
Кстати, GetUnitsInRangeOfLocMatching() вроде вызывает утечку. Это получение группы юнитов, находящихся внутри окружности с радиусом и подходящих по условию. Утечка в том, что возвращается локальная переменная. Лечится как раз использованием глобальной переменной. (Глобальной переменной присваивается значение локальной, локальная обнуляется, глобальная возвращается)
Venommm:
Если такой способ действительно эффективней, можно пожалуйста самый элементарный пример, хотябы в виде скрина.
Вам ну гуи, да? По моему, на гуи так не получится. Насколько помню, GroupEnumUnitsInRange() и ForGroup() нет в действиях, а аналоги утечны. Но я могу и ошибаться, сужу по коду в Blizzard.j, а не по тестам.
9

» WarCraft 3 / пользовательский параметр боевой единицы

Просто целое число, привязанное к юниту. Использовать можно соответствующе - хранить там какое-то значение.
Но так как это число одно для каждой единицы, это не всегда удобно.
9

» WarCraft 3 / Лагает из-за большой группы

biridius:
Можно сделать массив и перебирать юнитов порциями штук по 50 за раз вместо 500 за раз, распределив работу.
Типа каждые 0.01 сек отсчитал 50 юнитов, все, дальше в следующую долю секунды следующие 50 юнитов, и этот счетчик обнулять раз в секунду, возвращаясь в начало круга, чтобы каждый юнит обрабатывался один раз в секунду.
Рисовать в гуи я это все конечно не буду.
Зачем? Имхо, лучше при получении ауры сохранять владельца, а потом проверять окружающих и раздавать баффы/дебаффы.
9

» WarCraft 3 / Лагает из-за большой группы

В GroupEnumUnitsInRange выдаю бафы аур, в forgroup - убираю бафы, кто не подходят под условия.
А что быстрее, перебрать юнитов в группе или в хештаблице?
9

» WarCraft 3 / Лагает из-за большой группы

Venommm:
PT153:
А что в этих условиях?
Проверка на тип юнита и наличие бафа или других подобных маркеров
Можно пример?
Ибо не очень ясно почему нельзя сразу проводить действия с нужными юнитами.
9

» WarCraft 3 / Перенос имени на другую карту

А в чём проблема просто в кеш положить? Так же как с переносом героев и прочего механика.
9

» WarCraft 3 / Карта может зависнуть на некоторых ПК после 12 минуты

В общем я могу предположить, что это какой-то циклический триггер, а конкретных причин может быть бесконечно много, без карты что-либо сказать невозможно.
В таких случаях вар зачастую просто вылетает. Хотя мб и не всегда.
>Возможна какая-та мелочь, из-за которой просто-напросто отваливается варик по какой-либо причине, Но я её найти не могу в этом-то и проблема. Если вы захочете мне помочь в данной проблеме то могу скинуть исходник.
А это когда началось? Посмотрите что меняли в карте в тот момент.
9

» WarCraft 3 / Самый сложный вопрос на XGM :D

Вообще, я нашёл такую замечательную функцию... Пара скринов в прикреплённых файлах.
Загруженные файлы
9

» WarCraft 3 / Отследить удар рукой

Slonick:
сделать так, чтобы удар с руки был единственным способом нанесения урона непосредственно героем, т.е. все скиллы кастовать с даммиков.
Zetox:
В старой моей карте, всем юнитам давал 200% к магической защиты (через спел) тем самым весь магический урон был отрицательным.
9

» WarCraft 3 / Запуск .exe из архива карты

Nelloy:
map_maiker, склоны = "искривление" + модель склона. Для летающих делаешь триггер корректирующий высоту полета. Воду из катомных моделей собирать надо будет.
Я такие советы и читал и слышал. Речь же не про имитацию, а вопрос вообще не про это.
Вообще мне кажется, что мемхаком как-то можно менять рельеф, всё же работа с памятью... Хз правда как найти где в памяти это хранится... Но здесь и не про это речь.
9

» WarCraft 3 / Запрет изменения общих войск

mistwood:
map_maiker:
Мне кажется, это должно быть как-то так: (скрин)
Спасибо, тоесть везде должно быть ВКЛ?
Ну если написано "фиксировать", то да. Но справедливости ради - я не проверял это, просто знаю что такая возможность есть, заблокировать сам интерфейс передачи ресов и контроля.
9

» WarCraft 3 / Самый сложный вопрос на XGM :D

local integer i = 0
loop
exitwhen i == 10
if GetHeroInt(Pets[Player(i)]) >= GetNeedInt() then
call GivePrize2Player(Player(i))
else
call GiveFine2Player(Player(i))
i = i + 1
endloop
Не знаю зачем я это написал, но пусть будет.
9

» WarCraft 3 / Отследить удар рукой

Сразу оговорюсь, если молот - дамми юнит, то при повороте (смене направления) он не будет лететь, как оригинальный молот бурь, ибо оригинальный сворачивает по кругу(как пангольер в доте 2), юнит же будет разворачиваться быстро.
По идее ничего не мешает придумать подходящий алгоритм полёта.
rsfghd:
допустим, переменную целочисленной на 1, и если юнит получил урон и эта переменная равна 1, то урон был от абилки
Если речь про глобальные переменные, то звучит как не очень идея. Если мультииспользование подразумевается.
9

» WarCraft 3 / Самый сложный вопрос на XGM :D

А в чём проблема-то? В константах есть длительность суток, в триггерах можно выставить время суток. Питомцев хранишь в массиве, в триггере обращаешься к ячейкам массива (индекс - номер игрока) и чекаешь инту петов.
9

» WarCraft 3 / Запуск .exe из архива карты

Вы бы писали че вы собрались делать.
Да всё то же, думаю как можно динамически менять рельеф. Ну то есть уровни рельефа, а не искривления и тайлы.
quq_CCCP:
зачем тебе что то вкладывать в карту?, вовсе одна идея тупее другой, все что надо должно быть в карте, нет никакой надобности туда потом чето загружать, это тупость.
Я не про это. Я про то, что в саму карту положить скрипт/прогу, а потом запустить.
9

» WarCraft 3 / Запуск .exe из архива карты

quq_CCCP, ясно. Просто идея была в том, чтобы использовать только то, что можно вложить в карту.
Кстати, а порядок файлов в архиве можно менять? Например, чтобы дописать в конец нужное.