#1 19-04-2021 17:34

Krackeen_777
Registered: 28-10-2019
Posts: 11

Копия катсцены из оригинального main.scm в свой

Имеется практически пустой main.scm, т.е. в нём только всё основное для запуска игры (main.scm от wmysterio). Имеется одна катсцена (а точнее самая последняя с титрами) в оригинальном main.scm. Я хочу перенести катсцену так, что бы игрок становился на маркер и запускалась катсцена. Я это вижу так: игрок встал на маркер и запустилась катсцена, в которой просто по карте летает камера, играет музыка, титры я вырежу, после окончания катсцены напишет "миссия пройдена", но если стать на маркер, то катсцена снова запустится. Вопрос: как мне перенести катсцену? С каких до каких пор в оригинальном маине вырезать блоки с кодом? Как вообще всё устроено, а то все инструкции, которые я нашел, связаны с созданием миссии на cleo, что отличается от main...
Так же на подобии этой катсцены я хочу перенести ещё несколько, всё на подобии такого...
Ещё вопрос: а вообще реально ли перенести катсцену (или её часть) из main.scm в .sc скрипт с меню выбора катсцены? И будет ли это проще, чем переносить их в другой main.scm?

Offline

#2 22-04-2021 16:40

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

Re: Копия катсцены из оригинального main.scm в свой

Для какой игры? В вайс сити за финальную сцену с титрами отвечает вот этот код из миссии "Keep your friends close..."

0000:

01B4: set_player $PLAYER_CHAR can_move 0 
02A3: enable_widescreen 1 
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 1 
03F4: set_all_vehicles_apply_damage_rules 0 
04BB: select_interiour 0 // select render area 
0004: $991 = 0 // $ = int 
03AD: set_rubbish 1 
04FA: clear_extra_colors_with_fade 0 
0055: put_player $PLAYER_CHAR at 198.4252 -434.6284 9.5332 
0434: show_credits 
0004: $61 = 0 // $ = int 
03EA: generate_cars_around_camera 1 
01BD: $4811 = current_time_in_ms 
0001: wait 0 ms 
0001: wait 0 ms 
02A3: enable_widescreen 1 
01BD: $4811 = current_time_in_ms 
0084: $5040 = $4811 // $ = $ int 
01B6: set_weather 0 

:FIN_1_24761
00D6: if 
8436:   not reached_end_of_credits 
004D: jump_if_false @FIN_1_26913 
0001: wait 0 ms 
01BD: $4811 = current_time_in_ms 
00D6: if 
00E1:   player 0 pressed_button 16 
004D: jump_if_false @FIN_1_24827 
00D6: if 
0038:   $61 == 1 // $ == int 
004D: jump_if_false @FIN_1_24820 
0435: end_credits 

:FIN_1_24820
0002: jump @FIN_1_24834 

:FIN_1_24827
0004: $61 = 1 // $ = int 

:FIN_1_24834
00D6: if 
0038:   $5039 == 0 // $ == int 
004D: jump_if_false @FIN_1_24980 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_24980 
015F: set_camera_position 315.4413 -606.3295 10.9994 rotation 0.0 0.0 0.0 
0160: point_camera 315.8044 -605.4032 11.1004 switchstyle 2 
00C0: set_current_time 18 0 
009B: destroy_actor_instantly $5027 
009A: $5027 = create_actor_pedtype 4 model #MALE01 at 315.4413 -606.3295 10.9994 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_24980
00D6: if 
0038:   $5039 == 1 // $ == int 
004D: jump_if_false @FIN_1_25055 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_25055 
0169: set_fade_color 0 0 1 
016A: fade 1 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_25055
00D6: if 
0038:   $5039 == 2 // $ == int 
004D: jump_if_false @FIN_1_25130 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_25130 
0169: set_fade_color 0 0 1 
016A: fade 0 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 3500 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_25130
00D6: if 
0038:   $5039 == 3 // $ == int 
004D: jump_if_false @FIN_1_25276 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_25276 
015F: set_camera_position -57.009 -1579.473 11.6604 rotation 0.0 0.0 0.0 
0160: point_camera -57.1214 -1578.485 11.765 switchstyle 2 
00C0: set_current_time 14 0 
009B: destroy_actor_instantly $5027 
009A: $5027 = create_actor_pedtype 4 model #MALE01 at -57.009 -1579.473 11.6604 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_25276
00D6: if 
0038:   $5039 == 4 // $ == int 
004D: jump_if_false @FIN_1_25351 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_25351 
0169: set_fade_color 0 0 1 
016A: fade 1 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_25351
00D6: if 
0038:   $5039 == 5 // $ == int 
004D: jump_if_false @FIN_1_25426 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_25426 
0169: set_fade_color 0 0 1 
016A: fade 0 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 3500 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_25426
00D6: if 
0038:   $5039 == 6 // $ == int 
004D: jump_if_false @FIN_1_25572 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_25572 
015F: set_camera_position -31.4477 -942.5128 11.2897 rotation 0.0 0.0 0.0 
0160: point_camera -30.4814 -942.2845 11.4088 switchstyle 2 
00C0: set_current_time 15 0 
009B: destroy_actor_instantly $5027 
009A: $5027 = create_actor_pedtype 4 model #MALE01 at -31.4477 -942.5128 11.2897 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_25572
00D6: if 
0038:   $5039 == 7 // $ == int 
004D: jump_if_false @FIN_1_25647 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_25647 
0169: set_fade_color 0 0 1 
016A: fade 1 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_25647
00D6: if 
0038:   $5039 == 8 // $ == int 
004D: jump_if_false @FIN_1_25722 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_25722 
0169: set_fade_color 0 0 1 
016A: fade 0 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 3500 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_25722
00D6: if 
0038:   $5039 == 9 // $ == int 
004D: jump_if_false @FIN_1_25868 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_25868 
015F: set_camera_position 527.1948 -1101.658 12.3979 rotation 0.0 0.0 0.0 
0160: point_camera 526.1959 -1101.612 12.4088 switchstyle 2 
00C0: set_current_time 12 0 
009B: destroy_actor_instantly $5027 
009A: $5027 = create_actor_pedtype 4 model #MALE01 at 527.1948 -1101.658 12.3979 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_25868
00D6: if 
0038:   $5039 == 10 // $ == int 
004D: jump_if_false @FIN_1_25943 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_25943 
0169: set_fade_color 0 0 1 
016A: fade 1 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_25943
00D6: if 
0038:   $5039 == 11 // $ == int 
004D: jump_if_false @FIN_1_26018 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_26018 
0169: set_fade_color 0 0 1 
016A: fade 0 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 3500 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_26018
00D6: if 
0038:   $5039 == 12 // $ == int 
004D: jump_if_false @FIN_1_26164 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_26164 
015F: set_camera_position 329.8244 -1123.419 29.418 rotation 0.0 0.0 0.0 
0160: point_camera 329.5483 -1122.458 29.4027 switchstyle 2 
00C0: set_current_time 2 0 
009B: destroy_actor_instantly $5027 
009A: $5027 = create_actor_pedtype 4 model #MALE01 at 329.8244 -1123.419 29.418 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_26164
00D6: if 
0038:   $5039 == 13 // $ == int 
004D: jump_if_false @FIN_1_26239 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_26239 
0169: set_fade_color 0 0 1 
016A: fade 1 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_26239
00D6: if 
0038:   $5039 == 14 // $ == int 
004D: jump_if_false @FIN_1_26314 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_26314 
0169: set_fade_color 0 0 1 
016A: fade 0 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 3500 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_26314
00D6: if 
0038:   $5039 == 15 // $ == int 
004D: jump_if_false @FIN_1_26460 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_26460 
015F: set_camera_position 420.3749 -179.7319 12.2077 rotation 0.0 0.0 0.0 
0160: point_camera 420.3214 -178.7335 12.193 switchstyle 2 
00C0: set_current_time 11 0 
009B: destroy_actor_instantly $5027 
009A: $5027 = create_actor_pedtype 4 model #MALE01 at 420.3749 -179.7319 12.2077 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_26460
00D6: if 
0038:   $5039 == 16 // $ == int 
004D: jump_if_false @FIN_1_26535 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_26535 
0169: set_fade_color 0 0 1 
016A: fade 1 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_26535
00D6: if 
0038:   $5039 == 17 // $ == int 
004D: jump_if_false @FIN_1_26610 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_26610 
0169: set_fade_color 0 0 1 
016A: fade 0 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 3500 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_26610
00D6: if 
0038:   $5039 == 18 // $ == int 
004D: jump_if_false @FIN_1_26756 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_26756 
015F: set_camera_position -397.3825 22.9746 47.9553 rotation 0.0 0.0 0.0 
0160: point_camera -396.5451 23.4814 47.7505 switchstyle 2 
00C0: set_current_time 5 45 
009B: destroy_actor_instantly $5027 
009A: $5027 = create_actor_pedtype 4 model #MALE01 at -391.2471 26.5135 25.2721 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_26756
00D6: if 
0038:   $5039 == 19 // $ == int 
004D: jump_if_false @FIN_1_26831 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_26831 
0169: set_fade_color 0 0 1 
016A: fade 1 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 20000 // $ += int 
0008: $5039 += 1 // $ += int 

:FIN_1_26831
00D6: if 
0038:   $5039 == 20 // $ == int 
004D: jump_if_false @FIN_1_26906 
00D6: if 
001C:   $4811 > $5040 // $ > $ int 
004D: jump_if_false @FIN_1_26906 
0169: set_fade_color 0 0 1 
016A: fade 0 3000 ms 
0084: $5040 = $4811 // $ = $ int 
0008: $5040 += 3500 // $ += int 
0004: $5039 = 21 // $ = int 

:FIN_1_26906
0002: jump @FIN_1_24761 

:FIN_1_26913
043C: set_game_sounds_disable_on_fade 1 
0440: stop_cutscene_music 
009B: destroy_actor_instantly $5027 
02A3: enable_widescreen 0 
03EA: generate_cars_around_camera 0 
01B7: release_weather 
0395: clear_area 1 at -379.2 -536.4 16.2 range 1.0 
0055: put_player $PLAYER_CHAR at -379.2 -536.4 16.2 
0171: set_player $PLAYER_CHAR z_angle_to 0.0 
0373: set_camera_directly_behind_player 
04BB: select_interiour 0 // select render area 
0004: $991 = 0 // $ = int 
03AD: set_rubbish 1 
04FA: clear_extra_colors_with_fade 0 
03CB: load_scene -379.2 -536.4 16.2 
0169: set_fade_color 0 0 1 
016A: fade 1 1500 ms 
01B4: set_player $PLAYER_CHAR can_move 1 
02A3: enable_widescreen 0 
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 0 
03F4: set_all_vehicles_apply_damage_rules 1 
0373: set_camera_directly_behind_player 
02EB: restore_camera_with_jumpcut 
03DE: set_pedestrians_density_multiplier_to 1.0 
0395: clear_area 0 at -354.419 -569.529 30.0 range 200.0 
04E3: set_player $PLAYER_CHAR mood 0 duration 60000 


end_thread

Offline

#3 22-04-2021 16:41

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

Re: Копия катсцены из оригинального main.scm в свой

Титры с именами запускаются командами

0434: show_credits
0435: end_credits
8436:   not reached_end_of_credits

непосредственно к пролету камеры они отношения не имеют

Offline

#4 25-04-2021 09:53

Krackeen_777
Registered: 28-10-2019
Posts: 11

Re: Копия катсцены из оригинального main.scm в свой

Seemann wrote:

Для какой игры?

San Andreas. И где вообще мне взять учебники/туториалы по main.scm?

Offline

#5 26-04-2021 22:01

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

Re: Копия катсцены из оригинального main.scm в свой

Финальную катсцену в Сан Андреас можно найти в миссии 112 FINALEC. Сразу после команды 0434: show_credits

:FINALEC_41683
0954: start_playing_loaded_soundtrack 
043C: disable_sounds_after_fadeout 0 
0924: enable_screen_darkness 1 with_value -1 
0434: show_credits 
016A: fade 1 time 250 
0925: restore_camera_to_user_defined 
0936: set_camera 2523.975 -1749.962 57.202 position_to 2514.887 -1733.851 57.202 time 2000 smooth_transition 0 
0920: point_camera 2523.755 -1749.572 56.3075 transverse_to 2514.668 -1733.461 56.3075 time 2000 smooth_transition 0 

:FINALEC_41780
...
<финальная катсцена>
...

учебники/туториалы по main.scm?

на главной странице https://sannybuilder.com/ru/index.html есть несколько ссылок, можно начать с них

Offline

Board footer

Powered by FluxBB