Ja hallo liebe mit Spiele-Tüftler, ich wollte mal nachfragen, ob es möglich ist über ein Skript in einem Conditional Brunch bei der Berührung eines Events mit einem anderen Event (wie Player Touch oder Event Touch) einen Prozess einzuleiten. Und wie es möglich ist, in einem Conditional Brunch den Event und/oder Player Tuch per Skript einzubauen, kann mir dass mal bitte jemand sagen/erklären.
Ich weiß selbst, dass ich das auch mit Variablen hinkriege, aber das währe wirklich zu aufwändig, wenn also bitte jemand helfen könnte.
Geändert von OneEyeShadow (18.06.2009 um 21:59 Uhr)
Anders als mit Variablen wirst du es nicht hinbekommen. Du solltest 4 Variablen anlegen.
1. event1_X - enthält die X Koordinate des 1. Events
2. event1_Y - enthält die Y Koordinate des 1. Events
3. event2_X - enthält die X Koordinate des 2. Events
4. event2_Y - enthält die Y Koordinate des 2. Events
Nun fragst du in einem Event (Parallel Process) mit Conditions folgendes ab:
> Condition: event1_X = event2_X
> Condition: event1_Y = event2_>
> Message: "Die Events haben sich berührt."
Das würde aber nu funktionieren wenn die Events aufeinander sollen, z.B. ein stein auf einen schalter, aber wenn sich events behrühren heißt das ja nicht das sie unbedingt auf dem selben feld sein müssen.
Ich verstehe zwar nicht ganz, was du mit Conditional Branches willst, aber folgendes kann ich zum Thema Event-Event-Trigger sagen:
Wenn man mit RGSS rumpfuscht, geht das sicher auch direkter, als in einem Parallel-Process laufend die Koordinaten abzufragen. Meine Idee wäre, den Code, der dafür sorgt, dass OnTouch Events ausgeführt werden, zu kopieren, die Kopie entsprechend anzupassen und einen neuen Triggertyp einzuführen. Um den Triggertyp zu setzen, müsste man entweder den Maker ein wenig modifizieren (könnte mit ResHack machbar sein) oder per RGSS zur Laufzeit in der Page-Klasse rumbasteln. Der Triggertyp ist schließlich auch nur eine Zahl.
also per conditional branch wäre es theoretisch möglich aber halt auch seeehr umständlich.
(würde es so machen: nach jeder bewegung abfragen ob die koordinaten sich verändert haben - falls die koordinaten des events noch die selben sind bedeutet das dass sich das event nicht bewegen konnte.
in dem fall muss man dann noch für jedes event abfragen ob es auf den zielkoordinaten steht, auf die das 1. event eigentlich gegangen wäre.
wenn eines auf diesen koordinaten steht heißt es, dass dieses event die bewegung blockiert hat und muss gestartet werden.)
@dfyx
so würde ich es auch machen nur ohne den reshack part.
ich empfehle eher den neuen trigger über ein bestimmtes wort in einem event command kommentar auszuwählen.
@oneyeshadow
ich kann versuchen dir eine rgss lösung anzubieten wenn du das wünschst. das wäre dann aber kein conditional branch mehr
Über eine RGSS Lösung dieses Problems währe ich sehr dankbar, müsste ich nicht mit den sechs Conditional Brunches und den 8 Variablen Arbeiten, da verliert ja jeder den überblick, und funktionieren tuts auch nicht richtig,
also über eine RGSS-Lösung währe ich schon sehr dankbar.
code über main einfügen und ein kommentar mit "trigger" (ohne "") bei dem event einfügen, welches durch event kontakt gestartet werden soll.
falls bugs auftreten einfach posten
Danke, funktioniert einwandfrei, aber ist es auch möglich diesen Trigger nur bei berührung durch ein bersonderes Event zu aktivieren bzw das Event, dass den trigger des Anderen Events ausgelöst hat irgendwie direkt abzufragen?
Geändert von OneEyeShadow (28.06.2009 um 12:17 Uhr)
das vorherige script damit überschreiben.
aktiviert wird es wieder über ein kommentar mit trigger und wenn es nur durch ein bestimmtes event ausgelöst werden soll, musst du in die zeile darunter die id dieses events eingeben.
bsp
wenn keine zahl eingegeben wird, kann das event durch jedes event gestartet werden wie in der alten version.
außerdem hab ich den bug entfernt, dass sich das gestartete event zum spieler dreht.
ich hab eben ein neues projekt gemacht, script kopiert etc und es läuft alles einwandfrei.
die einzigen gründe die mir einfallen sind
1. fehler beim kommentar -> vertippt oder trigger steht nicht oben in der kommentar box
2. die events berühren sich nicht -> trough/phasing an oder events stehen nur nebeneinander, laufen aber nicht gegeneinander
3. vlt gibt es komplikationen mit anderen scripts, was aber eher unwarscheinlich ist, weil das alte funzt.
OK, ich habs jetzt auch nochmal in nem neuen Projekt ausprobiert, und es geht, seltsamm, ich hab nur 4 andere Skripts hinzugefügt, 'n Vollbild-, 'n Event move to Event, ein Copy Event und ein Tastatur-Skript. Verdammt ...
wißt du, was du jetzt machst?
Du machst ein neues spiel, wo du alle Scripts reintust, die in deinem anderen Projekt auch sind bzw. verändert wurden.
Teste nun das Spiel. sollt der Fehler nun da sein, schneide ein(!) Scrict per Cut aus. Teste es nun. Jetzt gibt s zwei möglichkeiten:
a) alles läuft, so wie du es haben willst. Urteil: Das ausgeschnittene Script war s***e^^
b) immernoch Fehler? Für das Script wieder ein und mache nun das gleiche mit dem nächsten Script.