Cajon Posted November 23, 2008 Share Posted November 23, 2008 can some one explain how gosubs work? I've searched through misson coding tutorials and searched the forums but i cant find anything on them. Thanks, Blenderhead Link to comment Share on other sites More sharing options...
coin-god Posted November 23, 2008 Share Posted November 23, 2008 :threadgosub @thread2end_thread:thread2return It works like a JUMP, but the thread you jump to must end with a RETURN so it goes back up, because what it does is to go to another thread to execute it and then return to continue executing the rest of the code below the gosub. Link to comment Share on other sites More sharing options...
Jabhacksoul Posted November 23, 2008 Share Posted November 23, 2008 Gosub is short for go subroutine which works like this; unlike jump it returns to the place it was called from. So when you see 'return' that tells it to go back where it came from. This saves you from having to type the same lines over and over again. :MISSN_01_21003CF: load_wav 45211 as 1 gosub @MISSN_01_280 //goto missn_01_280 but come back when you are done!03D1: play_wav 1 0967: actor $PLAYER_ACTOR move_mouth -1 msgosub @MISSN_01_290 //wait for wav to play0605: actor [email protected] perform_animation_sequence "IDLE_CHAT" IFP_file "PED" 4.0 loop 0 0 0 0 time -10968: actor $PLAYER_ACTOR stop_mouth03CF: load_wav 45212 as 1 gosub @MISSN_01_280 //goto missn_01_28003D1: play_wav 1 0967: actor [email protected] move_mouth -1 msgosub @MISSN_01_290 //wait for wav to play0968: actor [email protected] stop_mouth03CF: load_wav 45213 as 1 gosub @MISSN_01_280 //goto missn_01_28005D3: AS_actor [email protected] goto_point 2510.0 -2088.0 13.5757 mode 4 -1 ms 03D1: play_wav 1 0967: actor $PLAYER_ACTOR move_mouth -1 msgosub @MISSN_01_290 //wait for wav to play0968: actor $PLAYER_ACTOR stop_mouth03CF: load_wav 45214 as 1 gosub @MISSN_01_280 //wait for wav to load03D1: play_wav 1 0967: actor [email protected] move_mouth -1 msgosub @MISSN_01_290 //wait for wav to play0968: actor [email protected] stop_mouth03CF: load_wav 45215 as 1 gosub @MISSN_01_280 //wait for wav to load03D1: play_wav 1 0967: actor $PLAYER_ACTOR move_mouth -1 ms0605: actor $PLAYER_ACTOR perform_animation_sequence "IDLE_STANCE" IFP_file "PED" 4.0 loop 0 0 0 0 time -1gosub @MISSN_01_290 //wait for wav to play0968: actor $PLAYER_ACTOR stop_mouth03CF: load_wav 45216 as 1 gosub @MISSN_01_280 //wait for wav to load03D1: play_wav 1 0967: actor [email protected] move_mouth -1 msgosub @MISSN_01_290 //wait for wav to playreturn // This returns :MISSN_01_210 back to where it was called from.//Subroutine to wait for wave loading:MISSN_01_280wait 0if 03D0: wav 1 loaded jf @MISSN_01_280return//Subroutine to wait for the wav to play out:MISSN_01_290wait 0if 03D2: wav 1 ended jf @MISSN_01_290040D: unload_wav 10001: wait $DEFAULT_WAIT_TIME msreturn JAB Link to comment Share on other sites More sharing options...
Cajon Posted November 24, 2008 Author Share Posted November 24, 2008 thanks Guys! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now