Difference between revisions of "Moving gate"

From GTAMods Wiki
Jump to navigation Jump to search
(New page: This is a code snippet of a moving gate. This code is in Sanny Builder's format and should work in GTA III, Vice City, and San Andreas. This code is based on the moving gat...)
 
(added sounds for VC and SA)
Line 1: Line 1:
This is a code snippet of a moving gate. This code is in [[Sanny Builder]]'s format and should work in [[GTA III]], [[Vice City]], and [[San Andreas]]. This code is based on the moving gates in GTA III. Remember to read the tutorial on [[Create a thread|how to create a thread]] before proceeding to implement this code.
+
This is a code snippet of a moving gate in [[Sanny Builder]]'s format and should work in [[GTA III]], [[Vice City]], and [[San Andreas]]. This code is based on the moving gates, including the sound it makes, in GTA III. Remember to read the tutorial on [[Create a thread|how to create a thread]] before proceeding to implement this code.
 
<source lang="scm" line>
 
<source lang="scm" line>
 
:GATE
 
:GATE
Line 15: Line 15:
  
 
:GATE_101
 
:GATE_101
0001: wait 1000 ms  
+
0001: wait 250 ms  
 
00D6: if  
 
00D6: if  
 
0256:  player $PLAYER_CHAR defined  
 
0256:  player $PLAYER_CHAR defined  
Line 26: Line 26:
 
0039:  1@ == 0  
 
0039:  1@ == 0  
 
004D: jump_if_false @GATE_189  
 
004D: jump_if_false @GATE_189  
//018C: play_sound 92 at 4@ 5@ 6@  
+
//018C: play_sound 92 at 4@ 5@ 6@ // uncomment for III
 +
//018C: play_sound 3 at 4@ 5@ 6@ // uncomment for VC
 +
//097B: play_audio_at_object 0@ event 1100 // uncomment for SA
 
0006: 1@ = 1  
 
0006: 1@ = 1  
  
Line 47: Line 49:
 
0039:  3@ == 0  
 
0039:  3@ == 0  
 
004D: jump_if_false @GATE_299  
 
004D: jump_if_false @GATE_299  
//018C: play_sound 93 at 7@ 8@ 9@  
+
//018C: play_sound 93 at 7@ 8@ 9@ // uncomment for III
 +
//018C: play_sound 3 at 7@ 8@ 9@ // uncomment for VC
 +
//097B: play_audio_at_object 0@ event 1101 // uncomment for SA
 
0006: 3@ = 1 // integer values  
 
0006: 3@ = 1 // integer values  
  
Line 57: Line 61:
 
0039:  1@ == 1  
 
0039:  1@ == 1  
 
004D: jump_if_false @GATE_324  
 
004D: jump_if_false @GATE_324  
//018C: play_sound 92 at 7@ 8@ 9@  
+
//018C: play_sound 92 at 7@ 8@ 9@ // uncomment for III
 +
//018C: play_sound 3 at 7@ 8@ 9@ // uncomment for VC
 +
//097B: play_audio_at_object 0@ event 1100 // uncomment for SA
  
 
:GATE_324
 
:GATE_324
Line 73: Line 79:
 
0006: 2@ = 1  
 
0006: 2@ = 1  
 
00D6: if and
 
00D6: if and
0045:  10@ == 7@  
+
0045:  10@ == 4@  
0045:  11@ == 8@  
+
0045:  11@ == 5@  
0045:  12@ == 9@  
+
0045:  12@ == 6@  
 
004D: jump_if_false @GATE_465  
 
004D: jump_if_false @GATE_465  
//018C: play_sound 93 at 4@ 5@ 6@  
+
//018C: play_sound 93 at 4@ 5@ 6@ // uncomment for III
 +
//018C: play_sound 3 at 4@ 5@ 6@ // uncomment for VC
 +
//097B: play_audio_at_object 0@ event 1101 // uncomment for SA
 
0006: 3@ = 0  
 
0006: 3@ = 0  
 
0006: 2@ = 0  
 
0006: 2@ = 0  

Revision as of 04:54, 12 January 2010

This is a code snippet of a moving gate in Sanny Builder's format and should work in GTA III, Vice City, and San Andreas. This code is based on the moving gates, including the sound it makes, in GTA III. Remember to read the tutorial on how to create a thread before proceeding to implement this code.

:GATE
0007: 4@ = 298.0 // initial x position
0007: 5@ = -313.6 // initial y position
0007: 6@ = 11.0 // initial z position
0007: 7@ = 304.0 // final x position
0007: 8@ = -313.6 // final y position
0007: 9@ = 11.0 // final z position
03A4: name_thread 'GATE' 
// you can use any object you want but make sure it's defined before creating it
029B: 0@ = init_object #ELECTRICGATE at 4@ 5@ 6@ 
01C7: remove_object_from_mission_cleanup_list 0@ 
0177: set_object 0@ z_angle_to 0.0 // remember to set the angle of your gate

:GATE_101
0001: wait 250 ms 
00D6: if 
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false @GATE_472 
00D6: if 
// use other area check opcodes for more precision and options
00FE:   actor $PLAYER_ACTOR 0 4@ 5@ 6@ radius 5.0 5.0 5.0 
004D: jump_if_false @GATE_306 
00D6: if 
0039:   1@ == 0 
004D: jump_if_false @GATE_189 
//018C: play_sound 92 at 4@ 5@ 6@ // uncomment for III
//018C: play_sound 3 at 4@ 5@ 6@ // uncomment for VC
//097B: play_audio_at_object 0@ event 1100 // uncomment for SA
0006: 1@ = 1 

:GATE_189
00D6: if 
834E:   not move_object 0@ to 7@ 8@ 9@ speed 0.1 0.1 0.0 flag 0 
004D: jump_if_false @GATE_242 
0001: wait 0 ms 
0002: jump @GATE_189 

:GATE_242
00D6: if 
0039:   2@ == 1 
004D: jump_if_false @GATE_274 
0006: 3@ = 0 
0006: 2@ = 0 

:GATE_274
00D6: if 
0039:   3@ == 0 
004D: jump_if_false @GATE_299 
//018C: play_sound 93 at 7@ 8@ 9@ // uncomment for III
//018C: play_sound 3 at 7@ 8@ 9@ // uncomment for VC
//097B: play_audio_at_object 0@ event 1101 // uncomment for SA
0006: 3@ = 1 // integer values 

:GATE_299
0002: jump @GATE_472 

:GATE_306
00D6: if 
0039:   1@ == 1 
004D: jump_if_false @GATE_324 
//018C: play_sound 92 at 7@ 8@ 9@ // uncomment for III
//018C: play_sound 3 at 7@ 8@ 9@ // uncomment for VC
//097B: play_audio_at_object 0@ event 1100 // uncomment for SA

:GATE_324
00D6: if 
834E:   not move_object 0@ to 4@ 5@ 6@ speed 0.1 0.1 0.0 flag 1 
004D: jump_if_false @GATE_377 
0001: wait 0 ms 
0002: jump @GATE_324 

:GATE_377
01BB: store_object 0@ position_to 10@ 11@ 12@ 
00D6: if 
0039:   3@ == 1 
004D: jump_if_false @GATE_465 
0006: 2@ = 1 
00D6: if and
0045:   10@ == 4@ 
0045:   11@ == 5@ 
0045:   12@ == 6@ 
004D: jump_if_false @GATE_465 
//018C: play_sound 93 at 4@ 5@ 6@ // uncomment for III
//018C: play_sound 3 at 4@ 5@ 6@ // uncomment for VC
//097B: play_audio_at_object 0@ event 1101 // uncomment for SA
0006: 3@ = 0 
0006: 2@ = 0 

:GATE_465
0006: 1@ = 0 

:GATE_472
0002: jump @GATE_101

A direct copy and paste will create a moving gate at the Spand Express company in Vice City.