Flotje Geplaatst: 23 juli 2006 Rapport Geplaatst: 23 juli 2006 (bewerkt) K'heb even niks te doen, dus hier komt een tutorial. Ik begin met wat uitleg, eigenlijk het thread in woorden. De race komt er als volgt uit te zien: Er is een marker, en als je erin stapt, dan verschijnt er een auto. Ook komt er 1 checkpoint, en je zorgt voor een timer. De timer start wanneer je door de eerste checkpoint gaat. Dan verschijnt de tweede, en dus als je zou willen meer. Na de tweede krijg je geld en eindigt de missie. Ik heb nog even geen tijd om opcodes te vermelden, dat komt later. :Start 03BC:0@ = create_sphere x y z 1.0;; Je maakt een marker. jump to missioncheck :missioncheck wait 50 ms;; dit is namelijk een loop if 0 onmission == 0;; een dubbele is omdat het een check is of je missie status gelijk is aan 0 jf onmission if 0 00F6: player $PLAYER_CHAR 0 ()near_point_on_foot x y z radius 1.0 1.0 1.0 jf missioncheck jump startrace :onmission 03BD: destroy_sphere 0@ :still wait 0 ms;; weer een loop if 0 onmission == 1 jf start;; Dat is de eerste, waar de marker gemaakt word jump still Dit is mijn standaart missie begin. Het zorgt dat de marker verdwijnt als je aan een missie bent, en weer verschijnt waneer je niet meer aan een missie bent. :startrace wait 10 ms;; voor het geval hij niet direkt laad is dit ook een loop request model cheetah;; Dat is de raceauto :loaded wait 10 ms if 0 NOT #cheetah loaded jf startrace :missionbuild fade 100 ms remove marker mission start mission attemts+= 1 onmission = 1 create text "The Race" 5000 ms;; Hier moet je even het missie lettertype vinden $car = Create #cheetah at X, Y, Z;; Dit moet dus een stukje naast jouw zijn... set car $car z-angel to Z;; De richting van de eerste checkpoint - Soms moet je zorgen dat de deuren niet op slot zijn - $check1 = Create checkpoint at X, Y, Z wait 5000 ms;; Onthoud: We zitten nog in het laadscherm fade (1) back 100 ms Hier heb je eigenlijk de missie opgebouwd: Vanaf nu begint de race. :checkpoint wait 0 ms if 0 NOT player_char near_point_in_car $car X, Y, Z jf second gosub checker;; Voor een wasted/busted/car check gebruik ik altijd een gosub , dat bespaard je labels jump checkpoint :checker wait 0 ms if 1;; 2 functies NOT wasted/busted;; Dat is 1 opcode NOT car $car destroyed jf failed return :second remove marker $CHECK1 $CHECK2= create marker at X, Y, Z :secondR wait 0 ms if 0 NOT player_char near_point_in_car $car X, Y, Z jf completed gosub checker jump secondR :failed remove marker $check1 remove marker $check2 onmission = 0 jump start :completed clear wanted level money += X;; hoeveel je zelf wilt remove marker $check2 end_thread Als je nu een race wil maken met verschillende checkpoints die je op een willekeurige volgorde kan pakken, gaat het behoorlijk anders. Je moet het zo zien: Er komt een loop die checkt of je bij een van de punten bent. Stel voor dat je bij zo'n punt bent, dan blijft erlangs loopen. Je moet dus zorgen dat hij als je een checkpoint pakt dat label niet meer leest. Dat doe je met een ''schakelaar''. Die schakelaar is een integer value, die op 0 staat als je de checkpoint nog moet pakken, en naar 1 verspringt als je hemt hebt. alles tot de missieopbouw klopt nog, dus vanaf :missionbuild fade 100 ms remove marker mission start mission attemts+= 1 onmission = 1 create text "The Race" 5000 ms;; Hier moet je even het missie lettertype vinden $car = Create #cheetah at X, Y, Z;; Dit moet dus een stukje naast jouw zijn... set car $car z-angel to Z;; De richting van de eerste checkpoint - Soms moet je zorgen dat de deuren niet op slot zijn - $marker1 = Create checkpoint at X, Y, Z $marker2 = Create checkpoint at X, Y, Z wait 5000 ms;; Onthoud: We zitten nog in het laadscherm fade (1) back 100 ms :integers $check1 = 0;; De schakelaar van checkpoint 1 $check2 = 0;; De schakelaar van checkpoint 2 $checktotal = 0;; Alle checkpoints samen :check1 wait 0 ms if 0 $check1 = 0;; Die moet nul zijn, anders mag hij dit label niet lezen. jf checker if 0 player_char near_point_in_car $car X, Y, Z jfchecker $check1 += 1;; De schakelaar is omgezet, dus dit label word hierna niet meer gelezen $checktotal += 1 remove marker $marker1 jump checker :checker wait 0 ms if 0 NOT $checktotal == 2 jf complete if 1 wasted/busted car $car destroyed jf failed jump check2 :check2 wait 0 ms if 0 $check2 = 0;; Die moet nul zijn, anders mag hij dit label niet lezen. jf check1 if 0 player_char near_point_in_car $car X, Y, Z jf check1 $check2 += 1;; De schakelaar is omgezet, dus dit label word hierna niet meer gelezen $checktotal += 1 remove marker $marker2 jump check1 De completed en failed blijven ook hezelfde Bewerkt: 30 juli 2006 door Flotje Reageren
Blastov Geplaatst: 23 juli 2006 Rapport Geplaatst: 23 juli 2006 Dit is zeker geen slechte tutorial flotje. Toch zal ik als ik jouw was een inleiding maken met wat basis informatie over het programma en hoe je het gebruikt, hoeft niet lang te zijn maar gewoon een beetje simpele uitleg. Als je niks van het programma afweet zul je waarschijnlijk ook niks van je tut snappen. Daarnasst vermeld je niet voor welke gta het is (ik gok op vc). Reageren
Flotje Geplaatst: 24 juli 2006 Auteur Rapport Geplaatst: 24 juli 2006 Ok, het is voor Vc Verder ga ik nog een tutorial hierbij voegen, over hoe je een race maakt met verschillende punten die je in willekeurige volgorde mag pakken, en een tut over hoe je eventueel een race auto krijgt die tegen jouw rijd. Je moet wel weten dat ik dat nog nooit gedaan heb, dus ik verzeker niks. Verder kan ik ook nog niet verzekeren of deze tut klopt, 'thuis' (gescheiden ouders) heb ik de race zelf, dus dan moet ik ze ff vergelijken;) Reageren
Wauzie Geplaatst: 24 juli 2006 Rapport Geplaatst: 24 juli 2006 Dit is zeker geen slechte tutorial flotje.Toch zal ik als ik jouw was een inleiding maken met wat basis informatie over het programma en hoe je het gebruikt, hoeft niet lang te zijn maar gewoon een beetje simpele uitleg. Als je niks van het programma afweet zul je waarschijnlijk ook niks van je tut snappen. Daarnasst vermeld je niet voor welke gta het is (ik gok op vc). Een tut als deze is ook niet bedoelt voor mensen die nog nooit scm gedaan hebben, maar meer voor mensen die de scm al een beetje leren kennen. Reageren
Jorge_F Geplaatst: 24 juli 2006 Rapport Geplaatst: 24 juli 2006 Ik heb even je quote tags veranderd in de 'code' tags zodat je wel vakjes krijgt, ff wat overzichtelijker . Mooie tutorial trouwens . Reageren
Flotje Geplaatst: 24 juli 2006 Auteur Rapport Geplaatst: 24 juli 2006 Goed, dan ga ik als ik weer 'thuis' ben opcodes toevoegen, en controleren of alles klopt. Ik hoop dat 'ie in de Masted Tutorial list komt!!! Ik ga nog wel meer tut's schrijven... Reageren
Flotje Geplaatst: 24 juli 2006 Auteur Rapport Geplaatst: 24 juli 2006 (bewerkt) Ok, om mensen ongeveer te laten zien hoe je mods maakt, ga ik een mod schrijven, die ik nog niet eerder heb gemaakt, dus ik bedoel eigenlijk een tut. Het gaat over mijn magic mod: Allereerst, mana. Wat ik wil is dat je een mana level hebt, een maximum mana level, en dat als je mana onder het maximum komt, dat hij dan elke 10 seconden met 2 toeneemt. Ik begin met de twee integer values: :mana $maxman = 25 $curman = 25 :usage wait 10 ms if 0 $maxman > curman;; Dit wil zeggen, je mana is lager dan het maximum jf usage :add wait 5000 ms $curman += 1 if 0 $curman >= $maxman jf add $curman = $maxman;; Om te zorgen dat je mana niet boven het maximum uitkomt jump usage Zo, er is nu een nieuwe eenheid: De mana. Ik moet nog iemand vinden die er een balkje bij maakt, althans, ik weet hoe je een balkje maakt, maar iemand die zorgt dat de maximale groote van het balkje 25 is, en de minmale 0. Nu zal ik een "zweefspreuk maken" Wat ik nodig heb is: Eerst moet gecheckt worden of het mana groter is dan 0. Dan moet er constant gecheckt worden of de mana niet onder de nul uitkomt, en als alles goed is, moet je bij een bepaalde knop kunnen zweven (. :zweven wait 0 ms;; Als het hoger dan nul is, is er kans dat de knop niet reageert! if 0 $curman >= 0 jf zweven if 0 key_pressed $key;; Hier moet je zelf een knop voor vinden. Als ik meer spreuken heb voeg ik een 'boekje' toe jf zweven 16@ = 0;; Dit om te zorgen dat je wel constant zweeft, maar dat de mana elke seconde 1 minder word :zweven2 wait 0 ms create coordinate from player 0@ 1@ 2@ ofset 0 0 2;; De derde is de hoogte put player_char at 0@ 1@ 2@ :check wait 0 ms if 0 NOT 0 >= $curman jf zweven if 0 NOT wasted/busted jf zweven if 0 16@ >= 1000 jf zweven2 16@ = 0;; Dit om te zorgen dat je wel constant zweeft, maar dat de mana elke seconde 1 minder word $curman += -1 jump zweven2 Volgens mij werkt dit gewoon... Ik verheug me op het resultaat Ok, na het controleren heb ik dus alweer een fout ontdekt... In feite zou je nu steeds hoger vliegen in plaats van te zweven, dus moet ik een zorgen dat hij niet steeds een coordinaat hoger gaat, maar op dat coordinaat blijft, door middel van een schakelaartje! :zweven wait 0 ms;; Als het hoger dan nul is, is er kans dat de knop niet reageert! if 0 $curman >= 0 jf zweven if 0 key_pressed $key;; Hier moet je zelf een knop voor vinden. Als ik meer spreuken heb voeg ik een 'boekje' toe jf zweven 16@ = 0;; Dit om te zorgen dat je wel constant zweeft, maar dat de mana elke seconde 1 minder word $la = 0;; dit is het schakelaartje :zweven2 wait 0 ms if 0 $la = 0 jf floater create coordinate from player 0@ 1@ 2@ ofset 0 0 2;; De derde is de hoogte put player_char at 0@ 1@ 2@ $la += 1;; Het schakelaartje is omgezet:) jump check :floater wait 0 ms create coordinate from player 0@ 1@ 2@ ofset 0 0 0;; Dit moet je doen om vallen te voorkomen! put player_char at 0@ 1@ 2@ jump check :check wait 0 ms if 0 NOT 0 >= $curman jf zweven if 0 NOT wasted/busted jf zweven if 0 16@ >= 1000 jf zweven2 16@ = 0;; Dit om te zorgen dat je wel constant zweeft, maar dat de mana elke seconde 1 minder word $curman += -1 jump zweven2 Bewerkt: 24 juli 2006 door Flotje Reageren
GTA Fanaat Geplaatst: 25 juli 2006 Rapport Geplaatst: 25 juli 2006 Goede Tutorial Flotje! KUTGW Reageren
Flotje Geplaatst: 25 juli 2006 Auteur Rapport Geplaatst: 25 juli 2006 Wat bedoel je met 'kutgw' ?? Reageren
mickey Geplaatst: 25 juli 2006 Rapport Geplaatst: 25 juli 2006 KUTGW - Keep Up The Good Work (Gaat zo voort!) Mooie Tutorial Flotje.Ik wacht met smart op de volgende tutorial(s). Greets, Mickey Reageren
Flotje Geplaatst: 25 juli 2006 Auteur Rapport Geplaatst: 25 juli 2006 (bewerkt) Ok, hier komt dan maar mijn volgende. Weer ga ik gewoon een mod die ik al in gedachten heb, maar nog niet heb uitgewerkt, hier schrijven. Ik heb toch niks beters te doen Hoe het eruit komt te zien: Het word mijn 'Human bowling' mod. Je staat op een landingsbaan, die voor het gemak naar het noorden gericht is. Voor je komen 10 mensen te staan. Je moet gas geven tot een bepaalde lijn, en dan moet je zonder meer gas te geven zo veel mogelijk mensen raken. De auto kies je zelf. Wat we nodig hebben: In feite rijd je met je auto in een marker, dan word je auto met jouw erin geteleporteerd naar de plek, en in de goede positie gebracht. De lijn maak ik als volgt: Ik neem de noordergraad (hoe ver hij naar het noorden moet) van de lijn, en de breedegraad van jouw auto, oftewel, het maakt niet uit hoeveel je slingert, als je maar geen gas meer geeft na die lijn. we beginnen weer met het standaart begin van een missie: :Start $marker = create marker at X, Y, Z;; Je maakt een marker. jump to missioncheck :missioncheck wait 50 ms;; dit is namelijk een loop if 0 onmission == 0;; een dubbele is omdat het een check is of je missie status gelijk is aan 0 jf onmission if 0 player_char near_point_in_car X, Y, Z;; nu moet je dus wel in een auto zijn ! jf missioncheck jump startrace :onmission remove $marker :still wait 0 ms;; weer een loop if 0 onmission == 1 jf start;; Dat is de eerste, waar de marker gemaakt word jump still Nu begint de missie: :start onmission = 1 fade mission attemts += 1 freeze player;; Dit klopt niet, maar je moet inelkgevaal de speler bevriesen, om problemen te voorkomen 4@ = player_car put verickle 4@ at X, Y, Z Set 4@ z_angel to Z Store 4@ coordinates to 0@ 1@ 2@ 3@ = $line;; floatingpoint $line is dus de lijn die je moet passeren Create character at ...;; Van deze lijn klopt niks, het gaat ff om het idee dat je poppetjes als bowlingkegels neerzet create text "The Race" 5000 ms;; Dit moet dus zo'n missie text zijn wait 5000 ms unfreeze player fade 1(back) $killtotal = 0 - eigenlijk moet je nog wat missie uitleg toevoegen, maar dat doe ik pas als de missie werkt;) :lol wait 0 ms if 0 NOT player_char near_point_in_car $car 3@ 1@ 2@;; Zie de vorige label, dit is 'DE lijn' jf key gosub check jump lol :check wait 0 ms if 1 NOT wasted/busted NOT car $car destroyer jf failed return :key wait 0 ms if 0 key pressed $gas_key;; Dus de knop waarbij je gas geeft jf dead check jump failed;; Je mag geen gas geven! :deadcheck wait 0 ms gosub check if 0 hier komt dus een regel die checkt of de bowlingkegels dood zijn jf key hier moet je dus voor elke dode kegel 1 optellen bij $kill total jump key Failed en completed heb ik geen zin in Nou, ik hoop dat er misschien al iemand komt die mijn ideeen gaat verfijnen, anders doe ik het zelf over een week Bewerkt: 25 juli 2006 door Flotje Reageren
gybrus Geplaatst: 25 juli 2006 Rapport Geplaatst: 25 juli 2006 heel mooi flotje heel mooi die bowling code heeft geloof ik een paar kleine foutjes. * weet niet of dit belangerijk is maar toch al je wordt gespawnd dan krijg je eerst de angel(draaiing) en dan pas de positie. dat moet geloof ik anders om... je zweef tread heb ik niet totaal doorgelezen maar dat zal wel goed zijn. in iedergeval een heel erg leuk idee. je mana streep vindt ik ook leuk bedacht. knap werk flotje ik geef ze 8ten greets PS: verbeter me als ik iets fout heb gezegt. Reageren
Flotje Geplaatst: 26 juli 2006 Auteur Rapport Geplaatst: 26 juli 2006 Je kan gelijk hebben, want ik geloof dat als je teleporteerd dat je hoek dan naar 0 gaat... Waarschijnlijk zijn er meer fouten, de meeste threads zijn pas goed na een uur uittesten + bugs verwijderen... Deze zijn niet zo heel lang, dus zal wel korter duren, alleen je moet zo vaak je computer opnieuw opstarten... 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.