You are not logged in.
0745: set_hydra 1@ thrust_to_horizontal
и, пожалуйста, задавайте вопросы в другой ветке форума, а не здесь.
Offline
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
http://sannybuilder.com/files/SASCM.rar
Обновлено.
Offline
Дайте я тоже, что-ли, внесу свои пять копеек:
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
Открылся смысл опкода
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
Объяснить довольно трудно, это легче увидеть, поэтому я сделал два скрина. "с этим опкодом" и без.
"Без"
"С"
З.Ы. и вроде этот опкод надо применять перед каждым созданием текстуры
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
2flashTrash:
Дык уже давно, вроде кем-то было - show_antialiasing_texture...
Чего же он тогда до сих пор как "unknown"?
Offline
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
Еще один из той же серии:
06DE=2,%2d% = car_handle_from_train_handle %1d%
Здесь почти все хорошо, не считая маленькой неточности: возвращается хэндл последнего вагона.
Параметром, при этом, может передаваться хэндл произвольного вагона в поезде. Если передан хэндл вагона, который и так является последним - его самого и вернут.
Соответственно, назвать его стоило бы last_car_handle_from_train_handle или что-то в этом же духе, только покороче и почитабельнее.
Offline
Изменил на
06DE=2,%2d% = get_train %1d% last_carriage_handle 078A=3,%3d% = get_train %1d% carriage %2h% handle
CVehicle+5D4 cтало быть NextCarriageHandle?
Offline
Изменил на
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
Парочка свежаков:
0912: set_text_priority 1 leftmargin 75 maxwidth 150
Меняет свойства вывода текстов опкодами 00BC, 01E4, и подобными им. Первый параметр - флаг, установите его в ноль, чтобы отключить эффект этого опкода. Второй параметр - расстояние между центром текста и левым краем экрана.
Скриншоты до и после:
0A2C: hide_priority_text_while_fading 0
Тоже самое, что 0A2D (запрещает скрывать текст во время фейдинга), только для обычных текстов.
Offline
Как радар переставил?
редактированием gta_sa.exe
на днях выложу CLEO-скрипт с этим интерфейсом.
Last edited by Seemann (30-08-2007 15:52)
Offline
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
Речь, конечно же, идет про 04D1 и 04D0.
04D0 заставляет вертолет быть повернутым только под заданным углом относительно севера (вероятно, это азимут). Если поставить угол 180.0 (нос вертолета будет повернут на юг), а направлением полета указать точку на севере - вертолет будет лететь хвостом вперед.
Тест показывает, что 04D1 сбрасывает эту установку, и вертолет автоматически выравнивается в нужный угол (направление полета).
Проверка f954 (FixedRotationAngle?) происходит в 0x0042A635
Offline
Тьфу, блин! Конечно, 04Dx (копипаст - средство размножения очепяток)
_f954, в свете сказанного, логично назвать forceLookAzimuth (Direction - непонятно какой: полета, взгляда, вертикали и т.д., Angle - неясно, по какой оси).
Т.е. должно быть что-то вроде:
04D0: heli %1d% set_force_look_azimuth %2d% 04D1: heli %1d% reset_force_look_azimuth
Offline
09CB: vehicle $SWEET_CAR colliding_with_vehicle 274@
проверяет, соприкасаются ли две машины. Данный опкод работает аналогично 0179, 023B, 0547, 0897, 0A1B.
Last edited by Seemann (27-09-2007 16:19)
Offline
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
некоторые правки опкодов для магазинов (они были известны, но названы не совсем корректно):
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
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
0918: unknown_car 0@ driver_flag 0 // 0 – выключить, 1 – вкдючить двигатель
Этот опкод отключает/включает двигатель у автомобилей и самолетов, но не отключает управление ими.
У мотоциклов и катеров выключается только звук.
На вертолеты этот опкод не действует.
Offline
09C1: add_next_text_to_brief_history 0
опкод указывает игре, нужно ли добавлять текст на экран брифинга или нет. Если флаг установлен в 0, следующий показанный текст не будет появляться на этом экране меню. После каждого текстового опкода (03E5, 00BB) флаг устанавливается в 1
09C2: cancel_rampage
опкод останавливает rampage. Использовался в PS2-версии игры. Статус рампейджа (01FA) при этом равен 3 (рампейдж провален).
2AleX AciD:, 2yelmi:
правки приняты.
Offline
Вроде та тема. Не знаю известны или нет, но опишу то что потестил:
08A8: unknown_radar_flag 1 - маркеры видно очень издалека (если 0 то становятся видимыми только когда подходишь более менее близко )
078F: unknown_actor $PLAYER_ACTOR flag 1 - а это насколько я понял происходит двойной прыжок, а если СЖ у какой то стены/преграды то сначала он подвешивается на нее а потом уже залазит (как бы два раза нажать прыжок)
-=YariK=-
http://my-mods.org.ua/
Offline
Не знаю, известен ли последний флаг этого опкода, но в последней версии 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