0
28
2 месяца назад
Отредактирован PT153
0

» IntelliJASS / IntelliJASS

nazarpunk:
Я оставил только requires. Ибо судя по статье только он каноничен.
Офигительный вывод. В статье даже слова "каноничный" нет. Не смотря на то, что это вольный перед GetLocalPlayer, который даже не все фичи языка перечислил в некоторых разделах. Рекомендую ссылаться на оригинал.
Смысл заявлять о поддержке vJass, когда на самом деле её нет?
Формат примитивный, проблема в том, что эти строки меняются как черти, например если создать апгрейд с 10-ю уровнями, порядок строк и описаний будут тасоваться в зависимости от того в каком порядке их править.
  1. Создаём улучшение/способность.
  2. Заполняем уровень 1.
  3. Просим автоматически заполнить остальные уровни.
  4. Все дальнейшие правки делаем только в .wts посредством карты-папки или через экспорт и импорт строк.
  5. Номера строк не меняются, идут в порядке уровней.
  6. ???
  7. PROFIT.
0
28
2 месяца назад
0

» WarCraft 3 / JNGP: ReBuild by Enobraed

SсRealm, увеличение текста есть в настройках TESH
0
28
2 месяца назад
Отредактирован PT153
0

» WarCraft 3 / Утечки группы.

EugeAl, твой вариант тоже будет перебирать всех подряд, только ещё и группу очищать нужно. В моём варианте как раз наоборот нет лишней работы в виде чистки группы. А всё остальное идентично.
Твой вариант через очистку:
call GroupEnumUnitsOfPlayer(TempGroup, Player(0), null)
call ForGroup(TempGroup, function Actions)
call GroupClear(TempGroup)
Мой вариант через фильтр:
call GroupEnumUnitsOfPlayer(TempGroup, Player(0), Filter(function Actions))
В обоих случаях функция действия такая:
function Actions takes nothing returns nothing
    if /* делаем проверки над юнитом */ then
        /* делаем действия над юнитом */
    endif
endfunction

Фильтры в JASS кешируются, поэтому удалять его не нужно. Но я всегда их заношу в глобалки.
1
28
2 месяца назад
1

» WarCraft 3 / Чем можно заменить "TriggerRegisterTimerEventSingle"?

rsfghd, нет, приказ это число или строка.
1
28
2 месяца назад
1

» WarCraft 3 / Чем можно заменить "TriggerRegisterTimerEventSingle"?

nazarpunk, этим можно пренебречь в контексте гуи. Сначала убираем валидные утечки, потом, если всё ещё есть проблемы, уже убираем из-за JASS.
0
28
2 месяца назад
Отредактирован PT153
0

» WarCraft 3 / Утечки группы.

EugeAl, если не нужно хранить коллекцию юнитов, можно вообще их даже в саму группу не добавлять. Просто в Enum передавать фильтр с нужными дейтсвиями, а самом фильтре либо возвращать false, либо ничего. Я такой способ уже давно практикую.
1
28
2 месяца назад
Отредактирован PT153
1

» WarCraft 3 / Чем можно заменить "TriggerRegisterTimerEventSingle"?

Хм, а как понять, что функция "вредна" и создаёт утечки?
Создают утечку не функции, а автор карты. Надо просто следить за созданием объектов и ненужные удалять.

Если вы на рефе, есть либа, которая исправит все утечки.
3
28
2 месяца назад
Отредактирован PT153
3

» WarCraft 3 / Чем можно заменить "TriggerRegisterTimerEventSingle"?

Как я помню, код, подсвеченный красным цветом, вызывает утечки
Абсолютно точно нет.

Ничем не заменять, абсолютно безвредная функция.
function TriggerRegisterTimerEventPeriodic takes trigger trig, real timeout returns event
    return TriggerRegisterTimerEvent(trig, timeout, true)
endfunction

function TriggerRegisterTimerEventSingle takes trigger trig, real timeout returns event
    return TriggerRegisterTimerEvent(trig, timeout, false)
endfunction
1
28
2 месяца назад
1

» WarCraft 3 / JNGP: ReBuild by Enobraed

Посмотрел vrJass, при беглом осмотре всё оттуда есть в ZINC. Ладно бы проект обновлялся, но последний релиз был в 2016.
0
28
2 месяца назад
0

» WarCraft 3 / JNGP: Rebuild от PT153

SсRealm, первый вариант есть, надо включить Colorizer. Но в моих настройках он офается, были с ним какие-то проблемы + я описания держал в таблице и раскрашивал скриптом по ключевым словам.
Что касается остального - моя сборка носит чисто косметический характер: дополнить Rebuild недостающими файлами и обновлениями. Есть, например, сборка от moyack, там куча дополнительных утилит. Или вот от Enobraed.
Загруженные файлы
2
28
2 месяца назад
2

» WarCraft 3 / Кривая Безье

В далёком 2021 делал для кого-то примеры того, как использовать Безье в варе.
Пример кубической Безье. xgm.guru/files/100/319649/comments/525358/Bezier_example_1.w3m
Тут рабочий просто "бежит" по кривой построенной на основе 4-х точек.
Пример квадратичной Безье. xgm.guru/files/100/319649/comments/525358/Bezier_example_2.w3m
Тут рабочий движется к пехотинцу по воздуху. Из опорных точек можно установить только ту, что в воздухе, указав её высоту и расположение на линии между пехотинцем и рабочим.
Загруженные файлы
1
28
2 месяца назад
Отредактирован PT153
1

» Администрация XGM / Плитки

😎
Загруженные файлы
0
28
2 месяца назад
Отредактирован PT153
0

» WarCraft 3 / Не отображается текст в WarCraft reforged

Tony_North37, какой язык в редакторе в игре? Точнее, какой язык у самой карты стоит основным.
0
28
2 месяца назад
Отредактирован PT153
0

» WarCraft 3 / Не отображается текст в WarCraft reforged

Давай так попробуем.
В Warcraft III\_retail_\fonts расположи файл. Папку fonts нужно будет создать.
Далее нужно будет активировать этот .reg файл (включает локальные файлы для игры).
Загруженные файлы
0
28
2 месяца назад
Отредактирован PT153
0

» Wisp TD / Скачать карту

konvan5, нет. Но дать возможность скачать без авторизации всё же стоит. Так-то карта выложена и на EpicWar, и на maps.reforged.com.
0
28
2 месяца назад
0

» Администрация XGM / Иконки

А можно ли указать стиль? Classic/sharp или solid/regular/light/duotone/thin?
1
28
2 месяца назад
1

» Администрация XGM / Плитки

Было бы неплохо сделать перенос заголовка, если нет описания.
Загруженные файлы
2
28
2 месяца назад
2

» Администрация XGM / Плитки

Оформил главную с помощью плиток.
0
28
2 месяца назад
0

» WarCraft 3 / Не отображается текст в WarCraft reforged

Решается также, как и на обычном варике - через локальные файли и закидыванием шрифта с ру символами.
0
28
2 месяца назад
Отредактирован PT153
0

» WarCraft 3 / 16. Функция как объект

без нового потока смысл был бы нулевой в этой функции.
Абсолютно нет, это всё ещё вызов условий триггера и всё ещё вызов функции из любого места кода (о чём и говорится в цитате из этой статьи).
Я всегда считал, что TriggerEvaluate не создаёт свой поток, поэтому эта функция и быстрее TriggerExecute. И поэтому для создания потоков я использовал .execute(). А оно вон как на самом деле: TriggerExecute медленный из-за поддержки вейтов.
Показали бы конкретику - карту без этой фичи и с ней, и что она конкретно дает разрабу
Читаем статью, получаем ответ на вопрос.
0
28
2 месяца назад
Отредактирован PT153
0

» WarCraft 3 / 16. Функция как объект

Функция, как объект, имеет некоторые преимущества - метод evaluate позволяет совершать вызов функции из любого участка кода, даже если место вызова находится выше места объявления функции. Метод execute делает то же самое, но при этом порождает новый поток, однако, выполняется быстрее старого доброго ExecuteFunc.
И может так и было, когда JassHelper только создавался, но я сейчас сам протестировал на 1.26, TriggerEvaluate действительно создаёт свой поток. Тогда в execute() нет смысла кроме вейтов.
Забавный факт: execute() не возвращает значение, даже если оригинальная функция это делает. Почему? Vexorian решил, что это не нужно. 🤣

Не удивлюсь, если TriggerExecute на самом деле нифига не быстрее ExecuteFunc.
Загруженные файлы
0
28
2 месяца назад
0

» WarCraft 3 / Полярное смещение (скорость тригонометрических операций)

nazarpunk, кстати, в JASS это действительно так. Но есть нюанс.