You are not logged in.
После очистки 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
Не маппер , ответить поэтому и не смогу , спроси лучше на мапсе ) просто про пути после MClener'a .
Offline
07C0 загружает пути из файла carrec.img. Возможно причина вылета в этом файле.
И насколько я помню, SA не использует PATHS*.IPL файлы из папки MAPS, вместо них используются файлы nodes* из gta3.img (хотя я могу ошибаться).
Offline
Разобрался После очистки карты carrec.img из gta.dat комментируеться.
Убрал комментарий, все заработало. Но я точно не знал, из каких файлов читаються пути. В carrec.img файлы формата .rrr, редактор nodes путей их не берет и редактора rrr я не нашел (скорей всего его и нету), так что на данный момент сделать свой путь невозможно.
Last edited by Sub (08-10-2007 05:10)
Offline
В carrec.img файлы формата .rrr, редактор nodes путей их не берет и редактора rrr я не нашел (скорей всего его и нету), так что на данный момент сделать свой путь невозможно.
Почему же, если открыть файл, то все координаты пути лежат в открытом виде, нужно только знать что означают другие числа.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 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 000000A 0 1.601684e- 42 2.683418e- 38 -9.844743e- 38 -4.436039e+ 37 000000B 0 3.120972e- 41 2445.223 - 1657.709 12.73466 000000C 0 1.921180e- 42 -3.364314e+ 38 -3.702810e- 37 -1.678098e+ 38 000000D 0 3.573311e- 43 2449.852 - 1657.652 12.74606 000000E 0 2.225262e- 42 -8.779940e+ 37 -3.673420e- 37 -1.658160e+ 38 000000F 0 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 000001A 0 4.003510e- 42 -5.300510e+ 32 -1.827719e- 08 -1.623201e+ 36 000001B 0 2.351057e- 38 2480.968 - 1663.898 12.78776 000001C 0 4.306190e- 42 -6.613502e+ 33 -1.276625e+ 27 -1.339471e+ 33 000001D 0 2.351057e- 38 2483.079 - 1665.490 12.78736 000001E 0 4.599062e- 42 -8.183381e+ 36 5.331430e- 26 -2.072401e+ 28 000001F 0 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 000002A 0 6.549669e- 42 0.0 2.270048e- 19 -2.240995e+ 37 000002B 0 0.0 2483.846 - 1666.449 12.76844 000002C 0 6.888783e- 42 0.0 2.270048e- 19 -2.240995e+ 37 000002D 0 0.0 2483.846 - 1666.449 12.76844 000002E 0 7.229299e- 42 0.0 2.270048e- 19 -2.240995e+ 37 000002F 0 0.0 2483.846 - 1666.449 12.76844 |
Offline
2Sanchez:
Там не все поля типа Float. Числа с окончанием E-41 и т.п. говорят о том, что здесь скорее всего целое число. В этом файле должна храниться не только позиция XYZ машины, но и ее разворот по всем осям. В некоторых сценках машина едет на двух колесах (где-то на форуме это уже обсуждалось), и это тоже определяется в этом файле.
Offline
Там не все поля типа Float.
Это понятно. Это я для быстроты просто так скопировал.
Сейчас потестил немнтелепортируется по точкам. ого с этими числами, у меня не получается заставить машину ЕХАТЬ, она как-бы телепортируется по этм точкам.
где-то на форуме это уже обсуждалось
Здесь?
Offline
Sanchez, какой программой ты открыл файл?
Offline
Sanchez, какой программой ты открыл файл?
OllyDbg
Offline
так что на данный момент сделать свой путь невозможно.
А вот это?(Взято из SBanual 3.0,обрезано и переделано(что то не копирует нормально))
Ну как делать пути?
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.
Last edited by kostay scr (08-10-2007 12:02)
GTA VC - ЭТО НАСТОЯЩАЯ ГТА!
Offline
Описание формата R3
Файлы R3 (.rrr) хранятся в IMG-файле carrec.img. Каждый файл описывает один из путей движения машины в пространстве игры. Особенностью этих путей является то, что движение осуществляется без учета физики. Машины могут двигаться с любой скоростью, под любым углом. R3-пути широко используются в скриптовых сценах и погонях в игре.
Каждый R3-файл состоит из набора записей, каждая из которых описывает одну точку пути. Размер одной записи (каждого участка пути) равен 32 байтам.
Запись содержит данные, которые копируются потом при движении в структуру XYZ машины (эта структура описывает абсолютное положение объекта в пространстве игры). Таким образом задается позиция машины в каждый момент движения.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | + 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'у.
В .exe:
1 | .data :0097D670 R3Paths CR3 |
Всего может быть загружено и обрабатываться до 16 путей.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 00000000 CR 3 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(?) ; мультипликатор скорости движения по пути 000000D 0 field_D 0 dd 16 dup(?) 00000110 R3Path_Size dd 16 dup(?) 00000150 field_ 150 dd 16 dup(?) 00000190 R3Path_pData dd 16 dup(?) 000001D 0 vehicles dd 16 dup(?) ; offset *CVehicle 00000210 paths CR3Path 475 dup(?) ; общая информация об R 3 файлах 00001FC 0 num_paths dd ? ; число R 3 файлов = 426 00001FC 4 CR 3 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
Здесь?
http://sannybuilder.com/forums/viewtopic.php?id=23
Но, судя по всему, в R3 этого все же нет
2kostay scr:
В этой статье намешаны R3-пути и SCM-пути. Это не одно и тоже.
Offline
kostay scr
scm пути- координаты задаються через мейн, а обычные пути (paths) загружаються из файла, это разные вещи.
У scm путей есть ограничения в точках, поэтому он используеться не часто (в ориг. main.scm). Конечно можно с помощью проверок и 05D6 сделать путь каким угодно, но на практике такой вариант не годиться, слишком большая вероятность, что машина или актер будет остановиться на каком-нибудь препятствии, не говоря уже о глюках. Пути из rrr файла сделаны иначе.
Seemann
Сложно написать редактор таких файлов?
Last edited by Sub (08-10-2007 13:58)
Offline
2All
Всё понял, не буду мешать.
GTA VC - ЭТО НАСТОЯЩАЯ ГТА!
Offline
Сложно написать редактор таких файлов?
ну я уже подкинул идейку Alexander'у
Offline
http://foolroot.nm.ru/r3edit.rar
367 КБ (376 447 байт)
Last edited by Sanchez (09-10-2007 12:42)
Offline
2Sanchez:
гут. надо только исправить SppedY, Brak на Brake, и Turn на SteerAngle
. Еще было бы здорово, не выводить лишние пустые строки, а при сохранении дописывать их, чтобы размер файла был кратен 2048. Ну, и работа внутри файла carrec.img - верх мечтаний
Еще, если кликнуть по полям 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
2Seemann:
Все понятно. Все учту.
Из-за нестандартных компонентов размер проги почти 1 МБ, может стоит использовать обычные, правда все будет не так красиво, но размер уменьшиться примерно раза в два. Так что лучше красивый интерфейс или размер поменьше?
Offline
Так что лучше красивый интерфейс или размер поменьше?
А ты 2 версии сделай.
GTA VC - ЭТО НАСТОЯЩАЯ ГТА!
Offline
2Sanchez:
Имхо, лучше не заморачиваться по поводу размера программы. Триста килобайт - вполне демократичный размер. Вместо этого лучше подумать над функционалом программы: к базовым операциям типа "вставить строку", "скопировать строку", "переместить строку", "удалить строку", можно было бы добавить возможность открывать файл путем Drag&Drop, горячие клавиши для операций над текстом, и, например, такую возможность, что при вставке текста с разделителями (например, "1 2 3" или "a, b, c", во вставляемую ячейку копировалась бы "a", в следующую - "b", в следующую "с" и т.д. Так было бы удобно вставлять координаты.
Еще не мешало бы разрешить регулировать ширину столбцов, либо сделать автоподбор подходящей ширины. У меня на разрешении "1280x1024" при развернутом окне таблица помещается почти впритык, а у тех, у кого меньшее разрешение, будет полоса горизонтальной прокрутки, что на порядок снижает удобство работы.
Сохранение настроек ширины окна и таблицы, чтобы при запуске они восстанавливались, - тоже вещь нелишняя.
<span style="font-size: 6pt">Кстати, когда-то у меня у самого была идея написать редактор R3, и мой вариант названия программы звучал как R3D (читается как "рэд"). Эдакое модерновое сочетание слов R3 (RRR) и Ed (Editor) </span>
Offline
Хороший редактор , осталось понять что там к чему
Offline
Ха-ха, решил поупражняться в создании собственных путей. Первый блин вышел жутким комом:
http://sannybuilder.com/dev/temp/carrec999.rrr
Добавьте этот файл в carrec.img. После этого используйте следующий скрипт для проверки пути:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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 |
Предупреждаю сразу: слабонервным и беременным просьба выйти из комнаты!
Offline
Написал скрипт для автоматической генерации 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
Работает , только вот на слишком большой скорости при воспроизведении пути проскакивает точки )
Скорость работы записи немного медленная .
Offline
Это регулируется константой
1 | REC_INTERVAL_MS = 225 |
можно уменьшить ее значение, тогда показания будут сниматься чаще. Однако это не так важно, по идее на этих путях должны ехать машины компа, а не игрока, поэтому такие проскоки будут незаметны (они есть и в оригинальных путях).
Offline