GTA Builder Форум

GTA Vice City => Скриптинг => Тема начата: mike43842 от Ноябрь 23, 2013, 07:05:03 pm

Название: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 07:05:03 pm
Мне бы хотелось реализовать вывод текстуры на экран по вызову опкода, такая штука есть например которая выводит загрузочные экраны, но это выводится на весь экрна а хотелось бы выводить это по координатам экрана, собственно говоря такая тука в вс есть - это худ но вот вопрос в том как сделать ее опкодом.
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 07:31:49 pm
Опкоды по выводу текстур, уже существуют:

0391: release_txd_dictionary
0390: load_txd_dictionary 'MFPASS'
038F: load_texture 'MAP' as 1 // Load dictionary with 0390 first   
03F0: enable_text_draw 1   
03E3: set_texture_to_be_drawn_antialiased 1
038D: draw_texture 1 position 15@ 14@ size 13@ 13@ RGBA 255 255 255 255
Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 07:33:32 pm
спасибо!___))

хм, у меня проблема :( в IDA я нашел опкод 0390 но в самом sanny builder при поиске опкодов - его нет O_O и если по опкоду ищу нет, и по имени вообще не пойму в чем дело, сектор откудого ты их скопировал?
Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 08:21:07 pm
3.1.2
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 08:43:13 pm
Хорошо. значит как я понял они не прописаны в VICESCM.INI для компилятора Sanny Builder.

Тут я выкладываю данный файл VICESCM.INI

1. Скачать и заменить его в директории где установлена сама программа. У меня это выглядит так:

"C:\Program Files\Sanny Builder 3\data\vc"

2. Естественно перезапустить Sanny Builder, ну и по пробовать, скопилировать.



Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 08:45:33 pm
нет в vcscmini он есть  :) просто в коде стандартного майн.сцм я не нашел, сейчас буду тестировать)
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 08:47:26 pm
Цитировать
просто в коде стандартного майн.сцм я не нашел, сейчас буду тестировать)
В стандартном scm, врядли когда они использовались.


Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 08:55:05 pm
Сектор, подскажи пожалуйста как можно узнать координаты экрана?
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 08:58:17 pm
Цитировать
Сектор, подскажи пожалуйста как можно узнать координаты экрана?

На экране, по крайне мере только методом, того что пробовать выводить изначально все вручную. Или же писать специальный скрипт, который скажем будет выводить квадратик, а мышкой мы будем его передвигать и тут же внизу будет показано его положение в виде цифр.

Советую прочитать подробно про то как вывести свою текстуру:
Рисование на экране (http://gtamodding.ru/wiki/%D0%E8%F1%EE%E2%E0%ED%E8%E5_%ED%E0_%FD%EA%F0%E0%ED%E5)
Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 09:06:11 pm
Вообщем нчиего у меня не работает :( есть 2 варианта:
1 - сам опкод не работает в вайсе, кстати в vicescm написано "never used in VC or GTA 3"
2 - неправильные координаты прописал как в теме на гтмоддинге: 160.0 112.0.
вот код:
0391: release_txd_dictionary
0390: load_txd_dictionary 'FONTS'
038F: load_texture 'FONT2' as 1
03E3: set_texture_to_be_drawn_antialiased 1
038D: draw_texture 1 position 480.0 112.0 size 256 256 RGBA 255 255 255 0
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 09:17:05 pm
Цитировать
"never used in VC or GTA 3"
Это означает, что не когда не использовалось. Это не значит что не рабочий.

Естественно оно не будет работать.

038D: draw_texture 1 position 480.0 112.0 size 256 256 RGBA 255 255 255 0
Это помещается в цикл, подобно как работают проверочные сферы.


Ради примера по пробуй сделать так:

//Сперва загрузим и сделаем все нужные операции
0391: release_txd_dictionary
0390: load_txd_dictionary 'FONTS'
038F: load_texture 'FONT2' as 1
03E3: set_texture_to_be_drawn_antialiased 1


//Затем загоним в цикл

:loopdraw
038D: draw_texture 1 position 480.0 112.0 size 256 256 RGBA 255 255 255 0
wait 0
jump @loopdraw


Ну и посмотри что получиться. Честно сказать я последний раз скриптел в 2007 году что-ли. Ну вообщем как-то так.




Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 09:19:48 pm
Тогда мне нужно функцию hud-a переписывать как опкод.
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 09:21:43 pm
Цитировать
Тогда мне нужно функцию hud-a переписывать как опкод.
По пробуй сделать так, как я написал выше и скажешь что получилось. Ведь в справке что я давал, там как раз таки был цикл.
Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 09:22:34 pm
ok
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 09:24:06 pm
Кстати еще по пробуй на других текстурах, не обязательно сразу хвататься за fonts.
Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 09:34:06 pm
Сделал цикл, попробовал на дургих не работает все равно...
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 10:01:04 pm
Зависает игра?
Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 10:02:38 pm
нет
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 10:11:46 pm
03F0: enable_text_draw 1Вот этот опкод использовал в начале?
Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 10:14:40 pm
нет, сейчас попробую.
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 10:33:54 pm
В конце альфу ты забыл указать.

Вообщем вот так все рисует абсолютно:

1. Создаем тело потока:

:TXDLOOP
thread 'TXD'


0391: release_textures
0390: load_txd_dictionary 'FONTS'      // never used in VC or GTA 3
038F: load_texture 'FONT2' as 1  // Load dictionary with 0390 first


:loopTxd
03F0: enable_text_draw 1
038D: draw_texture 1 position 480.0 112.0 size 256.0 256.0 RGBA 255 255 255 255 // never used in VC or GTA 3
wait 0
03F0: enable_text_draw 0
jump @loopTxd


end_thread

2. Создаем сам поток, в удобном нам месте, обычно в конце главного потока:

004F: create_thread @TXDLOOP
И все это начинает работать, вот теперь пробуй.
Название: Re: реализация вывода текстуры
Отправлено: mike43842 от Ноябрь 23, 2013, 11:02:50 pm
Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Название: Re: реализация вывода текстуры
Отправлено: Sektor от Ноябрь 23, 2013, 11:22:03 pm
Пожалуйста. Еще один важный момент, что текстуры прописывать надо именно через ' '. Иначе если заюзать " ", то будут зависания... Имена текстур должны быть короткими, не более 8 символов, а также текстуры должны находиться в папке models.
Название: Re: реализация вывода текстуры
Отправлено: mfisto от Февраль 16, 2014, 12:42:29 am
В Вайсе вывод текстур осуществляется глобально, то есть в разных разрешениях, поэтому там надо уметь масштабировать, для этого надо знать адреса ширины и высоты экрана. А потом в процентном содержании все выводить. Замечу что для вывода текста используется как и в Сашке - всегда 640x448, что очень неудобно.