Ergebnis 1 bis 20 von 57

Thema: Tutorial Sammelthread

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Miniguide RPG Maker 2003 Kampfsystem Eventscripting:

    Frage: Was ist das hier?
    Eine kleine anschauliche Demonstration die helfen soll zu verstehen, wie und wo man im 2k3 KS ansetzen kann um eigene Dinge zu implementieren.
    Die relevanten Fragen sind:

    • Was passiert
    • Wann passiert es
    • Unter welchen Bedingungen passiert es

    Was passiert?
    Irgend ein Makereventcode. Was genau ausgeführt wird ist nachher Sache des Erstellers.
    Wann passiert es?
    Hier geht um um die Reihenfolge der Eventcodeausführungen, dargestellt als Blockflussdiagramm.
    Unter welchen Bedingungen passiert es?
    Gezieltes aktivieren von Eventcode.

    Verwendete Blocksyntax:


    Dieser Block steht für die Handlung der Spielfigur im KS selbst. Damit ist ganz spezifisch zB der Angriff gemeint, nicht die Zielauswahl.

    Dieser Block steht für die Auswahl der Handlungen Fight(Nahkampf) und Skill(Talente und Fähigkeiten). Eingeschlossen sind Auswahl von Talent und Ziel.

    Dieser Block steht für die Auswahl der Handlungen Defend(Verteidigen) und Item(Gegenstand verwenden). Eingeschlossen sind Auswahl von Gegenstand und Ziel.

    Fight+Skill und Defend+Item sind aus gutem Grund zusammengefasst, dazu mehr später.

    Beispiel: Simple Kampfhandlung

    1. Der Spieler wählt Fight und ein Ziel.
    2. Der Charakter greift das Ziel an.


    Eventcodeblöcke:

    Dieser Block steht für eine Eventcodeseite in den Monstergroups, die mit einer [Charakter] use [Action] Bedingung versehen ist, beispielsweise "Zack uses Fight"-Command.
    Hiermit kann man Eventcode genau dann ablaufen lassen, wenn der Spieler eine speziell definierte Handlung im KS anwendet, zB Fight, Skill,Defend

    Dieser Block steht für eine Eventcodeseite in den Monstergroups, die als Bedingung ein auf ON

    gesetztes Switch besitzt.
    Will man Eventcode erst ablaufen lassen, nachdem eine errechnete Bedingung erfüllt ist verwendet man eine Eventseite mit Switch=ON Bedingung. Solche Seiten benutzt man auch, um Eventcode zu anders nicht verfügbaren Zeitpunkten ablaufen zu lassen.

    Hinweis: Eventseiten mit aktivierter Bedingung werden nach der Handlung JEDES Akteurs im KS abgearbeitet. Das schliesst andere Charaktere und Monster mit ein.

    Dieser Block steht für eine Eventcodeseite in den Monstergroups, die als Bedingung [Hero] has taken [x] turns besitzt.

    Die Option funktioniert folgendermaßen:
    [Hero] has taken [Anzahl]X + [Anzahl] Turns.

    Beispiel: Will man Eventcode für Brian, alle 2 Runden, aber erst nach 10 Runden ausgeführt haben, macht man das so:
    [Brian] has taken [2]X + [10] Turns.

    Geändert von Corti (29.09.2009 um 17:28 Uhr)

  2. #2
    Beispiele:

    Am besten versteht man Dinge anhand von praktischen Beispielen, darum werde ich nun Beispiel heranziehen und diese Schritt für Schritt umfangreicher gestalten.

    Beispiel A: Zack taken turn

    Bei einer aktivierten "has taken Turn" Seite mit aktivierter Bedingung wird der Eventcode der Seite zwischen dem Befehl der Handlung durch den Spieler und der Ausführung durch den Helden abgearbeitet.

    Auch wenn die Option ganz klar aussagt, dass ihre Aktivierung nach dem Zug des Charakters stattfindet und man logisch damit "nach der Kampfhandlung" in Verbindung setzt ist hiermit doch dieser beschriebene Ablauf gemeint.

    1. Der Spieler befiehlt eine Handlung
    2. "has taken Turn"-Code wird verarbeitet
    3. Kampfhandlung durch den Helden



    Beispiel B: Zack taken turn + Zack uses Fight Command

    Wir möchten in diesem Fall nicht nur etwas tun, wenn ein Zug gemacht wurde, sondern auch etwas anderes speziell, wenn z.B. ein Nahkmapfangriff durchgeführt wurde.

    Der Hero uses Fight-Command wird vor dem "has taken turn" abgespielt.

    1. Der Spieler befiehlt eine Handlung
    2. "hero uses..."-Code wird verarbeitet
    3. "has taken Turn"-Code wird verarbeitet
    4. Kampfhandlung durch den Helden


    Beispiel C: Zack taken turn + Zack uses Fight Command + Switchseite

    Möchte man Eventcode erst dann ablaufen lassen, wenn der Zug des Charakters vollständig vorbei ist, also nach dem Angriff, muss man zu einem kleinen Trick greifen, einer Switchseite.
    Der Blick auf das Blockdiagramm zeigt:

    1. Der Spieler befiehlt eine Handlung
    2. "hero uses..."-Code wird verarbeitet, hierbei wird das Switch aktiviert
    3. "has taken Turn"-Code wird verarbeitet
    4. Kampfhandlung durch den Helden
    5. Switchseite wird verarbeitet und das Switch wieder deaktiviert


    Anmerkungen:
    • Die Deaktivierung des Switches ist notwendig, denn aktivierte Switchseiten werden sonst nach jedem Zug jedes Monsters abgearbeitet.
    • In diesem Fall wird die neue Seite nur dann aufgerufen, wenn der Held einen Nahkampfangriff über das Fight-Kommando ausgeführt hat.
    • Diese Abfolge funktioniert mit Nahkampfangriffen und Talenten


    Beispiel D: Cool dann kann ich ja immer...
    Und nun wird eklig.

    Der Grund warum ich vorhin "Fight und Skill" und "Defend und Item" gruppiert habe ist dieser. Bei Verwendung von Defend und Item wird der Switch-Block übersprungen und statt dessen der Zug der nächsten Kreatur begonnen.

    Beispiel E: Wirds noch schlimmer?
    Ja.

    Wenn der Held einen Zauber auf sich selbst oder seine Gruppe spricht, quasi auf diese Art und Weise in seiner Handlung eine Condition(Status)-Änderung an sich selbst durchführt, wird der Switch-Block ebenfalls übersprungen.

    Warum ist das Schlecht?
    Nicht nur weils nervt und man einen Workaround braucht. Schlimmer noch ist, dass die nicht verarbeitete Seite sich bei nächster Gelegenheit trotzdem aktivieren wird, evtl. im Zug eines anderen Charakters oder eines Monster, wer weiss?

    Was hat uns das Tutorial hier jetzt beigebracht?
    Wir wissen nun, an welchen Stellen und zu welchem Momenten wir unter welchen Bedingungen Berechnungen ablaufen lassen können.

    Tipps:
    • Scriptet solide und robust. Das Makersystem verhält sich manchmal komisch wenn Handlungen von Monstern und Spieler gleichzeitig passieren. Verwendet eigene Variablen für jeden Helden und jedes Monster.
    • Testet KS-Eventscripte als Gerüste, Message-Ausgaben reichen völlig um zu kontrollieren, ob Dinge passieren und ob die Reihenfolge der Abfolgen stimmt. Wenn das klappt kann man anfangen zu animieren.
    • Planen, kommentieren, Ordentlich benennen, sauber arbeiten


    Kritik, Freude, Verständnisprobleme und Anregungen bitte an mich.

    Geändert von Corti (06.11.2009 um 13:49 Uhr)

  3. #3
    SCHWERT ZIEHEN PER SHIFT! by Arnold

    So, wir kennen das doch, wir wollen erst ein mal das ganz normale CharSet haben, und dann beispielsweise während des AKS das Schwert ziehen können.
    Aber wir wollen das schnell machen.
    Das geht per Common Event:
    Code:
    1. Wir gehen in die Database.(F8)
    2. Wir gehen zu Common Events.
    3. Wir geben dem Event den Namen "Schwert ziehen".
    4. Setzt den Trigger auf Pararell Process.
    Nun gibt es zwei Methoden,
    # entweder man kann das Schwert immer ziehen,
    # oder nur im AKS.

    Ich mache die erste methode:


    Code:
    Erste Methode:
    5. Wir brauchen ein Key Input Process. Nun öffnet sich dieses Fenster:
    
    So, so sollte das fertig sein, was ich gemacht habe:
    Ich habe eine unbenutzte Variable genommen und sie Schwert ziehen genannt.
    Ich habe ein Häckchen bei "Wait until Key pressed" was so viel heißt wie Warten bis die Taste gedrückt wurde heißt, dann habe ich noch ein Häckchen bei "Shift Key" gemacht.
    Dahinter seht ihr eine Zahl, nämlich die 7, das heißt die Taste setzt nicht die Variable auf 7, sondern ist die7.
    Also brauchen wir eine Bedingung, die abfragt ob man auch wirklich die 
    Shift-Taste gedrückt hat, dazu nehmen wir die Variable Schwert ziehen zur hand und wählen "equal to" und bei Number 7, wisst ihr noch  warum? Genau, weil hinter dem Shift-Key 7 stand. Einen Ansonsten Fall brauchen wir hier unbedingt!
    Also, im Ja-Fall soll sich das CharSet eures Helden verändern. Das geht in dem ihr auf "Change Sprite Association" klickt, und das neue CharSet auswählt, das war's auch schon. Beim Nein-Fall nicht's hin.
    Jetzt könnt ihr prüfen, ob es auch wirklich geht.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •