Script editor PKSV-UI Weiterführung

  • 1.0 Vorwort:
    Dieses Tutorial setzt das bereits existierende Tutorial von ShinyGiratina fort da
    meiner Meinung nach der PSKV-Editor aber in Sachen Anfängerfreundlichkeit und Syntaxhervorhebung( Bestimmte Wörter und Zeichenkombinationen in einem Text abhängig von ihrer Bedeutung in unterschiedlichen Farben darzustellen. ) dem XSE weit voraus ist werde ich das Tutorial weiterführen.
    1.1 Meine Einstellungen in PSKV-UI

    2.0 Basic-Scripting
    2.1 Der Anfang




    Bevor man mit irgendeiner Funktion beginnen kann muss folgendes stehen:



    Code
    1. #dyn 0x800000#org @start




    Also nochmal im Detail:



    Das heißt dass das Script das Offset 800000 benutzt das Offset wird später beim Importieren in
    Advance map sehr wichtig sein! Wenn ihr keine Ahnung habt welches Offset ihr
    benutzen sollt benutzt 740000 (also 0x740000) da sich dieses automatisch ein
    freies Offset sucht (wenn also 740000 benutzt ist sucht es das nächste
    unbenutzte, 750001 zum Beispiel!)

    Code
    1. #dyn 0x800000






    Das wird
    benötigt um das richtige Start-Offset zu finden (start kann durch eine beliebige
    Zeichenfolge ersetzt werden!)

    Code
    1. #org @start






    2.2 Hallo Welt! / Eine einfache Nachricht



    Hier gibt es zwei Vorgehensweisen, über den Script-Generator oder von Hand




    2.2.1 Der Script-Generator


    Den Script-Generator könnt ihr Ganz einfach aufrufen indem ihr auf das Blatt mit dem Stift klickt!



    Dann öffnet sich ein Fenster indem ihr einige Optionen habt unteranderem: Person Talking, darauf klickt ihr und bekommt ein Fenster Bei dem ihr Text eingeben könnt.
    Es gibt einige "Add-Ons" für den text:


    Danach kommt ein Fenster dass die Auswahl der TextBox ermöglicht. Hier seht ihr was die einzelnen Optionen bedeuten:


    2.2.1 Von Hand
    Erst einmal das Komplett-Skript:


    Im Detail:

    Code
    1. lock


    Lock verhindert dass sich der Spieler eigenständig bewegen kann (applymovement funktioniert trotzdem!

    Code
    1. faceplayer


    Lässt das Event zum Spieler schauen (NUR BEI PERSONEN VERWENDEN! SONST PASSIERT ES DASS DAS SPIEL EINFRIERT! )

    Code
    1. msgbox @text


    Das Kommando um eine TextBox zu öffnen (text kann durch eine beliebige Zeichenfolge ersetzt werden!)

    Code
    1. callstd MSG_NORMAl


    Definiert den Typ der Nachricht. Hier eine Liste:


    Code
    1. realease


    Gegenteil von lock. Macht es dem Spieler wieder möglich sich zu bewegen

    Code
    1. end

    Beendet das Script. (Vergesst NIE "end" EINZUFÜGEN ODER EUER GAME CRASHT! )

    Code
    1. #org @text= Lala


    Definiert @text mit "Lala" (nach = immer ein Leerzeichen!)
    So dass sollte euer erstes Text-Script sein jetzt Seht ihr wie ihr es in Advance map bringt!
    3.0 Importieren in Advance Map
    Öffnet euer Rom dazu geht ihr auf rom---> Open Rom
    Dann drückt ihr auf das eingekreiste Zahnrad

    Als nächstes sucht ihr den Compiler log nach Errors. Wenn ihr ganz unten seid wird #org: data stehen und danach die Offsets dort kopiert ihr Das Erste Offset (die Zahlen nach 0x)

    Jetzt geht ihr in Advance Map und in die Map die ihr wollt, ins Events Tab und klickt auf die Person/Das Schild/Das Script die/das das Script bekommen soll. (Neue Personen könnt ihr bei Eventmenge hinzufügen) Fügt das Offset ein lasst aber lasst die ersten 2 Nullen. (Bei Advance Map 1.9.2 könnt ihr alle Nullen löschen!)

    Dann drückt ihr auf Script öffnen und schaut ob es richtig ist. WENN NICHT IST EIN FEHLER IM SCRIPT! Schaut im Compiler log nach!
    Hier mein das Ergebnis (Habe Lala mit Test vertauscht)


    4.0 Flags
    4.1 Was sind Flags?

    Flags sind Werte im Spiel gespeichert werden. Sehr nützlich für Events die nur einmal passieren sollen.
    Hier gibt es 2 Scriptgenerator vorlagen Flag Skeleton 1&2 Welche das gleiche sind nur anders geschrieben sind!
    4.2 Ziel:
    Eine Person die immer abwechselnd sagt "Dialgia ist cool!" und dann "Mewtu ist cooler"
    4.3 Umsetzung:
    Geht auf Skript-generator und dann auf Flag Skeleton 1! Dann Klickt auf Flags und dann scrollt bis ganz nach unten um zu sehen welcher der letzte benutzte Flag ist dann schreibt in die TextBox eine höhere Zahl (bei mir 900!) Selektiert es und schreibt rechts Name und Bedeutung hinein. Dann klickt Close und gebt das entsprechende in den Textfeld ein (0x900 bei mir) dann klickt auf Ok.
    Für mein Beispiel füge ich noch

    Code
    1. clearflag 0x900


    ein um die Flag wieder zurückzusetzen

    Code
    1. if


    wenn

    Code
    1. true


    richtig

    Code
    1. jump @flag-2


    dann springe zu @flag-2

    Code
    1. msgbox @flag-1-msgcallstd MSG_NOCLOSEsetflag 0x900releaseend


    wenn nicht ...

    Code
    1. checkflag setflag


    Sollten verständlich sein (Überprüfen und setzten)
    Schafft ihr es den Text zu ersetzen? Wenn nicht scrollt nochmal hoch zu Hallo Welt.
    Also hier ist das End-Produkt:

    5.0 addpokemon,checkgender,compare,storepokemon

    Code
    1. #dyn 0x740000'-----------------------------------#org @startlockfaceplayercheckgendercompare LASTRESULT BOYif == jump 0x874002E ' Equal Toaddpokemon NIDOQUEEN 0x5 0 0 0 0storefirstpokemon NIDOQUEENend#org 0x8740039#org@start'-----------------------------------addpokemon NIDOKING 0x5 0 0 0 0storepokemon NIDOKINGend


    Im detail:

    Code
    1. checkgendercompare LASTRESULT BOYif == jump 0x874002E


    checkgender -schreiben des Geschlechtes in LASTRESULT
    compare LASTRESULT BOY überprüfen ob in LASTRESULT BOY also Junge steht
    if == jump 0x874002E wenn positiv(wenn nicht dann nächste Zeile) dann springe zu 0x874002E (normallerweise @Junge ;) )
    Jetzt weiter:

    Code
    1. addpokemon NIDOQUEEN 0x5 0 0 0 0storepokemon NIDOQUEEN


    addpokemon NIDOQUEEN 0x5 0 0 0 0 Pokémon Level5 ohne Items hinzufügen
    storepokemon NIDOQUEEN speichert das Pokémon
    Resultat:


  • bitte passe die Formatierung, insbesondere die Schriftgröße, noch etwas an. So wirkt es jedenfalls etwas unübersichtlich...

    Users[4939].postCount++;


    • Weltherrschafts AG in Cooperation mit Weltuntergangs GmbH:
      "Wir sorgen dafür, dass sie sich keine Sorgen um Morgen machen müssen!"