dd_mn #1 - 7 лет назад 0
Голосов: +0 / -0

» WarCraft 3 Reforged / Логер JASS для WC3

2 ADOLF: Нашел отладчиком место, где проскакивает исходный код. Повесил хук на это место. Зачем - написано в начале. Близзарды явно не предполагали настолько интенсивное использование их скриптов и редактора и разобраться в причине вылета часто невозможно. Иногда помогает анализ крэшлога (там можно иногда увидеть код абилки или юнита, вызвавшего вылет)
2 ScorpioT1000: grimoir логгер не работает с последним патчем вроде.
dd_mn #2 - 7 лет назад 0
Голосов: +0 / -0

» WarCraft 3 Reforged / Логер JASS для WC3

Добавлена обновленная версия с улучшенной производительностью (файл записывается после фатальной ошибки\завершения war3.exe)
dd_mn #3 - 7 лет назад (изм. ) 0
Голосов: +0 / -0

» WarCraft 3 Reforged / Логер JASS для WC3

Размер файла лога ограничен. Лог пишется СРАЗУ на диск (ведь я не могу предсказать когда произойдет фатал), что дает притормаживание при большой интенсивности выполнения скриптов.
Так что требования к памяти у этого логгера минимальны.
dd_mn #4 - 7 лет назад (изм. ) 1
Голосов: +1 / -0

» WarCraft 3 Reforged / Логер JASS для WC3

Нет, vcredist не нужен (не на С написано). Может мешает какой то современный механизм защиты вроде ASLR.
Еще можно проверить что сам варкрафт совпадает (хотя бы файлы war3.exe, storm.dll и game.dll)
Вот, немного оптимизировал код на скорость, лог пишется теперь только при включенном ScrollLock.
Прикрепленные файлы
dd_mn #5 - 7 лет назад (изм. ) -1
Голосов: +0 / -1

» WarCraft 3 Reforged / Логер JASS для WC3

"под Windows 8 x64" не могу - не охота ее ставить ради проверки. Как вариант предлагаю установить виртуальную ХР и попробовать под ней.
"код обваливает варкрафт" - не сталкивался с таким, значит и исправить не смогу(.
dd_mn #6 - 7 лет назад 0
Голосов: +0 / -0

» WarCraft 3 Reforged / Юнит принадлежит игроку, но не контролируем.

Если делаешь свой "Castle Fight" - то лучше сделай чтобы юнит НЕ принадлежал игроку. Потому что в КФ-е все же частично можно управлять юнитами.
dd_mn #7 - 7 лет назад (изм. ) -1
Голосов: +0 / -1

» WarCraft 3 Reforged / Логер JASS для WC3

перезаписывает предыдущие функции новыми - так сделано потому что для идентификации куска кода, на котором происходит вылет, достаточно нескольких строк, потому ненужные(старые) строки перезаписываются. Лагать особо не должно, если, конечно, скрипт не очень интенсивно что то выполняет.
dd_mn #8 - 7 лет назад (изм. ) -1
Голосов: +0 / -1

» WarCraft 3 Reforged / Логер JASS для WC3

На реплее фатал на 40 минуте
-я для отладки делал переключатель - кнопку CapsLock; пока не нажмешь - не логирует
можно добавить в исходник, отключил тк боролся с непредсказуемыми вылетами
dd_mn #9 - 7 лет назад (изм. ) 0
Голосов: +0 / -0
dd_mn #10 - 7 лет назад 0
Голосов: +0 / -0

» WarCraft 3 Reforged / Логер JASS для WC3

Может быть, я не проверял работоспособность на других версиях WC3 (кроме 1.26), так же может антивирус молча убивать то, что для него подозрительно.
dd_mn #11 - 7 лет назад 0
Голосов: +0 / -0

» WarCraft 3 Reforged / Логер JASS для WC3

Да не за что. Пришлось поковыряться дебагером и изобрести эту прогу из-за того, что в дампе близардов мало кто сможет что-то понять(кроме самих близардов), в лучшем случае там проскакивает код абилки\юнита, который вызвал фатал.
dd_mn #12 - 7 лет назад 3
Голосов: +3 / -0

» WarCraft 3 Reforged / Логер JASS для WC3

Исходный код (делфи)
Прикрепленные файлы
dd_mn #13 - 7 лет назад -1
Голосов: +1 / -2

» WarCraft 3 Reforged / Логер JASS для WC3

Я то туда ничего не вшивал ) В первоначальном варианте все работало без претензий от антивируса, но нужно было вручную переименовывать game.dll Могу выложить исходник для желающих собрать\поковыряться самомтоятельно
dd_mn #14 - 7 лет назад 2
Голосов: +2 / -0

» WarCraft 3 Reforged / Логер JASS для WC3

Увы - в логе не будет имен функций, только отрывочные данные выполняемого кода, где конкретно находится косяк, возможно, прийдется и поискать.
dd_mn #15 - 7 лет назад 0
Голосов: +0 / -0

» WarCraft 3 Reforged / Логер JASS для WC3

Прога логирует выполнение джасс-скрипта и предназначена всего лишь для того что бы узнать - КАКОЙ код выполнялся перед фатальной ошибкой.
dd_mn #16 - 7 лет назад (изм. ) 0
Голосов: +0 / -0

» WarCraft 3 Reforged / Логер JASS для WC3

Пришлось родить это подобие логгера т.к нет каких-либо других способов разобраться, какой код обваливает варкрафт. В моем случае это был код вида
group G1
group G2
...
function SwapGroups()
group G
G = G1
G1 = G2
G2 = G
endfunction
который ИНОГДА вызывал фатал.
dd_mn #17 - 8 лет назад 1
Голосов: +1 / -0

» WarCraft 3 Reforged / Графический фикс MDLVis

Обновил файл архива, предыдущая версия фикса была совсем мало работоспособной.
dd_mn #18 - 8 лет назад (изм. ) 1
Голосов: +1 / -0

» WarCraft 3 Reforged / Графический фикс MDLVis

"После просмотра или редактирования текстуры, перестает работать всё" - значит фикс не удался ( Ну это исправимо, если что.
"Все работает на честном слове" - это уже не раз почувствовал. Может наваяю что то похожее по его мотивам, ежели ничего не помешает.
dd_mn #19 - 8 лет назад 2
Голосов: +2 / -0

» WarCraft 3 Reforged / Графический фикс MDLVis

У меня такой не было ни разу - мб из-за длинных имен в пути?.
dd_mn #20 - 8 лет назад 3
Голосов: +3 / -0

» WarCraft 3 Reforged / Графический фикс MDLVis

Насчет примитивов примерно ясно, это относительно несложно.
Но пристойный моделер вряд ли выйдет, это туча работы, а исходники там того...для себя делались.
dd_mn #21 - 8 лет назад 4
Голосов: +4 / -0

» WarCraft 3 Reforged / Графический фикс MDLVis

это 1.40. "добавь что ли примитивы тогда в виз и адекватную работу с текстурами" - а чего там не хватает? я не особо в теме моделинга.