![]()
Doc
![]() offline
Опыт:
63,163Активность: |
[Debug Log]
ПредисловиеВсем preload exploit пацаны! Представьте ситуацию: огромная карта, ваша карта. Сотни кода, объектов, моделей итп. В процессе разработки новой версии в коде делаются более девяти тысяч изменений, поправок, доработок. И вот он - долгожданный тест! Предвещая профит, вы собираете кучу кунов и тянов, хостуете игру и начинаете тестить. Сначала, все идет как по маслу, хуманы бегают, эльфы размножаются, сатанисты строят здания. Но тут бац! Причем в самом неожиданном месте! Epic fail. Как узнать где ошибка? Реплеи не сохраняются, игра закрывается сразу-же, ничего невозможно усмотреть. Тут вам и поможет Debug Log System. Она заботливо запишет в отдельный файлик дебаг-сообщения, которые вы сможете просмотреть непосредственно после игры или в ее процессе.
Как оно работаетНаработка использует небезызвестный preload exploit, точнее ту его часть, что отвечает за сохранение. Следовательно, ничего менять в реестре вам не понадобится.
APIНаработка пока сырая, поэтому в ней всего 3 функции:
Собственно добавляет запись в лог.
Кэп подсказывает, что это функция чистит лог.
Ручная перезапись лога.
Так же, есть несколько настроек-дефайнов, которые нельзя изменить в течение игры. Меняются они в самом коде. Вот они:
Первая отвечает за путь к файлу лога и за имя самого файла. Вторая спрашивает, нужно ли использовать как источник пути корень указанного диска, либо папку с вакрафтом. Третья указывает на букву диска, используемого в сохранении файла. Четвертая и пятая, отвечают за автосохранение лога.
Рекомендации к использованиюИспользуется точно так же как и обычный дебаг, то есть вы выводите некие поясняющие данные в лог файл, которые указывают вам на предыдущие совершенные действия, дабы обнаружить причину ошибки. В особо сложных случаях я рекомендую использовать конструкцию вида LogAdd(`funcname`), это выведет вам имя функции, в которой использовалось LogAdd.
Собственно система
» Тысячи кода
Карту пример прикреплять не стал, т.к. показывать особо нечего. |
![]() |
#1
+23/−3
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Nekit1234007
![]() ![]() offline
Опыт:
11,916Активность: |
Время можно вычислять по принципу как тут. А так, ни мягко ни тепло, учитывая, что лавочку могут прикрыть. |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
поэтому пока не прикрыли надо юзать. в целом написал систему лишь потому, что понадобилось найти неочевидный фатал, но мб кто-нибудь еще найдет этому применение. ах да, за идею с часами спасибо, так действительно правильней. |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Virysru
![]() offline
Опыт:
7,692Активность: |
зацените хоть пример лога, что-ли. |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
дак сделай и посмотри =) генерится txt файл с твоими сообщениями в формате "[время] сообщение" и ненужным мусором, который не убирается. алсо, лог файл некорретно просмотривается блокнотом - нету переходов на следующую строку. |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
reALien
![]() ![]() offline
Опыт:
29,211Активность: |
нп++ вас спасет |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
Именно так. Алсо, в вордпаде отступы тоже работают, проверял. |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Virysru
![]() offline
Опыт:
7,692Активность: |
т.е если я, допустим, добавлю в некий триггер строку (первым действием) на вывод 1111, то при вылете, последним что я увижу в логе, будет 1111? |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
Virysru, да.
Doc добавил: ну и не только при вылете. |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ihsan
Призрак старого Варкрафта
![]() ![]() offline
Опыт:
9,067Активность: |
Какая версия вара нужна? а так, очень полезная система (особенно для меня) |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
По идее на любой после 1.18 должно работать. |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ihsan
Призрак старого Варкрафта
![]() ![]() offline
Опыт:
9,067Активность: |
можешь все таки выложить пример, хотя бы такой: игрок красный напечатал сообщение 1 - добавить сообщение в лог игрок красный напечатал сообщение 2 - очистить лог игрок красный напечатал сообщение 3 - Ручная перезапись лога либо вар тупит либо я криворукий (это наиболее вероятно), но вар не грузит мапу |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
Ок позже запилю пример. |
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
BK.Jugg
террорист из КиП
![]() ![]() offline
Опыт:
27,066Активность: |
крутата, обязательно запилю себе |
![]() |
#14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
Вот вам пример, команды add clear и update. Файл в C:\Dir\Debug.txt. |
![]() |
#15
+2/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Msey
????
![]() offline
Опыт:
67,346Активность: |
Классная весчь :) "approved" ^ |
![]() |
#16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
wetalq
![]() offline
Опыт:
3,715Активность: |
Насколько я понял такую вещь можно использовать в оРпг токо сохранять не Лог а пароль ? |
![]() |
#17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Clamp
Lost in space
![]() ![]() offline
Опыт:
71,158Активность: |
Нельзя. Можно эту. |
![]() |
#18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
wetalq, сохранение файла можно реализовать по тому же принципу. |
![]() |
#19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
SomeFire
Всего 20 символов...
![]() offline
Опыт:
26,884Активность: |
Проблемы по мере их поступления:
SomeFire добавил: Если вырубаю другие триггеры, выдает отсутсвие оператора кода. |
![]() |
#20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|