26

» WarCraft 3 / Очистка данных типа real или integer?

A unit will always keep a tiny bit of memory, even when removed properly. 0.04 kb and unpreventable.
Вдруг глобальная пользовательская ссылка на юнита, когда её переназначают на другого юнита, тоже оставляет утечку в памяти, тип object же?
Хотя нет, точки и группы создают же объект, а эта просто ссылается.
26

» WarCraft 3 / Сделать невосприимчивость к магии доступной после иследования

Uasya, тогда приходят в голову два варианта:
  • Сделать двух одинаковых юнитов, но у одного будет способность Тёмный (Орда) с превращением во второго, а у другого невоисприимчивость к магии. Исследование будет в требованиях к Тёмный, так все твои юниты после завершения исследования перевоплотятся в невосприимчивых к магии. Это без триггеров;
  • Делаешь пустышку с требованием исследования, своему типу юнитов даёшь эту пустышку, после завершения исследования блокируешь пустышку и выбираешь всех юнитов твоего типа у игрока, делаешь ещё триггер, что если юнит входит в игровую область или меняет владельца и у его владельца изучено исследование, то дать юниту способность.
Идеи NazarPunk тоже подходят.
26

» WarCraft 3 / Сделать невосприимчивость к магии доступной после иследования

Здесь такие же картоделы, как и ты, а не служба поддержки World Editor от Blizzard, чтобы дать «простое решение».
Ты уже озвучил решение, триггерно заблокировать способность у игрока, а после исследования разблокировать.
Если не поможет, то будет смысл спрашивать.
26

» WarCraft 3 / WFE - Warcraft Feature Extender

В конкурсе мини-игр есть такие карты, например, Mazer.
Не могу найти темы с конкурсом, там в комментариях ещё были
да это она и оказалось, в архиве Mazer и BlastBusters
26

» WarCraft 3 / WFE - Warcraft Feature Extender

Есть карты, куда импортирована dll renderedge, не все из них у меня работают на основной версии варика, потому все их запускаю на старой версии варика, которая перегружена всякими утилитами и модификациями. Так вот в теории эта dll позволяет использовать возможности renderedge у любого пользователя, который запустил карту, пусть на практике иногда это не получается.
26

» WarCraft 3 / WFE - Warcraft Feature Extender

Да нормальные вопросы. Хочется использовать утилиту не только для себя, а у всех игроков в карту, даже если они её не устанавливали. В карты с мемхаком ведь можно играть без мемхака, вот и с этой охота так.
26

» WarCraft 3 / Очистка данных типа real или integer?

они кэшируются
статья по ссылке неплохая, но ей не хватает информации по объёму каждого типа утечки памяти и информации по юнитам, будут ли переменные типа unit расходовать больше памяти, чем юниты сами по себе, одинаковы ли в этом плане bj_-глобалки и пользовательские глобалки?
26

» WarCraft 3 / Юниты тупят при передвижении

JackFastGame, тесты показывают, что созданный последним юнит почти полностью синхронизирован с главным юнитом, предпоследний чуть больше тормозит и так далее до первого - самого медленного. Пробовал и циклом отдавать приказы, и отдельным триггером для каждого клона, но всякий раз чем младше клон, тем он быстрее реагирует.
Как бы продолжу тесты, меняя очерёдность отдачи приказов и принадлежность разным игрокам, но это скорее из-за интереса к механикам игры, чем в надежде решить проблему. Но это точно показывает, что дело не только в частых приказах, а в необходимости времени на исполнение каждого приказа.
Разные игроки для клонов работают без задержки.
Вариант такой есть: делаешь морф в такого же юнита без атаки, отображения на миникарте и с обзором 0, на его основе делаешь клонов разных игроков, но твоего цвета, даёшь им классификацию страж, чтобы не имели панели приказов. С помощью способности телескопа гоблинов устанавливаешь обзор твоему морфу. Так юниты не должны тормозить, но ты не сможешь видеть ими, если только не создашь для каждого клона специальных дамми для обзора. Основной же минус в том, что враг определит среди клонов своих, если их встретит.
Хотя можно дать клонам Москиты, а на их место каждые 0.03 секунды перемещать юнитов с невидимой моделью и без физического размера с collision off, но видимым портретом. Они бы могли служить и для обзора вместо дамми, но при этом надо синхронизировать и наложенные заклинания, типа подкопа, стана, сна. Короче, очень суровый костыль.
Загруженные файлы
26

» WarCraft 3 / Способности и алгоритмы на заказ

Делаешь два триггера:
Событие: Боевая единица - Юнит Начинает применять способность
Условие: (Ability being cast) равно ТВОЯ_СПОСОБНОСТЬ
Действие: Спецэффекты - создать спецэффект в (Target ability being cast)
Set ПЕРЕМЕННАЯ_КАТЕГОРИИ_СПЕЦЭФФЕКТ = (Last created special effect)

Событие: Боевая единица - Юнит Приводит способность в действие
Условие: (Ability being cast) равно ТВОЯ_СПОСОБНОСТЬ
Действие: Спецэффекты - Destroy ПЕРЕМЕННАЯ_КАТЕГОРИИ_СПЕЦЭФФЕКТ
26

» WarCraft 3 / Очистка данных типа real или integer?

Нет, они не утекают.
Утекают группы, точки, эффекты, строки, вроде как камеры и многие объекты типа handle, но не все, есть некоторые псевдохэндлы. Но в этом не эксперт, просто ретранслировал информацию, которую прежде читал.
строки не чистятся

Вот тут о том, что текстаг не является настоящим хэндлом, но не знаю, создаёт ли он ещё утечки кроме утечки строки.
DracoL1ch:
тексттаг не является настоящим хендлом и не подвержен синхронизации, каждйы клиент имеет свои таги
аналогично молнии и уберсплаты
проверяется GetHandleId(объект)
если результат меньше 0x100000 - это локальный объект без синхронизации
Странно, что нигде не видел статьи с полным списком возможных утечек. По идее за столько лет кто-то мог бы и заморочиться.
26

» WarCraft 3 / Использование скрытого скилла

Дай ему классификацию страж на время морфа, так у него все кнопки на панели приказов пропадут, но триггерно будут выполняться. По идее с классификацией страж можно было бы и не делать юнита нейтрально-пассивным, а дать классификацию, убрать какую-то пассивку, чтобы освободить место, дать и использовать морф, подождать конца перевоплощения, убрать морф, вернуть пассивку, убрать классификацию страж.
26

» WarCraft 3 / Использование скрытого скилла

Во время морфа юнит всё равно перестаёт быть управляемым, делаешь его нейтрально-пассивным, у него разблокируется заблокированная способность, отдаёшь приказ на её выполнение, отдаёшь обратно игроку.
Но нужно будет на время передачи фиксировать лимит пищи и добавлять к выбранным юнитам, если он там был. А для этого время манипуляций должно быть минимальным, желательно не более 0.003 сек.
26

» WarCraft 3 / Создание эффекта и урона при входе в область

Rockmaf:
Что то типа,только при касаний юнит должен умирать.
Подозрительно похоже на способности взрыва гоблинов, либо гоблинской мины.
26

» WarCraft 3 / UnitApplyTimedLife без убийства юнита

Конечно, можно попробовать реализовать костыль, когда вместо юнита выбирается другой, с таймером, который можно ставить на паузу. Но сразу проблемы возникают с отдачей приказов такому юниту на паузе, с анимацией портрета при выборе и отдаче приказа, сможет ли юнит произнести что-то, будучи на паузе, и самми баффы на таком юните будут отсутствовать, а ещё выбор юнита отловить будет не так уж просто.
26

» WarCraft 3 / UnitApplyTimedLife без убийства юнита

Упоминал, что играл в карты, где подобное было реализовано. Это какие, например?
26

» WarCraft 3 / UnitApplyTimedLife без убийства юнита

Можно ещё цвет юнита менять, например, от насыщенного красного до нормального)
26

» WarCraft 3 / UnitApplyTimedLife без убийства юнита

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

» WarCraft 3 / UnitApplyTimedLife без убийства юнита

NazarPunk, предлагает просто триггерный таймер, который не отображается визуально.
Можно сделать над юнитом шкалу времени действия, как полоска здоровья.
26

» WarCraft 3 / UnitApplyTimedLife без убийства юнита

Опиши подробнее задачу. Тебе нужен юнит с превращением, таймер превращения которого можно остановить, либо нужно просто отобразить таймер на юните? Зачем останавливать и при каких условиях это следует делать?
26

» WarCraft 3 / По поводу Тумана войны

Это странно, может область нужно создать во всю карту и её в модификаторе видимости указать? Но сначала попробуй где-то в свойствах карты убрать галочку Скрытые области частично видимы.