.:TOM:. Geplaatst: 29 oktober 2007 Rapport Geplaatst: 29 oktober 2007 Ik wou dus iets zoals de stinger drop mod maken maar dan met mijnen dus maakte ik deze code, hij werkt niet goed ingame wat is er mis mee of welke fouten zie je ? // 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 SANNY BUILDER 3.01 DEFINE OBJECT MINE // Object number -1 DEFINE MISSIONS 0 DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script DEFINE UNKNOWN_EMPTY_SEGMENT 0 DEFINE UNKNOWN_THREADS_MEMORY 0 {$VERSION 3.1.0023} //-------------MAIN--------------- thread 'MAIN' 01F0: set_max_wanted_level_to 6 042C: set_total_missions_to 1 030D: set_max_progress 1 set_wb_check_to 0 00C0: set_current_time_hours_to 8 minutes_to 0 04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84 Camera.SetAtPos(2488.56, -1666.84, 13.38) $PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1666.84, 13.38) $PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR) Camera.SetBehindPlayer set_weather 0 wait 0 0180: set_on_mission_flag_to $ON_MISSION // Note: your missions have to use the variable defined here 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 :MAIN_287 Model.Load(#MINE) 038B: load_requested_models :MAIN_293 if Model.Load(#MINE) else_jump @MAIN_343 wait 0 jump @MAIN_293 :MAIN_343 if Actor.Driving($PLAYER_ACTOR) else_jump @MAIN_343 Actor.StorePos($PLAYER_ACTOR, $X, $Y2, $Z) $Z += 0.1 wait 0 00E1: player 0 pressed_key 8 $MINE = Object.Create(#MINE, $X, $Y, $Z) 071F: set_object 1@($MINE,5i) health_to 1 Object.CollisionDetection($MINE) = True Object.StorePos($MINE, $X2, $Y2, $Z2) jump @MAIN_448 :MAIN_448 wait 0 84DA: not has_object $MINE collided else_jump @MAIN_448 0948: create_explosion_at $X2 $Y2 $Z2 type 11 camera_shake 1.0 0948: create_explosion_at $X2 $Y2 $Z2 type 11 camera_shake 1.0 0948: create_explosion_at $X2 $Y2 $Z2 type 11 camera_shake 1.0 Object.Destroy($MINE) 0249: release_model #MINE jump @MAIN_287 Tom Reageren
PatrickW Geplaatst: 30 oktober 2007 Rapport Geplaatst: 30 oktober 2007 Een melding " hij doet het niet" is wel erg magertjes. Als je iets meer beschrijving geeft van wat er wel of niet gebeurd ingame, dan kunnen anderen gerichter zoeken naar het probleem. Maar goed, alvast een paar opmerkingen van dingen die ik sowieso al fout zie: In deze lus, ontbreekt een "wait": :MAIN_343 if Actor.Driving($PLAYER_ACTOR) else_jump @MAIN_343 Dit is een conditionele opcode, en moet dus in een IF constructie ofzo gebruikt worden: 00E1: player 0 pressed_key 8 Er moet nog het nodige aan de structuur van het programma gewijzigd worden, maar het lijkt me in ieder geval handig dat je de positie van de speler pas opvraagt op het moment dat je op de knop drukt en niet ruim ervoor, zodra je ziet dat de speler in een auto zit. Wat is het idee erachter om de mine te spawnen op 10 cm boven de huidige player positie ? Dat is ongeveer in het lichaam van de speler en dus in de auto waarin je rijdt. Deze regel is tamelijk overbodig: Object.StorePos($MINE, $X2, $Y2, $Z2) Wat de waarden die in $X2,$Y2 en $Z2 zullen komen, zullen gelijk zijn aan $X, $Y en $Z, want daar heb je die mine net gespawned. Als je aan het eind toch terug springt naar het begin, dan is het onzin om eerst het model te releasen, en vervolgens het direct weer te laden. Je kunt dus beter de release weglaten, en dan daaronder een jump doen naar MAIN_343. Als algemene opmerking zou ik je willen aanraden, om dit soort dingen niet in 1 keer helemaal uit te programmeren, maar klein te beginnen. B.V. eerst een mod, waarbij je de mine op een vast plek legt, en er dan met je auto er tegenaan rijden, om te kijken of hij ontploft. Op moment dat je dat hebt, kun je gaan uitbreiden. Stap voor stap. Op die manier kun je ook makkelijker bepalen waar de fout zit, als het niet meer werkt. Want het zit dan waarschijnlijk in het stukje wat je als laatste hebt toegevoegd. Reageren
.:TOM:. Geplaatst: 30 oktober 2007 Auteur Rapport Geplaatst: 30 oktober 2007 (bewerkt) Bedankt voor de tips ! toch nog een wait vergeten dan ? En voor "hij doet het niet" --> schermpie blijft gewoon zwart bij new game. Tevens heb ik geen code boxje gebruikt omdat je daar geen kleur in kan gebruiken, misschien nog handig om te fixen ? Tom Nu twijfel ik over iets in het begin van men code bij define objects moet het dan niet 1 zijn ? // 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 SANNY BUILDER 3.01 DEFINE OBJECT MINE // Object number -1 DEFINE MISSIONS 0 DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script DEFINE UNKNOWN_EMPTY_SEGMENT 0 DEFINE UNKNOWN_THREADS_MEMORY 0 {$VERSION 3.1.0023} //-------------MAIN--------------- thread 'MAIN' 01F0: set_max_wanted_level_to 6 042C: set_total_missions_to 1 030D: set_max_progress 1 set_wb_check_to 0 00C0: set_current_time_hours_to 8 minutes_to 0 04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84 Camera.SetAtPos(2488.56, -1666.84, 13.38) $PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1666.84, 13.38) $PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR) Camera.SetBehindPlayer set_weather 0 wait 0 0180: set_on_mission_flag_to $ON_MISSION // Note: your missions have to use the variable defined here 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 :MAIN_287 Model.Load(#MINE) 038B: load_requested_models :MAIN_293 if Model.Load(#MINE) else_jump @MAIN_319 wait 0 jump @MAIN_293 :MAIN_319 0001: wait 0 ms if Actor.Driving($PLAYER_ACTOR) else_jump @MAIN_319 :MAIN_359 wait 0 if 00E1: player 0 pressed_key 8 // Nu komt alles erna jf @MAIN_359 Actor.StorePos($PLAYER_ACTOR, $X, $Y2, $Z) $Z += 1.0 // Nu is het onder de auto $MINE = Object.Create(#MINE, $X, $Y, $Z) 071F: set_object 1@($MINE,5i) health_to 1 Object.CollisionDetection($MINE) = True jump @MAIN_424 :MAIN_424 wait 0 84DA: not has_object $MINE collided else_jump @MAIN_424 0948: create_explosion_at $X $Y $Z type 11 camera_shake 1.0 // Geen X2 Y2 Z2 0948: create_explosion_at $X $Y $Z type 11 camera_shake 1.0 0948: create_explosion_at $X $Y $Z type 11 camera_shake 1.0 Object.Destroy($MINE) // release model is weg jump @MAIN_287 Bewerkt: 30 oktober 2007 door .:TOM:. Reageren
PatrickW Geplaatst: 30 oktober 2007 Rapport Geplaatst: 30 oktober 2007 Bedankt voor de tips ! toch nog een wait vergeten dan ?En voor "hij doet het niet" --> schermpie blijft gewoon zwart bij new game. Dat verwachtte ik al, toen ik de code zag , maar het was ook meer als algemene opmerking bedoeld. Hoe nauwkeuriger je het probleem omschrijft hoe beter je kunt worden geholpen. Nu twijfel ik over iets in het begin van men code bij define objects moet het dan niet 1 zijn ? Als dat niet zou kloppen, dan klaagt sannybuilder wel bij het compileren Reageren
.:TOM:. Geplaatst: 30 oktober 2007 Auteur Rapport Geplaatst: 30 oktober 2007 Daarjuist crashte hij maar deed niks, heb nu iets aan de code veranderd maar nu werkt hij niet meer Ik plaats de code hier als iemand ze wil gebruiken of afwerken doe maar, geef me wel een seintje als ij werkt. Tom // 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 SANNY BUILDER 3.01 DEFINE OBJECT MINE // Object number -1 DEFINE MISSIONS 0 DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script DEFINE UNKNOWN_EMPTY_SEGMENT 0 DEFINE UNKNOWN_THREADS_MEMORY 0 {$VERSION 3.1.0023} //-------------MAIN--------------- thread 'MAIN' 01F0: set_max_wanted_level_to 6 042C: set_total_missions_to 1 030D: set_max_progress 1 set_wb_check_to 0 00C0: set_current_time_hours_to 8 minutes_to 0 04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84 Camera.SetAtPos(2488.56, -1666.84, 13.38) $PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1666.84, 13.38) $PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR) Camera.SetBehindPlayer set_weather 0 wait 0 0180: set_on_mission_flag_to $ON_MISSION // Note: your missions have to use the variable defined here 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 :MAIN_287 Model.Load(#MINE) 038B: load_requested_models :MAIN_293 if Model.Load(#MINE) jf @MAIN_293 wait 0 jump @MAIN_319 :MAIN_319 0001: wait 0 ms if and Actor.Driving($PLAYER_ACTOR) 00E1: player 0 pressed_key 8 else_jump @MAIN_319 :MAIN_359 0001: wait 0 ms Actor.StorePos($PLAYER_ACTOR, $X, $Y2, $Z) $Z += 1.0 $MINE = Object.Create(#MINE, $X, $Y, $Z) 071F: set_object 1@($MINE,5i) health_to 1 Object.CollisionDetection($MINE) = True jump @MAIN_424 :MAIN_424 wait 0 84DA: not has_object $MINE collided else_jump @MAIN_424 0948: create_explosion_at $X $Y $Z type 11 camera_shake 1.0 0948: create_explosion_at $X $Y $Z type 11 camera_shake 1.0 0948: create_explosion_at $X $Y $Z type 11 camera_shake 1.0 Object.Destroy($MINE) jump @MAIN_287 Reageren
PatrickW Geplaatst: 30 oktober 2007 Rapport Geplaatst: 30 oktober 2007 Begrijp ik het goed dat je hiermee niet meer verder gaat ? In dat geval wil ik wel een poging wagen op basis van mijn stringer-drop mod een versie te maken : Reageren
.:TOM:. Geplaatst: 30 oktober 2007 Auteur Rapport Geplaatst: 30 oktober 2007 Ik m'n code gebaseerd op die van jou Als je wil mag je, zelfs graag ! Dus doe maar, en zeg me erna wat er fout was, kan ik nog iets bijleren. Tom Reageren
PatrickW Geplaatst: 30 oktober 2007 Rapport Geplaatst: 30 oktober 2007 mmmmh.. dan heb je wss de code niet helemaal goed begrepen. Kijk eens hier voor een tamelijk diepgaande uitleg van de code. Hieronder volgt de SCM code, die ik in elkaar heb gedraaid op basis van de SA versie van mijn "stinger drop"-mod. Ik heb op het moment even geen mogelijkheid om het te testen, maar het zou gewoon moeten werken . DEFINE OBJECTS 1 DEFINE OBJECT (noname) DEFINE MISSIONS 0 //DEFINE MISSION {ID} 0 AT {LABEL} @ DEFINE EXTERNAL_SCRIPTS -1 // 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.0.0000} thread 'MAIN' var $PLAYER_CHAR: Player end // var 01F0: set_max_wanted_level_to 6 set_wb_check_to 0 00C0: set_current_time 8 0 04E4: unknown_refresh_game_renderer_at 2488.5601 -1666.84 Camera.SetAtPos(2488.5601, -1666.84, 13.38) $PLAYER_CHAR = Player.Create(#NULL, 2488.5601, -1666.84, 13.38) $PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR) 07AF: $PLAYER_GROUP = player $PLAYER_CHAR group Camera.SetBehindPlayer set_weather 0 wait 0 ms $PLAYER_CHAR.SetClothes("PLAYER_FACE", "HEAD", Head) $PLAYER_CHAR.SetClothes("JEANSDENIM", "JEANS", Legs) $PLAYER_CHAR.SetClothes("SNEAKERBINCBLK", "SNEAKER", Shoes) $PLAYER_CHAR.SetClothes("VEST", "VEST", Torso) $PLAYER_CHAR.Build $PLAYER_CHAR.CanMove = True fade 1 (out) 0 ms select_interior 0 0629: change_stat 181 (islands unlocked) to 4 016C: restart_if_wasted at 2027.77 -1420.52 15.99 angle 137.0 for_town_number 0 016D: restart_if_busted at 1550.68 -1675.49 14.51 angle 90.0 for_town_number 0 0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here ($ONMISSION) 03E6: remove_text_box // put your create_thread commands here 004F: create thread @Mine_sniff_thread :end_loop wait 100 jump @end_loop end_thread // put your mods (threads) here :Mine_thread 03A4: name thread "MINE" 0247: request_model #MINE 038B: load_requested_models 0004: 32@ = 0 029B: 7@ = init_object #MINE at 0@ 1@ 2@ 01C7: remove_object_from_mission_cleanup_list 7@ 0007: 4@ = 0@ 000F: 4@ -= 2.0 0007: 8@ = 0@ 000B: 8@ += 2.0 0007: 5@ = 1@ 000F: 5@ -= 2.0 0007: 9@ = 1@ 000B: 9@ += 2.0 :Mine_loop 0001: wait 250 ms 0007: 6@ = -1 053E: 6@ = get_random_car_with_actors -1 in_area 4@ 5@ 8@ 9@ 00D6: if 0 8039: NOT 6@ == -1// integer values 004D: jump_if_false @Mine_timer // create explosions, explode car and create fire 0948: create_explosion_at 0@ 1@ 2@ type 11 camera_shake 1.0 wait 500 ms 08CB: explode_car 6@ shake 1 effect 1 sound 1 02CF: 10@ = create_fire_at 0@ 1@ 2@ propagation 3 size 2 wait 500 ms 0948: create_explosion_at 0@ 1@ 2@ type 11 camera_shake 1.0 :Mine_timer 00D6: if 0 0019: 32@ > 10000 004D: jump_if_false @Mine_loop 0249: release_model #MINE 0108: destroy object 7@ 004E: end_thread :Mine_sniff_thread 03A4: name thread "MI_SNIF" :Mine_sniff_loop 0001: wait 100 ms 00D6: if 0 0256: player $PLAYER_CHAR defined 004D: jump_if_false @Mine_sniff_loop 00D6: if 1 00E1: key pressed 0 17 00DF: actor $PLAYER_ACTOR driving 004D: jump_if_false @Mine_sniff_loop 03C0: 10@ = actor $PLAYER_ACTOR car 0407: create coordinate 0@ 1@ 2@ from car 10@ offset 0.0 -2.5 1.0 02CE: 2@ = ground z 0@ 1@ 2@ 000B: 2@ += 0.1 004F: create thread @Mine_thread 0@ 1@ 2@ 0001: wait 500 ms 0002: jump @Mine_sniff_loop //-------------Mission 0--------------- // put your missions here //-------------External script 0--------------- // put your external scripts here Reageren
.:TOM:. Geplaatst: 30 oktober 2007 Auteur Rapport Geplaatst: 30 oktober 2007 Werkt perfect alleen zit er een timer op ? Kan die weg of crash hij dan als je er teveel maakt ? Tom PS: Aangezien men muis 3/4 van de tijd niet werkt heb ik ook de knop veranderd. Reageren
PatrickW Geplaatst: 30 oktober 2007 Rapport Geplaatst: 30 oktober 2007 Werkt perfect alleen zit er een timer op ? Kan die weg of crash hij dan als je er teveel maakt ?Tom PS: Aangezien men muis 3/4 van de tijd niet werkt heb ik ook de knop veranderd. Er zit inderdaad met opzet een timer op, omdat je anders uit het maximum aantal threads gaat lopen. Je moet bij een mod namelijk wel zorgen dat je alles op een of andere manier na een tijd weer opruimt. 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.