1
28
7 months ago
Edited by PT153
1

» WarCraft 3 / какая есть софтина по переименованию функций и переменных?

какая есть софтина по переименованию функций и переменных в j файле?
Любой уважающий себя текстовый редактор.
вы прикалываетесь оба?
возьми любой j файл в своей карте и по своему совету замени как написано в примере ниже, я посмотрю потом на твою карту
Ну заменил, в чём проблема-то?
Uploaded files
1
28
7 months ago
Edited by PT153
1

» WarCraft 3 / OrderId

  • Отсутсвует Order_wandillusion = 852274 (надо перепроверить).
  • Отсутвуют Order_itembuild = 852619 и integer Order_reveal = 852270. Они не именные, но лучше перепроверить.
Также есть ещё не указанные приказы. Вот тут есть ещё пара примеров.
0
28
8 months ago
0

» WarCraft 3 / Не работает vJass и cJass в Warcatf 3 Jass New Gen Pack

блок globals должен быть за пределами library. Если мне память не изменяет.
Нет
0
28
9 months ago
0
0
28
9 months ago
0

» WarCraft 3 / TESH для Reforged

Всё работает с лицензией.
0
28
9 months ago
0

» WarCraft 3 / Visual Studio Code: WarCode

Вродь норм, а в чём беда multiline строк? Последний pjass их вроде поддерживает.
0
28
9 months ago
0

» WarCraft 3 / Visual Studio Code: WarCode

Зачем |n, если стандартный \n справляется?
0
28
9 months ago
0

» WarCraft 3 / Jass MythBusters

Создай несколько и потом переиспользуй
0
28
9 months ago
0

» WarCraft 3 / w3x-to-toml

nazarpunk, стоит поработать над меню, а скорее вовсе его убрать.
File - там есть кнопка exit, что в целом не особо нужно.
Edit - Undo и Redo ничего не делают, остальные не особо полезны.
View - в целом бесполезно. а наличие Developer Tools даже опасно.
Window - Zoom ничего не делает, остальное есть на самом окне.
Help - пусто.
Стоит добавить возможно выбора папки для результата.
0
28
9 months ago
Edited by PT153
0

» WarCraft 3 / w3x-to-toml

host_pi, какая версия ОС? У меня Windows 10 Pro 21H2, программа запустилась без проблем.
0
28
9 months ago
0

» WarCraft 3 / w3x-to-toml

> Посмотри в сторону YAML, он более человечный.
YAML из Ада habr.com/ru/articles/710414
Проблема Норвегии
О да, именно такую ошибку я и встретил. Проcто ужас! Поэтому предпочитаю JSON и TOML. У JSON не нравится отсутствие комментов и поддержки trailing comma.
0
28
9 months ago
0

» WarCraft 3 / w3x-to-toml

На самом деле лучше тогда уж обратно в slk кидать
0
28
9 months ago
Edited by PT153
0

» WarCraft 3 / w3x-to-toml

host_pi, там же сразу портативный экзешник есть, в чём проблема?
0
28
9 months ago
0

» WarCraft 3 / w3x-to-toml

Тобишь в ini можно описать такую структуру и IDE её будет адекватно подсвечивать?
Именно как на картинке - нельзя. У INI нет чёткого формата. Считай, что томл это ини на максималках.
YAML слишком неформальный.
0
28
9 months ago
0

» WarCraft 3 / w3x-to-toml

host_pi, TOML - это расширение INI. У INI вообще одного стандарта нет.
В ini есть list, map и mulitline strings?
лист легко делается строкой, мапы через разделы. TOML просто является улучшенным INI, что очень хорошо. Сам буду его использовать, так как более human-friendly, чем тот же JSON.
0
28
9 months ago
Edited by PT153
0

» WarCraft 3 / Группы или таблицы в луа?

Но я, если честно, не понял, как из приведённой выдержки документации ты сделал вывод о том, что порядок может быть не идентичным на разных машинах?
The order <...> is not specified
То есть порядок не определён, или по-другому - разработчики не гарантируют одинаковый порядок. Поэтому возможно, что next на разных машинах в разное время выдаёт разный результат. Что подтверждается эмпирическими тестами. Запустить онлайн можно тут.
t = {a = 1, b = 2, c = 3}

function call(t)
    for k, v in pairs(t) do
        print(k, v)
    end
    print('--------------')
end

t.a = nil
t.d = 5
t.a = '1'

call(t)
call(t)
Вывод:
b	2
a	1
d	5
c	3
--------------
b	2
a	1
d	5
c	3
--------------
Жму restart, вновь запускаю тот же код. Результат:
c	3
b	2
a	1
d	5
--------------
c	3
b	2
a	1
d	5
--------------
Таким образом, разный порядок возможен.

Что касается десинхронизаций, то они возникают, только когда идёт работа с объектами игры. Например, если идёт перебор множества чисел через дефолтную pairs, то никаких проблем не будет. Также вполне возможно, что изменения для юнитов, сделанные путём перебора через дефолтную pairs, могут произойти быстро и игра синхронизирует своё состояния уже по окончании всего перебора, что не приведёт к десинхронизации. Однако если из такой группы взять N-го юнита и сделать какие-то операции только с ним, или делать операции с юнитами в зависимости от их порядкового номера, то это приведёт к десинхронизации тех игроков, у кого другой порядок перебора.

Проверить наличие разного порядка в варе довольно просто. Создать карту на несколько человек. Разместить на карте N разных юнитов. Во время инициализации вызывать такой код:
local t = {}
local r = GetWorldBounds()
local f = Filter(function() t[GetFilterUnit()] = true end)
GroupEnumUnitsInRect(bj_lastCreatedGroup, r, f)
RemoveRect(r)
DestroyFilter(f)
PreloadGenClear()
for u, _ in pairs(t) do
    print(GetUnitName(u))
    Preload(GetUnitName(u))
end
PreloadGenEnd("check-table-order.txt")
Сравнить файлы после запуска. Файлы будут находится в папке Documents\WarCraft III\CustomMapData.
0
28
9 months ago
0

» WarCraft 3 / IsUnitDeadBJ()

Тут достаточно подробно описано, сколько у юнита может быть минимальное хп. И это значение чуть меньше 0.405. Но в любом случае это не имеет значения, есть UnitAlive отсюда, а в луа эта функция изначально доступна.
0
28
9 months ago
0

» WarCraft 3 / Группы или таблицы в луа?

сортированный список
Сортированный не есть упорядоченный. Перед тем как токсичить без причины стоит хотя бы с терминологией ознакомится.
те более если использовать пейрсы как в вашем примере, это путь к десинкам
pairs - это просто функция, которая возвращает функцию next, переданную таблицу и nil. Если у таблицы есть метаметод __pairs, то вызывается он. Таким образом, добавляется метаметод и никаких десинков нет.
отссылая в гугл
Он отослал не в гугл, а на страницу вики от юзеров луа. Но это всё же такой себе источник. И как я уже сказал, pairs вообще не при делах. Всё дело в функции next. Цитата из официальной документации Lua 5.3:
Allows a program to traverse all fields of a table. Its first argument is a table and its second argument is an index in this table. next returns the next index of the table and its associated value. When called with nil as its second argument, next returns an initial index and its associated value. When called with the last index, or with nil in an empty table, next returns nil. If the second argument is absent, then it is interpreted as nil. In particular, you can use next(t) to check whether a table is empty.
The order in which the indices are enumerated is not specified, even for numeric indices. (To traverse a table in numerical order, use a numerical for.)
The behavior of next is undefined if, during the traversal, you assign any value to a non-existent field in the table. You may however modify existing fields. In particular, you may clear existing fields.
Таким образом, порядок может быть идентичен на разных машинах, а может быть и не идентичен. Поэтому изначальное утверждение Hate правдиво:
что на одном компьютере будет A, B, C а на втором C, B, A

Что касается самого вопроса. Удобство таблиц в том, что их не надо удалять функцией, но нужно реализовать уникальность юнитов. На HIVE есть готовая библиотека, которая включает в себя переписывание нативок для групп юнитов, точек, ректов и групп игроков на таблицы. Краткое описание библиотеки от автора, Bribe:
Most recently, I've revamped the old GUI Fixer Collection to a much more powerful tool: Lua-Infused GUI. Since GUI variables don't actually require strict type assignment when compiled into Lua, I was able to change Locations, Rects, Unit Groups and Player Groups into Lua tables, allowing them to consume an order of magnitude less RAM and be automatically cleaned up by Lua's garbage collector.
0
28
10 months ago
0

» WarCraft 3 / Что предпочтительней и почему Lua или Jass?

Как я уже сказал, для разбирательств есть исходный код. Релизный код может быть каким угодно
2
28
10 months ago
2

» WarCraft 3 / Jass MythBusters

Как вы видите, хендлов всё так же 10000, а это значит, что TriggerRemoveActions не работает. Но почему же? - спросите вы, чтобы ответить на этот вопрос нужно для начала посмотреть на TriggerRemoveConditions, почему же он работает?
Вот тут надо Remove на Clear заменить
2
28
10 months ago
2

» WarCraft 3 / Jass MythBusters

Было бы неплохо обновить информацию про TriggerAddAction, так как там что-то странное в коде.
На первом, где мы смотрим просто кол-во хендлов, закомментены TriggerRemoveAction и TriggerRemoveCondition. На втором и третьем вместо них TriggerClearActions и TriggerClearConditions. При этом третий скрин подписан как будто там используется TriggerRemoveAction и TriggerRemoveCondition. Точнее там все эти функции почему имеют окончание s, что очень странно.
Четвёртый скрин подписан TriggerRemoveConditions, хотя показан код TriggerClearConditions.
По итогу не ясно, помогает ли TriggerRemoveAction избежать проблемы или нет.

А ну Unryze уже отвечал, но всё же было бы неплохо исправить названия функций и дополнить, что TriggerRemoveAction полностью очищает действие.
0
28
11 months ago
0

» XGM Конкурсы / Конкурс битв с боссами 2023

Если подаёте заявку, то выбирайте соответствующий тип комментария, чтобы организаторам потом было проще найти участников.
Я не принимаю участие, показываю пример.
0
28
1 year ago
0

» WarCraft 3 / Десинхронизация

а что вызывает десинхи? есть статья с примерами?
Да много чего, обычно неверное использование GetLocalPlayer. А так много чего, например порча в некоторых ситуациях.
Я лишь указал на то, что конкретно тот кейс не вызывает этой проблемы.
2
28
1 year ago
2

» WarCraft 3 / Танки Warcraft 3

Картинки сюда лучше залить, а не на имгур.
0
28
1 year ago
0

» WarCraft 3 / Десинхронизация

Инициализация хешки в блоке глобалок не вызывает десинков