Форум

Суббота, 18.05.2024, 18:52 Приветствую Вас Гость
Главная | Регистрация | Вход | RSS
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: [Try]DiGGeR225  
Форум » Модостроительство » Общие уроки модостроительства/Вопросы и помощь по модостроению » Лечение вылетов без лога
Лечение вылетов без лога
[Try]DiGGeR225Дата: Понедельник, 29.08.2011, 15:07 | Сообщение # 1
Прибывший
Группа: Администраторы
Сообщений: 501
Награды: 5
Репутация: 4
Статус:
Автор: Skyloader
Решил написать статью про это. Этот метод может помогать выявить некоторые стабильные безлоговые вылеты. Сам пользуюсь методом, часто помогает. Скажу сразу, этот метод только для скриптеров, остальные не поймут, что в логе написано.
Итак, тут довольно все просто. Будем изменять ф-цию 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

Вот, в принципе, и все.



 
Форум » Модостроительство » Общие уроки модостроительства/Вопросы и помощь по модостроению » Лечение вылетов без лога
  • Страница 1 из 1
  • 1
Поиск:

Чат доступен только пользователям сайта
Зарегистрироваться

ТОП самых общительных:

[Try]DiGGeR225
Репутация:4
Постов: 501
Файлов: 43
Krendelyok
Репутация:0
Постов: 108
Файлов: 0
Sniper
Репутация:0
Постов: 82
Файлов: 0
Инквизитор
Репутация:0
Постов: 27
Файлов: 0
[K715]
Репутация:0
Постов: 22
Файлов: 0
Конструктор сайтов - uCoz