1
21
3 года назад
Отредактирован scopterectus
1

» WarCraft 3 / lua: ошибка

function CountFreePointsInArea(rt,x,y,n)
            local a = 0
            local r = 4.00
            local angle
            --local px = {}
            --local py = {}

            --1) берем 4 точки от точки x,y и считаем кол-во свободных точек
           --****************
            -- А Здесь ты складываешь y + r, но игрик у тебя равен нил, потому что ты его не передал!!!
           --****************
            if IsPointInArea_3(rt,x-r,y+r,n) then
                px[a] = x-r
                py[a] = y+r
                a = a + 1
            end
3
21
3 года назад
3

» WarCraft 3 / lua: ошибка

Там же утебя функция CountFreePointsInArea() вызывется несколько раз с 2-мя переданными аргументами, хотя она принимает 4.

Если не передать аргументы, то функция запустится, но все непереданные аргументы будут nil.

Вот ты запустил через "CountFreePointsInArea(Bx1,By1 )", в итоге в функции "CountFreePointsInArea" у тебя
rt = Bx1;
x = By1;
y = nil;
n = nil.
3
21
3 года назад
Отредактирован scopterectus
3

» WarCraft 3 / lua: ошибка

Там же указан номер строки в war3map.lua


На 610-ой строке происходит арифметические действия с переменной ''y'', которая равно нилу.
0
21
3 года назад
0

» WarCraft 3 / Опрос варкрафтеров XGM

МрачныйВорон:
SNART, кто такой Retera?
чувак с хайва.
1
21
3 года назад
1

» WarCraft 3 / lua-дебаг система для варика существует? +двумерные массивы

Насколько я знаю, ничего удалять не нужно. Да и функции для удаления таблицы не существует. Таблица будет сама удалена сборщиком мусора, если на неё не будет активных ссылок. Но вот когда сборка мусора сработает - неизвестно. Сборку мусора можно запустить вручную через функцию collectgarbage()
0
21
3 года назад
0

» WarCraft 3 / lua-дебаг система для варика существует? +двумерные массивы

ScopteRectuS:
-- тут синтаксическая ошибка
Color = { {},{},{} } -- > равнозначно Color = { {}=1,{}=2,{}=3 }

--
Color = { {},{},{} } -- > равнозначно следующему коду:

Сolor = { }
Color[1] = { }
Color[2] = { }
Color[3] = { }
Двумерный массив нельзя просто создать и использовать как хеш-таблицу джазовую. Для каждой ячейки нужно создавать свою таблицу.
Создавать каждый индекс вручную муторно. Лично я делаю примерно так:
    my2dArray = { }

    setValue = function(parrentKey, childKey, value)
        if my2dArray[parrentKey] == nil then
            my2dArray[parrentKey] = { }
        end

        my2dArray[parrentKey][childKey] = value
    end
1
21
3 года назад
1

» WarCraft 3 / lua-дебаг система для варика существует? +двумерные массивы

-- тут синтаксическая ошибка
Color = { {},{},{} } -- > равнозначно Color = { {}=1,{}=2,{}=3 }

--
Color = { {},{},{} } -- > равнозначно следующему коду:

Сolor = { }
Color[1] = { }
Color[2] = { }
Color[3] = { }
3
21
3 года назад
3

» WarCraft 3 / в lua не работают AI нативки

МрачныйВорон, функции "GetTriggeringPlayer" не существует, правильно "GetTriggerPlayer". Это, если, конечно, это не кастомная функция у тебя.
3
21
3 года назад
3

» WarCraft 3 / в lua не работают AI нативки

У вас не работает, потому что вы перезаписали нативки на свои функции. В луа не нужно ничего объявлять. Всё работает и так из коробки.
0
21
3 года назад
0

» WarCraft 3 / Как работать с картой в виде папки?

Bergi_Bear, а куда Назар пропал? Будет ли обновление chepack'a? Хотелось бы обнову, чтобы весь код сохранялся не в нестандартном коде, а в папках и кастом скриптах. Так сохранялась бы иерархия даже в редакторе триггеров.
3
21
3 года назад
3

» WarCraft 3 / Как реализовать систему типов юнитов через пассивку

Да, делается через типы урона в игровых константах.
5
21
3 года назад
Отредактирован scopterectus
5

» WarCraft 3 / Как выделить значение из целочисленной массива?

x[ y ] = z

x - массив;
y - ячейка или индекс массива;
z - значение ячейки массива.
Попробуйте объяснить задуманное, используя эти слова.
3
21
3 года назад
3

» WarCraft 3 / Русификатор редактора карт Warcraft 3 Reforged

И почему "Урон по цели"? Это что гугл транслейт? Там же Damage Target - Юнит, получивший урон.
7
21
3 года назад
7

» WarCraft 3 / Русификатор редактора карт Warcraft 3 Reforged

"Инициирующая боевая единица" лучше, чем "Переключающий юнит", но почему бы не перевести как "Юнит запустивший триггер"?
0
21
3 года назад
0

» WarCraft 3 / TESH для Reforged

Открыл Lua-карту. Полёт нормальный.
Загруженные файлы
1
21
3 года назад
1

» WarCraft 3 / Реалистичный снаряд

rsfghd, это нужно будет рассчитывать в зависимости от расстояния. Например, задаёте изначальную скорость и умножаете на процент пройденного пути. В итоге, когда снаряд долетит до конца пути - получит все 100 % ускорения. Или наоборот, тогда снаряд в конце будет иметь нулевое ускорение.

Ну или придумать свою формулу. Всё зависит от конкретного случая.
2
21
3 года назад
Отредактирован scopterectus
2

» WarCraft 3 / Реалистичный снаряд

Сам недавно делал способность с проджектайлом. Можно сделать без векторов и всяких косинусов и синусов. Код на Lua и Reforged, но тут главное арифметика, а не функции:
    -- arrowX/Y/Z - текущее положение снаряда
    -- arrowTargetX/Y/Z - куда должен лететь снаряд
    -- 32.8125 - скорость снаряда (расстояное, которое проходит снаряд за один тик таймера)

    local dx   = arrowTargetX - arrowX
    local dy   = arrowTargetY - arrowY
    local dz   = arrowTargetZ - arrowZ
    local dist = math.sqrt( ( dx ^ 2 ) + ( dy ^ 2 ) + ( dz ^ 2 ) )

    arrowX = arrowX + 32.8125 * ( dx / dist )
    arrowY = arrowY + 32.8125 * ( dy / dist )
    arrowZ = arrowZ + 32.8125 * ( dz / dist )

    BlzSetSpecialEffectX( arrow, arrowX )
    BlzSetSpecialEffectY( arrow, arrowY )
    BlzSetSpecialEffectZ( arrow, arrowZ )
Но тут правда прямолинейное движение.
0
21
3 года назад
0

» WarCraft 3 / Что лучше использовать?

LainMikoroso, все эти ваши столкновения, разные скорости и т. д. делаются через векторы, которые считаются обычной арифметикой. Нагрузка от таких операций минимальна. Как берги и сказал, всё зависит от моделей, которые прорисовываются на экране.
0
21
3 года назад
0

» WarCraft 3 / Что лучше использовать?

LainMikoroso, от новых глобалок не убудет. Да и читабельность кода значительно выше, если везде используются свои переменные. А когда одна и та же глобалка tempUnit используется везде где можно, то в таком коде чёрт ногу сломает. И какой тогда смысл от компактности?
0
21
3 года назад
0

» WarCraft 3 / Что лучше использовать?

LainMikoroso, потоки выполняются последовательно. Ничего у вас там не сломается, если всё делать правильно. Да и использовать одни и те же глобалки везде и всюду - не лучшая затея.
0
21
3 года назад
0

» WarCraft 3 / Что лучше использовать?

LainMikoroso, нет ничего ужасного в том, что создаётся новый поток. Если хотите всё делать так, как изначально всё задумывалось близзардами, то делаете через boolexpr и ForGroup. Не хотите заморачиваться - перебираете всех через цикл.
0
21
3 года назад
Отредактирован scopterectus
0

» WarCraft 3 / Что лучше использовать?

Для JASS плюс первого метода в том, что создаётся новый поток, и, если действий очень много, то такой метод более предпочтителен. Но все данные из локалок придётся переносить через глобальные переменные.
Второй метод хорош тем, что не нужно переносить локалки в глобалки, но опять же, если действий очень много, то поток может оборваться.
Опять же верхнего способа у них нет
Там вся суть в конце:
Заключение прекрасно написал Bergi_Bear к предыдущей версии статьи:
Нет никакой разницы каким вы способом будете перебираться своих 20 юнитов
0
21
3 года назад
0

» WarCraft 3 / Что лучше использовать?

Вам сюда. И boolexpr'ы не нужно уничтожать, так как они кешируются.
0
21
3 года назад
Отредактирован scopterectus
0

» WarCraft 3 / Не могу найти папку с картами в WarCraft 3 Reforged

Ищите в документах пользователя.
4
21
3 года назад
Отредактирован scopterectus
4

» WarCraft 3 / Иконка атаки, защиты.

Чтобы самому делать иконки для Classic-графики (64х64px) рекомендую использовать программу Button Manager.
Для Reforged-графики (256х256px) еще никто не создал программу, поэтому придётся делать вручную. Здесь можно найти готовые рамки.

Пути стандартных иконок:
UI\Widgets\COnsole\Human\infocard-attack-chaos.blp
UI\Widgets\COnsole\Human\infocard-neutral-attack-chaos.blp
UI\Widgets\Console\Human\infocard-attack-hero.blp
UI\Widgets\Console\Human\infocard-neutral-attack-hero.blp
UI\Widgets\COnsole\Human\infocard-attack-magic.blp
UI\Widgets\COnsole\Human\infocard-neutral-attack-magic.blp
UI\Widgets\Console\Human\infocard-attack-melee.blp
UI\Widgets\Console\Human\infocard-neutral-attack-melee.blp
UI\Widgets\Console\Human\infocard-attack-melee.blp
UI\Widgets\Console\Human\infocard-neutral-attack-melee.blp
UI\Widgets\Console\Human\infocard-attack-piercing.blp
UI\Widgets\Console\Human\infocard-neutral-attack-piercing.blp
UI\Widgets\Console\Human\infocard-attack-siege.blp
UI\Widgets\Console\Human\infocard-neutral-attack-siege.blp
UI\Widgets\Console\Human\infocard-attack-melee.blp
UI\Widgets\Console\Human\infocard-neutral-attack-melee.blp

UI\Widgets\Console\Human\infocard-armor-hero.blp
UI\Widgets\Console\Human\infocard-armor-divine.blp
UI\Widgets\Console\Human\infocard-armor-fortified.blp
UI\Widgets\Console\Human\infocard-neutral-armor-fortified.blp
UI\Widgets\Console\Human\infocard-armor-hero.blp
UI\Widgets\Console\Human\infocard-neutral-armor-hero.blp
UI\Widgets\Console\Human\infocard-armor-large.blp
UI\Widgets\Console\Human\infocard-neutral-armor-large.blp
UI\Widgets\Console\Human\infocard-armor-medium.blp
UI\Widgets\Console\Human\infocard-neutral-armor-medium.blp
UI\Widgets\Console\Human\infocard-armor-unarmored.blp
UI\Widgets\Console\Human\infocard-neutral-armor-unarmored.blp
UI\Widgets\Console\Human\infocard-armor-small.blp
UI\Widgets\Console\Human\infocard-neutral-armor-small.blp
UI\Widgets\Console\Human\infocard-armor-small.blp
UI\Widgets\Console\Human\infocard-neutral-armor-small.blp
UI\Widgets\Console\Human\infocard-armor-small.blp
UI\Widgets\Console\Human\infocard-neutral-armor-small.blp

Чтобы просматривать архив игры для Reforged, как уже сказали выше, используем CascView. Для более старых версий игры подойдёт MPQ Editor.

хотел скинуть статью на фреймы
Это кто такую годноту написал? Целых 118 страниц про фреймы!