PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Parallel Process stoppen und neu starten?



Stoep
27.05.2006, 22:31
Hi,
Also ich arbeite derzeit an so 'ner kleinen Technikspielerei und sehe mich dabei derzeit leider vor einem kleinen Problem: Und zwar habe ich mehrere Common Events gleichzeitig laufen die alle auf Parallel Process laufen und über die entsprechenden Switches aktiviert werden. Innerhalb dieser Events werden Pictures angezeigt, bewegt und nach ablaufen einer wait wieder ausgeblendet. Jetzt wollte ich wissen ob es irgendwie möglich ist diese Events noch während sie laufen abzubrechen und von vorne starten zu lassen. Ich habe schon probiert den entsprechenden Switch einfach off und dann wieder on zu stellen aber das Event läuft trotzdem ganz normal bis zum Ende weiter. Ich habe auch schon probiert eine Label an den Anfang zu setzen und dann einfach diesen Label aufzurufen aber es hat nicht funktioniert.

Weiß da jemand eine Lösung oder geht das garnicht?

Gruß,
Stoep

Phönix Tear
28.05.2006, 00:11
Hmm, ich hab jetzt auch mal länger daran herumprobiert. Leider hab ich’s nicht hinbekommen.
Das Event neu zu starten war nicht das Problem, einfach durch ein Call-Event. Damit nicht alles eingefroren wird bis das Event abgelaufen ist habe ich im Event welches der Held auslöst einfach einen Switch angemacht. Dieser Switch aktivierte ein PP Event welches dann wiederum das besagte CE callte und sich danach wieder selbst abschaltete. Damit man das mehrmals machen konnte hab ich gleich 2 solcher Events angelegt.
Somit konnte ich zwar das Event neu starten, wie du aber schon sagtest nicht den Bewegungsbefehl. Eng genommen den zwar auch aber nicht das Wait welches zwischen Anfang und Ende der Bewegung steht. Die Bewegung meines Pictures wurde also ganz normal ausgeführt, brach jedoch nach einem kurzen Stück der Strecke ab und startete neu. Das was noch fehlte war genau der Teil den ich vorher durch ständiges "neu starten" verbraucht hatte. Im Klartext:
Es ging nicht XD
Egal was ich gemacht habe, ob das Wait in einzelne 0,0 Waits aufzuteilen oder verschiedene Waits per Zufallsvergabe zu benutzen, sobald es einmal "angebraucht" wurde lief es auch zu Ende und startete das Event neu. Somit habe ich keine Ahnung ob es überhaupt möglich ist ein Event in dem eine Bewegung vorkommt einfach neu zu starten... (Bei mir hat selbst ein zweites Event nicht funktioniert)…

mfg
Phönix Tear

Stoep
28.05.2006, 10:58
Mir ist noch was eingefallen was ich auch gleich mal ausprobieren werde. Ich könnte ja, wie du es bereits versucht hast, das Event einfach kopieren, die Picturenummern etc beibehalten und nur den Switch über den es aktiviert wird ändern. Beim aufrufen frage ich dann einfach ab ob das erste Event offen ist und wenn ja das dann das zweite aktiviert wird. Dadurch das hier die selben Picturenummern gegeben sind würden die Pictures vom ersten Event sozusagen überschrieben werden. Das einzige Problem das sich mir in der Theorie noch stellt ist, dass das erste Event ja trotzdem noch weiterläuft und somit auch das ausblenden der Pictures. Dies hätte ja im Prinzip zur Folge das die Pictures vom zweiten Event nach Ablaufen der Zeit des ersten Events bereits ausgeblendet werden würden. Ich werde versuchen das ganze zu umgehen indem ich das Ausblenden der Pictures im ersten Event in eine Fork packe die Abfragt ob der Switch für dieses Event überhaupt noch an ist.

So könnte das vielleicht funktionieren...
Ich probiers mal aus.

Gruß,
Stoep

EDIT: Also ich habe es jetzt gemacht (eigentllich schon heute Vormittag) und es hat geklappt. Zwar gab es noch einige Probleme da innerhalb eines Events nicht immer die gleichen Bilder angezeigt werden aber ich konnte alles beheben. Insgesamt existiert jedes Event jetzt dreimal (zweimal hätte vielleicht schon gelangt aber ich wollte auf Nummer sicher gehen)

Trotzdem danke Phönix Tear. Hast du dich wirklich hingesetzt und das ausprobiert nur um mir zu helfen? Das nenne ich wirklich Hilfsbereitschaft.

Gruß,
Stoep

Stoep
28.05.2006, 10:59
HEY, was soll der shice. Ich schicke die Nachricht ab und es heißt nur es sei ein Fehler in der RPG-Kingdom-Datenbank aufgetreten. Also drücke ich aktualisieren und schon habe ich einen Doppelpost an der Backe!
Schweinerei!

Mir ist noch was eingefallen was ich auch gleich mal ausprobieren werde. Ich könnte ja, wie du es bereits versucht hast, das Event einfach kopieren, die Picturenummern etc beibehalten und nur den Switch über den es aktiviert wird ändern. Beim aufrufen frage ich dann einfach ab ob das erste Event offen ist und wenn ja das dann das zweite aktiviert wird. Dadurch das hier die selben Picturenummern gegeben sind würden die Pictures vom ersten Event sozusagen überschrieben werden. Das einzige Problem das sich mir in der Theorie noch stellt ist, dass das erste Event ja trotzdem noch weiterläuft und somit auch das ausblenden der Pictures. Dies hätte ja im Prinzip zur Folge das die Pictures vom zweiten Event nach Ablaufen der Zeit des ersten Events bereits ausgeblendet werden würden. Ich werde versuchen das ganze zu umgehen indem ich das Ausblenden der Pictures im ersten Event in eine Fork packe die Abfragt ob der Switch für dieses Event überhaupt noch an ist.

So könnte das vielleicht funktionieren...
Ich probiers mal aus.

Gruß,
Stoep

Krool
10.06.2006, 22:34
mach am anfang des scripts ein Label hin zb. Nr. 1
dann an dem punkt wo dus "abbrechen" willst machste ein Goto Label mit der gleichen nummer wie die Label. also hier die Nr. 1
das script springt dann zum anfang und es entständt dein gewünschter effekt.
(Da auch dein Weg funktioniert habe ich das trotzdem geschrieben, denn ich denke einfache Lösungen sind die besten)

bitte :)
cya

Chimaera
11.06.2006, 08:44
Bei deiner Lösung Krool ist aber vorbestimmt wann der Prozess abgebrochen und nue gestartet wird ...
ich glaube er will selber per event bestimmten, dass der Event neu startet... also an einer beliebigen stelle .. deswegen ...
deins wäre auch eine Lösung nur wen man vorher weis wann der neustart geschehen soll ^^

Stoep
11.06.2006, 09:01
@Krool: Jo, wenn die Label in dem Event selber wäre würde es ja funktionieren aber wie Chimaera sagte will ich es ja von jeder X-beliebigen Stelle im Spiel aus abbrechen und neustarten. Das geht halt leider nur auf die Art wie ich es jetzt letztendlich umgesetzt habe. Ist zwar blöde aufwendig aber was tut man nicht alles um seine Ziele zu erreichen^^

Gruß,
Stoep

Dhan
11.06.2006, 10:13
Kommt auf das an, was du erreichen willst.
Für komplexere Scripte solltest du ordentlich scripten, d.h. nicht so chaotisch wie der Maker es eigentlich bedingt:
Mach einen einzigen PP der mit Call Event einzelne Befehlesketten aufruft die zu unterbrechen nicht nötig ist.
Du kannst wenn du z.B. mehrere Gegner hast die seperat gesteuert werden sollen, den PP Events aufrufen lassen, die jeweils einen Gegner kontrollieren (d.h. mit jedem Aufruf des Events handelt der Gegner einmal, basierend auf dem Input) und für sich selbst ebenfalls Events callen (du brauchst ne Ranghierachie der Events, kein "Befehlskettenevent" sollte so z.B. die höheren "Gegnerevents" aufrufen)

Stoep
11.06.2006, 12:03
Puh ähm ja, danke Dhan aber das Problem ist ja mittlerweile gelöst (wenn auch auf die unschöne Weise)^_-

Gruß,
Stoep