Buying property

From GTAMods Wiki
Revision as of 21:08, 1 February 2010 by Spaceeinstein (talk | contribs)
Jump to navigation Jump to search

This is a code snippet of a property for sale in Sanny Builder's format and should work in Vice City and San Andreas. This gives you the basic and compact code to create a working script without creating a mission for it. Remember to read the tutorial on how to create a thread before proceeding to implement this code.

:BUY
0006: 1@ = 100 // set price
0007: 2@ = 308.7745 // x-coordinate of pickup
0007: 3@ = -1298.623 // y-coordinate of pickup
0007: 4@ = 11.07 // z-coordinate of pickup
0518: 0@ = create_available_asset_pickup 'PROP_3' at 2@ 3@ 4@ price 1@ // Press ~k~~PED_ANSWER_PHONE~ to buy this property for $~1~.
03A4: name_thread 'BUY' 

:BUY_10
0001: wait 250 ms 
00D6: if 
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false @BUY_10 
00D6: if 
0038:   $ONMISSION == 0 
004D: jump_if_false @BUY_10 
00D6: if 
0214:   pickup 0@ picked_up 
004D: jump_if_false @BUY_10 
01B4: set_player $PLAYER_CHAR frozen_state 0 
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 1 
02A3: toggle_widescreen 1 
015F: set_camera_position 468.3571 1259.458 21.8848 0.0 0.0 0.0 // set your camera location
0160: point_camera 469.2978 1259.797 21.8834 2 // set your camera target location
00BA: text_styled 'BUYPRO' 5000 ms 2 // Property bought!
0394: play_music 1 
0001: wait 5000 ms 
00D6: if 
8256:   not player $PLAYER_CHAR defined 
004D: jump_if_false @BUY_176 
004E: end_thread 

:BUY_176
00BE: text_clear_all 
0373: set_camera_directly_behind_player 
02EB: restore_camera_with_jumpcut 
01B4: set_player $PLAYER_CHAR frozen_state 1 
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 0 
02A3: toggle_widescreen 0 
004E: end_thread

Due to an error in the wiki, line 25 should be

00BA: text_styled 'BUYPRO' 5000 ms 2 

Full Code

Here is a full code to buy a property based on the code in Vice City. The process to buy a property in Vice City and San Andreas involves starting a mission.

Find:

DEFINE MISSIONS

Increment the number of missions by one.

Find the last defined mission and add:

DEFINE MISSION ## AT @BUYPRO

Find:

create_thread

Add above:

create_thread @BUY

Find:

//-------------Mission 0---------------

Add above:

:BUY
0006: 1@ = 100 // set price
0007: 2@ = 308.7745 // x-coordinate of pickup
0007: 3@ = -1298.623 // y-coordinate of pickup
0007: 4@ = 11.07 // z-coordinate of pickup
0518: 0@ = create_available_asset_pickup 'PROP_3' at 2@ 3@ 4@ price 1@ // Press ~k~~PED_ANSWER_PHONE~ to buy this property for $~1~.
03A4: name_thread 'BUY' 

:BUY_10
0001: wait 250 ms 
00D6: if 
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false @BUY_87 
00D6: if 
0038:   $ONMISSION == 0 
004D: jump_if_false @BUY_87 
00D6: if 
03EE:   player $PLAYER_CHAR controllable 
004D: jump_if_false @BUY_87 
00D6: if 
0214:   pickup 0@ picked_up 
004D: jump_if_false @BUY_87 
0417: start_mission BUYPRO 
004E: end_thread 

:BUY_87
0002: jump @BUY_10

Scroll all the way to the end of the script and add:

//-------------Mission ##---------------

:BUYPRO
03A4: name_thread 'BUYPRO' 
0004: $ONMISSION = 1
0169: set_fade_color 0 0 1 
016A: fade 0 500 ms 
01B4: set_player $PLAYER_CHAR frozen_state 0 
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 1 
03F4: set_all_vehicles_apply_damage_rules 0 

:BUYPRO_50
00D6: if 
016B:   fading 
004D: jump_if_false @BUYPRO_92 
0001: wait 0 ms 
00D6: if 
8256:   not player $PLAYER_CHAR defined 
004D: jump_if_false @BUYPRO_85 
004E: end_thread 

:BUYPRO_85
0002: jump @BUYPRO_50 

:BUYPRO_92
02A3: toggle_widescreen 1 
0169: set_fade_color 0 0 1 
016A: fade 1 500 ms 
015F: set_camera_position 468.3571 1259.458 21.8848 0.0 0.0 0.0 // set your camera location
0160: point_camera 469.2978 1259.797 21.8834 2 // set your camera target location

:BUYPRO_162
00D6: if 
016B:   fading 
004D: jump_if_false @BUYPRO_204 
0001: wait 0 ms 
00D6: if 
8256:   not player $PLAYER_CHAR defined 
004D: jump_if_false @BUYPRO_197 
004E: end_thread 

:BUYPRO_197
0002: jump @BUYPRO_162 

:BUYPRO_204
00BA: text_styled 'BUYPRO' 5000 ms 2 // Property bought!
0394: play_music 1 
043C: set_game_sounds_disable_on_fade 0 
0001: wait 5000 ms 
0169: set_fade_color 0 0 1 
016A: fade 0 500 ms 

:BUYPRO_247
00D6: if 
016B:   fading 
004D: jump_if_false @BUYPRO_293 
0001: wait 0 ms 
00D6: if 
8256:   not player $PLAYER_CHAR defined 
004D: jump_if_false @BUYPRO_286 
043C: set_game_sounds_disable_on_fade 1 
004E: end_thread 

:BUYPRO_286
0002: jump @BUYPRO_247 

:BUYPRO_293
0373: set_camera_directly_behind_player 
02EB: restore_camera_with_jumpcut 
01B4: set_player $PLAYER_CHAR frozen_state 1 
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 0 
03F4: set_all_vehicles_apply_damage_rules 1 
02A3: toggle_widescreen 0 
0169: set_fade_color 0 0 1 

:BUYPRO_327
016A: fade 1 500 ms 
00D6: if 
016B:   fading 
004D: jump_if_false @BUYPRO_358 
0001: wait 0 ms 
0002: jump @BUYPRO_327 

:BUYPRO_358
00D6: if 
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false @BUYPRO_379 
011C: actor $PLAYER_ACTOR clear_objective 

:BUYPRO_379
043C: set_game_sounds_disable_on_fade 1 
0004: $ONMISSION = 0 
00D8: mission_cleanup 
004E: end_thread 
0051: return

Again, due to an error in the wiki, line 46 should be

00BA: text_styled 'BUYPRO' 5000 ms 2