You are not logged in.
ещё тут радиус непричём, тут тип
а типы известны?
Offline
Я уже тестировал, но txt файл остался на другом компьютере. Сейчас ещё раз протестирую и обновлю пост. Точно помню, что есть очень маленький взрыв, с большим номером.
[small][/small]
Offline
Опкод 0986 у меня подписан как unknown_fires_stuff До конца я так и не понял его назначения, делал один скриптик (когда садишся на мото - он загоряется 0325: 2@ = create_car 1@ fire + по циклу создавал "горящий след" на земле за ним) До использования 0986 - мото горел только визуально (т.е. без повреждений) и "след" создавался только из 60ти огней - далее они не исчезали а 61й уже не появлялся ... Когда прописал 0986 в цикл - огонь на мото начал реально гореть и через опред. время мото взрывался, а "след" сам "стирался" и перезаписывался. Как по мне то данный опкод чтото типа "рестарта" для огня ...
Last edited by Yarik (10-07-2008 07:36)
-=YariK=-
http://my-mods.org.ua/
Offline
Потестил, и сделал HTML-файл с описанием взрывов и скриншоты, сделанные спустя 400мс после взрыва . Можно добавить в папку help SB или скомпилить в спраку CHM.
Запаковал в архив и прикрепил к сообщению.
[small][/small]
Offline
Потестил, и сделал HTML-файл с описанием взрывов и скриншоты, сделанные спустя 400мс после взрыва . Можно добавить в папку help SB или скомпилить в спраку CHM.
Запаковал в архив и прикрепил к сообщению.
Добавлю в Sanny Builder Help/Документация по SCM/GTA SA
Offline
03AB: unknown_car 0@ flag 1
используется в миссиях гонок. Проверил - оказалось, что это добавляет машине устойчивость на поворотах. Что-то вроде смещения центра масс вниз. Должно быть написано так (или примерно так):
03AB: set_car 0@ stability_on_turning_movements 1
Там еще много анноунов такого типа
039C: unknown_car 379@(253@,16i) flag 1 03AB: unknown_car 95@ flag 1 03ED: unknown_car 379@(253@,16i) flag 1 0428: unknown_car 35@ flag 1 0466: unknown_car 39@ flag 1 048B: unknown_car 35@ flag $8224 04BD: unknown_car 72@ flag 1 0594: unknown_car 289@ flag 0 0714: unknown_car 38@ flag 1 073B: unknown_car 62@ flag 1 08F2: unknown_car 36@ flag 0 08F3: unknown_car $198 flag 0 0957: unknown_car 95@ flag 0 0A21: unknown_car 72@ flag 0
Стало на 1 меньше=)
Offline
Потестил опкоды для поездов:
1.
06DA: unknown_trains_flag
Будучи приведённым в любом из запущенных скриптов, удаляет из памяти сведения о поездах, созданных всеми запущенными скриптами. То есть назвать можно так:
06DA: remove_references_to_all_defined_trains
2.Название проверки
09E3: train 0@ traveling_clockwise
не совсем корректно. Если при создании поезда командой
06D8: 0@ = create_train_at -1925.6472 278.1923 19.486 type 15 direction 1
параметр "direction" был равен 1, то поезд при следовании вдоль маршрута будет двигаться по точкам в том порядке, в котором они перечислены в соответствующем файле маршрута (tracks.dat - tracks4.dat). При параметре, равном 0, поезд будет двигаться в обратном направлении. Проверка 09E3 возвращает "true" в том случае, если параметр "direction" был равен 1. Так что более точное название:
09E3: train 0@ direction==1
Offline
а исправления ошибок можно сюда.
У меня есть варианты исправлений почти для всех опкодов, воспроизводящих анимацию для актёра. Я много работал с этими опкодами, поэтому знаю, как работают некоторые параметры.
0393: actor 215@ perform_animation "POOL_SHORT_SHOT" at 248@ times_normal_rate
Этот опкод лучше перефразировать так:
0393: actor $PLAYER_ACTOR animation "POOL_SHORT_SHOT" set_speed 1.0
04ED: load_animation "LOWRIDER" 04EE: animation "LOWRIDER" loaded 04EF: release_animation "LOWRIDER"
Заменить на:
04ED: load_IFP_file "LOWRIDER" 04EE: IFP_file "LOWRIDER" loaded 04EF: release_IFP_file "LOWRIDER"
0605: actor -1 perform_animation "M_SMKLEAN_LOOP" IFP "LOWRIDER" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1 // versionA 0812: AS_actor -1 perform_animation "LRGIRL_IDLELOOP" IFP "LOWRIDER" framedelta 4.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1 // versionB 088A: actor 34@ perform_animation "RAIL_FALL" IFP "SWAT" 8.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1 disable_force 0 disable_lockZ 1 0A1A: actor 88@ perform_walk_animation "HIKER_POSE_L" IFP "MISC" framedelta 4.0 loopA 0 lockX 0 lockY 0 lockF 1 -1 ms // versionC
В этих опкодах нужно посоветоваться, как лучше переименовать. Я распишу за что отвечает каждый параметр.
Actor, animation и IFP - думаю понятно, здесь всё правильно описано.
framedelta нужно переименовать в interpolation. Этот параметр отвечает за плавность перехода в анимацию (и за плавность выхода из анимации или перехода в другую анимацию). Чем больше этот параметр - тем быстрее и заметнее переход. Чем меньше параметр - тем плавнее и красивее. Обычно лучше ставить его в районе 4.0-15.0. Если поставить 10000.0, то актёр моментально примет начальную позу анимации, т.е. вообще без перехода.
loop - здесь всё ясно, цикл. lockX и lockY нужно поменять местами. Они отвечают за перемещение коллизии игрока вместе с анимацией (Root-костью в анимации). Т.е. если выставить lockX = 1 то коллизия игрока будет двигаться вместе с анимацией вперёд-назад (по оси Y относительно игрока); если выставить lockY = 1, то коллизия игрока будет двигаться вместе с анимацией влево-вправо (по оси X относительно игрока). Поэтому нужно бы их поменять местами. Ещё замечен следующий факт: если выставить только lockY = 1, а lockX оставить равным нулю, то перемещения игрока вместе с анимацией не будет ни по одной из осей. Проще говоря у нас 3 варианта - без перемещения коллизии (0, 0), с перемещением по оси Y (1, 0) и с перемещением по осям X и Y (1, 1).
lockF отвечает за замораживание игрока в последней позе анимации. Не знаю даже, как его переименовать. Наверное лучше так и оставить.
time - тут, я думаю, без комментариев. Здесь всё верно.
У нас есть 4 опкода воспроизводящих анимации для актёров (не считая комбинированных с прикреплением объектов и т.п.). Они отличаются между собой некоторыми нюансами. Есть 3 опкода с одинаковыми параметрами и один содержащий те же параметры + 2 дополнительных параметра. Первые 3 опкода можно разделить по версиям (A, B, C), как это сделано комментариями к опкодам.
versionA (0605): Отличительная особенность опкода состоит в том, что анимация воспроизводится только если актёр находится на земле. Если во время выполнения анимации актёр слетел с поверхности, т.е. оказался в воздухе, то воспроизведение анимации прервётся.
versionB (0812): Тоже самое, что и versionA, только работает и в воздухе. Т.е. нет зависимости от того, в воздухе актёр или нет, анимация будет работать в любом случае, даже под водой.
versionC (0A1A): Имеет ту же особенность, что и versionA - не работает в воздухе. Имеет дополнительную особенность - выполняется относительно кости Root актёра и может выполняться параллельно другой анимации. К примеру, если включить lockX и lockY, бежать, и воспроизвести анимацию на игроке, то перемещение Root в анимации будет прибавляться к бегу. Если lockX и lockY отключить, перемещение будет только визуальным, без перемещения коллизии актёра. При этом анимацию можно сбить, например, совершив удар (ЛКМ).
Ну и последний опкод, содержащий дополнительные параметры, 088A.
Первый параметр описан как disable_force. На самом деле этот параметр отвечает за возможность воспроизведения анимации в воздухе. Если выставить 1, то опкод будет равносилен опкоду 0812 (versionB), если 0, то, соответственно, опкоду 0605 (versionA).
Второй параметр описан как disable_lockZ, что опять же неверно. Если выставить параметр равным 1, то по окончанию анимации коллизия актёра будет установлена в то место, где закончилась анимация, но это - если lockX и lockY равны нулю. Примечательно, что на ось Z это тоже работает. Т.е. если в анимации актёр смещается ещё и по оси Z, то в конце анимации коллизия актёра будет установлена точно в то место, где анимация закончилась, по всем трём координатам. Судя по всему, алгоритм использует разницу между начальным положением и конечным положением, а в конце анимации смещает коллизию на заранее вычисленную разницу. Из-за этого, если использовать параметры lockX и lockY, актёр будет дополнительно смещён в конце анимации на ту самую разницу, о которой я упомянул предложением ранее. Если отключить параметр disable_lockZ, то опкод будет работать полностью точно так же, как и опкоды версии A и B, в зависимости от параметра disable_force.
Параметр disable_force лучше переименовать в allow_air или что-то в этом роде, а disable_lockZ - пока что не могу придумать, как изъяснить его коротко и понятно.
Если кого-то интересует синхронизация в SA-MP, то воспроизведение анимации опкодом 0812 даёт возможность другим игрокам видеть вашу анимацию в SA-MP'е, при двух условиях:
1. Анимация находится в оригинальных игровых IFP-файлах. Т.е. если создать свой IFP-файл, или добавить свою анимацию к уже существующему игровому IFP-файлу, то другие игроки их не увидят, даже если у них есть эта анимация тоже. Видимо, SA-MP использует список всех игровых анимаций для синхронизации.
2. IFP-файл, из которого воспроизводится анимация, загружен у других игроков. Обычно SA-MP сам загружает нужный IFP-файл при 1-2 воспроизведениях из этого IFP.
До некоторых пор меня устраивали возможности анимационного движка SA, но теперь нужно нечто большее - сохранение угла разворота по окончании анимации, перемещение коллизии игрока по оси Z вместе с анимацией и т.п. Поэтому я сейчас занимаюсь разработкой собственного анимационного движка для SA.
Ну, вроде всё рассказал о анимациях. Думаю, кое-что из моих описаний можно было бы в справку SB добавить Но для начала нужно придумать названия к тем параметрам, к которым я названия придумать не смог. Думаю, у тех, кто лучше разбирается в инглише, получится грамотно назвать их.
Last edited by Voron295 (16-07-2013 14:50)
Offline
Так разработка СБ возобновилась, почему бы нет?
Offline
@Voron295 -
4 года спустя )
Изначально этот пост был в теме "Sanny Builder v3.xx". Seemann его перенёс сюда.
Offline
Не уверен, что подходящая тема, однако лучше, чем создавать новую: Ни у кого не возникало идеи написать копилятор для оригинальных DMA-шных .sc скриптов, что утекли с ios версией гта 3? Выглядят они в стиле BASIC'а и гораздо комфортнее в написании. Верхом успеха тут будет если получится из всех оригинальных .sc собрать байт в байт копию main.scm
Offline
Offline
Есть miss2 из юбилейной андроидовской vice city, но заставить его что нибудь скомпилировать нелегко...
http://img593.imageshack.us/img593/2365/jzb1.jpg
Last edited by ZeroTen (24-10-2013 16:13)
Offline
Вообще-то SB на голову выше этого древнего недокомпилятора.
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
https://sannybuilder.com/dev/sa_opnames.txt
оригинальные рокстаровские названия скриптовых команд, которые были опубликованы вместе с SA Mobile.
Спустя много лет интересно сравнить, насколько точны или наивны были наши предположения о смысле тех или иных опкодов.
Offline
https://sannybuilder.com/dev/sa_opnames.txt
оригинальные рокстаровские названия скриптовых команд, которые были опубликованы вместе с SA Mobile.
Спустя много лет интересно сравнить, насколько точны или наивны были наши предположения о смысле тех или иных опкодов.
Ух ты! Я, конечно, понимаю, какая это трудная работа, но планируется ли полная замена текста опкодов на новый? Или просто будут исправлены неточности и unknown'ы?
Как бы то ни было, это уже радует, информация крайне полезная.
Offline
https://sannybuilder.com/dev/sa_opnames.txt
оригинальные рокстаровские названия скриптовых команд, которые были опубликованы вместе с SA Mobile.
Спустя много лет интересно сравнить, насколько точны или наивны были наши предположения о смысле тех или иных опкодов.
Оооо! Это именно то, что надо!
Поможет сопоставить нативы GTA 4/5 c Опкодавми GTA SA.
[small][/small]
Offline
На gtamodding.com в описании опкодов можно найти ссылку на соответствующий нейтив
http://www.gtamodding.com/wiki/List_of_opcodes
Offline
оригинальные рокстаровские названия скриптовых команд, которые были опубликованы вместе с SA Mobile.
Круто. Я уже адаптирую их под СБ. Незнаю нужно ли, но может кому пригодится. Лично мне будет сложно адаптироваться к новым названиям комманд.
***
Насколько я понял, целых 740 опкодов нет в SASCM.INI. По-идеи, это дополнение к консольной и другим версиям или я ошибаюсь?
***
Да, и в opcodes.txt значитительно больше опкодов, нежели в SASCM.INI.
Last edited by wmysterio (04-07-2015 12:44)
Offline
В SASCM.INI только те опкоды, которые использовались в оригинальном main.scm. В реальности их конечно больше. Какие-то опкоды перешли из GTA3 и VC и в SA не используются. Часть опкодов была добавлена для разных типов сущностей, но в реальности использовалось только одно (например, опкоды, проверяющие позицию игрока или объекта).
В opcodes.txt больше опкодов за счет того, что там еще добавляются условия с отрицанием. Например,
0019: 16@ > 1440000 // integer values
8019: not 16@ > 3000 // integer values
хотя это один и тот же опкод
Если будешь заниматься редактированием SASCM.INI то советую обратить внимание на эти страницы
http://www.gtamodding.com/wiki/Sanny_Builder/SCM.INI
http://www.gtamodding.com/wiki/Sanny_Builder/VCSCM.INI
здесь потихоньку формируются списки опкодов для III/VC в одном стиле, можно использовать их в качестве основы для SASCM
Offline
В SASCM.INI только те опкоды, которые использовались в оригинальном main.scm. В реальности их конечно больше. Какие-то опкоды перешли из GTA3 и VC и в SA не используются. Часть опкодов была добавлена для разных типов сущностей, но в реальности использовалось только одно (например, опкоды, проверяющие позицию игрока или объекта).
В opcodes.txt больше опкодов за счет того, что там еще добавляются условия с отрицанием. Например,0019: 16@ > 1440000 // integer values
8019: not 16@ > 3000 // integer valuesхотя это один и тот же опкод
Если будешь заниматься редактированием SASCM.INI то советую обратить внимание на эти страницы
http://www.gtamodding.com/wiki/Sanny_Builder/SCM.INI
http://www.gtamodding.com/wiki/Sanny_Builder/VCSCM.INIздесь потихоньку формируются списки опкодов для III/VC в одном стиле, можно использовать их в качестве основы для SASCM
Я ещё вчера написал на шарпе парсер, по-этому и расспрашивал. Получил практически оригинальный вариант опкодов. Здесь можно скачать пакет: оригинальных опкодов, архив которого содержит файлы "SASCM.ini" и "opcodex.txt". Однако в таком виде мы приедем к тому, с чего начинали но шиворот на выворот - описание опкода оригинальное, но параметры не имеют описания. Если такой вариант устроит, то можно уже вручную расставить описание параметров.
--------------------------------------
Архив постоянно обновляется. Каждая папка описует обновление
Last edited by wmysterio (07-07-2015 15:14)
Offline