Ergebnis 1 bis 20 von 31

Thema: [RM2K3] Brauche Hilfe: Sprung-Script a la Golden Sun

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von MagicMaker Beitrag anzeigen
    Das ist, damit das Spiel diese Schleife nicht in einem ungeheuerlich kurzen Moment so oft wiederholt,
    bis die Engine schlapp macht und laggt. Mit 0 wird auf den nächsten Frame gewartet (x60=1s).
    Aaahhh verstehe! Dass es manchmal auf solche vermeintlichen Kleinigkeiten ankommt ^^

    Zitat Zitat von Nagasaki Beitrag anzeigen
    Eine andere Frage:
    Ist der Slip Through eigentlich nötig? Bei nem Jump kann man einige zuvor unpassierbare Tiles bereits passieren. Würde das bei dir schon reichen, oder gibt es da Konflikte? Ich könnte mir z.B. vorstellen, dass der Jump nur bei Lower Layer Tiles funktioniert. Kenne mich mit Move Events und Maps (lustig, oder?) nicht so gut aus.
    Hab's gerade mal kurz an nem einfachen Map-Event getestet und der Slip Through war nicht nötig, hab auch direkt getestet ob es nur bei Lower Tiles möglich ist.
    Dabei ist auffällig, dass es keine Rolle spielte welches Tile da übersprungen werden sollte, sowohl Lower als Upper Layer sind kein Problem, sowie Map-Events
    die die Priority "Same as Players" haben.
    Großes Aber: wie es aussieht, muss das Tile das sich hinter dem zu überspringenden Tile/Event befindet ein Lower Layer bzw. kein Event, das die gleiche Priority wie der Actor hat, sein. Ansonsten funktionierte der Sprung nicht.
    Kurzes Fazit: Nice to know und hilft bestimmt auch bei der Lösung meines aktuellen Problems

  2. #2
    Zitat Zitat von Exas Beitrag anzeigen
    Großes Aber: wie es aussieht, muss das Tile das sich hinter dem zu überspringenden Tile/Event befindet ein Lower Layer bzw. kein Event, das die gleiche Priority wie der Actor hat, sein. Ansonsten funktionierte der Sprung nicht.
    Wenn das Feld auf dem man landen will nicht passierbar ist, sollte man dann nicht grundsätzlich ebenso wenig dort hinspringen können? Es gibt sicher Momente, in denen man das doch so handhaben will, aber ist das von dir beabsichtigt?

    Hat dir der Lösungsweg von MagicMaker eigentlich weitergeholfen? Ich habe deinen Code mal nachgebaut und kann den Fehler beim besten Willen nicht reproduzieren. Also das (Slip Through ON, Start Jump, Move Up, Move Up, End Jump, End Slip Through). Selbst ohne MagicMakers Switch passiert bei mir nichts dergleichen.

    Achja, und statt Move Up/Left etc. zu verwenden, wäre Move Forward einfacher. Dann kannst du das gleiche Move Event für alle Richtungen beibehalten.

  3. #3
    Entschuldigt meine späte Rückmeldung, war zwischendrin mit den Soundtracks fürs Spiel beschäftigt und sowas nimmt leider ja doch etwas Zeit in Anspruch^^

    Zitat Zitat von Nagasaki Beitrag anzeigen
    Wenn das Feld auf dem man landen will nicht passierbar ist, sollte man dann nicht grundsätzlich ebenso wenig dort hinspringen können? Es gibt sicher Momente, in denen man das doch so handhaben will, aber ist das von dir beabsichtigt?
    Nein, versteh mich nicht falsch, das ist auf jeden Fall nicht beabsichtigt. Ich wollte lediglich mal testen, wann das passieren grundsätzlich möglich ist und wann nicht. Aber es ist so wie du schon sagst, in einigen seltenen Fällen wird es durchaus mal nötig sein auch an unpassierbaren Stellen springen zu können.

    Zitat Zitat von Nagasaki Beitrag anzeigen
    Hat dir der Lösungsweg von MagicMaker eigentlich weitergeholfen? Ich habe deinen Code mal nachgebaut und kann den Fehler beim besten Willen nicht reproduzieren. Also das (Slip Through ON, Start Jump, Move Up, Move Up, End Jump, End Slip Through). Selbst ohne MagicMakers Switch passiert bei mir nichts dergleichen.

    Achja, und statt Move Up/Left etc. zu verwenden, wäre Move Forward einfacher. Dann kannst du das gleiche Move Event für alle Richtungen beibehalten.
    Leider konnte ich das Problem bis jetzt immer noch nicht beheben. Bin jetzt auch an dem Punkt wo sämtliche Slip Through's entfernt sind. Der Lösungsweg von MagicMaker funktioniert grundsätzlich super. Aber ich befürchte, dass das Problem doch woanders liegt, nämlich im vorangehenden Script für die Messung der Tastendruck-Dauer. Ich glaube dass es zu Komplikationen kommt, wenn ich eine andere Taste drücke, in dem Moment, wenn die Variable den Schwellenwert erreicht um das Move Event auszulösen. Leider sind's zu gegebenem Zeitpunkt nur Vermutungen weil ich's bis jetzt noch nicht zu 100% eingrenzen kann. Ich denke auch dass der Code von MagicMaker einwandfrei funktionieren müsste, wahrscheinlich hab ich einfach nur schlecht gecoded Ich werde heute weitere Tests durchführen und schau mal was ich noch so reißen kann.

    @Drakee So hab ich mir das vorgestellt! Sieht super aus Ich hoffe ich krieg's auch so hin xD

  4. #4
    Das Problem bei mir war, dass ich wärend des MoveBefehels noch die Richtung ändern konnte, durch Tastendruck. Da habe ich gegen gewirkt, indem ich die Movementroute in ein Auto-Start CE gepackt habe, das per Switch aktiviert wird.

  5. #5
    Ahhhhhh das könnte das Problem schon beheben. Leider funktionierte (aus irgendeinem Grund den ich vermutlich niemals erfahren werde) der "Proceed with Movement"-Befehl nicht.. Ich meld mich nochmal mit handfesten Ergebnissen

  6. #6
    Wie meinst du "funktionierte nicht"?

    Der Befehl wartet darauf bis alle Move Events die momentan laufen, abgeschlossen sind. Eigentlich sollte der Befehl "Wait until moved" oder so heißen. Achtung, das bezieht sich auch auf solche, die von anderen Events ausgelöst wurden.

  7. #7
    Zitat Zitat von Cherry Beitrag anzeigen
    Wie meinst du "funktionierte nicht"?

    Der Befehl wartet darauf bis alle Move Events die momentan laufen, abgeschlossen sind. Eigentlich sollte der Befehl "Wait until moved" oder so heißen. Achtung, das bezieht sich auch auf solche, die von anderen Events ausgelöst wurden.
    Jep, dieser Befehl wartet mit der Ausführung des nächsten Befehls, bis alle aktuell laufenden (durch CE und Map Events) Move Befehle beendet sind.

    Ganz abgesehen davon habe ich bemerkt, dass ohne diesen Befehl meist im Movement so Sachen wie "Slip Through", "Increase Speed", "Decrease Speed" nicht richtig funktionieren oder die Movement Route abgebrochen wird. Das hatte ich bei Altered Royalty, wenn man den Bogen gespannt hat, dass die Heldin beim Spannen die Richtung fixiert hat und eine Stufe langsamer werden soll, aber unter Umständen der "Increase Speed"-Befehl gar nicht erst ausgeführt wurde. Mit einem "Wait Until Movement"-Befehl dahinter hat das dann funktioniert.

    Der Befehl "Stop Movement" stoppt übrigens die Movementrouten Den kann man u.U. an einigen Stellen auch gut gebrauchen.

  8. #8
    Zitat Zitat von Cherry Beitrag anzeigen
    Wie meinst du "funktionierte nicht"?

    Der Befehl wartet darauf bis alle Move Events die momentan laufen, abgeschlossen sind. Eigentlich sollte der Befehl "Wait until moved" oder so heißen. Achtung, das bezieht sich auch auf solche, die von anderen Events ausgelöst wurden.
    Irgendwie schien der Befehl keine wahrnehmbaren Auswirkungen zu haben.. War alles irgendwie recht komisch..
    Ich konnte das Problem bis jetzt leider noch nicht lösen. Ich denke ich werde das Script einmal neu schreiben, da er doch ziemlich unübersichtlich geworden ist und auffällt, das viele Sachen im Code redundant sind. Wie gesagt, ich bin echt nicht der beste Techniker und muss noch viel lernen, vorallem wenn's darum geht "saubere" und ordentliche Scripts zu erstellen.

    Aber jetzt verstehe ich wenigstens, was ich zu tun habe um das Ganze nach meiner Vorstellung zu gestalten und dafür bin ich schon sehr dankbar
    Ich melde mich mit neuen Ergebnissen

    @Drakee: was hast du eigentlich alles in separaten CE's ausgelagert? Hast du eventuell ein paar Tipps?

  9. #9
    Ich habe das komplette Skript in Common Events gepackt. Wäre anders auch irgendwie wieder Copy-Paste Gedöns, das ich mir nicht antun wöllte o.O

    Naja, aber es lohnt sich auf jeden Fall Code, den man öfters in seinem Skript aufruft, in ein CE zu packen und das auf Trigger "None" stehen zu lassen und dann halt, statt jedes Mal diesen Code in die entsprechenden Bedingungen reinzukopieren nur den einen Befehl reinkopieren muss, nämlich der Call-Befehl, der den Code dann aufruft. Somit muss man bei einem Bug in besagtem Code nicht jedes Mal im Skript den Code löschen und erneut einfügen, sondern braucht ihn nur in dem entsprechenden CE zu bearbeiten.

    Also prinzipiell gilt: Globale Funktionen in CEs und auch Code, den man immer wieder nur kopieren und einfügen würde, sofern er mehrere Zeilen besitzt, per Call-Event-Befehl integrieren. Damit hat man zwar mehr Common Events in der Liste, aber man hat es leichter zu debuggen.

  10. #10
    Der Sprung kann solange ausgeführt werden, solange wie das angesteuerte Tile passierbar ist. Somit ist es nicht nötig Slip Through zu benutzen. Tiles sind dann nicht passierbar, wenn sich Events mit "same layer as hero" darauf befinden. Da muss man halt entweder Designtechnisch aufpassen und doch Slip Through benutzen oder der Spieler kann halt da nicht hinspringen, wenn ein NPC da nicht steht.

    Ach, btw, so sieht das dann ungefähr in Aktion aus:



    Zitat Zitat von Nagasaki Beitrag anzeigen
    Achja, und statt Move Up/Left etc. zu verwenden, wäre Move Forward einfacher. Dann kannst du das gleiche Move Event für alle Richtungen beibehalten.
    This.

    Geändert von Drakee (01.09.2015 um 09:45 Uhr)

Stichworte

Berechtigungen

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