Moving gate

From GTAMods Wiki
Revision as of 02:46, 12 January 2010 by Spaceeinstein (talk | contribs) (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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 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 1000 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@ 
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@ 
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@ 

: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@ == 7@ 
0045:   11@ == 8@ 
0045:   12@ == 9@ 
004D: jump_if_false @GATE_465 
//018C: play_sound 93 at 4@ 5@ 6@ 
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.