#1 07-10-2007 12:59

Sub
Registered: 17-02-2007
Posts: 30

Работа с .RRR файлами / Carrec.img

После очистки SA map cleaner'ом и установки другой карты, опкод 07C0: load_path
вызывает вылет из игры.

nodes файлы (пути) оригинальные.
В файл gta.dat прописал следующие строки:
IPL DATA\MAPS\paths.ipl
IPL DATA\MAPS\paths2.ipl
IPL DATA\MAPS\paths3.ipl
IPL DATA\MAPS\paths4.ipl
IPL DATA\MAPS\paths5.ipl
Ситуация не изменилась. (кстати, их удалял на ориг. СА, игра не вылетала).

Хотел на новой карте сделать сцену с использованием путей, может кто-нибудь сталкивался с такой проблемой или знает решение?

ps. Проверял как на Alien City, так и на другой карте.

Offline

#2 07-10-2007 14:02

Alexander
Registered: 19-08-2006
Posts: 184
Website

Re: Работа с .RRR файлами / Carrec.img

Не маппер , ответить поэтому и не смогу , спроси лучше на мапсе ) просто про пути после MClener'a .

Offline

#3 07-10-2007 14:03

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

Re: Работа с .RRR файлами / Carrec.img

07C0 загружает пути из файла carrec.img. Возможно причина вылета в этом файле.

И насколько я помню, SA не использует PATHS*.IPL файлы из папки MAPS, вместо них используются файлы nodes* из gta3.img (хотя я могу ошибаться).

Offline

#4 08-10-2007 05:02

Sub
Registered: 17-02-2007
Posts: 30

Re: Работа с .RRR файлами / Carrec.img

Разобрался smile После очистки карты carrec.img из gta.dat комментируеться.
Убрал комментарий, все заработало. Но я точно не знал, из каких файлов читаються пути. В carrec.img файлы формата .rrr, редактор nodes путей их не берет и редактора rrr я не нашел (скорей всего его и нету), так что на данный момент сделать свой путь невозможно.

Last edited by Sub (08-10-2007 05:10)

Offline

#5 08-10-2007 08:02

Sanchez
Registered: 18-08-2006
Posts: 280

Re: Работа с .RRR файлами / Carrec.img

В carrec.img файлы формата .rrr, редактор nodes путей их не берет и редактора rrr я не нашел (скорей всего его и нету), так что на данный момент сделать свой путь невозможно.

Почему же, если открыть файл, то все координаты пути лежат в открытом виде, нужно только знать что означают другие числа.

00000000             0.0   1.690386e-38  -9.844764e-38  -4.436039e+37
00000010    3.587324e-41       2425.774      -1658.530       12.82508
00000020    3.433181e-43   1.938430e-38  -9.771297e-38  -1.774416e+38
00000030    3.587324e-41       2429.373      -1658.378       12.82429
00000040    6.880375e-43   2.112983e-38  -9.771297e-38  -4.436039e+37
00000050             0.0       2433.127      -1658.219       12.82516
00000060    1.010336e-42   2.269158e-38  -9.844736e-38  -1.109010e+37
00000070             0.0       2437.141      -1658.050       12.82060
00000080    1.304609e-42   2.426193e-38  -9.844676e-38  -1.109010e+37
00000090    2.582873e-41       2441.060      -1657.885       12.77140
000000A0    1.601684e-42   2.683418e-38  -9.844743e-38  -4.436039e+37
000000B0    3.120972e-41       2445.223      -1657.709       12.73466
000000C0    1.921180e-42  -3.364314e+38  -3.702810e-37  -1.678098e+38
000000D0    3.573311e-43       2449.852      -1657.652       12.74606
000000E0    2.225262e-42  -8.779940e+37  -3.673420e-37  -1.658160e+38
000000F0             0.0       2454.435      -1657.869       12.74717
00000100    2.529344e-42  -2.410341e+36  -1.387083e-36  -1.571760e+38
00000110    3.573311e-43       2459.104      -1658.366       12.74664
00000120    2.829222e-42  -4.909547e+35  -5.477804e-36  -3.879425e+37
00000130    2.008901e-41       2463.762      -1659.205       12.74660
00000140    3.124896e-42  -3.481705e+35  -5.454330e-36   2.135032e-38
00000150    1.147944e-41       2468.446      -1660.105       12.73538
00000160    3.420570e-42  -2.039424e+35  -5.430792e-36  -1.538503e+38
00000170    3.622777e-41       2473.188      -1661.051       12.79564
00000180    3.719046e-42  -3.733917e+33  -5.004333e-30  -8.409411e+36
00000190    2.351057e-38       2477.705      -1662.340       12.79192
000001A0    4.003510e-42  -5.300510e+32  -1.827719e-08  -1.623201e+36
000001B0    2.351057e-38       2480.968      -1663.898       12.78776
000001C0    4.306190e-42  -6.613502e+33  -1.276625e+27  -1.339471e+33
000001D0    2.351057e-38       2483.079      -1665.490       12.78736
000001E0    4.599062e-42  -8.183381e+36   5.331430e-26  -2.072401e+28
000001F0    2.351057e-38       2483.863      -1666.368       12.78708
00000200    4.887729e-42            0.0   2.270048e-19  -8.548719e+31
00000210    2.351057e-38       2483.845      -1666.455       12.77368
00000220    5.174995e-42            0.0   2.270048e-19  -1.400622e+36
00000230    3.573311e-43       2483.847      -1666.450       12.76908
00000240    5.512708e-42            0.0   2.270048e-19  -2.240995e+37
00000250             0.0       2483.846      -1666.449       12.76845
00000260    5.858829e-42            0.0   2.270048e-19  -2.240995e+37
00000270             0.0       2483.846      -1666.449       12.76843
00000280    6.209153e-42            0.0   2.270048e-19  -2.240995e+37
00000290             0.0       2483.846      -1666.449       12.76844
000002A0    6.549669e-42            0.0   2.270048e-19  -2.240995e+37
000002B0             0.0       2483.846      -1666.449       12.76844
000002C0    6.888783e-42            0.0   2.270048e-19  -2.240995e+37
000002D0             0.0       2483.846      -1666.449       12.76844
000002E0    7.229299e-42            0.0   2.270048e-19  -2.240995e+37
000002F0             0.0       2483.846      -1666.449       12.76844

Offline

#6 08-10-2007 09:18

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

Re: Работа с .RRR файлами / Carrec.img

2Sanchez:
Там не все поля типа Float. Числа с окончанием E-41 и т.п. говорят о том, что здесь скорее всего целое число. В этом файле должна храниться не только позиция XYZ машины, но и ее разворот по всем осям. В некоторых сценках машина едет на двух колесах (где-то на форуме это уже обсуждалось), и это тоже определяется в этом файле.

Offline

#7 08-10-2007 09:43

Sanchez
Registered: 18-08-2006
Posts: 280

Re: Работа с .RRR файлами / Carrec.img

Там не все поля типа Float.

Это понятно. Это я для быстроты просто так скопировал.

Сейчас потестил немнтелепортируется по точкам. ого с этими числами, у меня не получается заставить машину ЕХАТЬ, она как-бы телепортируется по этм точкам.

где-то на форуме это уже обсуждалось

Здесь?

Offline

#8 08-10-2007 09:53

Sub
Registered: 17-02-2007
Posts: 30

Re: Работа с .RRR файлами / Carrec.img

Sanchez, какой программой ты открыл файл?

Offline

#9 08-10-2007 10:11

Sanchez
Registered: 18-08-2006
Posts: 280

Re: Работа с .RRR файлами / Carrec.img

Sanchez, какой программой ты открыл файл?

OllyDbg

Offline

#10 08-10-2007 12:01

kostay scr
From: Беларусь
Registered: 25-05-2007
Posts: 176

Re: Работа с .RRR файлами / Carrec.img

Sub wrote:

так что на данный момент сделать свой путь невозможно.

А вот это?(Взято из SBanual 3.0,обрезано и переделано(что то не копирует нормально))
Ну как делать пути? rolleyes
07C0: load_path 706 Загрузка пути

05D6: clear_scmpath отчистка пути

05D7: add_point_to_scmpath 2470.1248 -1661.6222 13.3293 добавление точки в путь

05D8: AS_assign_scmpath to_actor $Act flags 4 0 актёр следует по пути

05EB: assign_vehicle $Car to_path 706 машина следут по пути

04E0: car $Car abandon_path_radius 30 типа машина на точке если она в радиусе от неё 30

0873: release_path 211 выгружаем путь

пример
:Test
wait 2000
model.Load(#FAM1)
038B: load_requested_models

:Test2 
wait 0
if 
model.Available(#FAM1) 
jf @Test2
wait 3000
actor.Create(50@,4,#fam1,2494.9099, -1682.17, 12.32)
05D6: clear_scmpath
05D7: add_point_to_scmpath 2470.1248 -1661.6222 13.3293
05D7: add_point_to_scmpath 2494.9099  -1682.17  12.32
05D7: add_point_to_scmpath 2470.1248 -1661.6222 13.3293
05D8: AS_assign_scmpath to_actor 50@ flags 4 0
end_thread

Всё понятно?
И ещё можно использовать action_sequences. wink

Last edited by kostay scr (08-10-2007 12:02)


GTA VC - ЭТО НАСТОЯЩАЯ ГТА!

Offline

#11 08-10-2007 13:31

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

Re: Работа с .RRR файлами / Carrec.img

Описание формата R3

Файлы R3 (.rrr) хранятся в IMG-файле carrec.img. Каждый файл описывает один из путей движения машины в пространстве игры. Особенностью этих путей является то, что движение осуществляется без учета физики. Машины могут двигаться с любой скоростью, под любым углом. R3-пути широко используются в скриптовых сценах и погонях в игре.

Каждый R3-файл состоит из набора записей, каждая из которых описывает  одну точку пути. Размер одной записи (каждого участка пути) равен 32 байтам.

Запись содержит данные, которые копируются потом при движении в структуру XYZ машины (эта структура описывает абсолютное положение объекта в пространстве игры). Таким образом задается позиция машины в каждый момент движения.

+00 dword    - время (как в катсценах, общий тайминг движения)
+04 word     - скорость в направлении x * 16383.5
+06 word     - скорость в направлении y * 16383.5
+08 word     - скорость в направлении z * 16383.5
+10 byte     - XYZ.right.x * 127.0
+11 byte     - XYZ.right.y * 127.0
+12 byte     - XYZ.right.z * 127.0
+13 byte     - XYZ.top.x * 127.0
+14 byte     - XYZ.top.y * 127.0
+15 byte     - XYZ.top.z * 127.0
+16 byte     - угол поворота передних колес * 20.0
+17 byte     - сила ускорения на данном участке * 100.0
+18 byte     - сила торможения на данном участке * 100.0
+19 byte     - флаг использования ручного тормоза
+20 float    - XYZ.pos.x
+24 float    - XYZ.pos.y
+28 float    - XYZ.pos.z
+32 end

* за более полным разъяснением полей структуры XYZ нужно обращаться к listener'у. smile

В .exe:

.data:0097D670     R3Paths             CR3

Всего может быть загружено и обрабатываться до 16 путей.

00000000 CR3                 struc ; (sizeof=0x1FC4)
00000000 R3Path_Index        dd 16 dup(?)                            ; индекс в массиве paths
00000040 field_40            db 16 dup(?)
00000050 field_50            db 16 dup(?)
00000060 field_60            db 16 dup(?)
00000070 field_70            db 16 dup(?)
00000080 field_80            db 16 dup(?)
00000090 SpeedMul            dd 16 dup(?)                            ; мультипликатор скорости движения по пути
000000D0 field_D0            dd 16 dup(?)
00000110 R3Path_Size         dd 16 dup(?)
00000150 field_150           dd 16 dup(?)
00000190 R3Path_pData        dd 16 dup(?)
000001D0 vehicles            dd 16 dup(?)                            ; offset *CVehicle
00000210 paths               CR3Path 475 dup(?)                      ; общая информация об R3 файлах
00001FC0 num_paths           dd ?                                    ; число R3 файлов = 426
00001FC4 CR3                 ends

00000000 CR3Path             struc ; (sizeof=0x10)
00000000 path_id             dd ?                                    ; base 10
00000004 pData               dd ?                                    ; offset
00000008 size                dd ?                                    ; base 16
0000000C usage_count         dd ?                                    ; сколько машин использует этот путь
00000010 CR3Path             ends

Last edited by Seemann (10-10-2007 15:48)

Offline

#12 08-10-2007 13:33

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

Re: Работа с .RRR файлами / Carrec.img

Sanchez wrote:

Здесь?

http://sannybuilder.com/forums/viewtopic.php?id=23

Но, судя по всему, в R3 этого все же нет

2kostay scr:
В этой статье намешаны R3-пути и SCM-пути. Это не одно и тоже.

Offline

#13 08-10-2007 13:50

Sub
Registered: 17-02-2007
Posts: 30

Re: Работа с .RRR файлами / Carrec.img

kostay scr
scm пути- координаты задаються через мейн, а обычные пути (paths) загружаються из файла, это разные вещи.
У scm путей есть ограничения в точках, поэтому он используеться не часто (в ориг. main.scm). Конечно можно с помощью проверок и 05D6 сделать путь каким угодно, но на практике такой вариант не годиться, слишком большая вероятность, что машина или актер будет остановиться на каком-нибудь препятствии, не говоря уже о глюках. Пути из rrr файла сделаны иначе.

Seemann
Сложно написать редактор таких файлов?

Last edited by Sub (08-10-2007 13:58)

Offline

#14 08-10-2007 14:42

kostay scr
From: Беларусь
Registered: 25-05-2007
Posts: 176

Re: Работа с .RRR файлами / Carrec.img

2All
Всё понял, не буду мешать.


GTA VC - ЭТО НАСТОЯЩАЯ ГТА!

Offline

#15 08-10-2007 15:27

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

Re: Работа с .RRR файлами / Carrec.img

Sub wrote:

Сложно написать редактор таких файлов?

ну я уже подкинул идейку Alexander'у  smile

Offline

#16 09-10-2007 12:41

Sanchez
Registered: 18-08-2006
Posts: 280

Re: Работа с .RRR файлами / Carrec.img

http://foolroot.nm.ru/r3edit.rar
367 КБ (376 447 байт)

Last edited by Sanchez (09-10-2007 12:42)

Offline

#17 09-10-2007 14:10

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

Re: Работа с .RRR файлами / Carrec.img

2Sanchez:
гут. надо только исправить SppedY, Brak на Brake, и Turn на SteerAngle
. Еще было бы здорово, не выводить лишние пустые строки, а при сохранении дописывать их, чтобы размер файла был кратен 2048. Ну, и работа внутри файла carrec.img - верх мечтаний smile

Еще, если кликнуть по полям Pos, вместо float будет выведено число в десятичном формате. И формат дробных чисел с точкой более распространен, чем с запятой. Нужно при запуске прожки изменить  переменную DecimalSeparator на '.'

Еще возможно было бы лучше сделать, чтобы соотв. поля, которые в описании указаны с мультипликаторами (*16383.5, *127.0) в таблице выводились как числа, деленные на этот мультипликатор. Т.е. не 65528, а 65528/16383.5 = 3.999. Ведь именно эти числа используются в игре, а мультипликаторы используются для упаковки данных в 1 или 2 байта, против 4-х байтов, если бы это был обычный float.

Last edited by Seemann (09-10-2007 14:34)

Offline

#18 09-10-2007 14:59

Sanchez
Registered: 18-08-2006
Posts: 280

Re: Работа с .RRR файлами / Carrec.img

2Seemann:
Все понятно. Все учту.

Из-за нестандартных компонентов размер проги почти 1 МБ, может стоит использовать обычные, правда все будет не так красиво, но размер уменьшиться примерно раза в два. Так что лучше красивый интерфейс или размер поменьше?

Offline

#19 09-10-2007 15:06

kostay scr
From: Беларусь
Registered: 25-05-2007
Posts: 176

Re: Работа с .RRR файлами / Carrec.img

Так что лучше красивый интерфейс или размер поменьше?

А ты 2 версии сделай. wink


GTA VC - ЭТО НАСТОЯЩАЯ ГТА!

Offline

#20 10-10-2007 08:54

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

Re: Работа с .RRR файлами / Carrec.img

2Sanchez:
Имхо, лучше не заморачиваться по поводу размера программы. Триста килобайт - вполне демократичный размер. Вместо этого лучше подумать над функционалом программы: к базовым операциям типа "вставить строку", "скопировать строку", "переместить строку", "удалить строку", можно было бы добавить возможность открывать файл путем Drag&Drop, горячие клавиши для операций над текстом, и, например, такую возможность, что при вставке текста с разделителями (например, "1 2 3" или "a, b, c", во вставляемую ячейку копировалась бы "a", в следующую - "b", в следующую "с" и т.д. Так было бы удобно вставлять координаты.

Еще не мешало бы разрешить регулировать ширину столбцов, либо сделать автоподбор подходящей ширины. У меня на разрешении "1280x1024" при развернутом окне таблица помещается почти впритык, а у тех, у кого меньшее разрешение, будет полоса горизонтальной прокрутки, что на порядок снижает удобство работы.

Сохранение настроек ширины окна и таблицы, чтобы при запуске они восстанавливались, - тоже вещь нелишняя. smile


<span  style="font-size: 6pt">Кстати, когда-то у меня у самого была идея написать редактор R3, и мой вариант названия программы звучал как R3D (читается как "рэд"). Эдакое модерновое сочетание слов R3 (RRR) и Ed (Editor) smile</span>

Offline

#21 10-10-2007 10:05

Alexander
Registered: 19-08-2006
Posts: 184
Website

Re: Работа с .RRR файлами / Carrec.img

Хороший редактор , осталось понять что там к чему grin

Offline

#22 10-10-2007 13:40

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

Re: Работа с .RRR файлами / Carrec.img

Ха-ха, решил поупражняться в создании собственных путей. Первый блин вышел жутким комом:

http://sannybuilder.com/dev/temp/carrec999.rrr

Добавьте этот файл в carrec.img. После этого используйте следующий скрипт для проверки пути:

1@ = 999
#MONSTER.Load
while not #MONSTER.Available
 wait 0
end
0@ = Car.Create(#MONSTER, 2488.562, -1660.865, 12.8757)
#MONSTER.Destroy  

07C0: load_path 1@

:L
wait 0
07C1:   path 1@ available
jf @l

085E: assign_car 0@ to_looped_path 1@
036A: put_actor $PLAYER_ACTOR in_car 0@
0158: camera_on_car 0@ 18 2
while true
    wait 1000
    0706: advance_car 0@ further_along_path 1.0
end

Предупреждаю сразу: слабонервным и беременным просьба выйти из комнаты!
grin grin

скрин:
http://sannybuilder.com/dev/temp/rrr.jpg

Offline

#23 10-10-2007 15:05

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

Re: Работа с .RRR файлами / Carrec.img

Написал скрипт для автоматической генерации R3 - файла прямо из игры.

http://sannybuilder.com/dev/carrec.txt
http://cleo.sannybuilder.com/files/carrec.rar

Принцип работы таков: садитесь в машину, нажмите Shift+R для включения записи и начинайте движение. Когда нужный вам путь будет пройден, нажмите Shift+R еще раз для записи в файл. После этого добавьте получившийся RRR файл (имя по умолчанию "data\Paths\carrec900.rrr") в carrec.img (или любой другой IMG) и пользуйтесь им в скриптах. Получившийся файл можно редактировать в редакторе от Sanchez'а.

Парочка R3-путей, сгенерированных моим скриптом:
http://sannybuilder.com/dev/temp/carrec900.rrr
http://sannybuilder.com/dev/temp/carrec998.rrr

Скрипт для тестирования см выше. Нужно поменять значение переменной 1@ в нем на цифру нужного пути.


скрипт обновлен 11/10/07

Last edited by Seemann (11-10-2007 08:03)

Offline

#24 11-10-2007 07:54

Alexander
Registered: 19-08-2006
Posts: 184
Website

Re: Работа с .RRR файлами / Carrec.img

Работает , только вот на слишком большой скорости при воспроизведении пути проскакивает точки )
Скорость работы записи немного медленная .

Offline

#25 11-10-2007 08:06

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

Re: Работа с .RRR файлами / Carrec.img

Это регулируется константой

REC_INTERVAL_MS = 225

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

Offline

Board footer

Powered by FluxBB