So , you dont need to be a professional Cleo programmer , you can be a noob like me and still make some cool intros . I figured this out by exploring Sanny builder's opcodes a little bit and grabing some of them from the main.scm file and of course adding some texting using the GXThook plugin , but the best thing i added is the soundtrack to the Cutscene ! so here are the results :
$A = 12000
$B = 32000
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
Actor.StorePos($PLAYER_ACTOR, $X, $Y, $Z)
$ONMISSION = 0
$ONMISSION == 1
02A3: enable_widescreen 1
015D: set_gamespeed 1.0
0952: load_soundtrack 13
0936: set_camera 212.1185 -1733.208 4.3946 position_to 250.1185 -1733.208 4.3946 time $A drop_mode 0
0920: point_camera 212.1185 -1733.208 4.3946 transverse_to 212.1185 -1733.208 4.3946 time $A mode 0
0936: set_camera 250.1185 -1733.208 4.3946 position_to 320.1185 -1733.208 10.3946 time $B drop_mode 0
0920: point_camera 212.1185 -1733.208 4.3946 transverse_to 212.1185 -2933.208 15.3946 time $B mode 0
02A3: enable_widescreen 0
fade 1 2000
Here you go , an exemple of the moving cutscene with an incomplete mission :
DOWNLOAD THE MISSION EXEMPLE
PREVIEW:(This GIF image is laggy)
This is not the perfect mission , i just wanted to show you how the moving cutscene works with DYOM .
*****How this works :
-thread 'Movie' : a thread is like a big building with a name ( like the Twins) i called my building Movie , the building holds many levels , the thread is used to organize your project.
- $A = 12000
$B = 32000
$ONMISSION = 0 : Everything that starts with a '$' is a variable , we use variables for easy and fast edit of opcodes , exemple :
****0936: set_camera 212.1185 -1733.208 4.3946 position_to 250.1185 -1733.208 4.3946 time $A drop_mode 0 *****
the variable $A is linked to the time of the camera movement , how much time will the movement take to move from a position to another , you can write a number instead of using a variable like :
**0936: set_camera 212.1185 -1733.208 4.3946 position_to 250.1185 -1733.208 4.3946 time 12000 drop_mode 0 **
time 12000 ===> means that the movement will take 12 secs (12000 ms)
So why did i use $A instead of 12000 ? ===> im too lazy to search for the opcode and then search for the time and then erase ... , so instead , i can edit the time directly from $A = 12000.
Note : $A and $B are variables named by me , you can name it whatever you want ( $timespent , $cameraduration , $rofl ...)
But , $ONMISSION isn't named by me as it is an original variable from GTA San Andreas's main.scm , we cant rename it , the Game will recognize it as a = If the player joined a mission .
Note: Each variable must be given a value that is a number in this case, you cant write : $A = . or $A = blahblah or $A = 12+20 , or $A = $B+$C . the $ONMISSION knows two values , 1 ( The player has just started a new mission ) or 0 (The player is not on a mission). ===> $ONMISSION = 0 is not $ONMISSION == 0 ,
°°we use the double = in the : if $ONMISSION == 0.
°°the single = is used one time when you create a thread , why ? as i said before "Each variable must be given a value".
-:Movie_56 : This is a level of the building , the level begins with a ":", we can jump from a level to another from the balcony using ===> jump @Movie_56
-wait 0 : This one tells the Game to wait 0 ms , then continue to the next opcode , wait 2000 ==> the game will wait 2 seconds.
- if : Obviously means if this or that is true .
- if $ONMISSION == 1 : If the player is on a mission.
-else_jump @Movie_56 : Else (If the player isn't on a mission ) then go back to :Movie_56 and try again ...
-02A3: enable_widescreen 1 : Enables the widescreen mode
-015D: set_gamespeed 1.0 : Sets gamespeed to normal ( 1.0 ) , if the value is under 1.0 , then the game will be in slow motion ( Matrix effect )
-0952: load_soundtrack 13 : loads ( not play ) soundtrack n° 13 of the library , n° 13 is the California knows how to party music .
-0954: start_playing_loaded_soundtrack : Starts playing the soundtrack .
-0936: set_camera 212.1185 -1733.208 4.3946 position_to 250.1185 -1733.208 4.3946 time $A drop_mode 0 : Moves the camera from x y z to a new x y z , the duration is $A and the drop mode is the movement type ( there are 5 drop modes as far as i know )
-0920: point_camera 212.1185 -1733.208 4.3946 transverse_to 212.1185 -1733.208 4.3946 time $A mode 0 : This one sets where the camera must look at .
-fade 1 2000 : fades the screen out.
-wait 4000 : wait 4 secs .
-0A93: end_custom_thread : ends the project