28

» WarCraft 3 / Связанные юниты

...которая медленнее
какую-то чушь сказал_)
поиск ключа циклом намного медленнее хэштаблицы
28

» WarCraft 3 / Проблема с ботом

что за проблема ты естественно не объяснил, ходите к гадалкам с такими вопросами
28

» WarCraft 3 / Зависимость уровня способности у юнита

Шанс 1 к 1000 настолько мал, что им можно пренебречь.
так и психуют ребята когда не могут понять в чём проблема и почему карта такая багованная
28

» WarCraft 3 / Как отделить деревья от разрушаемого?

EugeAl, работает не тип цели а классификация войск, этого нет у разрушаемых
подозреваю только бд делать, где сохранять в равкод разрушаемого булевую, а потом доставать в нужных циклах
28

» WarCraft 3 / Как сделать AOE способность?

Никто бесплатно за тебя ничего делать не будет.
Ну почему, есть тема с заклинаниями на заказ и я
28

» WarCraft 3 / Приказ оставаться на месте

msproper, ну можно при спавне/инициализации юнитов, сохранить в них позицию. Сделать простую систему отлова нахождения в бою и возвращать обратно на свои посты юнитов
28

» WarCraft 3 / Как сделать AOE способность?

Даммикаст банальный. Делаешь юнита-пустышку и абилку пустышку, при касте которой выбираешь всех юнитов в области, создаёшь даммика, выдаешь ему абилку нужную и приказываешь её кастовать, ещё таймер истечения даёшь
28

» WarCraft 3 / Как изменить звук стрельбы лука

Aльфонс, звук выстрела либо в модели либо у лучницы в архиве, если второе, то достаточно просто найти его, запомнить путь и указать его в импорте
28

» WarCraft 3 / Странности условиях триггеров

Lasto4ka, я не буду это документировать, оно мне не нужно, если же тебе это необходимо, то просто прочитай комментарии в следующем вопросе:
28

» WarCraft 3 / Странности условиях триггеров

Тут утечка локации, потому что GetUnitLoc создает новую, но она потом не удаляется. Решение в ГУИ: записать GetUnitLoc в глобальную (или локальную) переменную, пройтись по группе, и удалить локацию (DestroyLocation).
Если упоминаешь одну утечку, расскажи и об другой в той же строке
Lasto4ka:
Я не знаю как принято, но по-моему единственный выход - это локально создать группу, чтобы она у кастующего юнита была своя, а в конце триггера её удалять
Темповый таймер, массивные группы и темповая целочисленная для работы с индексом массивных переменных. Вот тебе и гуи муи без локалок и хэша

По типу работы со стеком, когда последний элемент ставится на место текущего и общий размер уменьшается на единицу
28

» WarCraft 3 / Не добавляются юниты в массив [2 и более] отряда

Leviathan, хэндл это объект
В гуи ты никак не поставишь выше максимального размера. Чревато только лишним созданием ненужных групп. То есть ты то можешь создать 100+ групп, но в игре ты используешь например всего 6, в итоге остальные группы просто так занимают память. Да и в принципе это банально занимает какую-то долю секунды для загрузки карты, так что лучше создавать по мере необходимости, а не про запас (конечно возможны наверное какие-то исключения)

28

» WarCraft 3 / Не добавляются юниты в массив [2 и более] отряда

Borodach, всё правильно, хэндлы требуют указания массивности, на это количество будет обрабатываться действие Create в цикле при инициализации. Если не указывать массивность, то придется самому создавать группы действием
set udg_Group[index] = CreateGroup( )
28

» WarCraft 3 / Как можно расширить макс число плавающего текста?

Ну, можно попробовать создать хоть 1к текстагов но отображать только те, что в пределах экрана, если их не больше 100 штук конечно
28

» WarCraft 3 / Как можно поместить здание под ландшафт?

RvunOchka, ну если это не помогло тогда только модель править, я бы и сам это сделал, но нет компа, так что обратись в эту тему xgm.guru/p/wc3/needmodels
28

» WarCraft 3 / Как можно поместить здание под ландшафт?

Минусовую высоту пробовал ставить уже через ро? Если не помогло, то наверное только модель опускать
28

» WarCraft 3 / Странности условиях триггеров

Rare, на первом скрине Get matching/filter unit должно быть, а не picked в условиях
На втором скрине должно нормально работать, и можно спокойно убрать проверку на союзника и на юнита который кастует, оставив только проверку на здание, наземность и противника

Скинь карту с нерабочими вариантами, которые должны были по логике работать, с учётом вышесказанного
28

» WarCraft 3 / Проблема с ядом

Meddin, так убери просто условие и всё. Там изначальное условие чтобы юнит которого бьешь не получал ещё больше урона, только те что рядом, инвертировав условие получает дополнительный урон только юнит которого бьёшь, если убрать условие то будут и соседние дамажиться и тот которого бьёшь

Да пиши конечно
28

» WarCraft 3 / Проблема с ядом

Meddin, зачем мне инвертировать условие? Тогда по сути юнит, которого бьют, получит 2 раза урон. В карте всё работает, я ж скинул видео, соседние дамажутся

Скинь мою карту после того как проверил и заметил, что соседние не дамажутся. Если ты вообще ничего не изменял, то фиг его знает если честно
28

» WarCraft 3 / Проблема с ядом

Блин, слушай, и верно, у тебя тоже тогда рядом стоящие не дамажатся, как от сферы огня, а было бы круто, ну это ничего, достаточно добавить будет после этой строки
ложь, открыл карту всё работает нормально, даже убрал огонь для наглядности, это ты что-то накосячил
Хотя хотелось бы конечно через одну, потому как читал в статьях тут, что создание хэш-таблицы дорогое и лучше создавать одну на всю игру в карте.
добро пожаловать в 2022 год, мифы разоблачаются

одна хэштаблица тебе нужна для яда, который будет сейвиться по ключу кастера и таргета, но её так же можно и для таймеров собственно юзать и прочего, нужна эта хэштаблица потому что если ты ещё что-то сохраняешь в кастера (в моём случае это эффекты сильного удара), то есть шанс перезаписи, естественно ты можешь сохранить допустим в ячейку 1, 2, 3 и так далее эффекты, ибо GetHandleId возвращает какие-то миллионные числа и шанс перезаписи крайне мал, но он всё равно есть, а значит лучше просто отдельную хэштаблицу для этого дела оставить, правда если у одного героя будет несколько ядовитых абилок, то тут видимо нужно как-то додумывать систему, оффсеты делать
Загруженные файлы
28

» WarCraft 3 / Проблема с ядом

Meddin, так ты сам в условиях поставил чтобы не учитывался юнит, которого бьёт герой
			loop
                set nextUnit = FirstOfGroup(udg_TempGroup)
				
                exitwhen nextUnit == null
                call GroupRemoveUnit(udg_TempGroup, nextUnit)
                
                if (nextUnit != target and IsUnitEnemy(nextUnit, GetOwningPlayer(caster)) and (GetUnitState(nextUnit, UNIT_STATE_LIFE) > 0.405)) then
                    call DisplayTextToForce(GetPlayersAll(), "Target = " + GetUnitName(nextUnit))
                    call UnitDamageTarget(caster, nextUnit, damage + abilityLevel * 10, false, false, null, null, null)
                endif
            endloop
Загруженные файлы