28

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

этож в иконках есть)
Там описывается, как эти иконки получить.

AntNo, для common.ai есть изменения?
28

» WarCraft 3 / Загрузка по хэндлу в функцию

Поясните плз. Я делаю действия после возврата из функции. Ну так я заполняю переменную "unit u" значением о юните, так ведь? И в конце я просто обнуляю переменную u, в чём ошибка?
Вот это разве не обнуление ради устранения утечек?
После возврата из функции никакие дальнейшие действия не выполняются. Я говорил про это.
Загруженные файлы
28

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

Чтобы отключать возможность выделения юнитов или сам круг выделения
Перемещение камеры с регулируемой плавностью
Индикатор цели
Эти уже были в 1.31.
28

» WarCraft 3 / Загрузка по хэндлу в функцию

Паузы хороши для синематиков, для мультиплеера же лучше использовать таймеры.

DopaMine, ты опять делаешь действия после возврата из функции.
28

» WarCraft 3 / Почему не работает абилка?(чекните GetDistance)

return полученная способность
Это событие относится к героям, когда они увеличивают уровень способности для героев.
Тебе нужна функция GetLearnedSkill().
28

» WarCraft 3 / Почему не работает абилка?(чекните GetDistance)

quq_CCCP, а вот верно.
globals
...
    unit Caster
endglobals

function TakeUnitsFilter takes nothing returns boolean
    return GetFilterUnit() != Caster and IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(Caster))
endfunction

...

    set Caster = caster
    call GroupEnumUnitsInRange(targets, x, y, 100., Filter(function TakeUnitsFilter))
    set target = FindClosestToXY(targets, x, y)
    if target != null then
        call UnitDamageTargetBJ(caster, target, 100., ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL)
        set target = null
    endif
28

» WarCraft 3 / Почему не работает абилка?(чекните GetDistance)

DopaMine, добавь проверку, что target != caster.
    if target != null and target != caster then
        call UnitDamageTargetBJ(caster, target, 100., ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL)
    endif
    set target = null
28

» WarCraft 3 / Почему не работает абилка?(чекните GetDistance)

Принятый ответ
function PolarProjectionX takes real x, real dist, real angle returns real
    return x + dist * Cos(angle * bj_DEGTORAD)
endfunction

function PolarProjectionY takes real y, real dist, real angle returns real
    return y + dist * Sin(angle * bj_DEGTORAD)
endfunction

function Trig_Hit_Actions takes nothing returns nothing
    local unit caster = GetTriggerUnit()
    local real face = GetUnitFacing(caster)
    local real x = PolarProjectionX(GetUnitX(caster), 100., face)
    local real y = PolarProjectionY(GetUnitY(caster), 100., face)
    local group targets = CreateGroup()
    local unit target
    call GroupEnumUnitsInRange(targets, x, y, 100., null)
    set target = FindClosestToXY(targets, x, y)
    if target != null then
        call UnitDamageTargetBJ(caster, target, 100., ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL)
        set target = null
    endif
    set caster = null
    call DestroyGroup(targets)
    set targets = null
endfunction
DopaMine, у тебя нет вызова FindClosestUnitXY.
28

» WarCraft 3 / Почему не работает абилка?(чекните GetDistance)

Так ты функцию нахождения юнита не вызвал.
Ты не наносишь урон, а отнимаешь здоровье, килл твоему кастеру не засчитается.
28

» WarCraft 3 / Получение координат каждого юнита в группе

Pow(2, 128)
Я бы вообще поставил максимальный float, но было лень гуглить.
Заметка для оптимизации: экономичнее не извлекать квадратный корень, а сравнивать с квадратом дистанции.
Верно, так даже точнее будет.
28

» WarCraft 3 / Получение координат каждого юнита в группе

Принятый ответ
Функции дистанции
function GetDistancePoints takes real x1, real y1, real x2, real y2 returns real
return SquareRoot((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))
endfunction
function GetDistanceUnitPoint takes unit u, real x, real y returns real
local real dx = GetUnitX(u) - x
local real dy = GetUnitY(u) - y
return SquareRoot(dx * dx + dy * dy)
endfunction
function GetDistanceUnits takes unit u1, unit u2 returns real
local real dx = GetUnitX(u1) - GetUnitX(u2)
local real dy = GetUnitY(u1) - GetUnitY(u2)
return SquareRoot(dx * dx + dy * dy)
endfunction
Узнать ближайшего юнита к (x, y)
globals
    real X
    real Y
    unit ClosestUnit
    real Distance
endglobals

function FindClosestToXYCallback takes nothing returns nothing
    local real d = GetDistanceUnitPoint(GetEnumUnit(), X, Y)
    if d <= Distance then
        set Distance = d
        set ClosestUnit = GetEnumUnit()
    endif
endfunction

function FindClosestToXY takes group g, real x, real y returns unit
    set X = x
    set Y = y
    set ClosestUnit = null
    set Distance = 999999.
    call ForGroup(g, function FindClosestToXYCallback)
    return ClosestUnit
endfunction
28

» WarCraft 3 / Импорт звуков

Всё зависит от характеристик звука, с этим есть проблемы. В 1.31 скорее всего что-то подкрутили, потому там работает.
28

» WarCraft 3 / Где взять норм варкрафт

Можно поставить отсюда, тут можно выбрать локализацию. Из минусов: нет папки support, но это не страшно.
28

» WarCraft 3 / Что за ошибка?

Принятый ответ
Ты делаешь возврат из функции, а потом обнуляешь переменную. Тут вообще не нужна переменная unit.
28

» WarCraft 3 / Аринас 1x1

ScopteRectuS, в редакторе можно сделать импорт со всеми надстройками.