Tutorial Manuelles Level-Script mit XSE und AM

  • Tutorial: Manuelles Level-Script mit XSE und AM



    1. Vorwort
    2. Was wird benötigt (Programme und Vorkenntnisse)
    3. Aufbau des Scripts/wichtige Befehle
    4. Einbau des Scripts mit Advance Map
    5. Nachwort



    1. Vorwort


    Das hier ist mein erstes Tutorial überhaupt, also wenn ihr etwas nicht versteht dann schreibt es bitte hier rein.
    Ich werde aber versuchen es so leicht und ausführlich wie möglich zu erklären, aber im Prinzip ist es eigentlich nichts schweres.


    2. Was wird benötigt
    XSE (Extreme Script Editor von HackMew)
    AdvanceMap 1.92 oder 1.95 von LuHo Poke
    Ein paar Vorkenntnisse im Umgang mit XSE
    Ein Pokémon GBA ROM das ihr hacken wollt


    Da diese Programme sehr populär in der Romhacking Szene sind, findet man sie leicht bei GOOGLE. Deshalb werde ich hier keine Links reinschreiben.
    Es gibt hier sowieso schon tausende Verlinkungen also einfach mal die SuFu benutzen.


    3. Aufbau des Scripts/wichtige Befehle


    Kommen wir nun zum eigentlichen Tutorial.


    Ein Level-Script ist ein Script das an die Map gebunden ist und meistens ausgelöst wird wenn man die Map betreten will.
    Es prüft oder verändert Variabeln, verschiebt Maptiles oder löst ein Event aus.
    hierzu gibt es 6 bekannte Level-Script Typen. Ich habe sie hier mal aufgelistet:



    Das erkläre ich deshalb, weil diese Zahlen für unser Script und zur besseren Verständlichkeit sehr wichtig sind.
    Ich werde aber zunächst nur auf 02 und 04 eingehen


    Im eigentlichen Script
    brauchen wir im Prinzip nur folgende Befehle



    Das waren auch schon alle. Wie gesagt es ist wirklich nicht sehr schwer, man muss es eben nur wissen.


    Zum Aufbau:
    hierzu zunächst ein Beispiel:



    Das ist schon ein fertiges Level-Script das ein Event am Offset 0x805AA6 auslöst, wenn die Variable (flag) 0x4050 vorher auf den Wert 0x1 gesetzt wurde.


    Zur Erklärung:


    das erste "@main" script ist eine Liste der im Level-Script befindlichen Script Typen also 00 01 02 03 04 05 07
    zuerst wird der Script Typ genannt und dann ein Pointer zum Script vom Typ xx (hier 02) per "@main2" am Ende muss immer ein "#raw 00"
    stehen um anzuzeigen das das Level-Script zu ende ist.


    das zweite" @main2" Script ist das Script vom Typ xx (hier 02) auf das wir vorher mit dem Befehl "#raw pointer" gepointent haben.
    jetzt wird mit "#raw word 0x4050" festgelegt das die Variable 0x4050 auf ihren Wert überprüft wird und mit "#raw word 0x1" wird
    überprüft ob der Wert dieser Variable 0x1 ist.
    Wenn der Wert 0x1 ist dann wird zum Event-Script 0x805AA6 gepointet durch den Befehl "#raw pointer 0x8805AA6"
    Am Ende muss hier ein #raw word 0x0 stehen um auch dieses Script zu beenden oder anders ausgedrückt das Ende zu markieren,
    ähnlich wie bei den Movements "#raw 0xFE"
    Und das wars auch eigentlich schon. Wer das verstanden hat der kann auf kompilieren drücken :D


    4. Einbau des Scripts mit Advance Map


    Jetzt brauchen wir nur noch im Map-Header den Pointer zum Level-Script zu ändern.


    dazu öffnen wir zunächst Advance Map (1.92 oder 1.95 ist egal) und öffnen dann die Map auf der wir ein Level-Script einfügen wollen.


    jetzt gehen wir auf den Reiter "Header" und drücken die Kombination "Strg + H" auf der Tastatur. Jetzt sollte sich die Ansicht des Map-Headers verändert haben.


    Er sollte jetzt so aus sehen (ist Advance Map 1.92 ist in 1.95 aber in etwa genauso)


    [IMG:http://img5.fotos-hochladen.net/uploads/mapheadercmjf45nkdy.png]


    Hier tragen wir jetzt in "MapScript- Offset" das Offset rein das uns XSE nach dem kompilieren unter @main (oder welches Wort ihr gewählt habt) ausgespuckt hat.
    Jetzt drücken wir noch auf Speichern und Map neu laden und dann sind wir auch schon fertig :)


    5. Nachwort


    Ich hoffe mein Tutorial hat euch gefallen und ihr habt soweit alles Verstanden.
    Ich weiß das man es sicher noch besser machen könnte aber ich bin noch nicht so erfahren im schreiben von Tutorials und wenn euch etwas auffällt,
    schreibt es einfach hier rein und ich werde es überarbeiten.


    Dieses Tutorial darf kopiert werden aber gebt bitte meinen Namen an!

  • Verständlich und das erste Tut was sich mit dem Befasst (wenn ich mich nicht irre^^).


    Solltest vieleicht noch hinzufügen wie mann mehrere Levelscript´s nutzt ;)


    -SoulK3

    ------------------------------------------------------------------------------------
    ~ ~ ~ SoulK3 ~ ~ ~


    :thumbsup: Wer Rechtschreibfehler findet darf sie gerne Behalten :thumbsup:


    Drei Menschen können ein Geheimnis bewahren.
    Wenn Zwei von ihnen Tot sind.
    :evil:
    ------------------------------------------------------------------------------------