Автор Тема: Вылеты при рисовании на экране (text draw)  (Прочитано 4465 раз)

Оффлайн daniel_360

  • Прохожий
  • *
  • Сообщений: 124
  • Репутация: +13/-0
    • daniel360465
    • Просмотр профиля
При рисовании текста (text draw), VC может вылететь в любой момент. Особенно заметно, если зайти в меню паузы или свернуться на рабочий стол и зайти обратно в игру, и она не развернётся. Спустя пару секунд закроется. Есть несколько способов решить вылеты:

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

2. Не использовать Ultimate ASI Loader от ThirteenAG. В новых версиях этого loader'а, автор что-то не так сделал и из-за этого рисование работает некорректно. Лучше использовать ASI Loader for RenderWare GTA (прикрепил архив) от DK22Pac или Fast Loader ASI от 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' для задействования других секций. Замечал, что иногда игра вылетает при частом использовании этого опкода.
« Последнее редактирование: Июля 28, 2025, 12:19:46 am от daniel_360 »

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 720
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Вылеты при рисовании на экране (text draw)
« Ответ #1 : Августа 05, 2025, 12:23:59 am »
Я так и знал, что UAL вызывает больше проблем, чем решает.
У меня когда-то Main Menu Scene перестал работать с очередным обновлением этого загрузчика. Сначала я думал, что проблема во мне, в моем коде и т.п. (хотя у меня там ничего преступного и не было), но спустя время стал замечать и другие странности.
И вот, наконец, еще одно конкретное подтверждение.

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