Показать сообщение отдельно
Старый 27.06.2017, 02:36   #70
roman5
Новичок
 
Регистрация: 25.06.2017
Сообщений: 114
Вы сказали Спасибо: 35
Поблагодарили 71 раз(а) в 34 сообщениях
roman5 стоит на развилке (репутация по умолчанию)
По умолчанию

Тоже прошел сценарий полностью, все хорошо, интересно. Но у меня почему-то происходят вылеты мстс после закрытия сообщений, в которых много текста, если я их не закрываю в течение 2-5 секунд. Если в сообщении мало текста, то оно нормально закрывается и через 30 секунд. Закрываю кнопкой esc, если закрывать мышкой также вылетает на длинных сообщениях.

Может кто пробовал фиксить баг с вылетом после закрытия сообщения ?
У меня система windows 10 x64, amd ati radeon видео.

Я попробовал выловить конкретно на какой инструкции кода в train.exe происходит исключение. Загрузил игру в IDA PRO и под отладкой начал играть, после закрытия я ловлю исключение, вот тут:


sub_545802 proc near

var_8= dword ptr -8
var_4= dword ptr -4

push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, dword_7FB3A8
mov [ebp+var_4], eax
mov ecx, dword_7FB3A8 // здесь в ecx попадал 0, почему-то по адресу 7FB3A8 было не проинициализировано
mov edx, [ecx+4] // а тут получилось взятие значения по адресу [4], который не существует, вот и вылетает.

Я особо не понял, почему тот адрес в этот раз был 0 (функция вызывается постоянно во время игры, это усложняет разбор), но я добавил условие, что если по тому адресу 0, то сразу выходить из функции и вылеты прекратились.

P.S. В общем если пореверсить хорошо игру, то думаю можно многие баги в ней устранить. Исходников ведь нет к ней нигде в сети ?

Ну и еще по сцене встречного трафика очень мало.

Последний раз редактировалось roman5; 27.06.2017 в 02:38.
roman5 вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА