Сповіщення
Очистити все

ВАЖЛИВО! Виявлення причини вильоту без логу під час тестування моду (ПП/ЗП)


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

Цей метод може допомагати виявити деякі стабільні чи нестабільні (якщо у вас терпіння вистачить) безлогові вильоти. Сам користуюся методом, що часто допомагає. Скажу відразу, цей метод тільки для скриптерів, решта не зрозуміє, що в лозі написано. Отже, змінюватимемо функцію printf() у файлі _g.script . Дивимося її і наводимо до такого вигляду:

 
function printf ( fmt,... ) 
local con = get_console ( ) 
con: execute ( string . gsub ( string . format ( fmt,... ) , " " , "_" ) ) 
con: execute ( "flush" ) 
end
 

Таким чином, у лог примусово пишеться вся інформація, що йде в консоль у процесі гри.

Запускаємо гру та граємо/завантажуємо сейв. Гра гальмуватиме, тому що в балку йде дуже багато інформації. Робимо нашу чорну справу, при якій вилітаємо, та й ловимо виліт. Дивимося лог і бачимо, що в ньому залишилася остання дія.


Після виявлення вильоту нам потрібно все повернути назад, щоб гра не гальмувала та не засмічувала балку. Просто закоментуємо рядки з execute , щоб було так:

 
function printf ( fmt,... ) 
--local con = get_console() 
--con:execute(string.gsub(string.format(fmt,...), " ", "_")) 
--con: execute("flush") 
end
 

Ось, у принципі, і все.

До речі, таким чином можна дізнаватися причини вильотів з логом, що лається на _g.script.


   
Цитата
Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому

   
ВідповіcтиЦитата