30

» WarCraft 3 / Угон транспорта

Не доводилось сталкиваться с кривым радиусом каста в чужих картах.
А ты попробуй целенаправлено цеплять краешком круга, тебя ждёт много интересных открытий.
и тут проблемно будет "средний физ размер" высчитать, мягко говоря
Не вижу сложностей. Заводишь себе константу, ложишь туда 200 и на большинство случаев должно хватить. Если не хватит, то добавляешь сколько нужно.
Хуже, если не зацепит, хотя должно было.
Так в том и проблема, что если не заморачиваться, то и не цепляет.
30

» WarCraft 3 / Угон транспорта

А так всё ещё проще оказалось.
Проще то проще, только вот почему-то нормального круга каста в тригорных заклинаниях можно по пальцам пересчитать. Хотя что может быть проще при добавлении юнитов в группу добавить радиуса с запасом, а потом отфильтровать через:
constant native IsUnitInRangeXY takes unit whichUnit, real x, real y, real distance returns boolean
Притом тот же реф или UjAPI позволяют получать размер круга и его не нужно хардкодить в спеле.
30

» WarCraft 3 / Угон транспорта

EugeAl, видать назревает непонимание в терминологии. Физический размер это диаметр окружности, которая используеется при расчёте проходимости. Возможно радиус, я точно не помню. Для дальнейших рассуждений возьмём диаметр.
Дальше проще всего показать на рисунках.

IsUnitInRange

Смотри, есть юниты A и C, половина физ размера для юнита A это радиус AB. Для юнита C это отрезок CD.
Ну и дальге нужно понять, что возврашает функция:
native IsUnitInRange takes unit whichUnit, unit otherUnit, real distance returns boolean
И здесь всё просто:
  • Еcли окружности пересекаются, то она вернёт true
  • Если нет, то real distance >= BD.
Загруженные файлы
30

» WarCraft 3 / Угон транспорта

EugeAl, та, которая физический размер. Обе функции его учитывают:
constant native IsUnitInRange takes unit whichUnit, unit otherUnit, real distance returns boolean
constant native IsUnitInRangeXY takes unit whichUnit, real x, real y, real distance returns boolean
Напрямую в ваниле его не получить, так что это единственный способ сделать нормальный зацеп.
Я например её юзаю в свободных от осей прямоугольниках и в AOE, чтоб цеплять ровно в круг:

Тупая проверка расстояния

IsUnitInrangeXY

30

» WarCraft 3 / Угон транспорта

для радиуса поможет jass функция IsUnitInRange, она проверяет расстояние между юнитами
Стоит уточнить, что она проверяет расстояние с учётом коллизии, а не тупо между координатами.
constant native IsUnitInRange takes unit whichUnit, unit otherUnit, real distance returns boolean
30

» WarRaft / IntelliJASS

Как сам думаешь, это всё удобно или нет?
Уже почти седьмой год IntelliJ является моей боевой IDE. Многие вещи там сделаны довольно таки удобно. А если сравнивать с VSCode, то это верх дизайнерского изыска. За всё это дело приходится платить оперативой, что собственно не сложно.
Ну и не забываем про API для разработчиков. Когда кто-то напишет Language Server для JASS то пинганите. Я пока что не видел ни одного редактора, который разбирает жасс семантически. Только унылая подсветка по шаблонам.
В - Валидация
Загруженные файлы
30

» WarRaft / IntelliJASS

Нужно ли это для JASS, не знаю.
Для Jass это не стоит.
Есть люди, которые думают иначе.
Загруженные файлы
30

» WarRaft / IntelliJASS

Противоположный подход - vscode + language server
Странно, а как я в IntelliJ под Flutter разрабатываю с отдельным LS?
30

» WarRaft / IntelliJASS

Я не использую Toolbox
Преимущество Toolbox в том, что он позволяет паралельно держать несколько версий IDE без особого напряга. При мажорных обновлениях не все плагины успевают подтянуться, так что иногда очень выручает.
30

» WarRaft / IntelliJASS

Так же программа сильно тормозит, несмотря на указанные выше свойства компа (!)
Странно, у меня не тормозит. Наверно под винду не оптимизировано.
Загруженные файлы
30

» WarCraft 3 / без вопроса

Предупреждение автору публикации

3 пункта: 10.2 Создание ресурса категории "Вопрос" без вопроса.
30

» WarRaft / IntelliJASS

EugeAl, откуда ты собрался брать slk как не в архивах? А распаковка архива это совсем другая тема.
30

» WarRaft / IntelliJASS

EugeAl, я подготовил себе репу с содержимым лицензионной версии. Если твои slk отличаются, то готовь свою репу.
30

» WarRaft / IntelliJASS

EugeAl, я просто присрал плагин и чё-то мне кажется, там есть проблемы с цветами. Разбираться мне лень, лучше займусь slk. Версия уже отправлена на модерацию, скоро сможешь сам пощупать.

P. S. Конверт в принципе не сложно приделать, но пока это не вприоритете.
30

» WarRaft / IntelliJASS

В общем, на практике тогда буду смотреть, что работает, а что нет ещё.
Сейчас идёт добавление поддержки всех форматов, встречаемых в игре. Немного спойлеров следующей версии:
Загруженные файлы
30

» WarRaft / IntelliJASS

Включает ли он в себя функционал JassCraft и JNGP(работа с кодом) полностью?
На данный момент нет, но это предполагается. Плагин разрабатывается в свободное время, которого нет.
При написании функции предлагаются ли в реальном времени варианты функций из листа функций?
Я встрял на этапе добавления SDK, которое позволит указывать для каждого проекта свой набор common.j и blizzard.j.
Свои функции и переменные добавляются ли в лист функций?
Предполагается полноценная поддержка кода, как это сделано во всех остальных языках программирования.
Можно ли экспортировать код в открытую карту в WE, в раздел "нестандартный код"?
Такой мув потребует серьёзного допила JNGP, если кто его допилит, то завезти такое будет не сильно сложно.
Можно ли настраивать в самой программе цвета фона, синтаксиса, итд?
Можно. Это описано в графе Code Style.
Результаты компиляции отличаются ли от результатов компиляции в редакторе карт? Конечный код работает ли быстрее в игре?
Это плагин для работы с кодом. Компиляцией занимается игра. Так что быстродействие зависит только того, каким образом написан код.
Если речь о препроцессоре vjass/ZINC, то теоретически можно более оптимально их скомпилировать, но приоритеты смещены в сторону AngelScript и транспиляцию в него.
Есть ли в программе русский язык, помимо английского?
Китайский точно есть, значит и русский можно сделать. Когда функционал устаканится, то займусь добавлением пакетов локализации.
Простая ли установка? Или она вовсе не требуется?
  • Устанавливаем JetBrains Toolbox
  • В нём тыкаем на бесплатную IntelliJ Community
  • Устанавливаем плагин штатным образом из маркетплейса
Насколько это сложно решать уже конечному пользователю
30

» WarCraft 3 / Код Jass

EugeAl, я так понимаю, использовать оформление кода это зашквар?

Подробно прочитать про условия можно например в этой статье.
30

» WarCraft 3 / Как взломать карту Warcraft 3?

EugeAl, А что насчет местоположения? Как разместить юнита или предмет на карте, или поменять местоположение?
Все местоположения юнитов находятся в war3map.j.
30

» WarCraft 3 / Код Jass

Похоже на какой-то рандомный копипаст.

Сравни со своим кодом:
function AddGold takes nothing returns boolean
    local unit f = GetFilterUnit()

    if GetUnitTypeId(f) == 'e00D' then
        if GetResourceAmount(f) == 10 then
            call KillUnit(f)
            call BJDebugMsg("Kill!")
        elseif GetResourceAmount(f) >= 10 and IsUnitDeadBJ(f) == false then
            call AddResourceAmount(f, -10)
            call SetPlayerState(GetOwningPlayer(f), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(GetOwningPlayer(f), PLAYER_STATE_RESOURCE_GOLD) + 10)
            call CreateGoldTextTag(0, GetUnitX(f), GetUnitY(f), "+10")
        endif
    endif

    set f = null

    return false
endfunction

function Trig_Gold_Actions takes nothing returns nothing
    local group g = CreateGroup()

    call GroupEnumUnitsInRect(g, GetWorldBounds(), function GoldEnumFunc)
    call AddGold()
endfunction

//===========================================================================
function InitTrig_Gold takes nothing returns nothing
    set gg_trg_Gold = CreateTrigger()
    call TriggerAddAction(gg_trg_Gold, function Trig_Gold_Actions)
    call TimerStart(CreateTimer(), 2., true, function Trig_Gold_Actions)
endfunction

Загруженные файлы
30

» Администрация XGM / Поясните пожалуйста

Перед законом все равны, просто модераторы люди и физически не могут читать все комментарии.
Загруженные файлы