Donald F. Duck Geplaatst: 27 november 2007 Rapport Geplaatst: 27 november 2007 Waar moet je een tweede missie invoegen (voor de al gemaakte missie) dus in volgorde: Missie 2 Missie 1 Mijn script (zo kun je aangeven waar hij moet komen): $PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1666.84, 13.38) $PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR) 07AF: $PLAYER_GROUP = player $PLAYER_CHAR group Camera.SetBehindPlayer set_weather 0 wait 0 Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head) Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs) Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes) Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso) Player.Build($PLAYER_CHAR) Player.CanMove($PLAYER_CHAR) = True fade 1 0 select_interior 0 0629: change_integer_stat 181 to 4 016C: restart_if_wasted_at 2027.77 -1420.52 15.99 angle 137.0 town_number 0 016D: restart_if_busted_at 1550.68 -1675.49 14.51 angle 90.0 town_number 0 0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here $DEFAULT_WAIT_TIME = 250 03E6: remove_text_box create_thread @MODEL :MAIN_305 wait $DEFAULT_WAIT_TIME 00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes jump @MAIN_305 end_thread :MODEL thread 'MODEL' Model.Load(#GREENWOO) Model.Load(#BAT) Model.Load(#LAPD1) 038B: load_requested_models :MODEL_28 if or not Model.Available(#GREENWOO) not Model.Available(#BAT) not Model.Available(#LAPD1) else_jump @MODEL_65 wait 0 jump @MODEL_28 :MODEL_65 $ICON_SPHERE_CJ = Marker.CreateIconAndSphere(15, 2512.068, -1672.87, 13.38) :MODEL_87 wait 0 00EC: actor $PLAYER_ACTOR 0 near_point 2512.068 -1672.87 radius 1.0 1.0 else_jump @MODEL_87 Marker.Disable($ICON_SPHERE_CJ) 0674: set_car_model #GREENWOO numberplate "_GROVE_" $GREENWOOD = Car.Create(#GREENWOO, 2466.246, -1652.976, 13.4) Car.Angle($GREENWOOD) = 270.0 Car.Health($GREENWOOD) = 250 $1 = Marker.CreateAboveCar($GREENWOOD) 01B2: give_actor $PLAYER_ACTOR weapon 5 ammo 10 // Load the weapon model before using this 01B9: set_actor $PLAYER_ACTOR armed_weapon_to 5 :MODEL_209 wait 0 Actor.InCar($PLAYER_ACTOR, $GREENWOOD) else_jump @MODEL_209 Marker.Disable($1) $POLICE_X = 1535.874 $POLICE_Y = -1666.701 $POLICE_Z = 13.04 $POLICE = Marker.CreateIconAndSphere(0, $POLICE_X, $POLICE_Y, $POLICE_Z) :MODEL_279 wait 0 if Car.Wrecked($GREENWOOD) else_jump @MODEL_310 wait 0 jump @MODEL :MODEL_310 if 01AE: car $GREENWOOD sphere 0 near_point $POLICE_X $POLICE_Y radius 5.0 5.0 stopped Marker.Disable($POLICE) else_jump @MODEL_279 wait 0 10@ = Actor.Create(Cop, #LAPD1, 1542.645, -1673.012, 13.56) Actor.WeaponAccuracy(10@) = 75 Actor.Health(10@) = 100 01B2: give_actor 10@ weapon 5 ammo 1000 // Load the weapon model before using this 01B9: set_actor 10@ armed_weapon_to 5 05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR :MODEL_417 wait 0 Actor.Dead(10@) else_jump @MODEL_417 0394: play_music 1 01E3: show_text_1number_styled GXT 'M_PASS' number 150 time 5000 style 1 // MISSION PASSED!~n~~w~$~1~ Player.Money($PLAYER_CHAR) += 150 Model.Destroy(#GREENWOO) Model.Destroy(#BAT) Model.Destroy(#LAPD1) Marker.Disable($MARKER) end_thread Reageren
Black Force Geplaatst: 27 november 2007 Rapport Geplaatst: 27 november 2007 De missie die je als laatste wilt spelen, plaats je onderaan je script, helemaal onderaan dus. Als je ook nog een Startthread hebt gebruikt, dan moet je die 2 threath's onder elkaar zetten en de 2 missies onder elkaar. Denk er wel aan als je de missies 1 voor 1 wilt laten opkomen zeg maar, dat je dan een check loop moet maken om te checken wanneer missie 1 gehaald is, en dan thread 2 inschakelen. Greetz, Black Force Reageren
Dutchy3010 Geplaatst: 27 november 2007 Rapport Geplaatst: 27 november 2007 Ik raad je, als je meerdere missies wilt gaan maken, toch echt aan om de Rockstar Missiestructuur te gebruiken. Daar wordt alles al gecheckt, of je de missies al gehaald hebt enzo. Stukken makkelijker, al is het even pittige stof om doorheen te bijten, daarna is het én overzichtelijker én makkelijker. Reageren
Donald F. Duck Geplaatst: 27 november 2007 Auteur Rapport Geplaatst: 27 november 2007 (bewerkt) Ik snap die tutorial niet helemaal. Mijn vragen zijn: 1. Waar moet je beginnen met die sniffer thread? 2. Hoe en waar moet je de missies invoegen? Bewerkt: 27 november 2007 door Donald F. Duck Reageren
Dutchy3010 Geplaatst: 27 november 2007 Rapport Geplaatst: 27 november 2007 Alles bij elkaar kan iets er zo uitzien: // This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 04.08.2007 DEFINE OBJECTS 2 DEFINE OBJECT PICKUPSAVE DEFINE OBJECT SANNY BUILDER 3.01 DEFINE MISSIONS 3 DEFINE MISSION 0 AT @INITIAL DEFINE MISSION 1 AT @MISSION_1 DEFINE MISSION 2 AT @TUT_MISSION_2 DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script //DEFINE SCRIPT {NAME} AT {LABEL} @ DEFINE UNKNOWN_EMPTY_SEGMENT 0 DEFINE UNKNOWN_THREADS_MEMORY 0 {$VERSION 3.1.0023} var $PLAYER_CHAR: Player end // var 03A4: name_thread 'MAIN' //fade 0 0 01F0: set_max_wanted_level_to 6 0111: toggle_wasted_busted_check 0 00C0: set_current_time_hours_to 8 minutes_to 0 $x_player_spawn = 2514.1223 $y_player_spawn = -1680.303 $z_player_spawn = 13.4446 $rz_player_spawn = 76.9169 04E4: unknown_refresh_game_renderer_at $x_player_spawn $y_player_spawn 03CB: set_rendering_origin_at $x_player_spawn $y_player_spawn $z_player_spawn 0053: $PLAYER_CHAR = create_player #NULL at $x_player_spawn $y_player_spawn $z_player_spawn 07AF: $PLAYER_GROUP = player $PLAYER_CHAR group $PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR) Camera.SetBehindPlayer Actor.Angle($PLAYER_ACTOR) = $rz_player_spawn 01B6: set_weather 0 0001: wait 0 ms 01E8: create_forbidden_for_cars_cube_cornerA 3000 -2000 150.0 cornerB -3000 2000 0.0 Player.SetClothes($PLAYER_CHAR, "BBALLJACKRSTAR", "BBJACK", Torso) Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs) Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes) Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head) 070D: rebuild_player $PLAYER_CHAR 01B4: toggle_player $PLAYER_CHAR can_move 1 04BB: select_interior 0 062A: change_float_stat 165 to 999.0 // Energy 062A: change_float_stat 23 to 999.0 // muscle 062A: change_float_stat 21 to 0.0 // fat 062A: change_float_stat 22 to 999.0 //stamina 062A: change_float_stat 160 to 999.0 //driving skills 062A: change_float_stat 229 to 999.0 //bike skills 062A: change_float_stat 223 to 999.0 // flyinh skills 062A: change_float_stat 230 to 999.0 // cycling skills 0629: change_integer_stat 181 to 4 // city unlocked 0629: change_integer_stat 68 to 0 //respect 0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here 016C: restart_if_wasted_at $x_player_spawn $y_player_spawn $z_player_spawn angle $rz_player_spawn town_number 0 0004: $DEFAULT_WAIT_TIME = 250 03E6: remove_text_box 0417: start_mission 0 // Initial //0001: wait 2000 ms fade 0 0 09BA: show_entered_zone_name 0 wait 0 0169: set_fade_color_RGB 0 0 0 wait 2000 03B7: toggle_process_cut_scene_only 1 016A: fade 1 time 1000 // put your create_thread commands here 00D7: create_thread @TUT_MISSIONS_SNIFFER :MAIN_LOOP 0001: wait $DEFAULT_WAIT_TIME ms 00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes if and 00E1: player 0 pressed_key 8 00E1: player 0 pressed_key 9 jf @MAIN_LOOP 05C2: AS_actor $PLAYER_ACTOR show_the_finger 0002: jump @MAIN_LOOP // ========================================================== // ==================== THREADS ============================ // ========================================================== :TUT_MISSIONS_SNIFFER //--------------------------------------------------- // This thread is to create monitor and destroy the // mission starter marker for the tutorial missions //--------------------------------------------------- thread "TUT_SNIFF" $MARKER_SWEET_HOUSE = Marker.CreateIconAndSphere(42, $X_SWEET_HOUSE, $Y_SWEET_HOUSE, $Z_SWEET_HOUSE) repeat wait $DEFAULT_WAIT_TIME if and player.Defined($PLAYER_CHAR) $ONMISSION == 0 then if and 00FF: actor $PLAYER_ACTOR sphere 0 in_sphere $X_SWEET_HOUSE $Y_SWEET_HOUSE $Z_SWEET_HOUSE radius 1.0 1.0 2.0 on_foot Player.Controllable($PLAYER_CHAR) $TUT_MISSIONS_PASSED == 0 then $ONMISSION = 1 00BA: show_text_styled GXT 'INTRO_1' time 1000 style 2 // Martineza 1 start_mission 1 end if and 00FF: actor $PLAYER_ACTOR sphere 0 in_sphere $X_SWEET_HOUSE $Y_SWEET_HOUSE $Z_SWEET_HOUSE radius 1.0 1.0 2.0 on_foot Player.Controllable($PLAYER_CHAR) $TUT_MISSIONS_PASSED == 1 then $ONMISSION = 1 00BA: show_text_styled GXT 'INTRO_1' time 1000 style 2 // Martineza 1 start_mission 2 end end until $TUT_MISSIONS_PASSED == 2 marker.Disable($MARKER_SWEET_HOUSE) end_thread // ========================================================= // ============= MISSIONS ============================== // ========================================================= //-------------Mission 0--------------- :INITIAL $TUT_MISSIONS_PASSED = 0 $X_SWEET_HOUSE = 2512.8228 $Y_SWEET_HOUSE = -1673.5497 $Z_SWEET_HOUSE = 13.5111 end_thread //-------------Mission 1--------------- // Mission wrapper :MISSION_1 thread 'TUT 1' gosub @MISSION_1_MAIN if wasted_or_busted then gosub @MISSION_1_FAIL end gosub @MISSION_1_CLEANUP end_thread //------------------------------------- :MISSION_1_MAIN //HIER JE EERSTE MISSIE!!! //------------------------------------- :MISSION_1_PASSED Player.Money($PLAYER_CHAR) += 10000 $TUT_MISSIONS_PASSED += 1 01E3: show_text_1number_styled GXT 'M_PASS' number 10000 time 5000 style 1 // MISSION PASSED!~n~~w~$~1~ return //------------------------------------- :MISSION_1_FAIL 00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1 // ~r~MISSION FAILED! return //------------------------------------- :MISSION_1_CLEANUP $ONMISSION = 0 mission_cleanup return //-------------Mission 2--------------- // Mission wrapper :TUT_MISSION_2 thread 'TUT ' gosub @TUT_MISSION_2_MAIN if wasted_or_busted then gosub @TUT_MISSION_2_FAIL end gosub @TUT_MISSION_2_CLEANUP end_thread //------------------------------------- :TUT_MISSION_2_MAIN //HIER JE TWEEDE MISSIE! //------------------------------------- :TUT_MISSION_2_PASSED Player.Money($PLAYER_CHAR) += 10000 $TUT_MISSIONS_PASSED += 1 01E3: show_text_1number_styled GXT 'M_PASS' number 10000 time 5000 style 1 // MISSION PASSED!~n~~w~$~1~ return //------------------------------------- :TUT_MISSION_2_FAIL 00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1 // ~r~MISSION FAILED! return //------------------------------------- :TUT_MISSION_2_CLEANUP $ONMISSION = 0 mission_cleanup return Op de plek waar "//HIER JE EERSTE MISSIE!!!" en "//HIER JE TWEEDE MISSIE! " staat, moet jij dus jouw codes plaatsen. Als je wilt weten wat waar gebeurd, moet je de tutorial lezen. Succes ! Reageren
Donald F. Duck Geplaatst: 27 november 2007 Auteur Rapport Geplaatst: 27 november 2007 Ik kan het niet helemaal meer volgen... Kun je een hele .txt met alles erin maken? Reageren
.:TOM:. Geplaatst: 27 november 2007 Rapport Geplaatst: 27 november 2007 Hij bedoelt oops Wel dat op een bepaald stuk in die code die ze gepost heeft dat er door staat "//HIER JE EERSTE MISSIE!!!" en "//HIER JE TWEEDE MISSIE! " op die plaats moet jij jouw missie code plakken , dus zonder de DEFINES en Createplayer etc.. alleen jouw missie code.. Tom Reageren
Dutchy3010 Geplaatst: 27 november 2007 Rapport Geplaatst: 27 november 2007 Heb je je tweede missie al gemaakt? Zo ja, geef die code dan ook even. Zo nee, maak die dan eerst, op dezelfde manier als dat je de eerste missie gemaakt hebt. Als je de code voor de tweede missie gepost hebt, zal ik ze in de structuur zetten en dan wordt vanzelf duidelijk hoe het moet. Reageren
Donald F. Duck Geplaatst: 28 november 2007 Auteur Rapport Geplaatst: 28 november 2007 (bewerkt) Okee, maar het duurt wat langer, want ik ben mijn main.scm kwijt met de eerste missie... Maar ik zal nog eens goed zoeken. Edit: Hm... Ik kan hem niet vinden... En als ik die code in dat andere topic kopieer, klopt de missie niet helemaal... Bewerkt: 28 november 2007 door Donald F. Duck Reageren
Recommended Posts
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.