[Pokescript/XSE] Scripttutorial von pokemontutorialTV - Kompakt und ausführlich erklärt

    • [Pokescript/XSE] Scripttutorial von pokemontutorialTV - Kompakt und ausführlich erklärt

      Vorwort

      Einst bin ich berühmt durch meine Scripttutorials auf YouTube geworden. Mittlerweile bin ich an die 21 Jahre alt und wer weiß, wie lange ich noch aktuell dies brauchen werde. Jedenfalls ist für mich die Zeit gekommen, mein gesamtes Wissen bezüglich Scripting mit euch zu teilen. Der Entschluss viel mir nicht leicht, jedoch erachte ich es als sinnvoll - deshalb hier das Tutorial. Es ist sehr umfangreich - keine Frage - solltet ihr jedoch bis zum Ende alles verstanden haben, dann könnt ihr mit Pokescript sehr gut umgehen und XSE komplett verstehen.
      Hierbei sei natürlich gesagt, dass Aufgrund der Menge und der Komplexität der Scripts ich hier an der Stelle erstmal das Grundlegenste darstelle, bis wir hinüber zu den Fortgeschritteneren Dingen kommen, die für so manchen "Könner" vielleicht auch ganz interessant sein können. Vieles ist schon über den Bildschirm gelaufen, sei es von der Installation von Pokescript, einigen Levelscripts, bis hin zum Rivalenscript oder einigen Grundlegenden Neuerungen von A-Map 1.95, die ich euch jertzt auch hier präsentieren werde.
      Bitte habt Verständinis dafür, dass ich nicht das ganze Bildmaterial auf einmal hochladen oder den ganzen Text an einem Tag hierhin schreiben kann, das wäre einfach zu viel Arbeit. Daher werde ich den Startpost nach und nach überarbeiten.

      Advance Map 1.92 oder Advance Map 1.95?

      Das Programm, was uns neben [i]Pokescript
      viel begleiten wird, ist Advance Map.Dieses Programm hat mittlerweile eine ganze Bandbreite an Funktionen zum Editieren von Pokemonspielen. Die momentan häufigst genuntzen Versionen von Advance Map sind Version 1.92 und 1.95. Nun fragt ihr euch sicherlich, warum zwei Versionen von Advance Map (kurz: A-Map) so populär sind:
      Die Antwort ist einfach, sowie banal: Weil nicht beide Versionen denselben Inhalt haben. Viele der Funktionen der A-Map Version 1.92 sind in A-map 1.95 gar nicht mehr enthalten, was größtenteils an der Tatsache liegt,
      dass A-Map 1.95 in einer anderen IDE geschrieben worden ist. Welche Funktionen das sind, welche Vor- bzw. Nachteile die Jeweilige Version hat, erfahrt ihr hier:

      A-Map 1.92:Vorteile :thumbsup: :

      - Weltkarteneditor
      - etwas stabilierer Blockeditor (dazu bei entsprechendem Themenfeld mehr)
      - Tiles Einfügen Funktion Stabil
      - bessere Übersichtlichkeit
      - schnelleres Speichern im Blockeditor

      Nachteile :thumbdown: :

      - schlechte Aufnahme von levelscripts (teilweise stark verbuggt und nicht behebbare Spielschäden dadurch)
      - Bad-Movement Bug ( Movement [08] )
      - Tiles "verschwinden"
      - Manuelles Beheben des Kampfpyramide-Bugs; nach jeder größeren Änderung notwendig
      - Error-Nachrichten teils sehr unverständlich für den Leihen
      - Maps werden teilweise unbenutzbar und dann wieder benutzbar
      - teilweise hohe Ladezeiten
      - sehr kompliziertes Vorgehen beim herausfinden der SetMapfooter-Nummern
      - sehr kompliziertes Vorgehen bei den Anbindungen für den Leihen (dazu später eine einfach zu merkende Methode für 1.92)

      A-Map 1.95:

      Vorteile :thumbsup: :

      - kürzere Ladezeiten
      - kindereinfaches Vorgehen beim Herausfinden der Setmapfooter-Nummern
      - teils sehr vereinfachte Handhabung
      - Vorschau der Anbindungen
      - keinerlei Levelscriptprobleme
      - Bugfixes, die 1.92 nicht enthält
      - Tiles lösen sich nicht mehr in Luft auf
      - 32 MB Roms problemlos editierbar

      Nachteile :thumbdown: :

      - $FFFFFFF - Bug (teils sehr nervig, wenn man neue Tiles einfügt) -> dazu gibt es später eine Problembehandlung
      - teilweise werden "Intro-Offsets" für neue Map-Offests verwendet, was zwangsweise nicht gut gehen kann^^
      - DAN wird zwar angezeigt nach der Implimentierung, jedoch sieht man leider die Vorschau nicht
      - FSF sollte auf keinen Fall benutzt werden, da die Werte oft falsch umgewandelt werden
      - Neues Tileset einfügen, verursacht fast immer eine Fehlermeldung
      - kein Weltkarteneditor

      Anmerkung:
      Prinzipell ist es egal, ob ihr die ältere oder neuere Version von A-Mapbenutzt, wichtig ist, dass ihr mit der Version gut zurechtkommt und keinerlei Probleme habt bei der Bedienung, falls doch welche auftreten sollten - keine Sorge, alles wird im Tutorial nochmal erklärt. Diese Punkte sollen euch sozusagen nur als Hilfestellung dienen.

      Fallsich euer Meinung nach etwas wichtiges bei den Vor - bzw. Nachteilen vergessen haben sollte, könnt ihr mich gerne per PM hier auf RHR anschreiben :)

      Weiter im Text...
      Habt ihr euch nun für eine A-Map-Version entschieden, können wir nun mit der Installation von Pokescript und dem zugehörigen Programm, PkmAdv,beginnen. Zwar gibt es hier auch unzählige Tutorials, jedoch möchte ichauf diesen Punkt sehr detaliert eingehen, da viele bereits leider hier wieder mit dem Editieren von Pokémon aufhören, was wirklich schade ist, denn das Programm ist neben bekannten Script-Programmen wie XSE (EXtremScriptEditor) eine kleineWunderwaffe in Sachen Editieren von Pokémonspielen! Da es neben Pokescript auch noch mittlerweile als großes Scriptingprogramm XSE gibt, wird im Tutorial teilweise später auch dieses Programm verwendet. Scripts erstellen werde ich aber nicht mit XSE.
      Nebenbeigesagt, wurde diese Frage mir auf pokemontutorialTV tatsächlich mehr als 10.000 Mal gestellt und ich habe eine eigne txt.-datei als Antwortschreiben, falls es Probleme bei der Installation geben sollte, und das nur mal hier so am Rande erwähnt...
      Nun solltet ihr euch beide Programme zuerst auf den PC herunterladen.

      Installationsanleitung (Pokescript):

      1.) Die Datei befindet sich in einem Zip.-Verzeichnis, dieses lässt sich ganz einfach entpacken: Dazu gehen wir auf die Datei mit rechtem Mausklick auf die Datei, die ihr euch Heruntergeladen habt und danach auf "Alle Extrahieren" und dann "Extrahieren". Sollte diese Methode auf eurem Rechner nicht funktionieren, gibt es bekannte Programme wie WinRar oder 7Zip, mit denen ihr die Datei auch entpacken könnt, wobei 7Zips Grundfunktionen kostenlos sind.
      2.) Den entpackten Ordner Öffnen wir nun, darain befinden sich zwei Dateien, nämlich PkmAdv und PokeScript. Wir beginnen mit der Installation von Pokescript.
      3.)Zuerst wird ein Sprachdialog erscheinen, ihr könnt auch andere Sprachenauswählen, aber ich werde hier im Tutorial lediglich eine deutschsprachige Installationsanleitung geben.
      4.) Danach erscheint ein weiteres Installationsfenster, bei dem ihr nun auf "Weiter" drückt, danach kommt ein weiteres Installationsfenster, bei denen ihr die Lizenzvereinbarungen akzeptiert.
      5.)Nach den Lizenzvereinbarungen, kommt nun ein ganz wichtiger Punkt: Auchwenn euch die Möglichkeit gegeben wird, das Zielverzeichnis des Ordnerszu ändern, solltet ihr dies nicht tun. Dies hängt mit meheren Dingen zusammen, die für euch hier an dieser Stelle zu komplex wären, daher belassen wir den Installationsort bei "C:\\Pokewitch". Ihr installiert nun das Programm, indem ihr auf "Installieren" bei diesem Installationsfenster bestätigt, das Programm kann teilweise auf langsamen Systemen mit "Keine Rückmeldung" angezeigt werden, dies ist aber normal und daher braucht ihr den Installationsvorgang nicht abzubrechen.
      6.) Nach dem Installationsvorgang klickt ihr im folgenden Fenster auf "Fertig stellen" und habt somit schoneinmal Poketscript erfolgreich installiert!

      Da das Programm aber PkmAdv benötigt, ist es wichtig, dieses Programm nun auch zu Installieren.

      Sollte es Probelme bei der Installation geben, könnt ihr auch gerne meinen Pokescript Fixer nutzen, um die Installationsprobleme beseitigen zu lassen!

      Installationsanleitung (PkmAdv):

      1.) Öffnet nun PkmAdv, wobei das Laden etwas dauern kann. Nun macht sich das Zielverzeichnis bezahlt, denn ihr installiert das Programm nun im selben Ordner wie Pokescript. Sollte ein Dialogfenster kommen, dass die Datei installiert ist, obwohl das nicht der Fall ist, müsst ihr nun mit "Yes to all" bestätigen.
      2.) Danach ist die Datei erfolgreich installiert, auch wenn kein Bestätigungsfenster erscheint.

      Habt ihr die beiden Programme installiert, können wir uns nun an unser erstes Script wagen. Keine Sorge, für den Leihen wird jetzt erstmal alles ziemlich unverständlich sein, aber lasst einfach alles auf euch zukommen, holt euch am besten noch eine Packung Chips und dann können wir auch gleich anfangen!

      1.) Einfaches Textscript

      Viele kennen von euch in Pokémon die Situation, dass man gerne während des Spielens von digitalen Buchstaben etwas erfahren möchte, viele Personen sprechen mit einem und sagen manchmal mehr oder weniger hilfreiche Dialoge. Nun wollt ihr natürlich auch, dass in eurem Pokémonspiel natürlich einige Personen neue Dialoge sagen und da sind wir auch schon bei den einfachen Textscripts angelangt!
      Um euch einen Vorgeschmack auf das zu geben, was nun Folgen wird, zeige ich nunmal euch ein solches Script:

      Quellcode

      1. #org $script
      2. lock
      3. faceplayer
      4. message $talk
      5. $talk 1 =\c\h01\h06Hallo?\pIch hoffe, dass\nes dir doch so ziemlich\lgut geht!
      6. boxset 6
      7. release
      8. end

      Daswird euch natürlich den ersten Moment etwas abschrecken, aber das ist völlig normal. Dafür ist ja dieses Tutorial da und schließlich wollen wir hier auch einiges lernen, also fangen wir einfach ganz von oben an.

      Quellcode

      1. #org $script

      Ist sozusagen unsere Einleitung und unser Grundgerüst für das gesamte Script, mehr brauchen wir für das erste nicht über diesen Befehl zu wissen.

      Quellcode

      1. lock

      Ist ein Befehl, bei dem der Spieler (der Protagonist) angehalten wird und sich nicht mehr mit dem Steuerkreuz bewegen kann, daher ist dies ein wichtiges Element in diesemScript. Neben lock (eng. für verschließen) gibt es auch noch lockall,
      was wir in poketscript noch als #raw 0x69 benutzen werden. Hier werden alle Bewegungen angehalten, auch die Bewegungen der anderen Menschen in Sichtweite.

      Quellcode

      1. faceplayer

      Wie der Name schon sagt (eng. face für ansehen, player für Spieler), wird der Spieler bei diesemBefehl immer angeschaut. Sollte das in eurem Script fehlen fürhrt dies keineswegs zum absturz, jeodch wird dann, wenn die anzusprechende Person beispielsweise nach oben schaut, diese auch weiterhin nach oben schauen, auch wenn Sie gerade den Text sagt.

      Quellcode

      1. message $talk
      2. $talk 1 =\c\h01\h06Hallo?\pIch hoffe, dass\nes dir doch so ziemlich\lgut geht!

      Ist unsere eigentliche Nachricht. Daher ist es auch eines der Kernelemente hier in diesem Script. Das Wort "message" steht für Nachricht und ist
      ein Befehl, der nicht weggelassen werden darf. $talk ist der bezeichner für unsere Nachricht. Bezeichner müssen immer eindeutig sein, daher darfkeinesfalls zweimal in einem Script $talk vorkommen, weil ansonsten einKomplimierfehler entsteht (wie wir das Ganze umgehen werden, sehen wir später). Theoretisch gesehen hätte ich den Bezeichner auch $RHR, $1 oder $Streuselkuchenautobahnbrücke nennen können, es ist wiegesagt wichtig, dass er eindeutig ist und am besten zur Verständlichkeit einen aussagekräftigen Namen hat.
      Die nächste Zeile beginnt wieder mit einem "$talk" was lediglich bezug zur message oberhalb gibt, danach kommt ein Leerzeichen, eine "1" und ein weiteres Leerzeichen und ein
      Gleichheitszeichen. Daraufhin folgen einige Zahlen, die mit unserer
      Nachricht eigentlich nichts zu tun haben, doch was bedeuten diese?
      Um zu veranschaulichen, was die Zahlen bewirken, hier mal der Dialog, wie er im Spiel angezeigt werden würde (wobei 1 für die obere und 2 für die untere Zeile in der Textbox steht):
      1 Hallo?
      2
      1 Ich hoffe, dass
      2 es dir doch so ziemlich
      1 gut geht!
      2
      Wie ihr bereits seht, hat sich beispielsweise die Farbe von "Schwarz", welches Standrad bei einem Script wäre, zu "Grün"
      geändert. Dies hängt mit dem Befehl \c\h01\h06 zusammen, der die
      Scriftfarbe ändert. Natürlich können auch andere Schriftfarben außer "Grün" verwendet werden, die zwar teils unleserlich, aber interessant anzusehen sind. \c\h01\h08 wäre beispielsweise ein schönes Dunkelblau.
      Das "\p" hat verursacht, dass das Script nach dem "Hallo?" direkt veranlasst, eine neue Textbox zu öffnen, "\n" hat verursacht, dass nach dem "dass" der Text in der zweiten Reihe forgesetzt wird. Zu "\l" und "\p" gibt es einen Unterschied und zwar, dass "\l" erst nach mindestens einem "\n" verwendet werden darf. Dann veranlasst "\l", eine neue Textbox zu öffnen, wobei diese mit einem hübschen Rolleffekt geöffnet wird, was etwas ästetischer aussieht.

      Quellcode

      1. boxset 6

      Boxset 6 sagt lediglich, dass es sich um eine normale Textbox handelt. Neben Boxset 6 gibt es auch bekanntere Boxsets wie Boxset 2/4/5, aber es gibt
      auch noch andere Boxsets, die wesentlich seltner Gebrauch finden, doch darauf werden wir später eingehen.

      Quellcode

      1. release

      Veranlasst, die Textbox zu schließen. Neben release, gibt es wie bei lock auch releaseall, wobei dies seltenere Verwendung findet.

      Quellcode

      1. end

      Dieser Befehl beendet schließlich das Script.
      Nun haben wir eine handvoll Befehle und deren Bedeutung gelernt. Nur so können wir leider noch nichts mit den Befehlen anfangen. Wir müssen zunächst Notepad (oder auch Editor) öffnen. Dort können wir unsere Befehle verwenden. Dann speichern wir unser Script unter der Dateiendung .rbc und "Alle Dateien". Da oft Fehler bei diesem Schritt gemacht werden, gibt es ein kleines Bild, wie das Ganze korrekt aussehen soll:

      Nach dem erfolgreichem Speichern müssen wir das Script zunächst komplimieren.
      Ist ein Fehler in dem Script oder missachtet ihr die Vorgehensweise bei dem Komplimieren, können Fehler entstehen, die das ganze Script unbrauchbar werden lassen. Um das zu vermeiden, zeige ich euch eine kurze Anleitung, wie man das oder andere Scripts komplimiert.
      Als erstes gehen wir mit einem Rechtsklick auf die .rbc-Datei. Dort gibt es einen Punkt "Compile Script", der meist direkt unter "Öffnen" ist. Diesen drücken wir nun daraufhin öffnet sich folgendes Fenster:

      Keine Sorge, bei mir wird angezeigt, dass die Datei bereits existiert, da ich das Script schon mehr als einmal benutzt habe. Hier könnt ihr "Ja" drücken, falls ihr auch das Script öfters benutzen solltet. Bei dem ersten Komplimiervorgang wird euch dieses Fenster nicht angezeigt, sondern dierekt dieses:

      Deutlich zu sehen, sind hier zwei unserer Befehle die wir verwendet haben: Zum einen unsere Einleitung

      Quellcode

      1. #org $script
      , die hier als talk$script angezeigt wird und noch der Befehl

      Quellcode

      1. message $talk
      , der hier einfach als talk$talk angezeigt wird.
      Um weiter fortzufahren, müsst ihr nun auf das kleine Buch rechts oben im Eck klicken und das Spiel, das ihr editieren wollt, auswählen. Danach wird sich ein weiteres Fenster öffnen, das genau so aussieht:

      Die "84" sind die Bytes, die das Script benötigt, kurzum, der Speicherplatz für das Script. Sollte euer Text sehr lang sein, wird auch dementsprechend viel Speicherplatz benötigt. Einzelne Befehle verbrauchen auch eine bestimmte Anzahl an Bytes, unser Befehl "end", den wir vorher verwendet haben verbraucht von diesen 84 Bytes gerade mal einen Byte.
      "Starting at..." ist der Bereich, ab dem angefangen werden soll, nach freiem Speicher zu suchen. Für dieses Beispiel habe ich &h800000 verwendet. Natürlich seht ihr bereits, die Vorgeschlagenen Nummern, die sich auch Offsets nennen. Dazu habe ich auf die kleine Taschenlampe gedrückt, die mit einem Hinweistext "Look" angezeigt wird. Dann könnt ihr eines dieser Offsets auswählen, wählt am Besten das erste aus, um bei mehreren Scripts nicht durcheinander zu geraten. Dann erscheint unten in der kleinen Textbox, links von "Assign" euer ausgewähltes Offset. Nun Kopiert ihr euch dieses Offset, außer das "&h" und drückt danach auf "Assign". Nun solltet ihr wieder dieses als aktives Fenster vorfinden:
      Zu sehen ist nun, das beide Befehle ein Offset zugeordnet bekommen haben, ganz nach eurer Auswahl. "80000B" ist hiermit zu erklären, das ab "800000" das Offset benutzt wird und nicht nur das Offset "800000". Nun könnt ihr auf "File" drücken und dann "Burn". Und schon ist das Script in der Datei, wo wir sie auch haben wollten: In dem eigenen Pokémonspiel. Nun solltet ihr aber nicht so hastig Pokescript wieder schließen, denn wir müssen A-Map sozusagen noch einen Verweis zu dem Offset geben, dazu müssen wir A-map öffnen und unser zu editierendes Spiel auswählen, sollte dieses Spiel nicht kompatibel mit A-Map sein, wird dies nun mit einer Fehlermeldung angezeigt. Da jetzt einiges an Erklärung kommen wird, werde ich als Hilfestellung ein Bild mit nummerierter Reihenfolge abbilden.

      Zuerst wählen wir unsere Map aus (1). Danach sehen wir oben bei den Reitern 5 verscheidene Auswahlmöglichkeiten, wir wählen den Punkt "Events"aus(2). Danach sollten wir eine neue Person einfügen, das machen wir, indem wir bei (3) die Anzahl der Personen um 1 erhöhen und dann auf "Events ändern" drücken (4). Danach können wir die Person von der oberen linken Ecke aus, zu unserer gewünschten Postion mit der linken Maustaste ziehen(5). Schlussendlich fügen wir unser Offset unter dem Punkt "Script-Offset" ein. Achtet bei A-Map 1.95 darauf, dass ihr die ersten zwei "00" stehenlässt und erst dnach euer Offset einfügt (6). Wenn Ihr möchtet, könnt ihr noch die Bildnummer ändern, dass macht ihr ganz einfach, indem ihr ein passendes Bild aussucht(7). Sollte die Personennummer auch noch geändert werden müssen, weil diese bereits vorhanden ist, solltet ihr das nun auch tun (8).
      Danach solltet ihr die Änderungen unbedingt in A-Map speichern! Nun könnt ihr euer Ergebnis testen, denn wir sind mit dem ersten Script fertig! War doch gar nicht so schwer, oder?

      Ich will mehr!

      Viele werden sich aber jetzt nicht mit einem einfachem Textscript zufrieden geben, zumahl die Möglichkeiten eines solchen Scripts sehr begrenzt sind. Stellen wir uns einmal verschiedene Situationen vor, z.B. in Lavandia, wo unser(e) Held(in) angesprochen wird, ob Er (Sie) gerne Geister sieht. Selbst das zu realisieren, mit einer sogenannten Ja/Nein-Box, ist für einen Anfänger gar nicht so einfach. Kommen wiraber nun zu etwas anderem, was für euren Hack auch von großer Bedeutung sein wird, nämlich Kämpfe. Vielleicht wird sich schon der ein oder andere gefragt haben, wie man diese ändert. Nun ist es soweit und wir beginnen mit dem Editieren der Kämpfe. Auch hier gibt es zwischen den einzelnen A-Map-Versionen 1.92 und 1.95 leichte Unterschiede.

      2. Kampfscripts

      Damit wir Kampfscripts überhaupt vernüftig realisieren können, brauchen wir das sogenannte Programm A-Trainer (oder auch Advance Trainer). Dieses Programm ermöglicht uns, Änderungen an Level, Menge und Art der Pokémon vorzunehmen, die von den Gengnern (dessen Aussehen wir auch Ändern können) vorzunehmen. Ich möchte betonen, dass A-Trainer sicher ist, jedoch die Entwickler von einigen Virenprogrammen sich keine Mühe geben, die Dateieinträge bei einem "False Found" zu überarbeiten...
      Nun öffnen wir A-Trainer und das Programm dürfte dann ungefähr so aussehen:
      Nun solltet ihr auf File (1) gehen und euer Spiel laden. danach geht ihr zu "SÖNCKE" um diesem Beispiel zu folgen oder, falls ihr eine andere Edition als Feuerrot / Blattgrün verwenden solltet, auf einen anderen Trainer. Danach dürfte euer Fenster ungefähr so aussehen:
      Um euch alles besser zu erklären, habe ich das Bild mit Zahlen versehen. Bei (1) könnt ihr den Namen des Trainers ändern. Es spielt hierbei keine Rolle, ob ihr den Namen nur Groß oder in Groß-und Kleinschreibung schreibt, beides wird von eurem Spiel erkannt. "SÖNCKE" benenne ich nun in "Petra" um. Das Geschelcht könnt ihr mittels des Punktes "Sex" (synonym für Gender, zu dt. Geschlecht) (2) ändern, wobei dies bei den meisten Fällen sogar keine Auswirkung hat, wenn ihr dies vergessen würdet. Für dieses Tutorial ändern wir das Geschlecht dennoch passend auch "F" für Feminin ab. Als nächstes solltetihr die Trainerklasse (3) ändern, da ihr das passende Bild für die Schönheit-Trainerklasse erst danach abändern solltet (4). Wir ändern dieTrainerklasse für dieses Beispiel auf "SCHÖNHEIT" ab und ändern die Nummer auf "98".Falls euer Trainer Items einsetzen soll, könnt ihr dies mittels dieses Punktes (5) einstellen. Prinzipell könnt ihr alle Items dem Trainer geben, jedoch wird aufgrund der KI (kurz für künstliche Intelligenz)der Trainer nur Items einsetzen, die entweder den Status während des Kampfes heilen oder verbessern. Außnahmen bilden hier Beleber-Items (auch Vitalkraut), sowie Items, die die AP-Punkte eines Pokémon wiederherstellen (z.B. Äther). Wir geben unserer Schönheit Petra nun einen Trank an 1. Position. Mit (6) könnt ihr eure Änderungen die Ihr vorgenommen habt speichern, überprüft aber vorher nochmal unbedingt, ob alles in Ordnung ist, denn den Speichervorgang könnt ihr im Nachhinein nicht mehr Rückgängig machen! Wenn alles fertig ist und Ihr gespeichert habt, sollten eure Änderungen nun sichtbar sein und das
      Fenster wiefolgt aussehen: Zuletzt solltet Ihr nun das Fenster mittels (7) wechseln, denn nun kümmern wir uns um das Editieren der Pokémon, die im Kampf eingesetzt werden. Euer Fenster, das nun geöffnet ist, sieht dann so aus:

      Bevor wir nun zum eigentlichen Ändern kommen, möchte ich euch nun mit ein paar Tricks demonstrieren, welche Vorteile und Möglichkeiten dieses Programm bieten kann. Hierbei vergessen wir den Punkt "Dual Battle". Dieser Punkt ist noch leider nicht vollständig ausgereift und erkennt auch nicht, wenn ihr nur ein Pokémon im Team habt, da dies für den Anfang kompliziert wäre, Doppelkämpfe zu machen, beschäftigen wir uns nun zunächst mit den normalen Einzelkämpfen.
      Unsere liebe Petra soll drei Pokémon haben, die spezielle von uns definierte Attacken können. Wir müssen nun zwei Dinge als allererstes Ändern. Zum einen Ändern wir den Punkt "Pokémon Amount" von "2" auf "3" Pokémon (1). Im nächsten Schritt ändern wir den Punkt "Item/Attacks" von "No Item/Default Attacks" auf "No Item / Custoum Attacks" ab (2). Nun ist euch bestimmt schon folgende Änderung aufgefallen:

      Um das nun zu beheben, solltet ihr auf den kleinen "Repoint-Button" rechts von der Meldung drücken. Habt ihr dies nun getan, sollte nun folgendes Fenster erscheinen:

      Als allererstes solltet ihr das "Suggested"-Offset exakt nach oben übernehmen (1), habt ihr dies getan, könnt ihr nun den "Ok-Button" (2) drücken. Danach könnt ihr mithilfe von Advance-Trainer, das geöffnet ist, beliebige Attacken und Pokémon einfügen, wechselt aber solange ihr dies editiert nicht das Fenster, das in A-Trainergeöffnet ist. Es ist sogesehen auch möglich, einem Karpador Lv. 5 Explosion beizubringen, obwohl es diese Attacke im normalen Spielverlaufnie erlernen wird. Wenn ihr mit euren Änderungen zufrieden seit, könnt ihr mithilfe von "Save" alle Einstellungen speichern. Dann ist unsere Arbeit mit Advance-Trainer getan, lasst aber A-Trainer dennoch nocheinmal kurz offen, denn wir werden dies für unser Script brauchen. Ein sogenanntes Trainerscript, sieht wiefolgt aus:

      Quellcode

      1. #org $start
      2. Trainerbattle 0 0xYYY $before $after
      3. message $beaten
      4. boxset 6
      5. release
      6. end
      7. #org $before
      8. $before 1 = Wenn der Trainer mich sieht und zu mir läuft
      9. #org $after
      10. $after 1 = Wenn der Trainer verloren hat
      11. #org $beaten
      12. $beaten 1 = Wenn man nach dem Kampf den Trainer erneut anspricht
      Alles anzeigen

      Damit ihr nicht völlig hilflos vor diesem Script steht/sitzt, werde ich dieses nun erklären.

      Quellcode

      1. #org $start

      Das kennen wir schon. Deshalb werde ich auch auf bekannte Sachen für die Zukunft dieses Tutorials nicht eingehen.

      Quellcode

      1. Trainerbattle 0 0xYYY $before $after

      Das ist der bisher komplexeste Befehl, den wir kennengelernt haben und Trainerbattle wird dies auch einige Zeit lang bleiben. Trainerbattle 0 simuliert einen normalen Trainer-Einzelkampf. Dieser Befehl aktiviert auch die "!"-Boxen und die Movements (zu Deutsch: Bewegungen) zu dem Spieler hin, wie man Sie schon eh und je her aus Pokémon kennt. Die "YYY" ist eine Zahl, um noch genauer zu sein, eine Variable. Um diese Variable zu ermitteln, brauchen wir jetzt A-Trainer.

      Die Nummer die wir jetzt brauchen ist die "62" für Petra, damit das Script auch weiß , um welchen Trainer es sich handelt. Aus

      Quellcode

      1. Trainerbattle 0 0xYYY $before $after

      wird nun also

      Quellcode

      1. Trainerbattle 0 0x062 $before $after
      .
      Der Befehl hat vielerlei andere Funktionen bereit, zumahl es ähnlich wie bei boxset verschiedene Nummern für die einzelnen Trainer gibt. Trainerbattle 1, Trainerbattle 4 und Trainerbattle 9 sind nur einige gängige Beispiele. $before steht für unsere Nachricht vor dem Kampf in diesem Fall, also wenn der Trainer auf den Hero zuläuft und dann anfängt zu reden, $after für die Nachricht nach dem Kampf, wenn derHero gewinnt, sich aber noch im Kampffenster befindet. Die einelnen Nachrichten sind bereits in einem boxset-typ durch trainerbattle definiert und daher sind für beide Befehle keinerlei Boxsets nötig. Im Laufe des Tutorials werden wir uns nocheinmal intensiver mit den Trainerbattles, allen voran Trainerbattle 9, beschäftigen und einigen lustigen Nebenfunktionen von Trainerbattles widmen. Den Rest des Scriptes solltet ihr aus dem "Einfachem Textscript"wiedererkennen, jedoch aktiviert sich die letzte nachricht $beaten erst nach dem Kampf, was wiederrum ein kleines aber feines Feature von Trainerbattles ist. Ihr verfahrt nun genau nach der obrigen Anleitung von "Einfachem Textscript" zum Compilen von Scripts und danach könnt ihr schon loslegen und gegen Petra einen Kampf ausüben!

      3.) "Ja/Nein"-Fragestellungen

      Mit den "Ja/Nein" Fragestellungen, lernen wir nun eine weitere InteressanteMöglichkeit beim Scripten kennen. Jeder, der schonmal Pokémon R/B/G gespielt hat, kennt sicherlich die Szene, in der der kleine Junge in Lavandia von den Geistern redet. Dabei wird ebenfalls diese Methode angewendet, um uns eine hübsche Ja/Nein-Box anzuzeigen. Heute werden wir ein Script schreiben, dass genauso aufgebaut ist und werden dabei nach dem Jungen aus Lavandia fragen, ob wir diesen bereits kennen. Das ganze Script sieht wiefolgt aus:

      Quellcode

      1. #org $script
      2. lock
      3. faceplayer
      4. message $question
      5. $question 1 = Kennst du einen Jungen aus\nLavandia?
      6. boxset 5
      7. compare 0x800D 0x0001
      8. if 0x01 goto $yes
      9. message $question1
      10. $question1 1 = Dachte ich mir, dass du ihn nicht kennst!\nEr redet immer von Geistern...\lKomischer Kerl...
      11. boxset 6
      12. release
      13. end
      14. #org $yes
      15. message $yes1
      16. $yes1 1 = Wie, was...? Woher kennst du\nihn denn?\pIch bin sein Bruder!
      17. boxset 6
      18. release
      19. end
      Alles anzeigen

      Wir überspringen den ganzen Teil bis "faceplayer", da ihr diese Befehle ja schon kennt. Nun kommt ein neues boxset für unser Script ins Spiel, nämlich boxset 5:

      Quellcode

      1. message $question
      2. $question 1 = Kennst du einen Jungen aus\nLavandia?
      3. boxset 5

      Boxset 5 bewirkt, dass am Ende unserer Nachricht "$question" eine Ja/Nein-Box auftaucht. Viel mehr zu sagen gibt es hierbei nicht. Nun folgt ein weiterer, neuer Befehl.

      Quellcode

      1. compare 0x800D 0x0001
      2. if 0x01 goto $yes

      Der Befehl "compare" prüft die Variable 800D, ob diese den Wert "1" hat. Aber warum prüfen wir jetzt eine Variable auf einen Wert? Das hat doch gar nichts mit einer Nachricht dieser Art zu tun denkt ihr. Dann denkt Ihr leider falsch!
      Die Tatsache und der Zusammenhang ist relativ simpel zu erklären. Die Variable 800D ist zugleich LASTRESULT. In LASTRESULT werden immer einige Werte von Befehlen gespeichert oder ihr könnt mit einigen Befehlen auch selbst Werte in LASTRESULT zwischenspeichern. Unser boxset 5 von vorhin, von dem ich euch eine Tatsache verschwiegen habe, speichert einen Wert in LASTRESULT. Wenn "JA" gedrückt wird, wird der Wert "1" in LASTRESULT gespeichert, nach dem wir auch prüfen und bei "NEIN" wird der Wert "0" in LASTRESULT gespeichert. Mit dem Befehl "if" prüfen wir, ob unsere Aussage wahr ist. Bei unserem Beispiel, wird also LASTRESULT auf den Wert "1" geprüft, sollte der Wert in LASTRESULT "1" sein, wird der Befehl "goto" das Script an der Stelle von "#org $yes" fortsetzen lassen. Damit ihr nicht völlig ratlos vor einem weiteren Ja/Nein Script versagt, hier ein anderes Beispiel:

      Quellcode

      1. compare 0x800D 0x0000
      2. if 0x00 goto $yes
      Hier wird LASTRESULT auf den Wert "0" geprüft, (zur Erinnerung: "0" war die Antwort "Nein") wenn (-> Befehl: "if") der Wert nicht "0" sein sollte, wird das Script zu "#org $yes" springen. Wie ihr merkt, führen zwei unterschiedlcihe Ansätze zum gleichen Ziel: Unserer "Ja"-Antwort. Kurz sollte noch erwähnt sein, dass ihr für den zweiten Abschnitt "#org $yes" kein lock oder/und faceplayerbenötigt. Das Script wahrt den Status, das der Spieler nicht bewegt
      werden soll. Wenn wir die Befehle hier dennoch einbauen würde, wäre das nichts außer Platzverschwendung, also besser die Finger weg davon an dieser Stelle... Mit diesem abschließenden Satz sind wir nun auch fertig mit unseren Fragenachrichten und können nun beruhigt und sicher unseren Spieler nach einzelnen Dingen fragen und gekonnt auch auf die passende Antwort reagieren!

      4.) Wilde Pokémon, die nur einmalig Auftauchen

      Ein sehr komplexes und zugleich auch interessantes Thema ist es, eigene Kämpfe zu erstellen. Die Möglichkeiten sind so gut wie unbegrenzt, eigene Kampfhintergründe, Pokémon(level), Kampfverläufe, Kampfeffekte, Soundeffekte, Animationseffekte und und und könnt ihr in wilden Pokémonkämpfen ändern. Viele Tutorials, die ich selbst vor zwei jahren auf Youtube angesehen habe waren zu diesem Thema sehr späarlich umgegangen, zumahl oftmals die Tatsache weggelassen worden ist, dass die Pokémon nach dem Kampf einfach wieder auftauchen. Demnach schlecht waren dieserlei Videos auch bewertet gewesen oder sind es sogar bis heute noch. So unzählig und faszinierend die Möglichkeiten eines
      solchen Script auch sein mögen, umso komplizierter wird die ganze Sache für uns als Scripter. Da einige Dinge, die ich oben erwähnt habe, vom Schwierigkeitsgrad wesentlich höher als unser Kenntnisstand bisher ist, verzichte ich auf die fortgeschrittenen Dinge bei einem solchen Kampf und wir fangen sozusagen mit den Basics an. Um einige neue Befehle für unser Script, werden wir aber dennoch nicht herumkommen.
      Um euch mal ein einfaches Kampfscript zu zeigen, werde ich euch nun eine Vorlage geben, wie euer Kampfscript aussehen könnte. Natürlich gibt es einiges zu erklären!

      Quellcode

      1. #org $script
      2. lock
      3. faceplayer
      4. cry 0xA1 79
      5. #raw 0x33
      6. nop
      7. message $cry
      8. $cry 1 = Flegmon? Mon?
      9. boxset 6
      10. #raw 0xC5
      11. wildbattle 79 2 0
      12. pause 0x20
      13. fadescreen 1
      14. #raw 53
      15. #raw 5
      16. #raw 00
      17. setflag 0x1212
      18. pause 0x10
      19. fadescreen 0
      20. release
      21. end
      Alles anzeigen


      Da ihr einige Befehle nicht kennt, werde ich euch diese nun chronologisch etwas erläutern:

      Quellcode

      1. cry 0xZahl Zahl2

      Der Befehl Cry lässt euch einen Schrei abspielen. Dabei ist der erste Wert der Effekt. Mit dem Effekt könnt ihr gerne etwas rumspielen - ihr werdetaber feststellen, dass nicht alle Effekte funktionieren werden. Hier eine kleine beispielhafte Liste:
      [table='Effektwert,Beschreibung']02[*]Legendärer Effekt[*]
      A1[*]Effekt Normal 2[*]
      01[*]Effekt Normal 1[/table]

      Quellcode

      1. #raw 0xC5

      Der #raw-Befehl nennt sich auch waitcry. Es wird also gewartet an der Stelle wo waitcry steht, bis der Cry eines PKM vollständig abgespielt ist.

      Quellcode

      1. wildbattle Zahl1 Zahl2 Zahl3


      Zahl1: Pokémonnummer (Bitte ab 251 und aufwärts die abweichende Liste beachten!)
      Zahl2: Level des Pokémon in HEX
      Zahl3: ID des getragenen Items, wobei nur Items funktionieren, die bei dem Tragen einen Effekt haben (z.B. Überreste)

      Quellcode

      1. Fadescreen 1

      Verdunkelt das Bild in Schwarz (in Weiß Fadscreen 3)

      Quellcode

      1. Fadescreen 0

      Löst das Bild von Schwarz zu normal auf (in Weiß Fadescreen 2)

      Quellcode

      1. #raw 53
      2. #raw 5
      3. #raw 00
      4. setflag 0x1212


      Dieser Gesamtbefehl lässt die Person mit der HEX-ID 5 auf der angegebenen Map verschwinden, sofern keine zwei Personen derselben HEX-ID auf der Map vorhanden sind.
      Wichtig dabei zu beachten ist, dass die Person auch eine Flag von euch zugewiesen bekommt. In diesem Fall ist dies Flag 0x1212. Dieser Befehl "Flag" sorgt dafür, das ein Event nicxht erneut getriggert (ausgelöst) wird.
      Sollte eine Flag einmal gesetzt (verwendet) sein, kann sie nur noch "gelöscht" werden, indem man dieselbe Flag mit dem Befehl clearflag wieder auflöst. Beachtet bitte aber bei dem Befehl, dass dadurch eventuell bereits abgelaufene Events wieder aktiviert werden können!
      Solltet ihr dies verstanden haben, seit ihr nun ein Stück weiter, mit Pokescript gut umgehen zu können!

      5. Applymovements - Eine Person, Bildschirm und Hero bewegen lassen


      5.1 Allgemein

      Es gibt Momente in eurem Abenteuer, da wird euch wie in jedem Pokémonspiel ein Hindernis aufkommen oder ihr wollt ähnlich wie in Rosalia City einen Tutorialmann erstellen? Dafür werdet ihr an diesem Befehl nicht herumkommen, er nennt sich Applymovement und lässt Personen und euch selbst bewegen!
      Für dieses Tutorial benötigt ihr eine Liste mit den Bewegungen. Ich habe euch einmal eine kleinere Liste hier unten aufgelistet:
      Bewegungsmöglichkeiten
      0x4A ' Spieler anvisieren

      0x4B ' Spieler in entgegengesetzer Richtung ansehen
      0x60 ' Verschwinden lassen (Der Sprite wird nicht mehr angezeigt, aber Aktionen können noch ausgeführt werden)
      0x61 ' Wieder Auftauchen lassen
      0x62 ' "!" erscheint
      0x63 ' "?" erscheint
      0x64 ' "X" erscheint (Kampff. , kann nicht kämpfen, NUR FR/BG)
      0x65 ' "!!" erscheint (Kampff., kann kämpfen, nur FR/BG)
      0x66 ' "^^" erscheint
      0x91 ' 2 Rechts diagonal sliden (Facing Up, nur R/S/Em)
      0x92 ' 2 Links diagonal sliden (Facing Down, nur R/S/Em)

      ' In Richtung schauen
      0x01 ' Nach Oben schauen
      0x02 ' Nach links schauen
      0x03 ' nach rechts schauen
      0x04 ' nach unten schauen

      ' Sehr langsam gehen
      0x08 ' Schritt nach unten gehen (geschwindigkeit 1)
      0x09 ' Schritt nach oben gehen (geschwindigkeit 1)
      0x0A ' Schritt nach Links gehen (geschwindigkeit 1)
      0x0B ' Schritt nach Rechts gehen (geschwindigkeit 1)

      ' Gehen
      0x0C ' Schritte nach unten gehen (Geschwindigkeit 2)
      0x0D ' Schritte nach Oben gehen (Geschwindigkeit 2)
      0x0E ' Schritte nach Links gehen (Geschwindigkeit 2)
      0x0F ' Schritte nach Rechts gehen (Geschwindigkeit 2)

      ' Laufen
      0x10 ' Schritte nach unten laufen (Geschwindigkeit 3, normal)
      0x11 ' Schritte nach Oben laufen (Geschwindigkeit 3, normal)
      0x12 ' Schritte nach Links laufen (Geschwindigkeit 3, normal)
      0x13 ' Schritte nach Rechts laufen (Geschwindigkeit 3, normal)

      ' rennen
      0x1D ' Nach unten Rennen (Geschwindigkeit 4)
      0x1E ' Nach Oben Rennen (Geschwindigkeit 4)
      0x1F ' Nach Links Rennen (Geschwindigkeit 4)
      0x20 ' Nach Rechts Rennen (Geschwindigkeit 4)

      ' jump in place
      0x52 ' Nach unten springen (0)
      0x53 ' Nach oben springen (0)
      0x54 ' Nach Links springen (0)
      0x55 ' Nach rechts springen (0)

      ' Spezial-Sprung (Sprungrichtung/Blickrichtung nach dem Sprung)
      0x56 ' Springen nach unten/ Blickrichtung nach oben
      0x57 ' Springen nach oben/ Blickrichtung nach unten
      0x58 ' Springen nach links/ Blickrichtung nach rechts
      0x59 ' Springen nach rechts/ Blickrichtung nach Links

      ' In Richtung springen
      0x4E ' 1 nach unten springen
      0x4F ' 1 nach oben springen
      0x50 ' 1 nach links springen
      0x51 ' 1 nach rechts springen
      0x14 ' 2 nach unten springen
      0x15 ' 2 nach oben springen
      0x16 ' 2 nach links springen
      0x17 ' 2 nach rechts springen

      'Weitere Spezial-Sprünge:
      0x46 ' jumpLookingLeft1 down
      0x47 ' jumpLookingDown1 up (Rückwärts weggestoßen werden)
      0x48 ' jumpLookingUp1 left
      0x49 ' jumpLookingLeft right (Rückwärts weggestoßen werden)


      Kommen wir nun zu unserem eigentlichen Problem. Ihr wollt einen Applymovementscript schreiben. Um euch das verständnis für einen Applymovementscript zu geben, werde ich euch nun die Syntax bzw. auch die Befehle lehren:

      Quellcode

      1. applymovement 0xPerson 0xOffset/Pointer


      Führt die angegebene Bewegung aus. Die "Person" steht hierbei für die Personennummer in A-map, jedoch muss diese noch von Dezimal in HEX umgerechnet werden. Das "Offset" gibt euch das aktuelle Offset zurück, das ihr für die Bewegung
      verwenden wollt. Jedoch gibt es einige besonderheiten bei diesem Befehl, die ich euch nun erläutern werde:

      - Hinter jedem applmovement muss ein pausemove 0 oder eine pause,die größergleich 10 Milisekunden ist vorhanden sein. Sollte ein applymovement folgen, der dieselbe Bewegung wie der vorherige applymovement verwendet, ist lediglich am Ende des letzten applymovements dieser Befehl notwendig.
      - Die applymovementnummer darf nicht 0x7F, 0xFF, 0xFA-0xFE lauten, anosnten treten Besonderheiten auf
      - es ist auch möglich eine andere Syntax für den Befehl zu verwenden. Ich würde euch raten, die Syntax nur zu verwenden, wenn ihr ein Script gestaltet, dass den Bildschirm bewegen soll. Hier das Beispiel:

      Quellcode

      1. special 0x113
      2. applymovement 0x7F $screenup
      3. $screenup 1 ; #binary 0xBewegungID(s) 0xFE
      4. pausemove 0
      5. special 0x114

      Die Befehle werden später an entsprechneder Stelle nochmal genauer erläutert.

      Quellcode

      1. pausemove 0

      Hält das Script solange auf, bis die Person(en) alle Bewegungen ausgeführt haben. Äquivalent ist es auch möglich, einen Bestimmten Zeitraum mit pause zu warten und dann Beispielsweise während des gehens Text einzublenden (2. Methode in XSE nicht möglich)

      5.2 Personen bewegen lassen

      So nun etwas Praxisarbeit, dazu nehme ich einmal ein einfaches Beispiel. Mal angenommen, ihr wollt die Person von der Türe hier wegbewegen:


      Dann seht ihr gleich einige Probleme, die auf uns zukommen werden. Mal angenommen ihr würdet folgendes für den Teenagerscript verwenden:

      Quellcode

      1. #org $script
      2. applymovement 0x1 $move
      3. pausemove 0
      4. release
      5. end
      6. #org $move
      7. #raw 0x0F 0xFE


      Dann hättet ihr zwar euer Ziel erreicht, die Person von der Türe wegzubewegen, jeodch habt ihr ein unschönes Problem, wenn der Hero auf Position (2) stehen würde: Der Teenager würde in den Hero hineinlaufen.
      Um das unschöne Event zu verweiden, habt ihr nun die Möglichkeit, die Blickrichtung eures Heros zu ermitteln. Dies ist praktisch, da der Hero an Position (2) nur nach links blicken kann, wenn er gleichzeitig mit dem Teenager interagieren will. Also bauen wir folgenden Befehl nach #org $script ein:

      Quellcode

      1. compare 0x800C 0x4
      2. if 0x1 goto $links

      Dieser Befehl Prüft auf die Blickrichtung des Heros "links". (1: oben, 2: unten, 3: rechts). Das Script könnte dann eventuell so aussehen:

      Quellcode

      1. #org $script
      2. compare 0x800C 0x4
      3. if 0x1 goto $links
      4. applymovement 0x1 $move
      5. pausemove 0
      6. release
      7. end
      8. #org links
      9. message $msg4
      10. $msg4 1 = Sprich von rechts mit mir.
      11. boxset 6
      12. release
      13. end
      Alles anzeigen

      Nun habt ihr das Problem gelöst und könnt den Script beruhigt präsentieren!

      5.3 Bildschirm bewegen lassen

      Solltet ihr euch den Punkt 5.1 durchgelesen haben, kennt ihr das Beispiel schon:

      Quellcode

      1. #org $script
      2. special 0x113
      3. applymovement 0x7F $screenup
      4. $screenup 1 ; #binary 0xBewegungID(s) 0xFE
      5. pausemove 0
      6. special 0x114
      7. release
      8. end


      Kurz zur Erläuterung die neuen Befehle:

      Quellcode

      1. special 0x113

      Dieser Befehl sorgt dafür, dass der Bildschirm zum Bewegen freigegeben wird. Das heißt, ihr könnt nun den applymovement für den Bildschirm, dessen Personen-ID die 0x7F ist, nutzen. Umgekehrt funktioniert special 0x114, dieser verhindert, dass ihr den Bildschirm bewegen könnt und friert diesen an der letzten Position ein. Die Syntax mit #binary ist zugegebenermaßen etwas gewöhnungbedürftig, jedoch finde ich, lässt dies die Befehle besser voneinander unterscheiden.

      5.4 Den Hero bewegen lassen
      Möchtet ihr den Hero bewegen, müsst ihr als Personen-ID bei applymovement 0xFF verwenden. Würdet ihr das Teenagerscript durch die Variable 0xFF bei applymovement ersetzen, so würde sich der Hero um eins nach rechts bewegen
      , sofern dieser nicht nach links blicken würde.

      6. Arenaleiterscript

      Die Vorstellung in einer selbstgemachten Arena zu kämpfen, ist für jeden Hacker einfach ein Muss. So wird euch dieser Punkt sicherlich Reizen. Ich werde euch zeigen, wie man das Script wirklich wie im Original hinbekommt und keinen Billig-Abklatsch. So werden die Sounds richtig abgespielt werden und der Arenaleiter seine typische Musik haben.
      Grundlagen: Wichtig ist, dass jeder Arenaleiter die Trainer-Klasse "Leiter" hat, um die korrekte Musik abspielen zu können. Ihr müsst die 2. Klasse "Leiter" bei FR/BG verwenden und die 1. Klasse "Leiter" bei R/S. Bei Smaragd könnt ihr beide Arenaversionen verwenden.
      Kommen wir nun zum eigentlichen - dem Script.


      (C) pokemontutorialTV, 2012
      (C) pokemontutorialTV, youtube, 2009 - 2011

      Bitte um Verzeihung -
      das Thema ist noch nicht vervollständigt. Viele weitere Punkte werden
      noch Folgen, jedoch braucht das seine Zeit, da ich nicht täglich an dem
      Tutorial arbeiten kann.
      Pokémon spielen auf einem höheren Level.


      Links zu meiner Person:

      Youtube
      Facebook Twitter

      Dieser Beitrag wurde bereits 17 mal editiert, zuletzt von pokemontutorialTV () aus folgendem Grund: - Anpassung wegen Löschung der Videos und Änderung der Downloads (24.08.2012) - Fehler der Darstellung behoben (02.04.2012)

    • habs net durchgelesen, da mich pokescript(btw. ohne t) nicht interessiert, aber ich wollte anmerken, dass AM 1.95 nicht wie geschrieben in einer anderen Sprache gemacht wurde, lediglich die IDE ist afaik anders.(1.92: Delphi, 1.95: Lazarus. Sprache bei beiden Object-Pascal.

      Aber es sieht sehr schön aus :)
    • Ich reserviere mir einen Platz weiter oben^^
      Zu deiner frage, "was" das hier für ein Tutorial werden soll, ist relativ einfach zu beantworten: Ich werde alle Tutorials, die ich auf meinem Kanal habe, nochmal in Textform erklären. Ich bin mir sicher, dass sich dadurch auch PM-Anfragen auf meinem YT-Channel nochmal reduzieren werden. Ich möchte nicht alles X-mal erklären und sah dies hier als sinnvolle lösung.
      @Counterbug: Ich weiß gar nicht das es ein Boxset 2 in poketscript überhaupt gibt ô.O naja man lernt eben nie aus^^
      Pokémon spielen auf einem höheren Level.


      Links zu meiner Person:

      Youtube
      Facebook Twitter
    • In meinem Forum sollte sich ein Pokescript Fixer finden, der sagt dir meistens, wo die Probleme liegen bei Pokescript^^

      Desweiteren rate ich von dem Gebrauch von Pokescript mittlerweile ab, da der XSE-Compiler wesentlich schneller arbeitet. Ob du nun XSE nutzt der eben Pokescript blebit dir überlassen.
      Pokémon spielen auf einem höheren Level.


      Links zu meiner Person:

      Youtube
      Facebook Twitter