Bradley H. Geplaatst: 16 november 2005 Rapport Geplaatst: 16 november 2005 Ik wil me nu ook gaan verdiepen in SCM, angezien modellen me soms even te veel word. Om te beginnen heb ik een SCM nodig die helemaal leeg is. Als 2e, de moeilijke vraag, Hoe laad ik een zelfgemaakt model met de SCM, bijvoorbeeld dat hij er alleen tussen 9 en 15 uur staat. Reageren
Wauzie Geplaatst: 17 november 2005 Rapport Geplaatst: 17 november 2005 Ok bradley, dan ga ik jouw dat eens uitleggen . Dit is een lege main.scm: DEFINE VERSION SA 0.33 0002: jump ££Second_Segment DEFINE MEMORY 43800 ; Equals Mission Builder type global variable range $2 to $10949 :Second_Segment 0002: jump ££Third_Segment DEFINE OBJECTS 1 DEFINE OBJECT BLAAT ; This is an unused object. You can put anything here. :Third_Segment 0002: jump ££Fourth_Segment DEFINE MISSIONS 0 :Fourth_Segment 0002: jump ££Fifth_Segment DEFINE EXTERNAL_SCRIPTS 0 :Fifth_Segment 0002: jump ££Sixth_Segment DEFINE UNKNOWN_FIFTH_SEGMENT DEFINE UNKNOWN1 0 :Sixth_Segment 0002: jump ££MAIN_1 DEFINE UNKNOWN_SIXTH_SEGMENT DEFINE UNKNOWN3 574 ;-------------MAIN--------------- :MAIN_1 03A4: name_thread 'MAIN' 016A: fade 0 () 0 ms 042C: set_total_missions_to 0 030D: set_total_mission_points_to 0 01F0: set_max_wanted_level_to 0 0111: set_wasted_busted_check_to 0 (disabled) 00C0: set_current_time 12 0 04E4: unknown_refresh_game_renderer_at 2488.562 -1666.864 03CB: set_camera 2488.562 -1666.864 13.3757 062A: change_stat 165 (energy) to 800.0 ; float 062A: change_stat 23 (muscle) to 50.0 ; float 062A: change_stat 21 (fat) to 200.0 ; float 062A: change_stat 160 (driving skill) to 0.0 ; float 0629: change_stat 181 (islands unlocked) to 0 ; integer see statdisp.dat 0629: change_stat 68 () to 0 ; integer see statdisp.dat 0053: $PLAYER_CHAR = create_player #NULL at 0.0 0.0 12.0 07AF: $PLAYER_GROUP = player $PLAYER_CHAR group 01F5: $PLAYER_ACTOR = create_emulated_actor_from_player $PLAYER_CHAR 0373: set_camera_directly_behind_player 0173: set_actor $PLAYER_ACTOR z_angle_to 0.0 01B6: set_weather 1 087B: set_player $PLAYER_CHAR clothes "VEST" "VEST" 0 087B: set_player $PLAYER_CHAR clothes "JEANSDENIM" "JEANS" 2 087B: set_player $PLAYER_CHAR clothes "SNEAKERBINCBLK" "SNEAKER" 3 087B: set_player $PLAYER_CHAR clothes "PLAYER_FACE" "HEAD" 1 070D: $PLAYER_CHAR 04BB: select_interior 0 ;; select render area 01B4: set_player $PLAYER_CHAR frozen_state 1 (unfrozen) 01B7: release_weather 016C: restart_if_wasted at 0.0 0.0 12.0 angle 0.0 unknown 0 :MAIN_31 0001: wait 0 ms 00D6: if 0 0256: player $PLAYER_CHAR defined 004D: jump_if_false ££MAIN_31 016A: fade 1 (back) 1000 ms 0001: wait 100 ms 03E6: remove_text_box :MAIN_68 0001: wait 2500 ms 0002: jump ££MAIN_68 Het makkelijkste is om te beginnen met wagens / wapens / bribes / pickups plaatsen. Je kan hiervoor bijv een thread aanmaken. Zet tussen de Label :Main_31 en :Main_68 een nieuwe label. Begin makkelijk: :MAIN_Bradley 014B: $PARKED_RHINO = init_parked_car_generator #RHINO -1 -1 0 alarm 0 door_lock 0 0 10000 at 2435.302 -1671.848 12.8007 angle 90.0 014C: set_parked_car_generator $PARKED_RHINO cars_to_generate_to 101 In de eerste regel zie je $PARKED_RHINO staan, dit is de variable voor de spawncode. Deze mag dus niet gelijk zijn aan een andere variable. Let op dat je het $ teken ervoor hebt staan. #RHINO geeft aan welke wagen er komt te staan, in dit geval de tank, de rhino. Maar let op...sommige wagens heten anders dan ingame. De greenwood heet bijvoorbeeld Greenwoo. -1 -1 0 geeft aan hoe vaak de wagen er staat, dit kan je zo laten. alarm 0 = alarm in procenten door_lock 0 = lock in procenten 2435.302 -1671.848 12.8007 = XYZ coördinaat angle 90.0 = draaihoek in graden In de 2e regel moet de variable hetzelfde zijn als in de eerste regel. 101 kun je op 101 laten staan. Nu een simpel wapen: Deze regel lijkt me duidelijk, de variable en de wapennaam moeten worden ingevuld. ammo 60 = ammo 2021.879 1001.467 10.3203 = XYZ coördinaat 032B: $Variable = create_weapon_pickup #M4 15 ammo 60 at 2021.879 1001.467 10.3203 Nog wat leuke dingen: 0213: $3296 = create_pickup #FLOWERA type 15 at 1472.08 1890.09 10.81 0213: $3297 = create_pickup #BODYARMOUR type 15 at 2097.0 2154.0 14.0 0213: $3345 = create_pickup #BRIBE type 15 at 2743.0 1316.0 8.0 0213: $135 = create_pickup #HEALTH type 3 at 2158.82 -2232.747 13.59 Druk op F7 en het zou moeten werken. Reageren
JGuntherS Geplaatst: 18 november 2005 Rapport Geplaatst: 18 november 2005 (bewerkt) 0213: $3296 = create_pickup #FLOWERA type 15 at 1472.08 1890.09 10.810213: $3297 = create_pickup #BODYARMOUR type 15 at 2097.0 2154.0 14.0 0213: $3345 = create_pickup #BRIBE type 15 at 2743.0 1316.0 8.0 0213: $135 = create_pickup #HEALTH type 3 at 2158.82 -2232.747 13.59 Dit zal niet helemaal werken aangezien HEALTH en BRIBE niet gedefinieerd zijn. Ze moeten bij de DEFINE OBJECTS staan: DEFINE OBJECTS 7 DEFINE OBJECT BLAAT DEFINE OBJECT BRIBE DEFINE OBJECT HEALTH DEFINE OBJECT INFO DEFINE OBJECT BRIEFCASE DEFINE OBJECT ADRENALINE DEFINE OBJECT PICKUPSAVE Bewerkt: 18 november 2005 door JGuntherS Reageren
Bradley H. Geplaatst: 18 november 2005 Auteur Rapport Geplaatst: 18 november 2005 Bedankt jongens, ik heb vandaag wat zitten knutselen in de SCM, en ik zit met een heel vaag probleem, waardoor ik niet meer door kan. Allereerst de code :Mission1 02A8: $Marker1 = create marker 10 at 0.0 5.0 15 03BC: $Marker3 = create_sphere 0.0 5.0 15 1.0 0247: request model #MALE01 0247: request model #NRG500 038B: load requested models :Mission2 0001: wait 500 ms 00D6: if 0 00EC: actor $PLAYER_ACTOR 0 ()near_point 0.0 5.0 radius 2.0 2.0 004D: jump_if_false ££Mission2 016A: fade 0 (in) 1500 ms 0001: wait 1500 ms 009A: $Homie = create_actor 4 #MALE01 at 0.0 0.0 15.0 0001: wait 1500 ms 016A: fade 1 (back) 1500 ms Wat de bedoeling is dat je in de sphere gaat staan en dat er 1 male01 gespawnt wordt, maar ingame spawnt hij er 2 Reageren
JGuntherS Geplaatst: 18 november 2005 Rapport Geplaatst: 18 november 2005 Dat probleem heb ik ook gehad (alleen ik kreeg er 20 ), je gebruikt de verkeerde lay-out (tenminste als je het echt als missie gebruikt en niet als thread). :MISSIE 0050: gosub £MISSIE_CODE 00D6: if 0 0112: wasted_or_busted 004D: jump_if_false £MISSIE_KLAAR 0050: gosub £MISSIE_FAIL :MISSIE_KLAAR 0050: gosub £MISSIE_OPRUIMEN 004E: end_thread :MISSIE_CODE ; de eigenlijke missie :MISSIE_FAIL ; tekstje met Mission Failed & andere dingen 0051: return :MISSIE_OPRUIMEN ; opruimdingen bij mission failed/passed, zoals markers uitschakelen enz. 00D8: mission_cleanup 0051: return Reageren
Bradley H. Geplaatst: 18 november 2005 Auteur Rapport Geplaatst: 18 november 2005 Dit is wat nu nu heb, ik kan dit nog niet echt een missie noemen, uiteraard wil ik het wel berijken . Hoe zou jij die code maken dan. Btw is Gosub een soort van jump if false ?, 004D: jump_if_false £MISSIE_KLAAR 0050: gosub £MISSIE_FAIL Reageren
JGuntherS Geplaatst: 18 november 2005 Rapport Geplaatst: 18 november 2005 (bewerkt) Bij een gosub gaat het script verder totdat er een return komt en springt dan weer terug tot de regel na de gosub Voorbeeld: :LBL1 0004: $var1 = 3 0005: $fvar1 = 8.0 0050: gosub ££LBL2 0004: $var2 = 6 :LBL2 0004: $lbl2var1 = 4 0051: return De code wordt zo uitgevoerd: 0004: $var1 = 3 0005: $fvar1 = 8.0 0004: $lbl2var1 = 4 0004: $var2 = 6 BTW, die volgorde bij die missies is een beetje vaag, maar het werkt! EDIT om antwoord te geven op je vraag, ik zou het zo doen: :MISSIE 0050: gosub £MISSIE_CODE 00D6: if 0 0112: wasted_or_busted 004D: jump_if_false £MISSIE_KLAAR 0050: gosub £MISSIE_FAIL :MISSIE_KLAAR 0050: gosub £MISSIE_OPRUIMEN 004E: end_thread :MISSIE_CODE 0247: request model #MALE01 0247: request model #NRG500 038B: load requested models :MISSIE_LAAD 00D6: if 21 8248: NOT model #MALE01 available 8248: NOT model #NRG500 available 004D: jump_if_false £MISSIE_LAAD2 0001: wait 0 ms 0002: jump £MISSIE_LAAD :MISSIE_LAAD2 02A8: $Marker1 = create marker 10 at 0.0 5.0 15 03BC: $Marker3 = create_sphere 0.0 5.0 15 1.0 :Mission2 0001: wait 0 ms 00D6: if 0 00FF: actor $PLAYER_ACTOR 0 ()near_point_on_foot 0.0 5.0 15.0 radius 1.5 1.5 2.0;; in deze regel moet je nog even een z-coordinaat invoeren 004D: jump_if_false £Mission2 016A: fade 0 () 1500 ms 009A: $Homie = create_actor 4 #MALE01 at 0.0 0.0 15.0 0001: wait 1500 ms 016A: fade 1 (back) 1500 ms :MISSIE_LOOP 0001: wait 0 ms 0002: jump £MISSIE_LOOP :MISSIE_FAIL 00BA: text_styled 'M_FAIL' 5000 ms 1 0051: return :MISSIE_OPRUIMEN 0164: disable_marker $Marker1 03BD: destroy_sphere $Marker3 01C2: remove_references_to_actor $Homie 0249: release_model #MALE01 0249: release_model #NRG500 00D8: mission_cleanup 0051: return En om jou maar even voor te zijn, twee pond-tekens (£) bij een jump betekent dat het een globale jump is, dus buiten een missie. In een missie gebruik je maar een pond-teken. Bewerkt: 18 november 2005 door JGuntherS 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.