Теперь мы попробуем создать покупку для какого-либо здания. В примере мы будет покупать аэропорт. Комментарии в коде.
:ShopBuy
0001: wait 0 ms
03A4: name_thread "AUBUY"
0518: $avto = create_available_asset_pickup "ASM3_B" at -1434.420 -838.584 14.890 price 15000 ;создаем пикап с зеленым домиком. Цена аэропорта будет 15000, указывается это последним параметром.
:ShopBuy1
0001: wait $DEFAULT_WAIT_TIME ms
00D6: if 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false ЈЈShopBuy1
00D6: if 0
0038: $ONMISSION == 0 ;; integer values
004D: jump_if_false ЈЈShopBuy1
00D6: if 0
03EE: player $PLAYER_CHAR controllable
004D: jump_if_false ЈЈShopBuy1
00D6: if 0
0214: pickup $avto picked_up
004D: jump_if_false ЈЈShopBuy1
004F: create_thread ЈЈSaving ;создаем сохранялку
016A: fade 0 () 500 ms
0001: wait 500 ms
03BF: set player $PLAYER_CHAR ignored by everyone to 1 (true)
02A3: toggle widescreen 1 (on)
01B4: set player $PLAYER_CHAR frozen state 0 (frozen)
015F: set_camera_position -1434.500 -794.994 20.890 0.0 0.0 0.0 ;Показать само здание
0160: point_camera -1434.420 -838.584 13.890 2 ; Камеру на него
016A: fade 1 () 500 ms
0001: wait 500 ms
01E3: text_1number_styled "ASM3_A" 15000 5000 ms 6 ;тут имя записи в gxt вида "Куплено здание за ~1~$"
0001: wait 5000 ms
015F: set_camera_position -1433.888 -832.912 15.700 0.0 0.0 0.0 ; Показать кассетку
0160: point_camera -1430.599 -837.800 14.890 2 ; камеру на нее
00BC: text_highpriority "BUYSAVE" 5000 ms 1 ;; Вывод "Теперь ты можешь сохранить тут игру"
04A6: $money = create_asset_money_pickup_at -1422.735 -835.148 14.891 money 15000 15000 ; Создается место для сбора денег, последние два числа - сколько максимум
0001: wait 5000 ms
0160: point_camera -1422.735 -835.148 14.391 2 ; камера на место сбора ловэ
01E5: text_1number_highpriority "ASM_1" 15000 15000 ms 1 ;надпись "Теперь это здание будет приносить ~1~$ в день
0001: wait 5000 ms
016A: fade 0 () 500 ms
0001: wait 500 ms
02EB: restore_camera_with_jumpcut
0373: set camera directly behind player
03BF: set player $PLAYER_CHAR ignored by everyone to 0 (false)
02A3: toggle widescreen 0 (off)
01B4: set player $PLAYER_CHAR frozen state 1 (unfrozen)
016A: fade 1 () 500 ms
0529: unknown_add 15000 to_money_spent_on_property_stats
0394: play_music 1
004E: end_thread
:Saving
03A4: name_thread "Saving"
:Save1
0001: wait 250 ms
00D6: if 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false ЈЈSave6
00D6: if 0
03EE: player $PLAYER_CHAR controllable
004D: jump_if_false ЈЈSave6
00D6: if 0
0038: $ONMISSION == 0 ;; integer values
004D: jump_if_false ЈЈSave5
00D6: if 0
0038: $picked == 0 ;; integer values
004D: jump_if_false ЈЈSave2
0570: $savem = create_asset_radar_marker_with_icon 19 at -1430.599 -837.800 13.890 ; маркер кассетки
018B: show_on_radar $savem 2
0213: $pickup = create_pickup -1 (PICKUPSAVE) type 2 at -1430.599 -837.800 14.890 ;; поменяй на нужные координаты, где будет касcета вертеться
0004: $picked = 1 ;; integer values
:Save2
00D6: if 0
0214: pickup $pickup picked_up
004D: jump_if_false ЈЈSave4
0050: gosub ЈЈSave7
00D6: if 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false ЈЈSave3
0215: destroy_pickup $pickup
0213: $pickup = create_pickup -17 (PICKUPSAVE) type 3 at -1430.599 -837.800 14.890 ;;- тут тоже
0570: $savem = create_asset_radar_marker_with_icon 19 at -1430.599 -837.800 13.890
018B: show_on_radar $savem 2
016A: fade 1 (back) 1000 ms
0395: clear_area 1 at 82.0 -849.8 range -1430.599 -837.800;; и тут
0055: put_player $PLAYER_CHAR at -1431.226 -834.469 13.712 ;; куда игрок помещается после сэйва
0171: set_player $PLAYER_CHAR z_angle_to 0.0 ;; его угол