GTA Builder Форум

GTA Vice City => Справочная информация => Тема начата: daniel_360 от Июля 27, 2025, 11:57:55 pm

Название: Вылеты при рисовании на экране (text draw)
Отправлено: daniel_360 от Июля 27, 2025, 11:57:55 pm
При рисовании текста (text draw), VC может вылететь в любой момент. Особенно заметно, если зайти в меню паузы или свернуться на рабочий стол и зайти обратно в игру, и она не развернётся. Спустя пару секунд закроется. Есть несколько способов решить вылеты:

1. Отключить вывод текста зоны нахождения и наименование автомобиля. Необходимо занопить вызов названия района и имя машины, когда садишься в неё. Прикрепил архив (CarNZoneShow), автор kenking.

2. Не использовать Ultimate ASI Loader от ThirteenAG. В новых версиях этого loader'а, автор что-то не так сделал и из-за этого рисование работает некорректно. Лучше использовать ASI Loader for RenderWare GTA (прикрепил архив) от DK22Pac или Fast Loader ASI (https://gtabuilder.ru/gta_vc/mods/asi_plugins/78-fast-loader-asi.html) от Sektor. Плагины надо поместить в папку plugins. Если какой-то плагин не работает в папке, то просто поместите его в корень игры.

3. Правильно использовать опкод 03F0: enable_text_draw 1. Лучше не использовать этот опкод в цикле рисования. После работы с рисованием ОБЯЗАТЕЛЬНО отключить рисование (03F0: enable_text_draw 0). Пример кода рисования:
Код: Text
  1. :TXT1_4514
  2. wait 0
  3. if
  4. 0ADC: test_cheat "test"
  5. jf @TXT1_4514
  6. 054C: use_GXT_table 'FINALE'
  7. 03F0: enable_text_draw 1  
  8.  
  9. :TXT1_15940
  10. wait 0
  11. gosub @TXT1_24
  12. 0340: set_text_draw_color 0 255 0 255
  13. 033E: text_draw 175.0 150.0 'FIN1_04'  
  14. gosub @TXT1_24
  15. 0340: set_text_draw_color 255 0 0 255
  16. 033E: text_draw 350.0 150.0 'FIN1_05'
  17. if
  18. 00E1:   player 0 pressed_button 10
  19. jf @TXT1_16066
  20. 03F0: enable_text_draw 0
  21. jump @TXT1_4514
  22.  
  23. :TXT1_16066
  24. if
  25. 00E1:   player 0 pressed_button 11
  26. jf @TXT1_15940 //15940
  27. 03F0: enable_text_draw 0
  28. jump @TXT1_4514
  29.  
  30. :TXT1_24
  31. 0341: set_text_draw_align_justify 1
  32. 03E4: set_text_draw_align_right 0  
  33. 0343: set_text_linewidth 500.0
  34. 0348: set_text_draw_proportional 1
  35. 0342: set_text_draw_centered 1
  36. 0345: set_text_draw_in_box 0
  37. 033F: set_text_draw_letter_width_height 0.8 1.6
  38. return

4. Использовать GXT текст из секции "MAIN". Можно попробовать использовать текст из главной секции игры. Не понадобится использовать опкод 054C: use_GXT_table 'FINALE' для задействования других секций. Замечал, что иногда игра вылетает при частом использовании этого опкода.
Название: Re: Вылеты при рисовании на экране (text draw)
Отправлено: Shagg_E от Августа 05, 2025, 12:23:59 am
Я так и знал, что UAL вызывает больше проблем, чем решает.
У меня когда-то Main Menu Scene перестал работать с очередным обновлением этого загрузчика. Сначала я думал, что проблема во мне, в моем коде и т.п. (хотя у меня там ничего преступного и не было), но спустя время стал замечать и другие странности.
И вот, наконец, еще одно конкретное подтверждение.

Спасибо за статью, буду знать!