Hi!
Ich habe folgendes Szenario: Eine bewegbare Plattform welche 21Felder weit fährt und zurück kommen soll.
Problem A: 5 Felder außerhalt des Bildschirms hört der Maker auf etwas zu machen.
Problem B: Der Spieler soll nicht die ganze Zeit auf die Plattform warten bis sie wieder da ist.
Aus diesem Grund habe ich das ganze in zwei Events gesplittet.
Event 1 Seite 1:
- ◆Kommentar:<collider:box,48,48,0,0>
- ◆Warten:60 Frames
- ◆Bewegungsroute festlegen:Dieses Ereignis (Warten)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- ◆Warten:60 Frames
- ◆Schalter steuern:#0289 Plattform 1 Rückfahrt = AUS
Die Plattform fährt 21 Felder nach vorn, wartet 60 Frames und schaltet auf Seite 2 um.
Event 1 Seite 2:
- ◆Kommentar:<collider:box,48,48,0,0>
- ◆Warten:60 Frames
- ◆Bewegungsroute festlegen:Dieses Ereignis (Warten)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- :Bewegungsroute festlegen:◇Skript:qmove(2,1,48)
- ◆Warten:60 Frames
- ◆Schalter steuern:#0289 Plattform 1 Rückfahrt = AUS
Damit fährt die Plattform zurück. Beides funktioniert auch so.
Event 2:
- ◆Schleife
- ◆If:Spieler Region ID = 1
- ◆Skript:$gameVariables.setValue(223, ($gameVariables.value(221) - $gameVariables.value(3)));
- :Skript:if ($gameVariables.value(223) < 0) {
- :Skript:$gameVariables.setValue(223, Math.abs($gameVariables.value(223) * (-1)));
- :Skript:};
- :Skript:$gameVariables.setValue(224, ($gameVariables.value(222) - $gameVariables.value(4)));
- :Skript:if ($gameVariables.value(224) < 0) {
- :Skript:$gameVariables.setValue(224, Math.abs($gameVariables.value(224) * (-1)));
- :Skript:};
- :Skript:$gameVariables.setValue(225, Math.sqrt(Math.pow($gameVariables.value(223),2) + Math.pow($gameVariables.value(224),2)));
- ◆If:Plattform 1 Distanz ≥ 10
- ◆Schalter steuern:#0281 Plattform 1 Stop = EIN
- ◆Ereignisstandort festlegen:Plattform 1, (38,173) (Richtung: Oben)
- ◆Schalter steuern:#0289 Plattform 1 Rückfahrt = AUS
- ◆Schalter steuern:#0281 Plattform 1 Stop = AUS
- ◆
- :Beenden
- ◆
- :Beenden
- ◆Warten:1 Frame
- ◆
- :Obiges wiederholen
Das Event überprüft über die Region ID, ob der Spieler am Rande der Schlucht steht. Wenn ja wird die Distanz berechnet und sollte diese größer als 10 sein, wird die Plattform deaktiviert und zurück an die Klippe zum Spieler geholt. Funktioniert ebenfalls.
Nun zu meinem Problem:
Irgendwie merkt sich der Maker an welcher Stelle die Bewegungsroute des ersten Events aufgehört hat und macht nach dem festlegen des Ereignisstandorts genau da weiter. Bedeutet die Plattform fährt dann nicht mehr 21 sondern zum Beispiel nur noch 9 Felder und schaltet danach um in die Rückfahrt.
Kann man dies irgendwie verhinern? Gibt es da eine Möglichkeit die Bewegungsroute abzubrechen?
Idee die ich noch hätte wäre nach jedem Schritt nach vorn abzufragen, ob die Plattform eine bestimmte Position erreicht hat. Wenn ja Rückfahrt, andernfalls wieder ein Schritt nach vorn um dann abermals abzufragen. Würde rein Eventtechnisch funktionieren, durch die Abfrage würde die Plattform aber ziemlich rucken.