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
    Also ich bin grad fleißig am Skripten ^^ Funktioniert sogar, wenn man auf der Kante die Taste gedrückt hält

  2. #2
    Zitat Zitat von Drakee Beitrag anzeigen
    Also ich bin grad fleißig am Skripten ^^ Funktioniert sogar, wenn man auf der Kante die Taste gedrückt hält
    Bei mir funktioniert's auch einwandfrei
    War erst 'n bisschen viel Arbeit die einzelnen Terrain-ID's abzufragen, aber jetzt klappt's tadellos.
    Dazu kam ja noch die Wie-lange-halte-ich-welche-Richtungstaste-Abfrage von MagicMaker, die sich ebenfalls bestens integrieren lässt.

    Ich hab vorher noch ein Renn-Script gebaut, welches 1. die Position des Actors und 2. die Terrain ID abfragt
    (1. um zu checken ob der Held sich nicht mehr bewegen kann weil Wand, und dadurch in seine Standard-Pose wechselt und 2. für Laufgeräusche bei Gras, Schnee usw.)
    und sowohl das Renn- als auch das Sprung-Skript kommen sich bei den Abfragen nicht in die Quere.

    Bin gerade dabei das ganze jetzt für einen Sprung auf eine höher gelegene Ebene zu scripten, hoffe das klappt auch so gut

    Nochmal für alle: die Vorschläge von MagicMaker und Drakee sind genial *Credit gib*
    Ist anfangs ein bisschen Arbeit aber es erspart den Maps ne Menge unnötige Events.

  3. #3
    Naja, bei mir habe ich gerade einen Bug produziert gekriegt. Aber ich hab das Skript für das überspringen von Lücken und das Skript für das Hochspringen/Runterspringen an Kanten gesondert. Die kommen sich in die Quere, denk ich mal

    Bei dem Hochspringen an eine Kante ist es wie gesagt ähnlich, nur dass im Vornhinein die X/Y Coordinate des Felds um eins in die Blickrichtung des Helden abgefragt wird. Das muss man nicht in ein extra Skript tun, aber in eine extra Variable. Dann kann man bei einer Wand eine weitere Abfrage starten, ob ein weiteres Feld weiter ein begehbares Tile liegt

  4. #4
    Ich bin so glücklich dass es funktioniert Das hat mir echt Kopfschmerzen, ja, fast schlaflose Nächte bereitet
    Gut, dann achte ich darauf die beiden Dinge voneinander zu trennen.
    Muss ins Bett, aber ich melde mich sobald wie möglich mit weiteren Ergebnissen

  5. #5
    Also, so schwer war das doch jetzt nicht, oder? xD

    Ist auf jeden Fall besser, als jedes Mal Map Events zu benutzen. Auf diese Weise ist es halt einfach alles automatisiert und wenn man das wirklich so wie in Golden Sun haben will, dann will man ja überall, wo es möglich ist, Lücken überwinden und auf höhergelegene Kanten springen können. So braucht man nur zu mappen und das entsprechende Common Event regelt alles von alleine Man muss halt beim Mappen nur ein bisschen drauf achten, dass man das nicht so designt, dass man auf einmal dann doch irgendwo hinspringt wo es von der aktuellen Position aus nicht geht.

    Und von welchen Zusätzen da MagicMaker geredet hat, versteh ich auch nicht

  6. #6
    Im Endeffekt war's jetzt nicht so schwer, das stimmt Ich hatte zwar eine ungefähre Vorstellung davon, wie es umsetzbar wäre, aber mir fehlte der nötige Anstoß in den Details, da ich jetzt wirklich nicht so krass technisch begabt bin.^^
    Die Automatisierung macht das System für mich so attraktiv. Ich könnte mir vorstellen das es dem Spieler auch etwas mehr Freiheit bietet und in ihm vielleicht sogar eine Entdecker-Ader geweckt wird. Zu oft hatte ich schon Spiele gespielt (auch "professionelle") bei denen ich einfach nur durch gehechtet bin, weil die Maps, auch wenn sie vielleicht optisch ganz nett gestaltet waren, keine Tiefe geboten haben. Dazu dann noch die technische Einschränkung dass man sich eh kaum bewegen kann.

    Zitat Zitat von Drakee Beitrag anzeigen
    Man muss halt beim Mappen nur ein bisschen drauf achten, dass man das nicht so designt, dass man auf einmal dann doch irgendwo hinspringt wo es von der aktuellen Position aus nicht geht.
    Das sollte glaube ich ganz gut funktionieren, sicher gehen die ersten 5 Maps daneben und man irgendwo solche Stellen, aber das sollte mit etwas Ordnung in den Tilesets gut gehen

    Wo wir vorher von Bugs gesprochen haben:
    Ich hab jetzt komischerweise Weise den Fehler, wenn der Actor sich noch im Move-Befehl befindet
    (Slip Through ON, Start Jump, Move Up, Move Up, End Jump, End Slip Through usw.)
    und ich währenddessen schon eine andere Richtungstaste drücke, dann geht zwar alles ganz gut aber der Slip Through ist dann für einen kurzen Moment aktiv und ich gerate in Tiles rein, aus denen kein Entkommen mehr ist. Hast du eine Idee woran das liegen könnte?

  7. #7
    Die Bewegung lässt den Rest vom Event nicht warten und wenn es vorbei ist, kann man wieder Eingaben tätigen.

    Könnte man auf einige Arten lösen. Die Gummihammermethode wäre z.B., das Event am Schluss so lange in einer
    kleinen Warteschleife einzufangen, bis am Ende der Kette an Bewegungsanweisungen ein Switch umgelegt wird,
    was man zum Glück direkt mit in Move einbauen kann.

    Code:
    <>Loop Start
     <>If s[0001] == ON
      <>Set Switch: [0001] = OFF
      <>Break Loop
      <>
     : EndIf
     <>Wait: 0.0s
     <>
    : Loop End
    <>

  8. #8
    Danke MagicMaker! Ich probiers gleich aus
    EDIT: Frage vergessen: Was bewirkt dieses kleine lustige Wait?

    Geändert von Exas (31.08.2015 um 23:26 Uhr)

  9. #9
    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).

  10. #10
    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.

    Geändert von Nagasaki (01.09.2015 um 03:11 Uhr)

  11. #11
    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

  12. #12
    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.

  13. #13
    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

  14. #14
    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
  •