Pfeile, Bögen und Magie

  • Hallo liebe Community,


    mir kam gerade mal eine Interessante Idee.

    Allerdings weiß ich nicht so recht, wie ich diese Idee umsetzen kann oder soll.


    Folgendes Szenario:


    Der Protagonist steht an einer beliebigen Stelle auf der Map.


    Der Spieler drückt einen Hotkey.


    Durch das drücken des Hotkeys wird im Hintergrund ein Common Event ausgeführt.


    Jetzt fliegt ein Pfeil vom Protagonisten in Richtung eines Events, dass das Ziel darstellt, sofern die Blickrichtung des Protagonist auf das Ziel gerichtet ist.


    Das Ziel ist jedoch nicht fixiert, sondern beweglich. Z.B. ein Hase.


    Trifft der Pfeil das Ziel, war die Aktion erfolgreich. Wenn nicht, dann nicht.


    Jetzt zur Frage.


    Wie kann ich das ganze am geschicktesten über ein Common Event ausführen?


    Danke im Voraus

  • Dazu nimmst du Koordinaten.


    Du fragst ab wo der Held steht (Held_X und Held_Y) und positionierst ein Event "Pfeil" auf die Position des Helden :)

    Dann während dem Flug, folglich immer nach einem Tile unterschied, werden die Koordinaten des "Pfeils" und eines Ziels abgefragt, wenn die Koordinaten exakt gleich sind, wird das Ziel getroffen.


    Kann dir auch gerne einen Code dazu schreiben, wenn du magst, benutzt du den MV?


    -MrSerji

  • Also nur mit Events ist das relativ schwer umzusetzen. Daher würde ich dir eher raten, ein wenig Script Unterstützung zu verwenden. Aber ein denkbares Szenario mit Events wäre:


    1. Du hast irgendwo auf der Map ein Event. Die erste Seite hat kein Bild, die zweite Seite deinen Pfeil. Die Bedingung der zweiten Seite ist ein lokaler Schalter. Wichtig: Das Event ist so eingestellt, dass es durch andere Events durch moven kann.

    2. Wenn der Spieler die Aktion auslöst:

    2.1. Ermitteln der Spieler Koordinaten und Blickrichtung

    2.2. Verschiebe das Pfeil Event auf den Spieler plus ein Feld in seine Blickrichtung (ggf. zwei bis drei Schritte nötig (set to player, turn, move))

    2.3. Lege den lokalen Schalter um. (damit dein Event sichtbar wird)

    3. Bewege den Pfeil in Blickrichtung

    3.1. Bewege den Pfeil um ein Feld

    3.2. Prüfe auf Kollision mit dem Ziel (Map-Koordinaten vergleichen)

    3.3. Wenn Treffer => Ende + Erfolg

    3.4. Solange Reichweite nicht ausgeschöpft => gehe zurück zu Schritt 3.1.


    Die Schwachstelle des Ganzen ist in erster Linie, dass du mit Events nie so generisch werden kannst, wie dus für deinen Anwendungsfall gerne hättest. Zum Beispiel wirds ohne Script echt eng, wenn du willst, dass du die Ziel Events irgendwie "markieren" kannst, so dass du bei der Kollisions-Erkennung auf eine Untermenge der Events (Ziele) prüfen kannst, ob eine Koordinaten-Überschneidung stattgefunden hat.