#1 20-01-2008 10:45

Seemann
Registered: 07-08-2006
Posts: 2,155

Изменение интерфейса

Давно обещанный мной скрипт изменения интерфейса, результат работы которого продемонстрирован здесь
http://sannybuilder.com/images/forums/newhud.jpg

К сожалению, у меня пропал откомментированный исходник, остался только скомпилированный скрипт, содержимое которого я привожу здесь (кое-что возвращено в первоначальный вид).

{$CLEO}
0@ = 362035                // health bar
&0(0@,1i) = 0xFF00FFF0

0@ = 362036                // hud.money
&0(0@,1i) = 0xFF00FFF0

0@ = 362038                // SA fonts
&0(0@,1i) = 0xFF0C0CFF

0@ = 362039                // GTA3 fonts
&0(0@,1i) = 0xFF3BB847

0@ = 362040                // fonts.menubackground
&0(0@,1i) = 0xFFFF0000

0@ = 362041                // maplines
&0(0@,1i) = 0xFF00FFF0

// text box top margin
0A8C: write_memory 0x859AD8 size 4 value 125.0 virtual_protect 1            
             
0005: $25 = 420.0
0005: $26 = 135.0 
0005: $27 = 110.0 
0004: $28 = 0x8000FFF0 
0A8C: write_memory 0x583500 size 4 value 0xA499C4 virtual_protect 1  // $25
0A8C: write_memory 0x58A7C7 size 4 value 0xA499C4 virtual_protect 1  // $25
0A8C: write_memory 0x58A868 size 4 value 0xA499C4 virtual_protect 1  // $25
0A8C: write_memory 0x58A913 size 4 value 0xA499C4 virtual_protect 1  // $25
0A8C: write_memory 0x58A9C7 size 4 value 0xA499C4 virtual_protect 1  // $25
0A8C: write_memory 0x58A789 size 4 value 120 virtual_protect 1 
0A8C: write_memory 0x58A88F size 4 value 120 virtual_protect 1 
0A8C: write_memory 0x58A8D9 size 4 value 120 virtual_protect 1 
0A8C: write_memory 0x58A98F size 4 value 120 virtual_protect 1 
0A8C: write_memory 0x866B74 size 4 value 60.0 virtual_protect 1 
0A8C: write_memory 0x866B78 size 4 value 80.0 virtual_protect 1 
0A8C: write_memory 0x58F5FC size 4 value 0xA499C8 virtual_protect 1 // $26
0A8C: write_memory 0x58F5DC size 4 value 0xA499CC virtual_protect 1 // $27
0A8C: write_memory 0x866BB4 size 4 value 10000.0 virtual_protect 1 
0A8C: write_memory 0x58F600 size 4 value 0x90909090 virtual_protect 1 
0A8C: write_memory 0x58F499 size 4 value 0xA499CC virtual_protect 1 // $27

0A93: end_custom_thread

Как видите, отдельные адреса не откомментированы, и я не помню уже их точного назначения.
С момента написания этого скрипта я нашел гораздо больше адресов чем здесь, но все нет времени привести их в порядок и задокументировать.

Offline

#2 20-01-2008 11:01

Agenzvell
From: Windows/system32
Registered: 28-08-2007
Posts: 109
Website

Re: Изменение интерфейса

выглядит хорошо, только радар странно отображается, т.е. его почти невидно.

Offline

#3 20-01-2008 11:10

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Изменение интерфейса

там среди этих адресов есть изменение размера радара, он здесь меньше чем обычно. прозрачность текстуры вокруг радара тоже меняется (здесь она полупрозрачная).

Offline

#4 01-02-2008 21:52

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Изменение интерфейса

Насчет радара, это из-за конфликтов глобальных переменных. Если использовать этот скрипт на оригинальном майне, то переменная, в которой содержится новая высота радара ($25) будет перезаписана майном, и радар будет почти не виден. Я тестировал скрипт на стриппед, поэтому баг остался незамеченным.

Offline

#5 02-02-2008 00:40

jayrocc
From: MSK
Registered: 09-06-2007
Posts: 50

Re: Изменение интерфейса

Кстати вопрос на засыпку: некоторые номера иконок при выводе радара или сферы (ХХХ) не используются. Есть ли возможность найти на какие текстуры ссылается та или иная неиспользуемая иконка?

02A8: $M2 = create_marker ХХХ at $X_POS $Y_POS $Z_POS

например номер 1 это белый квадратик. Как может называться текстура, чтобы заменить его? Такая же штука с номерами 64, 65, 66.

и еще, есть такие иконки с мигалками, 20 и 30. Они вообще где-нибудь используются в игре?

Offline

#6 02-02-2008 01:09

Agenzvell
From: Windows/system32
Registered: 28-08-2007
Posts: 109
Website

Re: Изменение интерфейса

и еще, есть такие иконки с мигалками, 20 и 30. Они вообще где-нибудь используются в игре?

да, используются в миссии в San Fierro.

Offline

#7 20-02-2008 18:19

Flow
From: Екатеринбург
Registered: 20-02-2008
Posts: 10

Re: Изменение интерфейса

ктонибуть знает как передвинуть gps по оси Y ? ...


таксист Вазген виселае бамбила smile

Offline

#8 26-02-2008 07:58

PILOT86
Registered: 30-10-2007
Posts: 4

Re: Изменение интерфейса

Так ну чуток с клео сдружился... но не пойму одного! как перенести радар верх по оси а то там маленький кусочег торчит что меня и волнует, но ещё и броня тож не подарок, нана броню поставить на уровень с жизнями а то как то в право ушла, та и звёзды розыска чуток приподнять... ЛЮДИ МЕГА СКРИПТЕРЫ ПЛИЗ ХЕЛП!!!! я хз как и что делать, что мог то и сделал...

Уважительная просьба не игнорте...

782b780ffaee48c4d8.jpg

Вот скрипт:

{$CLEO}
0@ = 362035                // health bar
&0(0@,1i) = 0xFF00FFF0

0@ = 362036                // hud.money
&0(0@,1i) = 0xFF00FFF0

0@ = 362038                // SA fonts
&0(0@,1i) = 0xFF0C0CFF

0@ = 362039                // GTA3 fonts
&0(0@,1i) = 0xFF3BB847

0@ = 362040                // fonts.menubackground
&0(0@,1i) = 0xFFFF0000

0@ = 362041                // maplines
&0(0@,1i) = 0xFF00FFF0

// text box top margin
0A8C: write_memory 0x859AD8 size 4 value 14.3 virtual_protect 1            
             
0005: $25 = 420.0
0005: $26 = 608.0 
0005: $27 = 14.3 
0004: $28 = 0x8000FFF0 
0A8C: write_memory 0x583500 size 4 value 0xA499C4 virtual_protect 1  // $25
0A8C: write_memory 0x58A7C7 size 4 value 0xA499C4 virtual_protect 1  // $25
0A8C: write_memory 0x58A868 size 4 value 0xA499C4 virtual_protect 1  // $25
0A8C: write_memory 0x58A913 size 4 value 0xA499C4 virtual_protect 1  // $25
0A8C: write_memory 0x58A9C7 size 4 value 0xA499C4 virtual_protect 1  // $25
0A8C: write_memory 0x58A789 size 4 value 120 virtual_protect 1 
0A8C: write_memory 0x58A88F size 4 value 120 virtual_protect 1 
0A8C: write_memory 0x58A8D9 size 4 value 120 virtual_protect 1 
0A8C: write_memory 0x58A98F size 4 value 120 virtual_protect 1 
0A8C: write_memory 0x866B74 size 4 value 80.0 virtual_protect 1 
0A8C: write_memory 0x866B78 size 4 value 80.0 virtual_protect 1 
0A8C: write_memory 0x58F5FC size 4 value 0xA499C8 virtual_protect 1 // $26
0A8C: write_memory 0x58F5DC size 4 value 0xA499CC virtual_protect 1 // $27
0A8C: write_memory 0x866BB4 size 4 value 10000.0 virtual_protect 1 
0A8C: write_memory 0x58F600 size 4 value 0x90909090 virtual_protect 1 
0A8C: write_memory 0x58F499 size 4 value 0xA499CC virtual_protect 1 // $27

0A93: end_custom_thread

Offline

#9 04-03-2008 20:13

BIGLION
From: Питер
Registered: 04-03-2008
Posts: 2

Re: Изменение интерфейса

to Seemann:
Если не трудно не мог бы ты скинуть мне все те адреса которые нашол, я в свою очередь их потестирую и напишу что каждый делает ну и т.д. тебе будет меньше работы да и мне не скучно smile
Да и на мэпсе тему создам.

to PILOT86:
Читай пост №4

Offline

#10 06-03-2008 14:37

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Изменение интерфейса

@BIGLION - у меня нет их отдельно, они содержатся в моей базе для IDA. Найти требуемые адреса на самом деле несложно. В последних базах от listener'а должны быть поименованы процедуры отрисовки интерфейса, типа drawScreen, drawHud и т.д. Там и нужно смотреть.

Offline

#11 12-06-2008 07:17

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Изменение интерфейса

Если кому надо, тут лежит программа: IEV1.rar.
В программе визуально перетаскиваешь элементы, автоматически высчитывает координаты. Программу надо класть в папку с Alexander's SA Interface Editor, она сформирует INI файл для неё.


[small][/small]

Offline

#12 12-06-2008 08:20

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Изменение интерфейса

Молодец, реализовал мою давнюю мечту. good Я сам все хотел написать подобный визуальный редактор интерфейса.

Если одна проблема, игра вылетает при использовании сгенерированного файла.
Вот он: http://sannybuilder.com/files/InterfaceEditor.ini

Версия Interface Editor 1.1 Игра при использовании INI из комплекта поставки IE 1.1 работает нормально.

Offline

#13 12-06-2008 09:23

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Изменение интерфейса

Хорошая программа, только нехватает координат имени улицы.

Offline

#14 12-06-2008 11:40

svetka
Registered: 29-12-2006
Posts: 222

Re: Изменение интерфейса

Молодец, VcSaJen! Очень удобно.

flashTrash, ага )

Offline

#15 12-06-2008 12:10

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Изменение интерфейса

@Seemann - спасибо smile.

Seemann wrote:

Если одна проблема, игра вылетает при использовании сгенерированного файла.

Странно, у меня нет такой проблемы. Я на narod.ru давно закачал, там какая версия - панель сбоку или снизу?

@flashTrash, svetka - вроде-бы SA Interface Editor не поддерживает изменение положеня названия улицы.  Напишите Alexander'у.

P.S. А, наверное зависает из-за того что программа не трогает некоторые параметры(что-бы можно было вручную), а для SA IE они обязательны. Также в версии IE 1.1 переименованы координаты оружия, поэтому в игре оружие не перемещается.
Я немного приостановлю работу над OTV и доделаю IEV (выложу наверное завтра).
А по какой формуле SA высчитывает координаты? Я просто плюсовал/минусовал излишки. Реальные координаты очень далеко от прописанных.
[---]
Добавление от 12.06.2008 21:50
Завтра к сожаленью не получится, доделаю и выложу послезавтра.

Last edited by VcSaJen (12-06-2008 12:49)


[small][/small]

Offline

#16 12-06-2008 12:29

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Изменение интерфейса

там какая версия - панель сбоку или снизу?

справа.

А по какой формуле SA высчитывает координаты?

они для каждого элемента интерфейса задаются 2-мя числами: смещение по оси X и Y. Верхняя левая точка экране имеет X = 0, Y = 0, нижняя правая - X = 640, Y = 440.

Потом заданные координаты переводятся в реальные с учетом текущего разрешения экрана. Но об этом заботится сама игра, тебе координаты в любом случае нужно задавать в промежутке 0..640, 0..440.

Offline

#17 12-06-2008 12:52

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Изменение интерфейса

Значит, поточнее не получится. Но что есть, то есть.
[---]
Добавление:
Нижняя граница 440, а не 480? Так вот почему элементы интерфейса при размещении у нижнего края уходят вниз! Учту.

Last edited by VcSaJen (12-06-2008 13:03)


[small][/small]

Offline

#18 14-06-2008 11:18

AlphaOmega
Registered: 02-06-2008
Posts: 98

Re: Изменение интерфейса

Так. Возникла следующая проблема при изменении интерфейса.
Вообщем так:

1. как поменять цвет угла атаки (на скриншоте зелёная часть радара - грубо говоря, угол наклона самолёта по оси нос-хвост)

2. как сделать, чтобы радар был белым? текстуры я сделал белые (см.ниже), но он всё равно отображается чёрным sad

Кто знает как исправить?
Может есть какие опкоды по этим двум параметрам?

Offline

#19 14-06-2008 14:25

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Изменение интерфейса

Готова новая версия программы - IEV v.1.49.
Координаты высчитываются точнее, почти абсолютно точно. Теперь можно редактировать все параметры (кроме размера радара), в том числе цвет аэроиндикатора, панели высоты.
Если не скачивается, или есть ошибки, пишите(сюда).
Скачать можно отсюда.

(напоминаю, что программа работает с Alexander's Interface Editor 1.1, которую скачать можно отсюда c раздела "программы" Подсайт Alexander'а)

Last edited by VcSaJen (14-06-2008 14:32)


[small][/small]

Offline

#20 14-06-2008 15:33

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Изменение интерфейса

@VcSaJen - сейчас лучше, игра запускается, но немного непохоже smile

Offline

#21 14-06-2008 16:37

AlphaOmega
Registered: 02-06-2008
Posts: 98

Re: Изменение интерфейса

VcSaJen wrote:

Готова новая версия программы - IEV v.1.49.
<...>Теперь можно редактировать все параметры <...> в том числе цвет аэроиндикатора, панели высоты.[/u]

В том то всё и дело, что не хочется использовать дополнительные программы. Нужно сделать всё в пределах клео скриптов.

Offline

#22 15-06-2008 03:39

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Изменение интерфейса

@Seemann - В самом начале игры броня, здоровье, деньги, звёзды имеют немного другие координаты. После минимальной прокачки CJ'я всё по-нормальному. Насчёт радара - посмотрю.
@AlphaOmega - посмотри выше.


[small][/small]

Offline

#23 15-06-2008 12:42

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Изменение интерфейса

Готова версия IEV 1.4999: координаты радара и индикатора высоты высчитываются точнее, появилась возможность изменять размер радара и ширину индикатора высоты. (надо скопировать в папку с IE 1.1 (папку SA)). Ссылка та же: IEV11.rar.

Я не смог справится со строкой патронов: координаты изменяются непредсказуемо. Как всё-таки отсчитываются координаты на строке патронов?


[small][/small]

Offline

#24 15-06-2008 15:25

AlphaOmega
Registered: 02-06-2008
Posts: 98

Re: Изменение интерфейса

ну так как радар перекрасить в белый и в т.ч. угол атаки самолёта? КЛЕО СКРИПТОМ

Offline

#25 15-06-2008 15:41

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Изменение интерфейса

Видимо никак. Только если менять текстуры. Попробуй еще опкод 057E: set_radar_grey 1

Offline

Board footer

Powered by FluxBB