28

» WarCraft 3 / Самый производительный Bullet Hell

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

» WarCraft 3 / Свойства декорации

Принятый ответ
Не могу найти что надо поставить чтобы менять масштаб разрушаемой декорации по каждой оси отдельно?
Разрушаемые объекты никак, декорации можно.
И ещё кто знает за что отвечают те 3 пункта вверху на скрине?
Загруженные файлы
28

» WarCraft 3 / Самый производительный Bullet Hell

А также, насколько мне изветстно, жары от одинаковых способностей не складываются.
Это так или нет?
28

» WarCraft 3 / Самый производительный Bullet Hell

Из детекта, мне тоже больше нравится аура жара
Мой опыт показывает, что GroupEnumUnitsInRange() показывает себя лучше, меньше лагов. А также, насколько мне изветстно, жары от одинаковых способностей не складываются.
C остальным согласен.
Медленные волны силы/ тёмные стаи
Не используй это, из-за скорости снаряда урон иногда может вообще не проходить или наноситься там, где его раньше не было. Поставь скорость на 2048, длину на 448, пусти сначала одну волну, через 0.4 секунды вторую - вторая не нанесёт урона. Снизь скорость до 1050 - вторая волна нанесёт урон.
28

» WarCraft 3 / Как найти наибольшее из нескольких чисел?

PrincePhoenix, Bubble Sort, Selection Sort, Insertion Sort - сортировки порядка O(n^2). Асимптотически Bubble Sort, Selection Sort всегда выполняются за O(n^2) (то есть во всех случаях), потому вся их разница только в реализации. Insertion Sort же в лучшем случае работает за O(n), потому что делается n сравнений. Лучший случай - массив уже отсортирован. Insertion Sort также лучше показывает себя на почти отсортированном массиве. Потому Insertion Sort объективно лучшая сортировка из всех простых сортировок.
// Сортируем от меньшего к большему
функция сортировка_вставкой(массив) {
    для i с 0 по n-1 делаем
        для j с i-1 по 0 делаем  // если j = -1, то цикл не стартует
            если массив[j] > массив[j+1], то меняем местами массив[j] и массив[j+1],
            иначе выходим из этого цикла
}
28

» XGM Конкурсы / Warcraft 3 Custom Maps Contest 2019

Bergi_Bear, уметь играть в WarCraft 3, значит уметь играть в стандартный режим WarCraft 3, как и в любой игре. Я так понял твои слова. А в стандартный режим он, по крайней мере, умел играть. Понятное дело, что он не про, просто обычный игрок, который умеет в экономику и +- контроль. И он больше "зажравшийся" ютубер, чем стример.
Pavell, чего ты хочешь добиться своими минусами?
PrincePhoenix, я так понимаю, что после выхода стабильного патча конкурс будет продлён?
28

» WarCraft 3 / Как найти наибольшее из нескольких чисел?

Сортировка выбором
Зачем это г, если не хотите делать навороченные сортировки, делайте сортировку вставкой, также интуитивно, но ещё и быстрее.
28

» WarCraft 3 / Способности в редакторе

БезликийСектант, убедись, что разрешены отрицательные значения в настройках редактора. Выделяешь поле для бонуса брони, жмёшь Shift+Enter, ставишь нужное значение.
28

» XGM Конкурсы / Warcraft 3 Custom Maps Contest 2019

не умеющий играть в варкрафт
Играть-то он умеет в WC3 получше меня и многих дургих, просто в некоторые кастомки он играет не разобравшись, а тут она ещё и на ENG.
Вадим снял ролик, так как карта принимает участие в его Гран-При 2, скоро ещё ролик будет, но уже по новой версии.
Bergi_Bear:
уж лучше сам бы записал ролик
Можно, но будет без комментариев. А также так как я всё знаю, то задерживаться на описаниях способностей не буду. Таким образом, зрителю будет не очень понятно, почему всё так происходит.
28

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

Реген равен (0.01 * AbilityLvl * Strength * (1 - PercentHP / 100))
(0.01 * AbilityLvl * Strength * (100 - PercentHP)).
NazarPunk, он адекватно описал ТЗ, а так как сам не умеет, то и пишет тут.
28

» WarCraft 3 / Возможности Lua относительно JASS\vJASS

Pascal и C++ конвертируются в набор процессорных команд, где тоже нет никакого ООП. Выходит в этих языках не может существовать полиморфизма?
Одно дело, когда из ЯП в ассемблер, другое, когда из препроцессора в недоЯП. Ведь речь шла про "настоящий" полиморфизм, то есть из коробки ЯП, а не из его препроцессора.
28

» WarCraft 3 / Возможности Lua относительно JASS\vJASS

Настоящий полиморфизм не существовал на c\vJASS
А он и не мог, ведь c\vJass конвертируются в JASS2, у которого нет даже ООП.
Но в vJass есть эмуляция полиморфизма через массивы и триггеры.
Например, то, что мы не можем использовать экземпляр структуры B в структуре A, т.к. та объявлена ниже, и интерпретатор еще не знает о ее существовании.
Тоже есть в vJass.
Extremator:
Так есть же тип code
А как ты адекватно вызовешь такую функцию и передашь аргументы?
В vJass есть hook, который можно назвать переопределением, что не затрагивает blizzard.j.

Прощай vJass, ты был мне другом, хоть и багованным)
28

» WarCraft 3 / Баг при скрытии приказов 1.26

тк это слишком близкое значение, которое забивается декорацией
Что значит забивается декорацией?
Иначе никак, либо переходи на лицензию, там всё скрывается как надо через максимальный отрицательный инт.
28

» WarCraft 3 / Баг при скрытии приказов 1.26

После повторного запуска карты, без выхода из варкрафта
Если так делать, то свой шрифт остаётся, и заменённые звуки и музыка.
У меня тоже разок вылет был при выделении юнита, когда я скрывал меню строительства нежити через (0, -11), а вместо него подсовывал спелбук. Но такое у меня было лишь раз.
28

» WarCraft 3 / Заклинание: Длань Господня

сожалению кастом код весь инжектится
Это ты про Lua?
Главный вопрос - зачем править руками конфиг и мейн?
Например.
config
//! textmacro InitPlayerWithTeam takes i, team
    set p = Player($i$)
    call DefineStartLocation($i$, CENTER_X, CENTER_Y)
    call SetPlayerStartLocation(p, $i$)
    call SetPlayerColor(p, ConvertPlayerColor($i$))
    static if TestingEnabled then
    call SetPlayerRacePreference(p, RACE_PREF_HUMAN)
    else
    call SetPlayerRacePreference(p, RACE_PREF_RANDOM)
    endif
    call SetPlayerRaceSelectable(p, true)
    call SetPlayerController(p, MAP_CONTROL_USER)
    call SetPlayerTeam(p, $team$)
//! endtextmacro

//! textmacro InitPlayer takes i
    set p = Player($i$)
    call DefineStartLocation($i$, CENTER_X, CENTER_Y)
    call SetPlayerStartLocation(p, $i$)
    call SetPlayerColor(p, ConvertPlayerColor($i$))
    static if TestingEnabled then
    call SetPlayerRacePreference(p, RACE_PREF_HUMAN)
    else
    call SetPlayerRacePreference(p, RACE_PREF_RANDOM)
    endif
    call SetPlayerRaceSelectable(p, true)
    call SetPlayerController(p, MAP_CONTROL_USER)
    call SetPlayerTeam(p, $i$)
//! endtextmacro

//! inject config
    local player p
    call SetMapName("TRIGSTR_001")
    call SetMapDescription("TRIGSTR_024")
    call SetPlayers(MaxUserPlayers)
    static if TestingEnabled then
        call SetTeams(2)
    //! runtextmacro InitPlayerWithTeam("0", "0")
    //! runtextmacro InitPlayerWithTeam("1", "1")
    //! runtextmacro InitPlayerWithTeam("2", "1")
    //! runtextmacro InitPlayerWithTeam("3", "1")
    //! runtextmacro InitPlayerWithTeam("4", "1")
    //! runtextmacro InitPlayerWithTeam("5", "1")
    //! runtextmacro InitPlayerWithTeam("6", "1")
    //! runtextmacro InitPlayerWithTeam("7", "1")
    //! runtextmacro InitPlayerWithTeam("8", "1")
    //! runtextmacro InitPlayerWithTeam("9", "1")
    else
        call SetTeams(MaxUserPlayers)
    //! runtextmacro InitPlayer("0")
    //! runtextmacro InitPlayer("1")
    //! runtextmacro InitPlayer("2")
    //! runtextmacro InitPlayer("3")
    //! runtextmacro InitPlayer("4")
    //! runtextmacro InitPlayer("5")
    //! runtextmacro InitPlayer("6")
    //! runtextmacro InitPlayer("7")
    //! runtextmacro InitPlayer("8")
    //! runtextmacro InitPlayer("9")
    endif
    set p = null
//! endinject
А main для того, чтобы всякие бесполезные надстройки для моей карты не настраивались, которые нужны для остальных карт.
28

» WarCraft 3 / Заклинание: Длань Господня

prog, это лишь мои догадки, скорее всего ты прав. Но глобалки точно инициализируются при клике на карту, потому что если дать неверное значение глобалке, то при клике на карту игра крашнется.
NazarPunk, это не костыли, а весьма удобный способ править функции config и main. Без инжекта тебе после каждого нового сохранения придётся править war3map.lua или war3map.j заново, потому что редактор эти файлы перезаписывает.
28

» WarCraft 3 / Заклинание: Длань Господня

скорей всего юнит не создатся. хотя тестить нужно
Обычно карта просто вылетает. Это как создать регион или выполнить GetLocalPlayer().
NazarPunk:
выполняется там, где объявлен.
Ну так об этом же. Объявил, он и выполнился во время клика на карту (создание лобби с картой).
28

» WarCraft 3 / Заклинание: Длань Господня

BJDebugMsg
Не надо эту функцию использовать, внутри её цикл, есть куда более эффективная функция, которая асинхронна.
function DebugMsg takes string s returns nothing
    debug call DisplayTimedTextToPlayer(GetLocalPlayer(), 0., 0., 5., s)
endfunction
ScopteRectuS, если так написать, то карта вылетит ещё при нажатии на неё, как мне кажется.
NazarPunk:
Только это jass триггер, луа раньше срабатывает.
Там нет триггера, там просто вызов функции из main.

Я верно понял, что союзная нежить будет получать урон?

Я думаю, что блок do...end выполняется во время клика на карту карты (создания лобби для неё), вот и всё. Если это так, то тогда не стоит использовать GetLocalPlayer(), карта вылетит ещё при клике на неё.

Во время создания карты используется функция config, которая также есть и в Lua, насколько помню. Также создаются все глобалки.
28

» Мир безумного / World of Warcraft: «Новый дом»

Meddin, потому что Молот Рока Тралл отдал в Легионе. А этот топор принадлежал Дуротану, отцу Тралла, но это не точно.