.mix - динамическая библиотека, они пишутся не на джасе. Близы подразумевали, что таким образом будут подгружаться кодеки для видео и оставили дырку для загрузки любыл дллок с выставленным разрешением соответственно.
Собственно, сырцы этого вашего ксенона есть на гитхабе. Посмотрите как там сделано: github.com/F7eak/Xenon
Для варкрафта выше 9900, какой бы версией это ни было вам вероятно придется допиливать самостоятельно самостоятельно, (это же старше 1.26, да?)
Строго говоря это не только жасс логгер. Например в комментарии показана на самом вторая часть полезного функционала - логгирование выдачи тегов агентам.
Но есть и собственно жасс логер. Он быстрый и пишит как вызовы нативок, так и жасс функций. Для нативок предоставляет информацию о том, с какими аргументами они вызваны.
Были мысли о том, чтобы научиться разбирать, в каком потоке был вызван код, но мне не особо это интересно.
По идеям: soon™️
добавить системное время в каждой строке
Вот конкретно это - если добалять системное время, то логи записанные в разные моменты времени станут несравнимы тривиальным сравнением текстовиков, чего бы хотелось избежать.
Но я некоторое время назад делал некоторые вещи по просьбе одного товарища. Так что некоторый бонусный функционал имеется, если кому-то нужно:
Экспортируемая из библиотеки функция AgentPresence_BreakThisPlease будет вызываться каждый раз когда будет достигнута одна из заданных комбинаций тегов. (способ задания см. в обновленном файле)
Добавлена настройка для мгновенного вывода в файл, при выдаче новых тэгов.
Добавлена настройка не выводить выдаваемые тэги и связанную информацию до того момента, пока не не начнется выполнение основного жасс кода.
Если кто-то хочет добавить какой-нибудь функционал или еще что-нидь сделать - вот сурцы
А еще там есть настройка на запись того, как исполнялся jass код, как в известной программе для этого дела, так что при желании вы можете в точности просмотреть еще и порядок выполнения кода и где же вознико расхождение в жасе, если оно возникло там.
Настройка hookjvm = true отвечает за это.
Ну а если вы думаете, что проблема точно в той самой строчке, то попробуйте запихать инициализацию ХТ в отдельный триггер на событие прошло времени(0) или в функцию, вызываемую из мейна любым другим образом.
Сообщение об ошибке с подписью .\cmemblock примерно всегда говорит о том, что варкрафт попросил себе памяти, но не смог ее получить, так как вероятно она кончилась.
Если ты хочешь, чтобы ремонтник не перемещался, но чинил - запрети ему бегать. Тогда он будет пытаться чинить только то, до чего дотягивается. И не будет пытаться бежать и чинить то, до чего не дотягивается.
Некоторое количество времени назад я проводил исследование десинков в моей карте.
Они случались после 20 минуты в игре, но были раздражающе часты. Отваливалась часто половина игроков, что было крайне раздражающе.
Вершиной моего расследования стал небольшой микс для логгирования всякого, позволяющий потом сравнить это всякое у разных игроков.
Я выяснил, что в моем случае причиной проблем были 2 вещи - пламя феникса, и что-то в поведении нейтралов на 12+ слотах. (защита союзников или типо того, я не разобрался до конца.)
Сам микс я не довел до окончательной красоты, но на текущий момент он вполне может быть использован для записи JASS и тэгов в игре.
В общем виде, идея довольно проста - сделать запись у двух игроков до десинхрона и сравнить что получилось. Соответственно, если один игрок отвалился а другой остался - один десинкнул и можно сравнивать.
Если воспроизводится в реплеях - совсем хорошо. В моем конретном случае при просмотре одного и того же реплея несколько раз вылезала разница, например, и это было заметно. Если не воспроизводится - остается только отыскать тестеров, которые согласятся посмотреть.
Если Переменная типа unit или handle не обнулена, при этом после смерти юнита и даже принудительного удаления(!) GetHandleId(Переменная) не выдает 0, причём после проверки условием Переменная != null, это говорит о том, что handle или unit существуют в игре? Или это неверная проверка данных?
По разному. Но для хэндла не требуется наличие юнита. Т.е если у вас есть ненулевой хэндл с типом юнит, но юнит был удален - есть все шансы что юнита в игре уже не существует.
Более того, далеко не все объекты, созданные в игре будут иметь хэндлы. Например если создан предмет, далеко не факт, что у него будет хэндл вообще, до того, как вы к нему обратитесь.
Собственно, проверка на то, остался ли за хэндлом юнит - GetUnitTypeId(h)!=null
Еще удаленные юниты автоматически выходят из всех групп, например.
Не смог разобраться в управлении. Так или иначе, при нажатии на w активируется какая-то способность, хотя судя по иконке она должна работать на пробел?
Для получения данных программа требует либо установленной игры, либо может сама подтянуть нужные файлы с серверов близов, но не очень быстро.
В основном, данные лежат по путям:
war3.w3mod:units/
основные статы тут.
war3.w3mod:_balance\custom_v0.w3mod
war3.w3mod:_balance\custom_v1.w3mod
war3.w3mod:_balance\melee_v0.w3mod
Это разные версии баланса.
Все данные по балансу игры хранятся в slk таблицах. Извлечь из них данные не сложно, я точно знаю, что они конвертируемы в приличные форматы, а эксель например их вообще из коробки читает.
Соответственно вместо ручного выписывания достаточно импортировать нужные таблицы
По неизвестным причинам иногда крашит варкрафт при запуске.
Обратил внимание, что если использовать загрузчик от Ev3nt для загрузки mpq, то краши не случаются. (спасибо ему за это ❤️)
Итого: Правильно ли я понимаю ситуацию:
Есть карта. Её можно открыть в jngp 1.26 и в какой-то новой версии редактора для рефа.
Если запускать карту, собранную в jngp, что в рефорже что в 1.26 десинк не происходит.
Если запускать карту, собранную в рефовом редакторе, то в рефе десинкает?
Вот готовая карта, в которой показано как можно сбросить цвет юнита на дефолтный, ну или на другой заданный.
Вероятно, большего вам и не требуется.
Совместимо с +- всеми патчами, возможно несколько не оптимизировано, но под пиво покатит.
Где-то я это все использовал, в общем-то вот.
Там всего 4 триггера на все скопируйте, настройте цвета, сбрасывайте цвет когда нужно на здоровье.
Тем не менее, редактор с встроенным цинков вам понадобится, чтобы карту таки скомпилировать.
» WarCraft 3 / как написать *.mix камерахак? zoom
Отредактирован goodlyhero
» WarCraft 3 / Good Jassspy (JASS логер)
Отредактирован goodlyhero
» WarCraft 3 / Как контрить Alt+QQ?
Отредактирован goodlyhero
» WarCraft 3 / Вообще нет идей с десинхроном...
» WarCraft 3 / Вообще нет идей с десинхроном...
» WarCraft 3 / Рандром дроп для каждого типа юнита
Отредактирован goodlyhero
» WarCraft 3 / Рандром дроп для каждого типа юнита
» WarCraft 3 / Десинхронизация
Настройка hookjvm = true отвечает за это.
Отредактирован goodlyhero
» WarCraft 3 / Фатал
Отредактирован goodlyhero
» WarCraft 3 / Задержка в функции, которая выполняется для локального игрока
Отредактирован goodlyhero
» WarCraft 3 / Отслеживание статуса выполнения приказа юнита
Отредактирован goodlyhero
» WarCraft 3 / Десинхроны в карте
В общем виде, идея довольно проста - сделать запись у двух игроков до десинхрона и сравнить что получилось. Соответственно, если один игрок отвалился а другой остался - один десинкнул и можно сравнивать.
Отредактирован goodlyhero
» WarCraft 3 / Можно ли отследить нападение?
Еще удаленные юниты автоматически выходят из всех групп, например.
» WarCraft 3 / Time Defenders
Отредактирован goodlyhero
» WarCraft 3 / Wc3 - google таблицы
Программа для просмотра:
В основном, данные лежат по путям:
war3.w3mod:units/
основные статы тут.
war3.w3mod:_balance\custom_v1.w3mod
war3.w3mod:_balance\melee_v0.w3mod
Это разные версии баланса.
» WarCraft 3 / Wc3 - google таблицы
Соответственно вместо ручного выписывания достаточно импортировать нужные таблицы
Отредактирован goodlyhero
» WarCraft 3 / Как сделать рандом
Точно доступно в ГУИ, но где я не уверен.
Отредактирован goodlyhero
» WarCraft 3 / Быстрые анимации в главном меню
Обратил внимание, что если использовать загрузчик от Ev3nt для загрузки mpq, то краши не случаются. (спасибо ему за это ❤️)
» WarCraft 3 / Сохранение карты в Reforged и Автозагрузка героев. Десинхрон???
Есть карта. Её можно открыть в jngp 1.26 и в какой-то новой версии редактора для рефа.
Если запускать карту, собранную в рефовом редакторе, то в рефе десинкает?
» WarCraft 3 / Скилл "сундук золота" отсутствует у юнита
» WarCraft 3 / Помогите с настройкой юнита
Отредактирован goodlyhero
» WarCraft 3 / Как вернуть окраску юнита
Вероятно, большего вам и не требуется.
Совместимо с +- всеми патчами, возможно несколько не оптимизировано, но под пиво покатит.
Где-то я это все использовал, в общем-то вот.
Там всего 4 триггера на все скопируйте, настройте цвета, сбрасывайте цвет когда нужно на здоровье.
Тем не менее, редактор с встроенным цинков вам понадобится, чтобы карту таки скомпилировать.
Отредактирован goodlyhero
» WarCraft 3 / Как подкинуть противника скиллом?
» WarCraft 3 / Заклинание которым можно снять метаморфоз демонхантера?
» WarCraft 3 / Много триггерных абилок