-
Lehrling
Zwar ist das Problem bereits gelöst bzw. wurde umgangen, aber rein aus Interesse hatte ich mir das Projekt auch noch mal angeschaut (heute Morgen hatte ich leider noch keine Möglichkeit dazu). Mir scheint, das Problem ist aus der ungünstigen Konstellation zwischen Koordinatenabfrage und Bewegungsbefehl entstanden.
Die Koordinatenabfrage deshalb, weil sie ununterbrochen (abgesehen von 1 Frame zwischendurch) die Koordinaten der Monster (und nebenbei mit einem separaten Event auch noch die des Helden) checkt. Leichter zu kontrollieren wäre dieses Event gewesen, wenn es nur die Koordinaten abfragt, sobald sich das Held-Event bewegt. Theoretisch hätte es sogar gereicht, wenn die Koordinaten von den Monstern nur einmal abgefragt werden: nämlich in dem Moment, als die Monster platziert werden. Danach bewegen die sich ja ohnehin nicht mehr.
Der Bewegungsbefehl, der dem Held-Event die Route zuweist, wäre zudem leichter für die Koordinatenabfrage zu handhaben gewesen, wenn für jeden einzelnen Schritt ein separater Bewegungsbefehl ausgeführt wird, nicht ein Befehl für die komplette Route. Anschließend hätte man die Koordinaten des Held-Event abfragen können (nur dann, nicht permanent) und es wäre danach sauber weitergegangen.
Zwar weiß nur der RPG Maker selbst die endgültige Antwort auf die Frage, wieso genau dieses Problem nun in der Form so aufgetreten ist, aber ich komme deswegen zu meiner Vermutung, da man sehr deutlich sieht, dass beim zweiten Monster (welches direkt hinter dem ersten platziert wurde) der Kampf erst viel später beginnt (Held-Event ist komplett auf dem Feld des Monster-Events drauf) als beim Monster direkt davor (Held-Event hat das Feld des Monter-Events gerade mal "berührt). Während nämlich jenes Common Event, welches die Held-Event-Koordinaten überprüft und den Kampf auslöst, noch nicht ganz zu Ende gelaufen ist, läuft der Held schon weiter, da ihm die ganze Strecke ja durchgehend in einem Befehl vorgegeben wird. Selbst wenn man den anschließenden Fehler (also das Problem mit dem vermeindlich endlosen Kampf) etwas länger laufen lässt und den Held mehrmals tötet bzw. sich mehrmals töten lässt, kommt man aus dem Kampf zwar irgendwann wieder raus, aber man sieht sehr schön, dass das Monster nicht als besiegt angesehen wird (Monster-Event wird nicht wegteleportiert) bzw. der Held nicht put ist. Irgendwie müssen sich somit die parallelen Prozesse und der Bewegungsbefehl verheddert haben, so dass das Common Event nicht komplett bis zum Ende durchlaufen konnte.
Es wäre angemessener gewesen, wenn in diesem Skript maximal ein paralleler Prozess laufen würde. Das hätte schon Unstimmigkeiten verhindern können.
Geändert von Marche Radiuju (08.01.2013 um 21:12 Uhr)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln