#26 03-02-2007 13:01

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

Re: Новые описания для опкодов

0745: set_hydra 1@ thrust_to_horizontal

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

Offline

#27 09-02-2007 03:35

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

Re: Новые описания для опкодов

2Capushon:

09BD=1,set_player_in_menu %1h%
09BE=0,  player_is_in_menu

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

0818=1,  actor %1d% airborne  ;; В воздухе (в падении)

точно?


054E=1,set_actor %1d% clear_last_damage  ;; Восстановление здоровья актёра

Тогда чем он отличаeтся от

0467=1,clear_actor %1d% last_weapon_damage

Еще если 054E это clear_damage, то 054F должно быть тоже самое для машины.



0861=1,  player %1d% not_scaning_horizon

этот тоже видел, но не понял его назначения

0914=1,init_external_script %1x%

этот опкод ничего не делает, пустышка. Имя ему NOP.

Насчет спорных действий/названий - в моей версии INI многие опкоды названы по-другому, проверь.

Last edited by Seemann (09-02-2007 03:43)

Offline

#28 23-02-2007 14:20

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

Offline

#29 25-04-2007 01:25

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Новые описания для опкодов

Дайте я тоже, что-ли, внесу свои пять копеек:

06E2=4,unknown_as_actor %1d% object %2d% timelimit %3h% radius %4d%

Если посмотреть на то, что делается для этого опкода, можно обнаружить почти полную идентичность с опкодами:

05D9=4,AS_actor %1d% run_to_actor %2d% timelimit %3d% stop_within_radius %4d%
0772=4,AS_actor %1h% run_to_car %2d% %3d% ms stop_at_distance %4d%

за тем исключением, что вместо PedPool или VehiclePool, используется ObjectPool и нет проверки на отрицательное значение времени.
Т.е., теоретически, должно быть:

06E2=4,AS_actor %1d% run_to_object %2d% timelimit %3d% stop_within_radius %4d%

Offline

#30 26-05-2007 13:20

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

Re: Новые описания для опкодов

Открылся смысл опкода

03E3: unknown_texture_stuff 1

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

03E3: unknown_texture_stuff 1 
038D: create_texture 2 position 550.0 360.0 size 191.25 170.0 RGBA 255 255 255 255

Объяснить довольно трудно, это легче увидеть, поэтому я сделал два скрина. "с этим опкодом" и без.
"Без"
gtasa2007052615540954qk6.th.jpg
"С"
gtasa2007052616054503ud7.th.jpg

З.Ы. и вроде этот опкод надо применять перед каждым созданием текстуры

03E3: unknown_texture_stuff 1 
038D: create_texture 2 position 550.0 360.0 size 191.25 170.0 RGBA 255 255 255 255
03E3: unknown_texture_stuff 1 
038D: create_texture 3 position 550.0 360.0 size 191.25 170.0 RGBA 255 255 255 255

Offline

#31 26-05-2007 22:20

Capushon
Registered: 13-08-2006
Posts: 352
Website

Re: Новые описания для опкодов

2flashTrash:
Дык уже давно, вроде кем-то было - show_antialiasing_texture...


Сначала ты надежда и гордость,
Потом о спину ломают аршин. (c)БГ

Offline

#32 27-05-2007 08:46

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

Re: Новые описания для опкодов

Capushon wrote:

2flashTrash:
Дык уже давно, вроде кем-то было - show_antialiasing_texture...

Чего же он тогда до сих пор как "unknown"?

Offline

#33 05-08-2007 10:38

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Новые описания для опкодов

078A=3,%3d% = create_carriage_on_train %1d% position %2h%

В реальности, этот опкод никаких вагонов не создает, а только возвращает хэндл.
Т.е., должно быть:

078A=3,%3d% = get_carriage_in_train %1d% position %2h%

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

Last edited by listener (05-08-2007 18:24)

Offline

#34 05-08-2007 18:21

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Новые описания для опкодов

Еще один из той же серии:

06DE=2,%2d% = car_handle_from_train_handle %1d%

Здесь почти все хорошо, не считая маленькой неточности: возвращается хэндл последнего вагона.
Параметром, при этом, может передаваться хэндл произвольного вагона в поезде. Если передан хэндл вагона, который и так является последним - его самого и вернут.

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

Offline

#35 06-08-2007 08:15

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

Re: Новые описания для опкодов

Изменил на

06DE=2,%2d% = get_train %1d% last_carriage_handle
078A=3,%3d% = get_train %1d% carriage %2h% handle

CVehicle+5D4 cтало быть NextCarriageHandle?

Offline

#36 06-08-2007 09:55

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Новые описания для опкодов

Seemann wrote:

Изменил на

CVehicle+5D4 cтало быть NextCarriageHandle?

Насколько я понял, да (судя по всяким рекурсивным вещам, типа destroyTrain)
Только не хэндл, а указаталь. Хэндл из него получается в соответсвующих opcode handler.

И, не факт, что это поле одинаково для всех CVehicle.

PS. К слову, в #29 - описана 06E2. В sascm.ini из SB3 - до сих пор unknown.

Last edited by listener (06-08-2007 10:03)

Offline

#37 29-08-2007 17:12

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

Re: Новые описания для опкодов

Парочка свежаков:

0912: set_text_priority 1 leftmargin 75 maxwidth 150

Меняет свойства вывода текстов опкодами 00BC, 01E4, и подобными им. Первый параметр - флаг, установите его в ноль, чтобы отключить эффект этого опкода. Второй параметр - расстояние между центром текста и левым краем экрана.

Скриншоты до и после:

t1077389_0912a.jpg t1077400_0912b.jpg

0A2C: hide_priority_text_while_fading 0

Тоже самое, что 0A2D (запрещает скрывать текст во время фейдинга), только для обычных текстов.

t1077409_0A2C.jpg

Offline

#38 29-08-2007 19:24

Capushon
Registered: 13-08-2006
Posts: 352
Website

Re: Новые описания для опкодов

2Seemann:
Как радар переставил?


Сначала ты надежда и гордость,
Потом о спину ломают аршин. (c)БГ

Offline

#39 30-08-2007 14:45

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

Re: Новые описания для опкодов

Как радар переставил?

редактированием gta_sa.exe smile

на днях выложу CLEO-скрипт с этим интерфейсом.

Last edited by Seemann (30-08-2007 15:52)

Offline

#40 05-09-2007 21:47

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Новые описания для опкодов

opcode 0D41: unknown_set_heli %1d%

Если посмотреть на 0D40: heli %1d% turn_to_angle %2d% , он разворачивается в
VehiclePool->atHandle (opcodeParameters[0])->_f954 = opcodeParameters[1]*PI/180; // пропущено приведение угла к диапазону 0..2*PI

0D41 выглядит как: VehiclePool->atHandle (opcodeParameters[0])->_f954 = -1.0

В чем физический смысл инициализации этого поля в -1 - пока непонятно.

Кстати, это angle  или все-таки azimuth ?

Last edited by listener (06-09-2007 03:18)

Offline

#41 06-09-2007 09:03

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

Re: Новые описания для опкодов

Речь, конечно же, идет про 04D1 и 04D0.

04D0 заставляет вертолет быть повернутым только под заданным углом относительно севера (вероятно, это азимут). Если поставить угол 180.0 (нос вертолета будет повернут на юг), а направлением полета указать точку на севере - вертолет будет лететь хвостом вперед.

Тест показывает, что 04D1 сбрасывает эту установку, и вертолет автоматически выравнивается в нужный угол (направление полета).

Проверка f954 (FixedRotationAngle?) происходит в 0x0042A635

Offline

#42 06-09-2007 14:32

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Новые описания для опкодов

Тьфу, блин! Конечно, 04Dx (копипаст - средство размножения очепяток)
_f954, в свете сказанного, логично назвать forceLookAzimuth (Direction - непонятно какой: полета, взгляда, вертикали и т.д., Angle - неясно, по какой оси).

Т.е. должно быть что-то вроде:

04D0: heli %1d% set_force_look_azimuth %2d% 
04D1: heli %1d% reset_force_look_azimuth

Offline

#43 27-09-2007 12:28

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

Re: Новые описания для опкодов

09CB:   vehicle $SWEET_CAR colliding_with_vehicle 274@

проверяет, соприкасаются ли две машины. Данный опкод работает аналогично 0179, 023B, 0547, 0897, 0A1B.

Last edited by Seemann (27-09-2007 16:19)

Offline

#44 29-09-2007 09:23

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

Re: Новые описания для опкодов

0396: pause_timer 1

приостанавливает таймер (опкод 014E)
0 - продолжить отсчет
1 - приостановить

059C: enable_status_text $6705 flashing 0 // global_variable

когда флаг установлен в 0, новый status_text (опкоды 04F7, 03С4) не будет мигать (по умолчанию мигает несколько секунд).

0890: enable_sound_when_timer $8007 reach 32 seconds // global_variable

когда таймер с типом 1 (обратный отсчет) достигнет указанного времени, начнется издаваться звук (типа, "давай быстрее"). По умолчанию звук включается на 12 секундах

09EE: set_status_text_stay_on_screen 1

Иногда, когда на экран выводится styled_text (например, при опкоде 01E3 с параметром style=5), игра прячет status text и таймеры. Этот опкод заставляет игру держать status text и таймеры на экране во время показа styled_text.

Last edited by Seemann (29-09-2007 13:09)

Offline

#45 19-10-2007 11:11

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

Re: Новые описания для опкодов

некоторые правки опкодов для магазинов (они были известны, но названы не совсем корректно):


08F7: get_player $PLAYER_CHAR bodypart $2511 textureCRC_to $TEXTURE_CRC modelCRC_to $MODEL_CRC

сохраняет в переменные хэш-значение имени текстуры и модели на заданной части тела игрока. В качестве хэш-функции используется CRC32. Это значит что в переменных будет хранится не строка с именем текстуры (к примеру), а CRC32 этой строки. Примерный аналог - CRC32 gxt-ключей в .gxt файлах.

0784: set_player $PLAYER_CHAR textureCRC $TEXTURE_CRC modelCRC $2543 bodypart 17

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

0793: save_player_clothes

сохраняет данные о текущей одежде игрока

0794: restore_player_clothes

восстанавливает данные об одежде


0760: store_shopping_data_index $9597 textureCRC_to $TEXTURE_CRC

записывает CRC значение имени текстуры из массива одежды (пока не уверен насчет первого параметра, что он значит).

0761: get_shopping_item_with_textureCRC $TEXTURE_CRC price_to $AMMU_WEAPON_COST
0783: get_shopping_item_with_textureCRC $TEXTURE_CRC flag 0 store_to $SHOPPINGITEM_MODELCRC // 0 get modelCRC, 1-get bodypart
078C: get_shopping_item_with_textureCRC $TEXTURE_CRC name_to 0@s // 8-byte string
0790: charge_money_for_shopping_item_with_textureCRC $TEXTURE_CRC
08C8: set_shopping_item_with_textureCRC $TEXTURE_CRC price_to 300

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

09A9: get_string "TSHIRTLOCGREY" CRC32_to $10031 // 16-byte strings

конвертирует строку в CRC32 значение. Полученное число может использоваться в предыдущих опкодах.

Offline

#46 26-01-2008 02:03

AleX AciD
From: RU-VLG
Registered: 27-02-2007
Posts: 36
Website

Re: Новые описания для опкодов

03c8=0,rotate_player-180-degrees

действует аналогично 0373: set_camera_directly_behind_player, только камера размещается перед игроком, а не за ним, поэтому более подходящее название для него:

03c8=0,set_camera_directly_before_player

Ранее неизвестный:

0822=1,set_bumper_camera_available %1d%

параметр равный:
0 - делает недоступной камеру "вид с бампера" и переключает камеру на "вид со средней дистанции".
1 - делает камеру доступной (без переключения вида)


[large][acronym=Завтра, завтра, постоянно завтра, так проходит жизнь]Cras, cras, semper cras, sic evadit aetas[/acronym][/large]

Offline

#47 30-01-2008 02:53

yelmi
Registered: 10-12-2006
Posts: 134
Website

Re: Новые описания для опкодов

0918: unknown_car 0@ driver_flag 0 // 0 – выключить, 1 – вкдючить двигатель

Этот опкод отключает/включает двигатель у автомобилей и самолетов, но не отключает управление ими.
У мотоциклов и катеров выключается только звук.
На вертолеты этот опкод не действует.

Offline

#48 31-01-2008 13:00

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

Re: Новые описания для опкодов

09C1: add_next_text_to_brief_history 0

опкод указывает игре, нужно ли добавлять текст на экран брифинга или нет. Если флаг установлен в 0, следующий показанный текст не будет появляться на этом экране меню. После каждого текстового опкода (03E5, 00BB) флаг устанавливается в 1

09C2: cancel_rampage

опкод останавливает rampage. Использовался в PS2-версии игры. Статус рампейджа (01FA) при этом равен 3 (рампейдж провален).


2AleX AciD:, 2yelmi:
правки приняты.

Offline

#49 15-03-2008 00:43

Yarik
Registered: 22-02-2008
Posts: 173
Website

Re: Новые описания для опкодов

Вроде та тема. Не знаю известны или нет, но опишу то что потестил:
08A8: unknown_radar_flag 1 - маркеры видно очень издалека (если 0 то становятся видимыми только когда подходишь более менее близко )
078F: unknown_actor $PLAYER_ACTOR flag 1 - а это насколько я понял происходит двойной прыжок, а если СЖ у какой то стены/преграды то сначала он подвешивается на нее а потом уже залазит (как бы два раза нажать прыжок)

Offline

#50 05-04-2008 04:39

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Новые описания для опкодов

Не знаю, известен ли последний флаг этого опкода, но в последней версии SACHM из это темы он не подписан:

034e=8,move_object %1d% to %2d% %3d% %4d% speed %5d% %6d% %7d% flag %8d%

Последний флаг определяет, ставить ли на паузу перемещение объекта, если игрок наступит на объект (возможно, и пед или актёр). Я случайно узнал, когда делал мод лифта для перенесённой из GTA3 стройки (Марии или Асуки, не помню).
[---]
это можно подписать так:

034e=8,move_object %1d% to %2d% %3d% %4d% speed %5d% %6d% %7d% not_move_if_man_tread %8d%

Ещё я нашёл различия межу разными версиями SASCM.INI:
1. Из этой темы:

070C=1,explode_car %1d% ; versionB

Старый:

070C=1,explode_car %1d% without_damage

2. Ещё 0a44 подписан как показывать на панелях текст-боксы
[---]
ещё тут радиус непричём, тут тип:

020c=4,create_explosion_with_radius %4d% at %1d% %2d% %3d%

надо исправить на:

020c=4,create_explosion_with_type %4d% at %1d% %2d% %3d%

Last edited by VcSaJen (22-06-2008 13:04)


[small][/small]

Offline

Board footer

Powered by FluxBB