Jump to content

Hoe voeg ik een savehuis toe in ViceCity ?


XoIN

Recommended Posts

Voor beide is geen simpele code, hiervoor moet je een nieuwe thread maken.

Ik weet niet hoe ervaren je bent in SCM coderen, maar dit is niet al te moeillijk.

Voor het kopen van een huis heb je vier dingen nodig:

1) Een icoontje op de plek waar je hem wilt kunnen kopen.

2) Een thread die kijkt of je in het icoontje staat.

3) Een missie die de verdere afhandeling van de "koop" afhandeld.

4) Een thread die na de koop het saven bij dat huis afhandeld.

Ik zal laten zien waar je voor de linkview apartments de verschillende onderdelen terug kunt vinden. Dan kun je zelf proberen uit te zoeken hoe het werkt. Je leert SCM modden namelijk het beste door zelf dingen uit te zoeken. Als je eenmaal doorhebt, hoe het in elkaar steekt is het eenvoudig om een koophuis/saveplek te verplaatsen of zelfs een nieuwe toe te voegen.

Ik zal voor de linkview apartments aangeven hoe de verschillende dingen eruit zien ( je moet deze met "find" wel terug kunnen vinden in je eigen source.

In het eerste stuk van MAIN worden de icoontjes geplaatst:

0518: $28E = create_available_asset_pickup "LNKV_L" at $249 $24A $24B price $28D;; Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Links View Apartment for $~1~
0570: $28C = create_asset_radar_marker_with_icon  25 at $249 $24A $24B
0164: disable_marker $28C

Dit is de code van de thread die kijkt of je in het icoontje staat:

:Label00CE01
03A4: name_thread "LNKVBY"

:Label00CE0B
0001: wait $DEFAULT_WAIT_TIME ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££Label00CE58
00D6: if  0
0038:   $ONMISSION ==  0;; integer values
004D: jump_if_false ££Label00CE58
00D6: if  0
03EE:   player $PLAYER_CHAR controllable
004D: jump_if_false ££Label00CE58
00D6: if  0
0214:   pickup $28E picked_up
004D: jump_if_false ££Label00CE58
0417: start_mission  45
004E: end_thread

:Label00CE58
0002: jump ££Label00CE0B

De thread wordt direkt na het opstarten vanuit MAIN gestart met:

004F: create_thread ££Label00CE01

Zoals je kunt zien wordt vanuit de bovenstaande thread missie 45 gestart,

die de koop afhandeld. Hij laat onder anderen een paar plaatjes zien, en activeerd de garage.

;-------------Mission 45---------------
; Originally: (no description)


:Label0BEB8B
03A4: name_thread "LNKVBUY"
0004: $ONMISSION =  1;; integer values
0001: wait  0 ms
0164: disable_marker $28C
030C: set_mission_points +=  1
0169: set_fade_color  0  0  1
016A: fade  0 ()  500 ms
01B4: set_player $PLAYER_CHAR frozen_state  0 (frozen)
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to  1 (true)
03F4:  0 (clear) cars_can_be_damaged

:Label0BEBCA
00D6: if  0
016B:   fading
004D: jump_if_false £Label0BEC13
0001: wait  0 ms
00D6: if  0
8256:   NOT   player $PLAYER_CHAR defined
004D: jump_if_false £Label0BEC0C
0570: $28C = create_asset_radar_marker_with_icon  19 at $249 $24A $24B
018B: show_on_radar $28C  2
004F: create_thread ££Label0115EE 
004E: end_thread

:Label0BEC0C
0002: jump £Label0BEBCA

:Label0BEC13
0570: $28C = create_asset_radar_marker_with_icon  19 at $249 $24A $24B
018B: show_on_radar $28C  2
004F: create_thread ££Label0115EE 
0395: clear_area  1 at  306.5728  376.2928 range  12.1856  1.0
0055: put_player $PLAYER_CHAR at  306.5728  376.2928  12.1856
0171: set_player $PLAYER_CHAR z_angle_to  276.3156
02A3: toggle_widescreen  1 (on)
0169: set_fade_color  0  0  1
016A: fade  1 (back)  500 ms
015F: set_camera_position  241.4097  420.0691  10.388  0.0  0.0  0.0
0160: point_camera  242.141  419.4232  10.6071  2

:Label0BECAE
00D6: if  0
016B:   fading
004D: jump_if_false £Label0BECD8
0001: wait  0 ms
00D6: if  0
8256:   NOT   player $PLAYER_CHAR defined
004D: jump_if_false £Label0BECD1
004E: end_thread

:Label0BECD1
0002: jump £Label0BECAE

:Label0BECD8
0004: $707 =  1;; integer values
0004: $518 =  1;; integer values
01E3: text_1number_styled "LNKVBUY" $28D  5000 ms  6;; Links View Apartment purchased: $~1~
0529: add $28D to_money_spent_on_property_stats
0542: add_property  9 to_property_own_stats
0394: play_music  1
043C: unknown_set_game_sounds  0
0001: wait  2000 ms
00BC: text_highpriority "BUYSAVE"  3000 ms  1;; ~g~You can now save your game here when not on a mission.
0001: wait  3000 ms
015F: set_camera_position  313.6496  390.976  14.5314  0.0  0.0  0.0
0160: point_camera  313.0024  391.738  14.5534  2
00BC: text_highpriority "BUYGARG"  3000 ms  1;; ~g~You can also store vehicles in this garage.
02FA: garage $28F change_to_type  26
0001: wait  3000 ms
0169: set_fade_color  0  0  1
016A: fade  0 ()  500 ms

:Label0BED7F
00D6: if  0
016B:   fading
004D: jump_if_false £Label0BEDAD
0001: wait  0 ms
00D6: if  0
8256:   NOT   player $PLAYER_CHAR defined
004D: jump_if_false £Label0BEDA6
043C: unknown_set_game_sounds  1
004E: end_thread

:Label0BEDA6
0002: jump £Label0BED7F

:Label0BEDAD
0373: set_camera_directly_behind_player
02EB: restore_camera_with_jumpcut
01B4: set_player $PLAYER_CHAR frozen_state  1 (unfrozen)
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to  0 (false)
03F4:  1 (set) cars_can_be_damaged
02A3: toggle_widescreen  0 (off)
0169: set_fade_color  0  0  1
016A: fade  1 (back)  500 ms
0050: gosub ££Label0128AA
043C: unknown_set_game_sounds  1
0004: $ONMISSION =  0;; integer values
00D8: mission_cleanup
004E: end_thread
0051: return

Een van de dingen die hierin gedaan wordt, is het starten van de thread die het saven van je spel bij dit nieuwe huis afhandeld:

:Label0115EE
03A4: name_thread "SAVE2"

:Label0115F8
0001: wait  250 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££Label011719
00D6: if  0
0121:   player $PLAYER_CHAR in_zone "BEACH3"
004D: jump_if_false ££Label011719
00D6: if  0
03EE:   player $PLAYER_CHAR controllable
004D: jump_if_false ££Label011719
00D6: if  0
0038:   $ONMISSION ==  0;; integer values
004D: jump_if_false ££Label0116FB
00D6: if  0
0038:   $16 ==  0;; integer values
004D: jump_if_false ££Label011672
0213: $28E = create_pickup #PICKUPSAVE type  3 at $249 $24A $24B
0004: $16 =  1;; integer values

:Label011672
00D6: if  0
0214:   pickup $28E picked_up
004D: jump_if_false ££Label0116F4
0050: gosub ££Label012D4C
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££Label0116ED
0215: destroy_pickup $28E
0213: $28E = create_pickup #PICKUPSAVE type  3 at $249 $24A $24B
016A: fade  1 (back)  1000 ms
0395: clear_area  1 at  306.5728  376.2928 range  12.1856  1.0
0055: put_player $PLAYER_CHAR at  306.5728  376.2928  12.1856
0171: set_player $PLAYER_CHAR z_angle_to  276.3156

:Label0116ED
0050: gosub ££Label012DA8

:Label0116F4
0002: jump ££Label011719

:Label0116FB
00D6: if  0
0038:   $16 ==  1;; integer values
004D: jump_if_false ££Label011719
0215: destroy_pickup $28E
0004: $16 =  0;; integer values

:Label011719
0002: jump ££Label0115F8

Veel plezier bij het uitzoeken hoe het werkt...

Link to comment
Delen op andere websites

  • 2 years later...

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...