19

» WarCraft 3 / Memory Hack: Загрузчик native функций

quq_CCCP, они лишь для демонстрации работоспособности загрузчика.
Если появится полноценная библиотека с множеством нативок, то её можно будет использовать вместе с этой системой.
Хотя, конечно же, можно обойтись и без них вовсе.
19

» RenderEdge / [RenderEdge] Memory Hack

Разве синхронизация долгая? Для синхронизации кеша используется тот же механизм, что и для отдачи приказов и прочего. Сколько времени проходит между отдачей приказа и его выполнением, столько же должно уходить и на синхронизацию. Единственный неприятный момент — ограничение на количество данных.
19

» WarCraft 3 / Import Exploit - чудеса импорта (MIX)

Дело не в размере, а в количестве файлов.
Архив в этом ресурсе может вмещать не более чем 4096 файлов.
Чтобы добавить больше, нужно изменить лимит на количество файлов (Ladik умеет).
19

» WarCraft 3 / Вылетает карта

Было создано 22 366 679 экземпляров класса CUnitListNode, которые заняли 255.9 МБ памяти.
При очередной попытке выделения, игра упала.
Виной всему утечки памяти: за 21 минуту набралось 80 тысяч групп и 20 тысяч точек.
Также, из-за выполнения большого количества кода, сильно лагает.
На стадии выбора героя (первые две минуты), выполняется 550 000 операций в секунду, а далее — 1 200 000.
Для сравнения: лимит потока — 300 000 операций.
Хорошо, что ты приложил карту, так как в логе маловато информации.
19

» WarCraft 3 / "Вырубается WE при нажатии на . . ."

"Вырубается" и "зависает" — разные вещи.
Вместо того, чтобы плодить 100-500 уровней для улучшений, лучше поищи менее китайский способ.
Удали все толстые улучшения и ситуация исправится.
19

» WarCraft 3 / Ошибка компиляции Jass(Function redeclared)

Это взломанная версия карты. Никакой не "open source".
Обфусцированные имена переменных, весь код в одной куче.
Еще и читы вставлены.
Ты не сможешь нормально редактировать эту карту.
19

» WarCraft 3 / MapHack для реплея

Новая версия была давно как готова, но вышла только сейчас, так как я не знал, что делать с непонятными вылетами. Как оказалось, проблема была в менеджере памяти, неспособном освободить память, выделенную в уже завершившемся потоке. Поменял его на другой.
19

» WarCraft 3 / Почему фатал?

Вылет произошел во время обращения к элементу jass массива с индексом 21.
Так как это был мемхакнутый массив, произошла попытка чтения памяти по адресу 0x54.
Крашнулся твой код, так что переписывай.
19

» WarCraft 3 / JNGP не запоминает war3map.j, отредактированный через Блокнот?

Данные о jass коде хранятся в war3map.wct (Warcraft Custom Triggers?).
war3map.wtg (Warcraft Triggers Gui?) содержит категории, gui триггеры и глобальные переменные.
Во время сохранения карты, все это компилируется в war3map.j файл.
Внутреннее устройство карты
19

» WarCraft 3 / Что за ошибка и как с ней бороться?

В случае вылета игры, следует всегда прикреплять к вопросу отчет об ошибке.
Он находится в: "%папка_с_игрой%\Errors\%дата_вылета% Crash.txt".
Вылетает при загрузке данных о предметах.
Удали все предметы и проверь, не перестанет ли вылетать.
Если перестанет, то удаляй предметы по одному, пока не найдешь виновника.
Еще не помешала бы сама карта/кампания, которую нужно было прикрепить вместе с отчетом с самого начала.
19

» WarCraft 3 / MapHack для реплея

Версия 1.2
  • Исправлен краш при выходе из игры.
  • Добавлена возможность менять высоту и плавность камеры.
  • Добавлен небольшой файл с настройками.
19

» WarCraft 3 / MapHack для реплея

quq_CCCP, я бы не рисковал. Хак меняет код игры и никак не скрывает свое присутствие.
19

» WarCraft 3 / MapHack для реплея

quq_CCCP, будет исправлено.
Похоже, что игра слишком рано выгружает mix из памяти, а хуки остаются.
В итоге управление передается в удаленный регион памяти.
JackFastGame:
Стоило бы уточнить, что переключение происходит при помощи Ctrl+TAB.
У меня переключается по TAB'у.
19

» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я

Вот рабочая система с хайва. Различает реплей, одиночную и сетевую игру.
Инициализируется на стадии загрузки карты, поэтому не придется ждать 2.9 сек.
Нет ложного срабатывания на свернутую игру.
19

» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я

quq_CCCP, ты имеешь ввиду смещения для прочих версий?
у меня есть game.dll только для 1.26a, 1.27a, 1.27b (тут мемхак уже не пашет?)
19

» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я

Нашел смещение для новой версии:
code
int offset

// Не знаю как вы там версии сравниваете
if (VERSION == 1.26a) then
	offset = $AB4F80
elseif (VERSION == 1.27a)
	offset = $BE6350
endif

int ptr1 = Read(GameDll + offset)
int ptr2 = Read(ptr1 + $3C8)
int ptr3 = Read(ptr2 + $15C)
bool IsReplay = (ptr3 != 0)
На афкашеров пофигу, что им лишнее что то показалось, чаще всего такие вовсе не приходят или ливают.
Я часто сворачиваю игру, мало ли сколько народ набираться будет.
А после загрузки игры я получаю уведомление от программы.
19

» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я

Попробуй мемхак (код подходит только для патча 1.26a)
Адреса и смещения не делены на 4!
int ptr1 = Read(GameDll + $AB4F80)
int ptr2 = Read(ptr1 + $3C8)
int ptr3 = Read(ptr2 + $15C)
bool IsReplay = (ptr3 != 0)
19

» WarCraft 3 / Нужна модель которая будет критовать на варкрафте 1.27b?

Astra, затем, чтобы поставить невидимого юнита с этой моделью на карте. Увидев его, мхшник сразу вылетит. Но, как сказал quq_CCCP, эту "защиту" легко обойти удалив модель из архива.
19

» WarCraft 3 / Мультиборд, работает на 1.27b и крашится на 1.26

Заглянул в game.dll версии 1.27b и увидел, что blizzard добавила проверку индекса принимаемого нативкой Player.
Поэтому игра и не крашится на новой версии.
19

» WarCraft 3 / Мультиборд, работает на 1.27b и крашится на 1.26

При обращении к игроку с неправильным индексом (вне диапазона 0-15) игра может вылететь.
19

» WarCraft 3 / Игрок открывает список построек

Игра - The 'Build Structure' button is clicked
function TriggerRegisterBuildSubmenuEventBJ takes trigger trig returns event
    return TriggerRegisterGameEvent(trig, EVENT_GAME_BUILD_SUBMENU)
endfunction
Как я понял, нельзя узнать кто открыл меню.