Bierbuikje Geplaatst: 28 december 2008 Rapport Geplaatst: 28 december 2008 (bewerkt) Goedemidag, ik heb een probleempje met scm modding m.b.v. cleo en ik kom er maar niet uit. Ik probeerde een actor te spawnen aan de hand van de tutorial van Dutchy3010 en PatrickW, maar het lukt niet, want mijn san andreas crasht wanneer ik hem opstart. Ik heb cleo goed geïnstalleerd, want ik kan de 'gravity gun' mod ook al spelen. Als iemand begrijpt wat ik fout heb gedaan in de volgende code ben ik hem of haar zeer dankbaar. {$CLEO .CS} // Load models 0247: load_model #BFYST 038B: load_requested_models :MODEL_LOAD 00D6: if 8248: not model #BFYST available 004D: jump_if_false @MODEL_SPAWN 0001: wait 0 ms 0002: jump @MODEL_LOAD :MODEL_SPAWN 10@ = Actor.Create(CIVFEMALE, #BFYST, 0.0, 0.0, 0.0) //Hier komt wat je met je actor wilt doen 0249: release_model #BFYST Alvast bedankt, BB Bewerkt: 28 december 2008 door Bierbuikje Reageren
Dutchy3010 Geplaatst: 28 december 2008 Rapport Geplaatst: 28 december 2008 Je bent "0A93: end_custom_thread" onderaan vergeten. Reageren
Bierbuikje Geplaatst: 28 december 2008 Auteur Rapport Geplaatst: 28 december 2008 Wat houd dat in? En misschien is dat handig om aan jullie tutorial toe te voegen, het stond er namelijk niet bij voor zover ik me kan herinneren. Bedankt dutchy. Reageren
.:TOM:. Geplaatst: 28 december 2008 Rapport Geplaatst: 28 december 2008 (bewerkt) Dat je je thread beëindigt (geen idee of dat juist geschreven is). In cleo is dat: "0A93: end_custom_thread" En als je gewoon script zonder cleo: "004E: end_thread" PS: Mij is altijd geleerd een wait te zetten voor een if. Tom Bewerkt: 28 december 2008 door .:TOM:. Reageren
Bierbuikje Geplaatst: 28 december 2008 Auteur Rapport Geplaatst: 28 december 2008 (bewerkt) Dus je moet altijd en achter alles "0A93: end_custom_thread" zetten? Oja, mijn oefening werkt. Bedankt voor de hulp. Nu door naar onderdeel wapens. Ik maak haar lekker dodelijk. Bewerkt: 28 december 2008 door Bierbuikje Reageren
.:TOM:. Geplaatst: 28 december 2008 Rapport Geplaatst: 28 december 2008 (bewerkt) Ja, als je je script wilt beëindigen zet je dat erachter. Maar alleen bij cleo, bij gewoon mission scripten is het altijd: "004E: end_thread" Tom Bewerkt: 28 december 2008 door .:TOM:. Reageren
PatrickW Geplaatst: 28 december 2008 Rapport Geplaatst: 28 december 2008 PS: Mij is altijd geleerd een wait te zetten voor een if. Op zich kan dat geen kwaad, maar het levert wel heel erg veel wait's op. Probleem daarvan is, dat als je een stabiel script wilt maken, je eigenlijk na elke wait weer moet checken of je player nog "defined" is, voor je iets met de $PLAYER_ACTOR of $PLAYER_CHAR mag doen. Een betere richtlijn is dan ook: Binnen iedere "lus" moet minstens 1 wait staan. Met een wait geef je namelijk de game-engine de tijd om andere dingen te doen, en onderbreek je dus even de scm processing ( zelfs als het een "wait 0 ms" is). Reageren
Dutchy3010 Geplaatst: 29 december 2008 Rapport Geplaatst: 29 december 2008 Wat houd dat in? En misschien is dat handig om aan jullie tutorial toe te voegen, het stond er namelijk niet bij voor zover ik me kan herinneren. Nee, want het zijn SCM tutorials, geen CLEO tutorials. Ik raad je aan om eerst de basis van het SCM'en te leren, anders komt er van mooie mods ook niets terecht. Iemand die kan SCM'en kan ook CLEO scripten (andersom is trouwens niet altijd het geval). Maar je moet meer kunnen dan een actor spawnen, wil je goede mod maken. Daarom raad ik je aan om deze tutorial goed door te lezen: daarin staan bijvoorbeeld de structuren die je moet gebruiken bij missies. Succes. Reageren
Bierbuikje Geplaatst: 29 december 2008 Auteur Rapport Geplaatst: 29 december 2008 Nu wil ik graag dat dat vrouwtje die ik heb gespawnd telkens herspawnt. Nu valt ze daar neer met een minigun en als ik haar aanval probeert ze me te vermoorden, op het moment dat ik haar heb vermoord ligt ze daar non-stop, al vlieg ik eerst een rondje om las venturas heen en kom dan weer terug, ze ligt daar heerlijk te zonnen. Hoe kan ik ervoor zorgen dat ze respawnt? Als ik onder het script "return" zet dan gebeurt er niets en als ik neerzet "jump @Bierbuikje" (eerste label) gebeurt er ook niets. Alvast bedankt! Reageren
Dutchy3010 Geplaatst: 29 december 2008 Rapport Geplaatst: 29 december 2008 Het gaat toch om deze code?: {$CLEO .CS} // Load models 0247: load_model #BFYST 038B: load_requested_models :MODEL_LOAD 00D6: if 8248: not model #BFYST available 004D: jump_if_false @MODEL_SPAWN 0001: wait 0 ms 0002: jump @MODEL_LOAD :MODEL_SPAWN 10@ = Actor.Create(CIVFEMALE, #BFYST, 0.0, 0.0, 0.0) //Hier komt wat je met je actor wilt doen 0249: release_model #BFYST Hoe kom je dan op @Bierbuikje en op return zonder eerst een gosub? Ik zou je graag willen helpen hoor, maar dan moet je wel de code geven die jij gebruikt en niet zomaar een willekeurige code. Reageren
Bierbuikje Geplaatst: 29 december 2008 Auteur Rapport Geplaatst: 29 december 2008 Dit is de code waar ik op dit moment mee bezig ben: // This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .CS} //-------------MAIN--------------- Model.Load(#VWFYWAI) Model.Load(#MINIGUN) 038B: load_requested_models :Bierbuikje if or not Model.Available(#VWFYWAI) not Model.Available(#MINIGUN) else_jump @Bierbuikje2 wait 0 jump @Bierbuikje :Bierbuikje2 10@ = Actor.Create(CivFemale, #VWFYWAI, 2490.563, -1688.95, 13.51973) 01B2: give_actor 10@ weapon 38 ammo 30000 // Load the weapon model before using this 01B9: set_actor 10@ armed_weapon_to 38 05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR Actor.WeaponAccuracy(10@) = 90 Actor.Health(10@) = 2000 0350: set_actor 10@ maintain_position_when_attacked 1 Model.Destroy(#VWFYWAI) 0A93: end_custom_thread Reageren
Dutchy3010 Geplaatst: 29 december 2008 Rapport Geplaatst: 29 december 2008 Kijk das wel zo makkelijk, he // This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .CS} //-------------MAIN--------------- :Bierbuikje Model.Load(#VWFYWAI) Model.Load(#MINIGUN) 038B: load_requested_models :Bierbuikje1 if or not Model.Available(#VWFYWAI) not Model.Available(#MINIGUN) else_jump @Bierbuikje2 wait 0 jump @Bierbuikje1 :Bierbuikje2 10@ = Actor.Create(CivFemale, #VWFYWAI, 2490.563, -1688.95, 13.51973) 01B2: give_actor 10@ weapon 38 ammo 30000 // Load the weapon model before using this 01B9: set_actor 10@ armed_weapon_to 38 05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR Actor.WeaponAccuracy(10@) = 90 Actor.Health(10@) = 2000 0350: set_actor 10@ maintain_position_when_attacked 1 Model.Destroy(#VWFYWAI) Model.Destroy(#MINIGUN)) repeat wait 100 until 0118: actor 10@ dead wait 5000 009B: destroy_actor 10@ jump @bierbuikje 0A93: end_custom_thread Probeer dit eens... Nu heb ik een repeat-wait-until ingebouwd die kijkt of een actor dood is, zo ja, dan wacht hij 5 seconden. Daarna wordt die actor verwijderd, en begint hij opnieuw helemaal bovenaan. Heb de namen van de labels iets aangepast, zodat het nog op volgorde loopt (en niet 3-1-2 of zo). Probeer dit maar eens, denk dat het wel werkt. Reageren
Bierbuikje Geplaatst: 29 december 2008 Auteur Rapport Geplaatst: 29 december 2008 (bewerkt) Ik krijg de foutmelding: Compiled file has no header, so the model name #MINIGUN) can not be used. Use number ID instead. En als ik #MINIGUN verander in het id (362) dan krijg ik: Niet genoeg parameters gezet. verwachte 1 params. Ik zie net dat hij "#MINIGUN)" bedoelt, maar als ik dat haakje weghaal dan krijg ik: A jump to zero offset found. ----------------- Ik ben erachter gekomen dat het met de "jump @Bierbuikje" te maken heeft, maar als ik die regel weghaal dan start hij niet opnieuw, maar dan geeft hij geen foutmelding. Als ik de regel laat staan wel. Maar dan gaat hij toch niet respawnen? Bewerkt: 29 december 2008 door Bierbuikje Reageren
Bierbuikje Geplaatst: 30 december 2008 Auteur Rapport Geplaatst: 30 december 2008 Ik gebruik nu een andere code die wel werkt na wat gesjoemel met labels. // This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .CS} //-------------MAIN--------------- :Bierbuikje Model.Load(#VWFYWAI) Model.Load(#MINIGUN) 038B: load_requested_models jump @Bierbuikje1 :Bierbuikjeeenhalf Model.Load(#VWFYWAI) Model.Load(#MINIGUN) 038B: load_requested_models jump @Bierbuikje1 :Bierbuikje1 if or not Model.Available(#VWFYWAI) not Model.Available(#MINIGUN) else_jump @Bierbuikje2 wait 0 jump @Bierbuikje1 :Bierbuikje2 10@ = Actor.Create(CivFemale, #VWFYWAI, 2490.563, -1688.95, 13.51973) 01B2: give_actor 10@ weapon 38 ammo 30000 // Load the weapon model before using this 01B9: set_actor 10@ armed_weapon_to 38 05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR Actor.WeaponAccuracy(10@) = 90 Actor.Health(10@) = 2000 0350: set_actor 10@ maintain_position_when_attacked 1 Model.Destroy(#VWFYWAI) Model.Destroy(#MINIGUN) repeat wait 100 until 0118: actor 10@ dead wait 5000 009B: destroy_actor 10@ jump @Bierbuikjeeenhalf 0A93: end_custom_thread Nu respwant hij gelijk als je hem hebt neergeschoten en dan probeert de actor jou te vermoorden, onmogelijk om eraan te ontkomen, want ik heb het al 30x geprobeert, maar heb haar nooit meer dan 2x achterelkaar aan doodgeschoten. Daarna schoot zij telkens mij dood. Reageren
Dutchy3010 Geplaatst: 30 december 2008 Rapport Geplaatst: 30 december 2008 Lijkt me sterk, er zitten altijd 5 seconden tussen. Wanneer je het een halve minuut ofzo wilt laten zijn, hoef je alleen die wait van 5000 te verhogen naar een leuk getal. Wat je ook kunt doen, is kijken of je ver genoeg uit de buurt bent voor je haar weer spawnt. Dan moet je een lus maken waarin je controleert hoe ver de Player van de Actor is, met behulp van de volgende opcode: 0104: actor $PLAYER_ACTOR near_actor 1@ radius 15.0 15.0 15.0 sphere 0 Die 15.0 staan voor x-y-z coördinaten. De sphere 0 zegt dat hij geen sphere eromheen wilt trekken, dat zou ik als ik jou was ook niet gewilt hebben: dat ziet er niet uit. 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.