ich hab mal ein tutorial erstellt, es geht um...
lest selbst:![]()
Note:<<<Tutorial Anfang>>>
Vorwort:
Was ist das für ein Tutorial?
Es soll ein tutorial werden, was die funktionsweise von menüs,ks,weltkarten,hp/mpanzeige,... erklärt, kein
script zum abschreiben: die meisten scripts sind so aufgebaut:
"Da wir dieses erreichen wollen, machen wir jetzt diesen Befehl, stellen da noch dieses und
jenes ein, nun muss logischerweise(?) noch dieser Befehl kommen und danach, wie man sich
denken kann(?), noch dieser Befehl. Zum Schluss müsst ihr noch diesen und jenen Befehl machen,
das ganze als paralell(auto start, call) event, mit diesem Switch als Startbedingung. Dann erstellt
noch massig Variablen, die wir später brauchen(?). Hier noch ein Codebeispiel:...
Dann liest man sich das durch, macht die Befehle, hat meistens keine Anhung warum, und wenn dann
am Ende auch noch Fehler drin sind, hat man meistens keine Ahnung mehr. Noch schlimer wird es, wenn
man sich nur das Codebeispiel anschaut...
Vielleicht werden manche jetzt denken, das abschreiben einfacher ist, aber:
1. wisst ihr am ende auch was ihr da fabriziert habt.
2. wenn ihr änderungen vornehmen wollt, ist das viel leichter.
3. bei irgendwelchen fehlern, kennt ihr euern code, und könnt das problem leichter beheben(überhaupt beheben)
4. es mehr spaß macht, auch mal selbst zu überlegen, statt nur abzuschreiben
Was muss ich dafür wissen?
Ihr solltet auf jedenfall mit den Grundlagen des makers vertraut sein und wissen, was variablen/switches sind.
Oder anders gesagt: Wenn ihr dieses Tutorial versteht, wisst ihr genug. Profis müssten das auch so können.
Ein bisschen Mathematik kann auch nicht schaden.
Wann geht es endlich los?
Jetzt!
----------------------------------------------------------------------
Als erstes ein paar Tipps:
Wenn ihr ein Paralleles Event macht(Common,Mappe), was sich ständig wiederholt, so setzt dahinter
ein wait 0,1-0,2.
0,0 sec wait = 1/6 von 0,1 wait, oder 1/60 sekunde. Denkt dran, wenn ihr eine feinerer Wartezeit braucht.
Zur Fehlerbehebung ist das Variablen/Switches Menü, welches sich mit F9 im Testplay aufrufen lässt, sehr
wichtig, ihr könnt dort z.B. prüfen, ob die Variablen überhaupt die richtigen Werte haben.
Oder macht an kritische Stellen im Code eine Message, um z.B. zu schauen, ob der code überhaupt
ausgeführt wird, am Ende, wenn es geht, die Messages wieder löschen.
----------------------------------------------------------------------
Teil I
Weltkarte
I.I: Der Maßstab und scheinbare Position
Zuerst braucht ihr ein Bild euer Weltkarte, verkleinert, höchstens 320x240 Pixel groß.
Dann müsst ihr es natürlich erstmal erscheinen lassen, und es muss immer wieder kommen,
wenn sich der Held bewegt(Tipp: Common Event, Move Picture).
So, dann natürlich noch die Berechnung. Bei der Berrechnung stecken folgende Gedanken dahinter:
Ihr habt eine verkleinerte Weltkarte, und eure richtige als Map. Dann soll ein Cursor auf der verkleinerten Map
dargestellt werden, der den Helden darstellt. Richtig? Wie lässt sich das anstellen? Hmm, der Held und der Cursor
ändern ihre Postition ja nicht richtig, auf dem Picture(verkleinerte Map) ist ja nur ein anderer MAßSTAB.
Maßstab ist das richtige Wort dafür. Jetzt stellt sich nur noch die Frage, wie man das mit dem Maker macht:
Ein Maßstab hat immer ein bestimmtes Verhältniss. Das bestimmt ihr jetzt für euere Map(1 Pixel gleich wieviel
Felder in "Wirklichkeit"). Und zwar für die x-und y-koordinate.(Tipp: x/y=z zum Bestimmen)
Die Tippformel enthält auch gleich die Formel, was man jetzt im Maker macht. Man teilt die Heldenposition
durch z(s.o.)
I.II: Die wirkliche Postion
Nun habt ihr die Position auf der Mappe. Jedoch kann die Karte(Picture) an irgendeiner Position sein(vorzugsweise
Mitte), dass muss mit einbezogen werden. und zwar so:
Wenn man die Weltkartekarte so anzeigt, dass sie linksoben ist, so dass die linke obere Ecke bei der Position 0,0 ist,
so muss nichts berechnet werden, da dann automatisch der Cursor richtig angezeigt wird. Wenn man die Karte jetzt
woanders anzeigen lässt, muss man den Abstand zwischen vorheriger x-und y position ermitteln. Die vorherige
Postion war ja die Hälfte der Größe des Bildes(x/2;y/2).
Nun braucht ihr die Koordinaten euer Bildes, wo ihr es anzeigen lasst, und überlegt, wieviel ihr dazuaddieren müsst
(die oben ermittelten Kordinaten), damit eure Koordinaten rauskommen. Die beiden ermittelten Werte müsst ihr
jetzt zu x,y position des Cursors(oben ermittelt)dazuaddieren.
Fertig! Bedenkt, dass die Karte nicht immer kommen darf.
Noch ein Wort zum Cursor:
Damit ihr nicht noch mehr Berechnungen anstellen müsst, macht die Mitte des Cursorbildes gleichzeitig
zur Anzeige. Ich habe meinen Cursor so gemacht(3x3 Pixel groß):
0|0
|||
0|0
0-transparente Farbe
|-Cursorfarbe(bei mir: rot)
Das wars zur Weltkarte. Der letzte Abschnitt mit dem dazuaddieren war der schwerste, wenn ihr den vertanden habt, könnt ihr stolz auf euch sein^^.
----------------------------------------------------------------------
Teil II
HP/MP Anzeige/Berrechnung
Zuerst braucht ihr Bilder mit den Zahlen von 0-9.(^^^^wenn geht, im Bereich von R^^^^)
Nun solltet ihr bedenken, dass die HP/MP sich ständig ändern können, so dass ihr auch immer die
Prüfung, Anzeige machen müsst. Falls es geht, könnt ihr es auch so machen, das es nur bei HP/MP
Veränderung aufgerufen wird.(Tipp: Common Event)
Nun hier wieder mal die Berrechnung:
II.I: Prozentberrechnung
(kann man machen, muss man nicht):
Eurer Held hat HP, von einer max. möglichen Anzahl. Nun wollt ihr die Prozent ermitteln.
Ihr errinert euch an Mathe und an die Formel: p=(W/G) *100(Prozentsatz=(Prozentwert/Grundwert)*100)
Nun macht ihr das mit dem Maker: (HP/max. HP) *100, und stellt fest, das es nicht funktioniert.
Versucht es ruhig mal, ihr werdet entweder 0% oder 100% rausbekommen. Da liegt daran, das der Maker
nicht mit Kommazahlen rechnen kann(gut, gut, ich habe ein Bruchrechnungsscript und ein Kommazahl
in Bruchumwandlungsscript(+noch mehr Sachen wie Primfaktorzerlegung, ggT, kgV), aber das funktioniert
letztendlich ja auch mit ganzen Zahlen, und ausserdem wäre der Aufwand zu groß, wenn ihr es so macht)
Also, was dann? Schaut euch nochmal die Formel an: p=(W/G)*100, oder eben auch so:
p=(W/G)*(100/1), das sind hier jetzt 2 Brüche, die multipliziert werden. Und wie multipliziert man
Brüche? Richtig! p=(W*100)/(G*1), tja und das ist das selbe wie (W*100)/G(habt ihr in Mathe schön
aufgepasst? Dann versteht ihr das auch.)
Das ist nun die Formel. Hier noch einmal die Zeichenerklärung: p=Ergebniss in %
W= momentane HP; G= maximale HP. So lasst ihr es berechnen.
Jetzt fehlt nur noch die Anzeige, und die kommt jetzt.
II.II: Zahlenanzeige und Mod
Ihr habt jetzt eueren Prozentwert oder eure HP/MP? Und wollt sie jetzt darstellen lassen?
Das geht so:
Zum ersten könntet ihr überprüfen lassen, ob die "Zahl zur Anzeige(ZuA)", ich nenn sie mal so,
0,1,2,3,4,5,6,7,8,9,10,11,12,13,...,100,...,500,...,999,...1200,...9999,... ist, und
dann immer das entsprechende Bild anzeigen lassen(ihr solltet eure Termine für die
nächsten 2-3 Jahre streichen). Wenn ihr dann damit frtig seid, verrat ich euch, wie ihr dass
in 10 Minuten hinkriegt^^.
*wait 3 Jahre*
Hier also die Beschreibung:
Man müsste die einzelnen Stellen extra anzeigen lassen. Doch wie bekomme ih diese Stellen?
Hierzu gibt es die Mod Funktion des Makers(statt +,*,-,/ bei variablenberrechnungen zu finden).
Dabei werden die Zahlen dividiert, und der Rest genommen.
Ich fang mal mit den Hundertern an:
Ihr habt eine Zahl mit Hunderterstelle. Nun wolt ihr alle Stellen davor weghaben. Also
Mod 1000, weil: Die Stellen davor sind 1000er o. 10.000er o. 100.000er, alles, was sic durch 1000 teilen lässt.
Wenn ihr nun Mod 1000 macht, wird die Zahl durch 1000 geteilt, und da alles davor Stellen sind, die sich
(ohne Rest) durch 1000 teilen lassen, bleiben sie weg, der Rest lässt sich nicht teilen(auch nicht 999/1000),
sodass sie übrig bleiben.
Nun habt ihr also die Stellen, und nun zur Darstellung:
Als erstes lasst ihr überprüfen, ob die ZuA >= 900 ist,dann 800, dann 700,...,0(Tipp: Else Case).
Dies sorgt dafür, das überprüft wird, ob die Hunderterstellen 9 sind, wenn nicht, ob sie 8 sind,...
(die Zehner und Einer können weggelassen werden, Richtig?)
Und dann jeweils das richtige Bild anzeigen lassen.
Die Zehner stellen genauso, nur nicht Mod 1000(sondern?sehr schwierig!) und die Forks müssen
dann ebenfalls nicht 900,800,... abfragen.(Tipp: ihr wollt nicht die 100er, sondern die 10er ermitteln,
alles andere(Mod,Forks) werden genauso reduziert wie die 100er zu 10ern,/)
Bei den Koordinaten müsst ein bisschen probieren, sollte nicht zu lange dauern, ihr solltet die Bilder
höchstens 20x20Pixlel groß machen(als Richtlinie)
Fertig!
Und vergesst nicht, das sie des öfteren wieder neu berrechnet werden müssen.
----------------------------------------------------------------------
Ich hör jetzt erstmal auf, wenn es euch gefällt, mach ich es weiter.
[Edit]Da es auf jeden Fall einem gefällt, mach ich weiter[Edit]
Note:<<<Tutorial Ende>>>
Ich finde, das man, wenn man die Funktionsweise versteht, gleich
viel besser scripten und fehler beheben kann.
Naja, wie gefällt es euch?