Scripten via Pokescript

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Hey Leuts von Bisafans ich wollte euch jetzt mal das scripten via pokescript näher bringen. Ich will nicht so viel reden also fangen wie einfach mal an.^^


    1.Was man braucht (für alles)
    1. Rom (xD warum den auch nicht)
    2. Pokescript
    3. Rubrikrom
    4. Advance Map
    5. Pet
    6. Editor
    Das gibt es alles hier. (auser eine Rom)


    2.Installieren
    Installiert zu aller erst Pokescript und Rubikrom
    ACHTUNG!!!: Ihr dürft niemals den Ordner Pokewitch öffnen warum weiß ich nicht aber man sollte es nicht machen.

    3. Wie fügt man einen Script ein!

    Dieser Teil meines Tuts ist von yanbo da sein Tut übers einfügen ziemlich gut ist.
    Also danke yanbo.^^





    4. Scripten für Anfänger /Standartscripts


    1. Textscript
    Ich wärde bei allen Standart sachen einen beispiel script angeben also hier das Erste.


    Code
    #org $beginlockfaceplayermessage $Textboxset 6releaseend#org $1$1 1 =Hier gehört ein Text hin \nZeilenumbruch aber nicht vergessen \pEine neue box ist auch nicht schlecht.



    Ihr werdet warscheinlich nichts davon verstehen, aber ich erkläre euch mal alles.


    #org $begin : Damit beginnt eigentlich jeder script.
    lock : hält den spieler an falls er läuft.
    faceplayer : Richtet den angesprochenen OW zu dir.
    message $Text : message gibt die Nachricht aus die im Pointer $Text steht du kannst beim Pointer namen ändern was du willst. Vergesst das $ am Anfang aber nicht.
    boxset 6 : boxset öffnet eine Text box welche es ist kann man mit der nummer bestimmen nummer 6 ist eine normale Textbox.
    release : schließt die Text box.
    end : beendet den Script.


    #org $1 : Dies ist der Teil wo der oben genannte Pointer hinspringt.
    $1 1 = : dies muss du schreiben und dann den Text der in die Textbox rein soll achte am anfang muss immer der Pointer stehen und da hinter eine 1 und dann =



    So nach den befehlen komm ich erstmal dazu euch ein paar befehle zu erklären die man in seinen Text einbauen kann/muss
    \n : Das ist ein zeilenumbruch. Das wird benutzt damit der Text eine Zeile runtergeht
    hier ein beispiel:
    Hallo! \nWie gehts?
    das wird dann so ausgegeben:
    Hallo!
    Wie gehts?
    Achtung!!!: Anfänger machen oft den Fehler und benutzen den slash / mit shift + 7. Aber man muss den Backslash benutzen also Alt Gr + ß.


    \p : Sorgt dafür das der Text in einer neuen box angezeigt werden kann.


    \v\h01 : Das wird benutzt damit der Name des Hero im Text angezeigt wird.


    \v\h06 : Das wird benutzt damit der Name des Rivalen im Text angezeigt wird.


    Es gibt noch mehr solcher add ons zu denen werde ich vielleicht später kommen.


    Das wars eigentlich schon mitden Grundkenntnissen zur Textbox


    2. Flags


    So jetzt werde ich zu einem der wichtigsten sachen beim Scripten kommen den Flags. Erst wird erzählt das die schwer sein sollen stimmt aber überhaupt nicht wenn man es einmal verstanden hat. aber jetzt erstmal ein beispielscript.


    Code
    #org $beginlockfaceplayercheckflag 0x200if b_true goto $donemessage $1boxset 6Setflag 0x200releaseend#org $donemessage $2boxset 6clearflag 0x200releaseend#org $1$1 1 =Hi ich sete das mal#org $2$2 1 =Du hast schon mal mit mir \ngesprochen. \pDas cleare ich mal



    So jetzt erkläre ich erstmal alles neue.


    checkflag 0x200 : überprüft ob die flag 0x200 schon mal gesetzt wurde wobei 0x200 einfuch nur die flag ist
    if b_true goto $done : wer ein bisschen english kann müsste das eigentlich verstehen. Es bedeutet so viel wie wenn das vorrige stimmt gehe zu dem pointer $done was ein Pointer ist wissen wir ja ^^
    Setfag 0x200 : Sagt der Rom das die flag 0x200 aktieviert wurde.
    clearflag 0x200 : Sagt das die flag wieder frei ist und wieder aktiviert werden kann.


    So jetzt hab ich euch die Befehle erklärt aber was bringt das.
    Die Flags sind dazu da das ein Event nur einmal passiert also man startet das event und sagt er soll schon mal überprüfen ob es schon mal passiert ist also checkflag. im Event sagt es dann das das event ausgeführt wurde mit setflag. Wenn man aber will das man das event nochmal machen kann kann man das mit clearflag indem man die flag einfach wieder frei macht.


    Jetzt hier erstmal eine Liste mit freien Flags (sind nicht alle)



    Jetzt sag ich euch mal ein paar flags die in der Rom drin sind und wofür die sind.



    so das wars erstmal mit den Flags und weiter im Programm.


    3.Giveitem / gebeitem
    Hier ein beispiel script da ich keine lust hatte einen script zu schreiben hab ich einen aus meiner ablage genommen.


    Code
    #ORG $beginlockfaceplayercheckflag 0x200if B_true goto $donemessage $aidtalkboxset 6giveitem 0x4 5setflag 0x200releaseend#org $donemessage $aidtalk2boxset 6releaseend#org $aidtalk$aidtalk 1 = Hallo! \nBist du auch ein Trainer? \pJa! \nDann hilft dir das hier weiter.#org $aidtalk2$aidtalk2 1 = Hi! \nGehts dir un deinen Pokemon gut?


    Hier gibt es eigentlich nur einen neuen befehl und zwar giveitem 0x4 5 also giveitem bedeutet das ein item abgegeben wird danach kommt die nummer des item hier ist es 0x04 das sind Pokebälle danach kommt die anzahl der bälle hier sind es 5. Und so scheibt man es dann.


    giveitem [item] [anzahl]


    Hier ist mal eine Liste mit den nummern aller items:
    Die meisten sind noch in English ich habe nur ein paar davon bisher übersetzt.


    4. Givepokemon / Gebepokemon


    Ein Givepokemon Script ähnelt einem giveitem aber jetzt kommt erstmal ein beispiel Script.



    Hier gibts wieder nur einen neuen code und zwar givepokemon 1 5 0. Den erklär ich euch mal. Also am anfang steht givepokemon danach das Level und dann das zu tragende item. so in wird das geschrieben.


    givepokemon [Pokemon nummer] [Level] [item zu tragen]


    Die item codes könnt ihr oben nachsehen isz ja klar hier sind dan mal die für die Pokemon.
    Die Namen sind wieder in English ihr könnt aber jeden Name bei Bisafans im Pokedex nachgucken.^^



    Das war jetzt ein einfachher givepokemon befehl, den man natürlich noch verbessern kANN damit das man den Pokemon ein nicknamen geben kann oder ein pokemon bild anzeigen lassen aber das lernt man im teil der vortgeschrittenen.^^

  • 5. Applymovement


    Jetzt werde ich zu einem der wichtigsten teile (meines erachtens) beim scripten kommen ich zhäle diesen Teil einfach mal zu den Standarts man kann es narürlich auch anders sehen. Es bringt nämlich das sich ows bewegen können.


    Hier ist erstmal ein beispiel script. Für die Smaragd da ich die bevorzugt Hacke^^


    Code
    #org $beginlockfaceplayercheckflag 0x200if b_true goto $doneapplymovement 0xFF $move1applymovement 0x01 $move1pausemove 0x0message $1boxset 6releaseend#org $donereleaseend#org $1$1 1 =Warum gehst du mir \nhinter her???#org $move1#raw 0x16 0xFE


    So jetzt sind mehrere neue befehle hinzu gekommen.


    applymovement 0xFF
    applymovement 0x01
    pausemove 0x0
    #raw 0x16 0xFE


    Jetzt erkläre ich euch eins nachdem anderen


    applymovement 0xFF : sagt das sich was bewegen will wobei dann 0xFF der sich zu bewegene ow ist das wird mit der nummer da hinter gemacht und zwar 0x01 das wäre dann der ow mit der nummer 1 der sich bewegen würde (ihr nehmt erstmal nur die nummern 1-9 im vortgeschrittenen teil erzähle ich warum) aber jetzt denkt ihr sicher die nummer 0xFF? 0xFF ist der Hero also würde man sich dabei selber bewegen. Damit er weiß wie man sich bewegen muss geht er zum pointer wo die bewegngen stehen.
    applymovement 0x01 : wie oben er bewegt den ow mit der nummer 1.
    pausemove 0x0 : dieser befehl wartet darauf das die applymovements zu ende gehen erst dann kann der script weitergehen. es gibt aber auch noch pause 0x10 das würdde dann warten biss die 1 bewegung zu ende ist und dann würde es erst weitergehen ihr müsst das dann so machen bei 2 wartenen bewugen 0x20 bei 3 0x30 usw. Achtung!!! wenn ihr pausemove schreibt passt auf das ihr nicht pausenmove schreibt das passiert mir nämlich jedes mal ^^
    #raw 0x16 0xFE : so das sind jetzt die befehle zum bewegen also 0x16 ist eigentich ein einfachher schritt nach oben hier mal eine liste mit applymovement befehlen



    so ihr werdet gesehen haben das da kein 0xFE steht. 0xFE ist auch dazu da das das bewegen zu ende ist schreibt man dahin kein 0xFE wird sich das spiel aufhängen.


    so das war es aber erstmal mit dem applymovement.


    6.Script


    Bisher habt ihr alles immer bei einer Person euren script hingeschrieben aber wenn ihr wollt das der Script startet wenn ihr auf ein bestimmtes feld geht müsst ihr folgendes machen.


    1. ein neues script feld in Am machen
    2. Euer Offset Reinschreiben
    3.[wichtig] Die Var-Nummer auf 4050 stellen oder auf 5040
    4.[wichtig] Unbekannt auf 0003 stellen oder auf 0300


    der Script wird sich aber nicht aktivieren wenn ihr in vor eine tür stellt und dann da rauskommt das macht man nämlich mit Levelscripts.


    Nachwort
    So das waren jetzt die standart Befehle beim scripten so wie ich das sehe wenn ihr mehr lernen wollt lest euch den nächsten Teil durch der für Fortgeschrittene ist.
    Ach ja für Anfänger ihr solltet stehts euren script im editor selbst schreiben ich rate euch von programmen wie ASC ab ich selbst benutze sowas nicht es ist besser immer selbst zu schreiben so lernt man oder verbessert sein script können.



    5. Scripten für Fortgeschrittene


    Achtung!!! lest euch diesen Teil nicht durch wenn ihr nichts der obrigen sachen könnt sonst werdet ihr früher oder später viele Probleme bekommen.


    1.#raw
    Wir werden jetzt immer mehr mit #raw s zu tuen bekommen also erkläre ich euch was das überhaupt ist/sind.


    #raws sind um es auszudrücken eigentlich die direkt bezogenen befehle zum Hexededitor. Also wenn wir schreiben #raw 0xblablabla schreiben wir in Hex. Mehr kann ich eigentlich dazu nicht sagen.


    2. Umrechnen


    Also bei applymovement sagte ich ja schon das man nur nummern bis neun nehmen soll weil man das in hex schreiben muss und da gehen die zahlen 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 11 12 13 14 15 16 usw.
    also wenn ihr die zehnte person nehmen wollt müsst ihr 0A schreiben


    Manchmal müssen wir die nummer ganz umschreiben also wenn eine nummer z.b. 3abc4 ist müssen wir es so schreiben


    0xc4 0x3a


    ihr müsst das einfach so denken das die letzen zwei zahlen nach vorne kommen und die anderen nach hinten hier noch ein beispiel.
    0003


    0x03 0x00


    so das wars mit dem umrechenen hab kein besseren namen dafür gefunden.


    3.Wildbattle / Wilderkampf
    Ich hier mal wilbattle hingehtan man kann es zwar auch zu anfänger tun nur es hat bei mir noch nie Funktioniert!!!


    Code
    #org $startlockfaceplayermessage $1boxset 6cry 0xA1 6nopnopwildbattle 6 40 0fadescreen 0#raw 0x53 0x0F 0x80setflag 0x200releaseend#org $1$1 1 = Glurak: Raaaarrrgghh


    So das hier ist ein wildbattle mit einem Glurak jetzt erklär ich euch mal neue befehle.


    cry 0xA1 6: Ok erstmal will ich was dazu sagen nämlich in Hex braucht dieser Befehl 6 bytes aber dieser befehl braucht nur 4 bytes. Wie muss man das jetzt füllen? Dafür nehmen wir jetzt einfach nop. Jetzt erklär ich den Befehl. Also erstes schreibt man cry danach muss man die "Pokemon cry Bank" schreiben sie wird 0xA1 angeschrieben. Danach kommt das Pokemon. ups jetzt hab ich gar niicht gesagt was der befehl macht er macht das der ruf des Pokemon kommt.
    code:
    cry [bank] [pkmn] [pkmn]
    nop
    nop


    nop: nop ist hierbei der buffer er füllt die fehlen bytes die pokescript nicht hat.
    wildbattle 6 40 0: Dieser Befehl ist der wildbatle man schreibt ihn so.
    code:
    wildbattle [pkmn] [Level] [item]


    Das müsste man eigentlich verstehen erst die pkmn nummer dann die level zahl und die item nummer.


    Fadescreen 0: Dieser Befehl lässt den Bildschirm kurz schwarz werden lassen. Wenn man aber will das der Bildschirm länger schwarz ist muss man erst fadescreen 0x0 schreiben aber wenn man wieder will das der Bildschirm nicht mehr schwarz ist muss man fadescreen 0x1 schreiben.


    #raw 0x53 0x0F 0x80: Was #raw ist müsstet ihr eigentlich wissen. Richtig wir schreiben in Hex. dieser Befehl läst einfach den letzden OW vom Bildschirm verschwinden, der aber nach einen Schritt wieder erscheint aber wenn ihr wollt das er weiterhin weg nicht auf dem Bildschirm zu sehen ist müsst ihr bei der per-id die flag eintragen.


    4. Hidesprite and Showsprite / versteckesprite und zeigesprite


    Es ist zwar doof aber ich hab gesagt das ich zu allem ein beispiel Script schreibe -.-


    Code
    #org $beginlockfaceplayermessage $1boxset 6#raw 0x53 0x01 0x00message $2boxset 6#raw 0x55 0x01 0x00releaseend#org $1$1 1 =Du siehst mich nicht!#org $2$2 1 =Du siehst mich!


    So jetzt kommen wir zum ersten mal zum Umrechnen.
    Der Befehl #raw 0x53 lässt den OW verschwinden und der Befehl #raw 0x55 lässt den OW erscheinen. Aber dahinter müssen wir dann nur die umgerechnete person nummer schreiben und aufpassen wir ihr wieder über 9 die nummer schreibt^^.


    5. Checkgender / überprüfegeschlecht


    Jetzt setzen wir grenzen Zwischen mänlich und weiblich^^.


    Code
    #org $startlockfaceplayercheckgendercompare LASTRESULT 0x0if b_true goto $boycompare LASTRESULT 0x1if b_true goto $girlend#org $boymessage $1boxset 6releaseend#org $girlmessage $2boxset 6releaseend#org $1$1 1 =Hey du bist ein Junge.#org $2$2 1 =Hey du bist ein Mädchen.


    Neu
    checkgender
    compare LASTRESULT 0x0
    if b_true goto $boy
    compare LASTRESULT 0x1
    if b_true goto $girl


    checkgender: Chegender überprüft das geschlecht einfach nur.


    compare LASTRESULT 0x0
    if b_true goto $boy :Überprüft ob man ein Junge ist und wenn es stimmt geht er zum Pointer $boy


    compare LASTRESULT 0x1
    if b_true goto $girl :Überprüft ob man ein Mädchen ist und wenn es stimmt geht er zum Pointer $girl


    Bitte keine fragen stellen wie es überprüft wird^^.


    Ihr könnt es natürlich auch anders schreiben indem ihr kein girl pointer nimmt und das einfach da hinter schreibt aber mit einem bisschen grips kann man die anderen schreibweisen selbst herausfinden^^.


    6. warp und warp to position


    So hier erkläre ich euch die beiden Warp befehle mal.


    Beispiel:

    Code
    #org $beginmessage $1boxset 6warp 0x0 0x9 0x1message $2boxset 6warp 0x1 0x1 0xFF#raw 0x01 0x00 0x04 0x00releaseend#org $1$1 1 =Warp!#org $2$2 1 =Warp to position!


    Dieser Script wird warscheinlich nicht funktionieren soll aber auch nur so sein. -.-


    Als erstes erkläre ich euch den normalen warp befehl. Er ist so aufgebaut.
    code:
    warp [map bank] [map nummer] [warp nummer]


    Die nummern könnt ihr ganz leicht in AM(Advance Map) heraus finden.die Map Bank ist der Ordner bei Header die haben ja zahlen die Map nummer ist die Zahl die bei der map hinter dem Namen hinter dem Punkt steht also z.b. bei WURZELHEIM (0.9) ist 0 die Map Bank und 9 die Map nummer. Die Warp nummer dafür müsst ihr bei Events klicke dein ein Warp feld auswählen und dann steht da auch schon nummer.^^


    So jetzt komm ich zu warp to position. Es wird so geschrieben.
    code:
    warp [map bank] [map nummer] 0xFF
    #raw [X-Koordinate] [<nochmal] [Y-Koordinate] [<nochmal]


    Also map bank und map nummer sind bekannt aber 0xFF nicht. 0xFF besagt einfach das ein warp zu einer Position ansteht. Jetzt kommen wir zu dem #raw hinter #raw schreiben wir erstmal die x-koordinate und danach die y-koordinate. aber hier müssen wir wieder Umrechnen also wenn die x-koordinate z.b. 5 ist ist sie 0005 und dann müssen wir es 0x05 0x00 schreiben. Das gleiche ist auch mit y-Koordinaten. So nun ist nur noch die Frage woher bekommt man diese Daten und diese gibt es wieder in AM (denkt ihr jetzt nicht auch was für ein tolles Programm AM ist man müsste Lu-Ho ehren) dafür müsst ihr mit der Maus einfach auf das Feld gehen und dann steht alles unten links in der Ecke.


    7.Special


    Specials sind einfach nur spezielle sachen die passieren z.b. pokemon heilen.


    Code
    #org $beginlockfaceplayermessage $10boxset 4#raw 0x68fadescreen 0x1fanfare 0x100special 0x0waitfanfarefadescreen 0x0message $11boxset 6releaseend#org $10$10 1 =Deine Pokemon sehen müde aus. \nIch heil sie kurz#org $11$11 1 =Jetzt sehen sie schon \nviel besser aus.


    so jetzt kommen mal mehrere neue Befehle.


    So als erstes erklär ich boxset 4. Das benutzen wir hier weil wenn wir boxset 6 benutzen würden würde sie sich nicht beim fadescreen schließen sondern offen bleiben. damit das mit boxset 4 auch richtig passiert brauchen wir #raw 68 dann wird sich die textbox schließen bevor es scwarz wird.


    Jetzt komm ich zu fanfare und waitfanfare. Fanfare lässt einen Ton ertönen hierbei ist es das wenn Pokemon geheilt wird.
    Ich hab immoment noch keine Liste für die tönne wenn ich eine finde editiere ich es hier rein. wenn ihr eine kennt oder habt schickt mir bitte eine pn ihr werdet dann auch erwähnt.


    waitfanfare wartet einfach bis der ton vorrüber ist und dann geht der Script erst weiter.


    Jetzt komm ich zu special. special 0x0 ist dafür da um die Pokemon zu heilen es gibt vieleverschiedene specials alle mit anderen auswirkungen hier mal eine Liste.



    8. Trainerbattle / Trainerkampf


    Jetzt kommen wir zu den Trainerbattles das gute an denen ist das man hier keine Flags braucht. Toll nicht.^^


    Code
    #org $begintrainerbattle 0 0x001 $before $aftermessage $1boxset 6releaseend#org $before$before 1 = Lust zu kämpfen?!#org $after$after 1 = Wie konnte das nur passieren.#org $1$beaten 1 = Diese niedalage war \neine Schande für mich!!


    Nur ein neuer Befehl den ich schnell erkläre.
    code:
    trainerbattle [der Typ des Kampfes] [Trainer id] [Nachricht vor dem Kampf] [Nachricht nach dem Kampf]


    Der typ des Kampfes ist einfach nur da um zu gucken ob es ein normaler, doppel, Arenaleiter .... kampf ist. 0 ist einfach ein normaler Kampf. Die Trainer id könnt ihr ganz einfach mit pet herausfinden einfach die Rom in Pet laden und dann stehen die schon links.Dann kommt die Nachricht vor dem Kampf das ist der nachdem der Ow vor eienem steht die nachricht müsst ihr dann beim Pointer hinschreiben. Jetzt kommt die Nachricht nach dem Kampf das ist die nachdem man gewonnen hat.


    ach ja ihr müsst immer nach trainerbattle also dem ganzen befehl noch ne message machen die kommt dann wenn ihr den trainer nochmal anspricht.


    Dami dieser script klappt müsst ihr aber bei AM die richtigen einstellungen machen. einfach häckchen bei trainer und was da noch steht müsste ma eigetlich selber verstehen.



    Code
    #org $beginlockfaceplayercheckflag 0x867if b_true goto $donemessage $2boxset 6trainerbattle 1 0x001 $before $after $laterend#org $before$before 1 =Zeig mir was du kannst!#org $after$after 1 =Herzlichen Glückwunsch.#org $latermessage $3boxset 6fanfare 0x13Emessage $4boxset 4waitfanfare#raw 0x68message $5boxset 6giveitem 0x147 1setflag 0x867releaseend#org $donemessage $1boxset 6releaseend#org $1$1 1 =Du brauchst noch ein paar \nOrden für die Poke. Liga.#org $2$2 1 =Willkommen zu meiner Arena \nDu willst mich also herausfodern.#org $3$3 1 =Herzlichen GLückwunsch \nDu kriegst dafür diesen Orden.#org $4$4 1 =Du kriegst einen Orden.#org $5$5 1 =Ach ja nimm bitte das.


    Erstmal hierfür muss kein häckchen bei Trainer gemacht werden.


    An dem Trainer Battle sind zwei Sachen anders. Die 0 wurde zu einer 1 das heißt es ist ein Arenakampf. und jetzt gibt es noch einen dritten Pointer und zwar das $later dieser Pointer führt aber nicht zu einem Text er ist nämlich für das geschehen nach dem Script ab da geht der Script nach dem Kampf weiter.


    Ihr könnt einen arenakampf auch einfach zu einem Kampf hinter dem was geschehen soll hab ich schon ausprobiert.


    9. Ja/Nein Box


    Da ich es bisher noch nicht erwähnt hatte und glaub ich auch nicht mehr erwähne komm ich jetzt schnell dazu.


    Code
    #org $begin lockfaceplayermessage $1boxset 5compare LASTRESULT 0x1if 0x1 goto $jareleaseend#org $1$1 1 =Ja oder Nein#org $jamessage $2boxset 6releaseend#org $2$2 1 = du hast ja gedrückt


    Das ist eigentlich ganz leicht ihr müsst einfach nur boxset 5 schreiben und danach zum überprüfen compare Lastresult kennen wir ja von checkgender.


    10. Countpokemon


    Countpokemon ist dafür da um die anzahl an pokemon im Team zu überprüfen hier ein beispiel script.


    Code
    #org $beginlockfaceplayercountpokemoncompare LASTRESULT 0x1if b_>> goto $continuemessage $1boxset 6releaseend#org $continuemessage $2boxset 6releaseend#org $1$1 1 =Du hast weniger als ein \nPokemon???#org $2$2 1 =Du hast mehr als \nein Pokemon.


    ok das ist leicht.
    Als erstes wird countpokemon geschrieben darunter compare LASTRESULT und dahinter die anzahl der pokemon die man überprüfen will. Hiernach kommt dann eine if abfrage.
    Hier ist was anders diesmal steht da b_>> das > kennt man ja von Mathe unterricht das Größer zeichen. Das hier heißt soviel wie wenn das vorige größer ist gehe zu und dann kommt der Pointer. Es gibt nochmehr solcher Befehle ich liste sie mal auf.


    B_<< Kleiner als
    B_== Gleichgroß
    B_>> Größer als
    B_<= kleiner oder genau gleich
    B_>= größer oder genau gleich
    B_!= nicht genau gleich


    11.Weather Commands / Wetter Kommandos


    Ok wenn man mal wieder Gotteskomplexe hat kann man auch übers Wetter in seiner Rom bestimmen.^^
    Und wieder ein beispiel Script (man wie das nervt -.-)


    Code
    #org $startcheckflag 0x201if b_true goto $donemessage $1boxset 6message $2boxset 6setweather 0xB#raw 0x00doweathersetflag 0x201releaseend#org $donereleaseend#org $1$1 1 =???: Los Zwirrklop \nNachtnebel#org $2$2 1 = ZWIRRKLOP: Zwir-Zwir


    Was ist neu na
    setweather 0xB
    #raw 0x00
    doweather


    Setweather setzt das wetter und doweather führt es dann aus eigentlich leicht oder? setweather wird so geschrieben.


    code:
    setweather [wetter typ]
    raw 0x00


    raw 0x00 wird geschrieben wie bei cry oder nop nur die kann man hier nicht benutzen grund kenn ich nicht genau. Ach ja das füllt 2 bytes.


    hier folgt noch eine liste mit verschiedenen wetter arten.


    12. Giveeg /gebe ei


    Wie der Name schon sagt verschenken wir ein Ei


    Beispiel

    Code
    #org $beginlock faceplayer#raw 0x7a 0x01 0x00releaseend


    Ok der Beffehl dafür ist eigentlich nur #raw 0x7a und danach kommt die nummer des pokemon in hexzahlen.


    13. Pokemart / pokemonmarkt


    So hier mal kommt jetzt wie mann/frau seinen eigenen pokemonmarkt macht.


    Code
    #org $beginlockfaceplayerpokemart $marktreleaseend#org $markt#binary int 0x1 0x0


    So hier könnte man nur einen Meisterball kaufen ziemlich doof.
    Der Befehl wird einfach geschrieben


    code:
    pokemart [pointer]


    dann schreibt man bei #binary int die zu verkaufenen items (liste siehe giveitem) man muss als letztes dan noch 0x0 schreiben sonst würde es nicht funktionieren.


    14. Change message colour / nachrichten farbe wechseln


    nicht schwer -.-

    Code
    #org $beginlockfaceplayer#raw 0xC7 0x02message $1boxset 6releaseend#org $1$1 1 =Das ist schwarz. \nnein ich bin kein Rassist!!!


    Der Befehl ist leicht man schreibt #raw 0xC7 und danach die Farben nummer.


    Blau = 0x00
    Rot= 0x01
    Schwarz= 0x02


    dies schreibt man vor message.
    Eigentlich war es das.


    15. Dontfaceplayer / nichtfaceplayer


    Hier sag ich nur den Befehl den er ist eigentlich nutzlos #raw 0x75 er sorgt dafür das der spieler einen nicht anguckt.


    16. Pokepic and closepokepic / Pokebild und pokebild schließen


    Ihr kennt sicher die tollen pokemon bilder jetzt erklär ich euch wie man die in einer rom anzeigen lässt.


    Code
    #org $beginlockfaceplayercheckflag 0x200if b_true goto $done#raw 0x75 0x01 0x00 0x0A 0x03message $1boxset 5compare Lastresult 0x1If b_true goto $done2#raw 0x76releaseend#org $donemessage $2boxset 6releaseend#org $done2setflag 0x200message $3boxset 6#raw 0x53 0x0F 0x80givepokemon 1 5 0#raw 0x76releaseend#org $1$1 1 =willst du ein \nBisasam?#org $2$2 1 =Nur eins!!!#org $3$3 1 =Herzlichen Glückwunsch \ndu hast ein Pokemon erhalten.


    okay Die Befehle sind
    öffnet bild
    #raw 0x75 0x01 0x00 0x0A 0x03
    und
    schließt Bild
    #raw 0x76


    okay erst erkläre ich wie man das Bild öffnet.


    code:
    #raw 0x75 [pokemon] [pokemon] [x-Kooardinate] [y-Koordinate]


    gut wie das mit dem Pokemon geht müsstet ihr eigentlich wissen die x- und y- Koordinate für die mitte sind 0x0A und 0x03 die anderen könnt ihr selbst rausfinden.


    So das mit dem Bild schießen schreibt man nur
    #raw 0x76
    sonst würde das bild offen bleiben.


    Das wars eigentlich mit dem bild.


    17. Setmaptile / setzenmaptile


    Beispiel: zum glück find ich immoment von mir verworfene Scripts als beispiel ^^

    Code
    #org $beginsetmaptile 0xA 0xD 0xD 0x0special 0x8Efadescreen 0releaseend


    also ich erklär mal setmaptile (der befehl setzt das tile).


    code:
    setmaptile [x-Kooardinate] [y-Koordinate] [Tile nummer] [Begehbar?]


    x- und y- Koordinate müssten wir jetzt eigentlich schon wissen. Die Tile nummer könnt ihr ganz leicht in AM herrausfinden einfach mit der Maus auf ein tile gehen und unten links stehet die nummer. Begehbar oder nicht begehbar zu bestimmen ist auch leicht 0x0 ist begehbar und 0x1 ist nicht begehbar.
    so das müste eigentlich verstanden worden sein.


    jetzt sag ich noch special 0x8E der Befehl soll den bildschirm resseten. Aber wenn ich ehrlich bin es hat bei mir noch nie geklappt.^^ vielleicht habt ihr mehr glück.


    18. special Trainer Commands / Spezial Trainer kommando


    Code
    #org $beginlock faceplayer#raw 0x60 0x01 0x00compare Lastresult 0x1if b_true goto $done#raw 0x61 0x01 0x00releaseend#org $done#raw 0x62 0x01 0x00releaseend


    So dieser Script überprüft erst ob man gegen den Trainer mit id 0001 gekämpft wenn es stimmt dan kann man wieder gegen ihn kämpfen wenn es nicht stimmt wird es so makiert als ob man gegen ihn schon gekämpft hat.
    Die beispiel trainer id ist hier 0001 man kann man muss die zahlen wieder umstellen.


    alle befehle sind so aufgebaut:


    code:
    #raw[eins der drei] [trainer id] [trainer id]


    #raw 0x60 checkt ob man gegen den trainer schon gewonnen hat.
    #raw 0x61 sagt einfach das man gewonnen hat.
    #raw 0x62 löst das gewonnene auf und mann kann noch mal gegen ihn kämpfen.


    Das wars eigentlich schon.


    19. Randomisation / zufall


    Hiermit kann man die rom eine zuffälige zahl machen von 0x0 bis zur angegebenen. das bezieht sich dann auf lastresult oder auch 0x800D was eigentlich das gleiche bedeutet.
    Aber jetzt erstmal ein beispiel.



    Der Befehl #raw 0x8F ist alles danach kommt der Wert umgedreht.
    Bei if 0x1 goto bedeutet 0x1 einfach nur true 0x0 würde dann false sein.

  • 20. Movesprite


    Zwar hab ich das noch nie ausprobiert aber eigentlich auch egal. Es bewierkt das sich ein Sprite bewegt.


    Code
    #org $beginlockfaceplayermovesprite 0x1 0x5 0x5releaseend


    Gut der code ist.
    code:
    movesprite [personen nummer] [x-Koordinate] [y-Koordinate]


    nichts neues das kennt ihr doch alles also muss ich das nicht mehr erklären.


    21. Erdbeben
    Dies ist nur für LF/FR und nur ein befehl zum erdbeben was was ist weiß ich nicht also hier nur der code.


    #raw 0x2F 0x4B 0x01
    setvar 0x8004 0x0
    setvar 0x8005 0x3
    setvar 0x8006 0x9
    setvar 0x8007 0x2
    special 0x136
    pause 0x9


    22.checkitem / removeitem überprüftitem nimmt item
    der name sagt alles


    Code
    #org $beginlockfaceplayercheckitem 0x1#raw 0x01 0x00compare 0x800D 0x1if b_true goto $doneremoveitem 0x1 0x1releaseend#org $donereleaseend


    Okay jetzt müsste man eigentlich schon viel wissen deswegenn erklär ich nicht mehr viel rum.


    checkitem hört sich leicht an ein befehl der items überprüft. Aber dummer weise ist dieser Befehl falsch in pokescript geschrieben deswegen muss man noch einen #raw Befehl schreiben.
    So wird der Befehl geschrieben.


    Code:
    checkitem [item nummer]
    #raw [item Anzahl in Hex]


    Danach kommt dann wieder ein compare 0x800D dabei überprüft 0x1 ob man das item hat und 0x0 ob man es nicht hat.


    Removeitem entfernt einfach das item item zum Gück ist der Befehl richtig geschrieben^^.
    Er wird so angeschrieben:


    Code:
    removeitem [item nummer] [Anzahl der items]


    So das wars auch schon mit den zwei Befehlen.


    23. if xxxxx
    Das hier wird nur eine erklärung deswegen kein Beispiel Script.


    Ich hatte ja schon mal diese größer kleiner Sachen bei if erklärt aber man kann das auch einfach mit nummern schreiben.
    Siehe hier:


    B_<< Kleiner als = 0x0 (b_false)
    B_== Gleichgroß = 0x1 (b_true)
    B_>> Größer als= 0x2
    B_<= kleiner oder genau gleich = 0x3
    B_>= größer oder genau gleich = 0x4
    B_!= nicht genau gleich = 0x5


    zahlen sind einfachher zu schreiben also merkt euch die befehle.


    24. Money Commands / Geld kommandos


    Hier werd ich jetzt viele Geld kommandos erklären also nehmt euch mal was Zeit^^.
    Ein beispiel Script werd ich jetzt mal nicht angeben da man das jetzt eigentlich von selbst machen kann.


    Die Befehle sind
    givemoney
    takemoney
    checkmoney
    Showmoneybox
    Hidemoneybox
    updatemoneybox


    1. Givemoney
    Ich fang einfach mal mit givemoney an.^^


    Der Befehl ist #raw 0x90 man schreibt es so.


    Code:
    #raw 0x90 [Geld] [Geld] [Geld] [Geld] 0x0


    Eigentlich leicht zu verstehen da wo geld steht müsst ihr aber wieder umrechnen wie das geht müsstet ihr eigentlich wissen. Bei 4 macht man das genauso wie bei zwei.^^


    2. Takemoney


    Takemoney ist #raw 0x91 er wird eigentlich genauso Geschrieben wie Givemoney.


    Code:
    #raw 0x91 [Geld] [Geld] [Geld] [Geld] 0x0


    Guckt fast gleich.


    3. checkmoney


    Der Befehl wird wieder fast gleich angeschrieben. Hat aber trotzdem unterschiede.


    Code:
    #raw 0x90 [Geld] [Geld] [Geld] [Geld] 0x0


    Der unterschied liegt nur in der bedeutung von 0x0 in den anderen fällen hat er den Geldbestand erneuert hier heißt es aber das er ihn überprüft.
    Ach ja nach dem Befehl müsst ihr noch ein compare schreiben und eine if Zeile.


    4. Showmoneybox


    Der Befehl unterscheidet sich jetzt mal da er anders angeschrieben wird.


    code:
    #raw 0x93 [X-Koordinate] [Y-Koordinate] 0x00


    Eigentlich leicht das müsstet ihr ja alles schon kennen.^^



    Hier mal ein Beispiel:
    #raw 0x93 0x00 0x00 0x00


    Dabei würde die Box oben Links in der Ecke angezeigt.


    5. Hidemoneybox


    Es wird nur etwas anders geschrieben als das voriege.
    Und zwar so:


    code:
    #raw 0x94 [X-Koordinate] [Y-Koordinate]


    Hier mal beispiel wir lassen die box die wir ebend geöffnet haben verschwinden.
    #raw 0x94 0x00 0x00


    6. Updatemoneybox


    Eigentich wieder ziemlich leicht es wird so geschrieben.


    code:
    #raw 0x95 [X-Koordinate] [Y-Koordinate] 0x00


    Wie beim vorherrigen müssen die Koordinaten dennen von Showmoney entsprechen.
    Also würde es so geschrieben:
    #raw 0x95 0x00 0x00 0x00


    So jetzt sind eigentlich die Geld befehler vorbei. ^^


    25. Door Commands / Tür kommandos


    Jezt komm ich mal zu Der Tür animation. Falls ihr es wisst wenn man ein applymovement durch eine tür macht erscheint keine animation also erklär ich mal wie man das macht das es doch funktioniert.


    Okay das sind eigentlich drei Befehle die ich euch jetzt einzelnd erkläre.


    1. Open door / Öffne Tür


    Der Befehl ist #raw 0xAC und er wird so angeschrieben.


    Code:
    #raw 0xAC [X-Koordinate] [X-Koordinate] [Y-Koordinate] [Y-Koordinate]


    Das kennen wir doch alles schon also muss ich dazu nichts mehr sagen.
    Dieser Befehl alleine würde aber in der Rom nichts bringen.


    2. Doorwait / Türwartet


    Einfach nur #raw 0xAE ihr müsst es nur nach Open door und nach close door schreiben mehr ist es nicht.


    3. Door Close / schließe Tür


    Der Befeh wird genauso angeschrieben wie open door.


    Code:
    #raw 0xAD [X-Koordinate] [X-Koordinate] [Y-Koordinate] [Y-Koordinate]


    Hier mal ein beispiel wie nachher alles hintereinander aussehen müsste. Das Beispiel ist die Tür von eichs Labor in LG/FR.


    Code
    #raw 0xAC 0x10 0x00 0x0D 0x00
    #raw 0xAE
    applymovement 0xFF $move1
    pausemove 0
    #raw 0xAD 0x10 0x00 0x0D 0x00
    #raw 0xAE
    warp 0x4 0x3 0x0



    Nachwort:
    So das wars jetzt erstmal mit dem Tut warscheinlich werde ich noch ein paar sachen später ergenzen (wenns Eldéen erlaubt^^) aber ich wollte es jetzt schon mal zeigen.^^
    (Eine Gewisse Person hat mich auch gehetzt dieses Tut zu eröffnen -.-)
    Ach ja dieses Tut darf nicht kopiert werden verlinkt schon aber nicht kopiert.
    Bei fragen pn an mich. Wenn ihr fehler gefunden habt auch pn an mich.


    Credits und Thanks:
    Also erstmal möchte ich yanbo danken das ich sein Tut übers rom einfügen kopieren durfte und dann möchte ich noch Magic_Eistee danken das er die Seite mit den Downloads gemacht hat. Ach ja ich möchte auch noch allen danken die Scripts tuts schreiben den aus dennen hab ichs gelernt^^.
    Bevor ichs vergesse möchte ich noch allen danken die mein Tut gelesen haben^^.