Schalterkombination

Fragen zum Szenarienbau und Mapdesign

Moderatoren: Henning, Björn_Jernside

Ich hab in meiner letzten Weihnachtsmap (und auch schon in anderen Maps) mehrfach unten stehende Schalterkombination benutzt. Ich wollte mal rumfragen, ob sie jeder kennt oder vielleicht sogar eine bessere Lösung existiert.

Was bewirkt sie?
Der Effekt (in unten stehendem Bsp ein Besitzwechsel von Spieler 2 zu 1) wird ausgelöst, so lange eine bestimmte Bedingung (im Bsp: Objekt angeklickt) erfüllt ist. Sobald die Bedingung nicht mehr erfüllt ist, wechselt alles in den Ausgangszustand zurück (genau gesagt nach einer Sekunde).

Schalter 1
Nein, Aus, Nein
Bedingung0: Objekt ausgewählt
Effekt0: Besitzwechsel 2->1
Effekt1: Schalter 2 aktivieren
Effekt2: Schalter 3 aktivieren

Schalter 2
Nein, Aus, Ja
Effekt0: Schalter 4 aktivieren

Schalter 3
Nein, Aus, Ja
Bedingung0: Objekt ausgewählt
Effekt0: Schalter 4 deaktivieren

Schalter 4
Nein, Aus, Nein
Bedingung0: Zeitgeber 1sec
Effekt0: Besitzwechsel 1->2
Effekt1: Schalter 2 deaktivieren
Effekt2: Schalter 3 deaktivieren
Effekt3: Schalter 1 aktivieren

So, vielleicht hilft dem einen oder anderen die Schalterkombination weiter oder ihr könnt mich belehren, wie es besser geht. :)
Die Kombination ist jedenfalls vielseitig einsetzbar und daher eigentlich unverzichtbar.
In Schalter 1 sollte es wohl "Schalter 2&3 aktivieren" heißen, sonst haut es nicht hin. Ansonsten würde ich mal sagen: sauber gelöst! :super:

Ich selbst hab kurz herumgetüftelt und bin euf eine Variante mit etwas weniger Effekten und ohne Schleifen gekommen, die aber auf dem haargleichen Prinzip beruht:

>>Ausgangssituation ändern<<
Schalter 0 (Nein, Ein, Nein)
B: Objekt ausgewählt
E: Besitzwechsel 2>1
E: Schalter 1 aktivieren

>>in einer Schleife prüfen, ob die Bedingung noch erfüllt ist, dabei "Rückschalter" blockieren<<
Schalter 1 (Nein, Aus, Nein)
B: Objekt ausgewählt
E: Schalter 2 aktivieren
E: Schalter 3 deaktivieren

Schalter 2 (Nein, Aus, Nein)
E: Schalter 1 aktivieren
E: Schalter 3 aktivieren

>>zurück in die Ausgangssituation<<
Schalter 3 (Nein, Aus, Nein)
B: Zeitgeber 1
E: Besitzwechsel 1>2
E: Schalter 0 aktivieren

Kommt aber aufs Gleiche raus! ;)
Hast recht. Hab den Fehler verbessert.

Anscheinend geht es nicht mit weniger als 4 Schaltern...
Hallo, Ihr beiden!

Ich weiß ja nicht, wie es den anderen geht, aber ich finde solche Schalterkombinationen als Immer-noch-Anfänger, der immer noch keine Map geschafft hat, sehr interessant.
Vielleicht habt Ihr ja Lust, so nach und nach einige essentielle Schalterkombinationen zu verraten, eine Art "Schalter-Einmaleins" mit universell(er) einsetzbaren Schalterkombinationen? Das wäre eine sehr willkommene Ergänzung für die "Tipps und Tricks", denke ich - könnte aber auch einfach in einem Thread hier im Forum gemacht werden, und die besten würden dann in die "Tipps und Tricks" übernommen, falls aMa das für sinnvoll hält.

Ich fand zum Beispiel die Schalterkombination für den Wechsel zwischen den drei Protagonisten im "Baum"-Szenario, so einfach sie im Prinzip auch sein mag, wirklich lehr- und hilfreich ...

LG
Andreas
@Findig: Die Idee finde ich auch nicht so schlecht. Ich habe oft auch das Gefühl, dass Schalterkombinationen einfach so kopiert werden und es dafür keine Credits gibt. Um ehrlich zu sein, habe ich obige Konstruktion auch geklaut.
Wenn es eine Stelle gäbe, an der die Konstruktionen gesammelt werden, wäre das alles kein Problem mehr.

Spontan fällt mir noch folgendes Problem ein: Es gibt ja eine Bedingung Eigene Objekte (Bedeutung: Der Spieler muss mindestens x Objekte haben), eine Bedingung Weniger Eigene Objekte (Bedeutung: Der Spieler darf höchstens x Objekte haben) und die Bedingung Objekte im Gebiet (Bedeutung: Der Spieler muss mindestens x Objekte im definierten Gebiet haben). Es gibt aber keine Bedingung Weniger eigene Objekte im Gebiet. Das hat mich schon das ein oder andere Mal genervt, weil ich die Bedingung gebraucht hätte, aber zum Glück gibt es eine passende Schalterkombination....

@Baum-Szenario: Die Schalterkonstruktion ist zwar (relativ) simpel, aber nicht einfach. Deswegen kann ich sie hier nicht komplett posten, aber ich kann versuchen, die Wirkungsweise zu erklären. Ich versuche das mal, strukturiert zusammen zu fassen.

1. Grundaufbau
3 Charaktere (A, B und C), zwischen denen beliebig gewechselt werden kann. Dazu gibt es jeweils einen "Wechselort", der zwei Zelte für jeweils ein Ziel hat.
Relevante Schalter:
Wechsel von A zu B
Wechsel von A zu C
Wechsel von B zu A
Wechsel von B zu C
Wechsel von C zu A
Wechsel von C zu B
A an
A aus
B an
B aus
C an
C aus


Ein Wechselschalter hat folgenden Aufbau: (Beispiel: A zu B)
B: Objekt ausgewählt (Zelt, das zum Zielobjekt B führen soll)
B: Objekt im Gebiet (Charakter A in der Nähe vom Zelt)
E: Besitzwechsel (A von Spieler 1 zu Spieler 2)
E: Besitzwechsel (B von Spieler 2 zu Spieler 1)
E: Ansichtwechsel auf B
E: Schalter aktivieren: A aus
E: Schalter aktivieren: B an
E: Schalter aktivieren: Erster Wechsel zu B (siehe 2.)


(Hinweis: im Baum-Szenario hab ich das ein wenig anders und unübersichtlicher gemacht)

Der Schalter A aus deaktiviert nun alle Gesprächspartner, die A hat, damit sie von B nicht angesprochen werden können. Zusätzlich wird der Kartenaufdecker/die Fackel bei A hingesetzt. Wichtig ist auch, dass die Schalter Wechsel von A zu B und Wechsel von A zu C deaktiviert werden.
Im Schalter B an werden entsprechend die Gesprächspartner von B aktiviert und er Kartenaufdecker/die Fackel bei B entfernt. Zusätzlich werden die Schalter Wechsel von B zu A und Wechsel von B zu C aktiviert.

So läuft zumindest schon mal der Wechsel in beliebiger Reihenfolge zwischen den Charakteren.

2. Erweiterung 1: Charaktere starten nicht am Wechselort
Das Problem ist, dass die Charaktere vor dem ersten Wechsel nicht an den Zelten stehen, sondern an einem anderen Ort auf der Karte (der aber bekannt ist). Bekannt ist auch, dass der Spieler mit Charakter A beginnt. Man weiß aber nicht, zu welchem Charakter er als erstes wechseln wird. Wenn er bspw zuerst von A zu B wechselt, würde obige Schalterkonstruktion den Ansichtwechsel zum Zelt statt zum Startort von B machen, was mehr als unschön ist. Also werden zwei zusätzliche Schalter benötigt: Erster Wechsel zu B und Erster Wechsel zu C. Zusätzlich baut man ein Objekt (zB ein Palisadenstück) an einen unzugänglichen Ort.
Der Schalter Erster Wechsel zu B hat folgende Struktur:
B: Objekt im Gebiet (Palisadenstück)
E: Objekt entfernen (Palisadenstück)
E: Ansichtwechsel zu tatsächlichem Startort von B
E: Objekt entfernen (Kartenaufdecker bei tatsächlichem Startort von B)
(Sonstiges)
Der Schalter bewirkt, dass bei jedem Wechsel von A zu B überprüft wird, ob das der erste Wechsel zu B ist. Wenn ja, dann ist das Palisadenstück noch da und der Ansichtwechsel geht zum Startort statt zu den Zelten.

3. Veränderungen
Der Grundaufbau funktioniert nur, so lange es keine "Interaktionen" zwischen den Charakteren gibt. Bspw sammelt im Baum-Szenario Balt die Steine für Molchi ein, der diese an Bleda weitergibt.
In einem "normalen" Szenario hätte man einfach einen Schalter, der überprüft, ob Spieler 1 genug Steine im Besitz hat. Dieser Schalter verändert dann die Antwort von Bleda. Statt "Gib mir Steine" sagt er dann "du bekommst die CD für die Steine" (oder so ähnlich ;) ). Nachdem man die Steine gegeben hat, sagt er dann "Frohe Weihnachten". Das Problem ist also, dass es 3 unterschiedliche Antworten von Bleda gibt und dass zwischen jeder dieser Antworten beliebig viele Wechsel von Molchi zu Balt oder Gaspar und zurück liegen können.
Die Lösung liegt darin, dass man für jede Antwort eine Bedingung findet, die immer dann und nur dann erfüllt ist, wenn es notwendig ist.
Die erste Antwort ist dabei kein Problem. Die wird erstmal immer aktiviert.
Bei der zweiten Antwort finden wir die Bedingung auch recht schnell: Molchi muss 23 Steine im Gepäck haben. Genau dann kann er nämlich die Steine gegen die CD tauschen.
Bei der dritten Antwort haben wir aber ein Problem: Molchi hat 0 Steine (da er sie ja bereits getauscht hat), genau wie bei Antwort 1. Meine Lösung dafür ist dann immer (und ich weiß nicht, ob es nicht vielleicht eine elegantere ist), dass ich ein Gebäude auf der Karte den Besitzer wechseln lasse. Im Baum-Szenario hatten Spieler 2 und Spieler 3 (iirc) die gleiche Farbe. Optisch hat ein Besitzwechsel eines Hauses zwischen diesen beiden Spieler also keine Auswirkungen. Wenn also Molchi seine Steine gegen die CD tauscht, wechselt im selben Schalter ein Haus auf der Karte den Besitz von Spieler 2 zu Spieler 3 (quasi als Beleg für den Wechsel). Damit habe ich eine "künstliche" Bedingung geschaffen, mit der ich die Antwort 3 eindeutig identifizieren kann.
Nun muss beim Schalter A an erstmal Antwort 1 aktiviert werden. Zusätzlich werden zwei Schalter aktiviert, die überprüfen, ob die Bedingungen für Antwort 2 (Steine) und Antwort 3 (Haus) erfüllt sind. Wenn eine der beiden Bedingungen erfüllt ist, wird die entsprechende Antwort aktiviert und die beiden anderen deaktiviert.

4. Das Ende
Dazu will ich nicht viele Worte verlieren, weil ich es mir im Weihnachtsszenario einfach gemacht habe. Die schönste Lösung wäre mMn, dass wenn ein Charakter mit seinen Aufgaben durch ist, er zum Ziel geht und automatisch auf einen anderen Charakter gewechselt wird. Ich habe den Gedanken in Anbetracht der Zeitknappheit nicht zu Ende gedacht, aber ich vermute, dass das nochmal einen ziemlichen Schalterwust nach sich zieht.
Also habe ich einfach zugelassen, dass man mit einem einzigen Charakter zum Ziel geht, wenn alle Aufgaben erfüllt wurden. Dazu hat jeder Charakter ein Double mit TIC bekommen, um das Outro auch mit allen zu zelebrieren.


So, ich hoffe, das war einigermaßen verständlich und es lesen mehr als zwei Leute durch, damit es sich wenigstens gelohnt hat, dass ich mir hier die Finger wund tippe. ;)
[...] (Viel Text :eek: ) [...]
So, ich hoffe, das war einigermaßen verständlich und es lesen mehr als zwei Leute durch, damit es sich wenigstens gelohnt hat, dass ich mir hier die Finger wund tippe. ;)
Oja, das war verständlich. Vielen Dank für die Mühe! :super:
Ich könnte die Erklärung möglicherweise weniger leicht verstehen, wenn sie rein hypothetisch wäre, aber da sie sich auf ein konkret vorhandenes Szenario bezieht, lässt sich die Schalterkombination sehr gut nachvollziehen.
Das wäre für eine mögliche zukünftige Schaltersammlung (die ich, wie schon geschrieben, sehr begrüßen würde) natürlich überhaupt das Optimale, wenn solche Schalterkombis jeweils anhand konkreter Beispiele erklärt werden könnten - was sicher nicht immer oder nur manchmal gehen wird.

Welche Lösung hättest Du denn nun eigentlich für "Weniger eigene Objekte im Gebiet" - falls Du das schreiben kannst, ohne Dir abermals die Finger wund tippen zu müssen?

Zu den TIC-Doubles, die Du im letzten Absatz erwähnst, kann ich nur sagen, dass das wirklich eine feine Methode ist. Ich verwende solche Doubles gerade in einem Höhlen-Tutorial namens "Caveland" ziemlich exzessiv, und es ist eine Freude, damit zu arbeiten. Jedenfalls viel praktischer und unproblematischer als mit "Invisible Tiles".

Und weil wir schon dabei sind (also eigentlich: weil Du schon dabei bist, so gesprächig zu sein ;)), hätte ich da eine Schalter-Frage, die mich bei meinen ersten mühsamen Versuchen, brauchbare Szenen zu schaltern, immer wieder beschäftigt:
Man braucht - besonders in RPGs - ja ziemlich oft "Entscheidungs-Weichen", für die eine in Programmiersprachen übliche "if - then"-Abfrage (eventuell auch "if-then-else" ) im Editor schmerzlich fehlt. Ich behelfe mir dann mit Dummy-Objekten, die in zusätzlichen Dummy-Schaltern abgefragt, erzeugt oder entfernt werden.
Wie lösen denn die Profis solche Dinge?

LG
Andreas
@If-Then-Abfrage:
Das ist gut, dass du diesen Begriff verwendest. Den Begriff "Dummy" habe ich jetzt schon vom Barba gelernt. Das hilft schon mal alles, dass wir ne gemeinsame Sprache haben. :)

Wenn ich das Problem richtig verstehe (bin kein Programmierer), wirkt die obige, erste Schalterkombination in Verbindung mit einem Dummy als If-Then-Abfrage. Das Problem mit der Entscheidungsweiche hat ja Henning in dem anderen Thread (Tribut nur bei <1000G), deswegen habe ich grob schon mal die Lösung vorgeschlagen, es aber nicht bis ins Detail erklärt.
Bei obiger Schalterkombination hast du quasi zwei Schrauben: Die Bedingung (im Bsp "Objekt ausgewählt") und den Effekt (im Bsp "Besitzwechsel"). Wenn du den Besitzwechsel auf den Dummy machst, dann kannst du über eine Besitzabfrage des Dummys (entsprechender Spieler hat das Objekt im Gebiet) den jeweiligen Zustand abfragen.

Ich habe das im Szenario Baum verwendet: Dort bekommt man vom Huskarl nur Holz, wenn man nicht schon Holz hat. Und diese Abfrage funktioniert mit der Schalterkombi und dem Dummy, der in diesem Fall ein Turm im rechten Karteneck ist.

@"Weniger Eigene Objekte im Gebiet":
Ich würde das auch wieder mit der obigen Schalterkombi+Dummy machen. Man muss nur die Bedingung entsprechend einstellen. Daran sieht man auch die Flexibilität der Lösung.
Ursprünglich habe ich den Thread hier ja auch mit der Idee gestartet, dass vielleicht jemand bessere Lösungen kennt. Scheint nicht so zu sein, evtl. werde ich die Frage nochmal auf aokh stellen.
Wenn ich das Problem richtig verstehe (bin kein Programmierer), wirkt die obige, erste Schalterkombination in Verbindung mit einem Dummy als If-Then-Abfrage.
[...]
@"Weniger Eigene Objekte im Gebiet":
Ich würde das auch wieder mit der obigen Schalterkombi+Dummy machen. Man muss nur die Bedingung entsprechend einstellen. Daran sieht man auch die Flexibilität der Lösung.
Ursprünglich habe ich den Thread hier ja auch mit der Idee gestartet, dass vielleicht jemand bessere Lösungen kennt. Scheint nicht so zu sein, evtl. werde ich die Frage nochmal auf aokh stellen.
Ja, Deine Schalterkombi kann als IF-THEN-Routine verwendet werden, und ich frage mich, so wie Du, ob das eventuell noch einfacher, "eleganter" geht.
Wie ich damit zu "Weniger eigene Objekte im Gebiet" käme, verstehe ich allerdings nicht. :confused: (Bin ja ebenfalls kein Programmierer.)

LG
Andreas
Ich weiß nicht, ob dieser Thread der richtige für meine Frage ist. Es fiele aber sicher unter die Rubrik "universell einsetzbare Schalterkombi":
Wie würdet Ihr denn eine "Erdbeben"-Schalterkombi erstellen?
Damit meine ich diese schnellen, minimalen Ansichtswechsel, die den Eindruck vermitteln, der Bildschirm würde beben.
So eine Kombination sollte durch einen einzigen Schalter gestartet werden und nach einer bestimmten Zeit von selbst wieder aufhören - also so, dass man die Dauer des "Bebens" nur in einer "Timer"-Bedingung der Schalterkombi ändern müsste.
Habe bei meinen eigenen Versuchen gerade ein paar "schöne" Abstürze produziert ... :KopfgegenWand:

Kann mir da jemand helfen? *liebschau*

LG
Andreas
Hier die Schalterkombination:

Erdbeben1
Sch1 Schleife: Aus
Beding: Timer: 2 Sekunden
Eff: Ansichtswechsel
Eff1: Sch2 aktivieren
(Eff2: Neues Objekt: Krater / Risse)
(Eff3: Objekt vorschädigen)

Erdbeben2
Sch2 Schleife: Aus
Beding. Timer: 2 Sekunden
Eff: Ansichtswechsel (4-5 Felder von 1. Ansicht entfernt)
Eff1: Sch1 aktiveeren
(Eff2: Neues Objekt: Krater / Risse)
(Eff3: Objekt vorschädigen)

Erdbeben starten
Sch3
Eff1: Sch1 aktivieren
Eff2: Sch4 aktivieren

Erdbeben stoppen
Sch4
Beding: Timer: z.B 30 Sekunden
Eff: Sch1 deaktivieren
Eff1: Sch2 deaktivieren
Ich weiß nicht, ob dieser Thread der richtige für meine Frage ist. Es fiele aber sicher unter die Rubrik "universell einsetzbare Schalterkombi":
Wie würdet Ihr denn eine "Erdbeben"-Schalterkombi erstellen?
Ja warum nich ^^ .. besser als ständig n neuen Thread zu eröffnen. Aber eine "universell einsetzbare Schalterkombi" is es eher nich .. Is ja im Prinzip nu eine Kette von Ansichtwechseln .. Ich weis auch nich wie du da Abstürze produzieren konntest.

Dass du die Dauer mit nur einem Zeigeber festlegst geht nur so:

Schalter 0 [aktiv]
B 0 = whatever
E 1 = aktiviere Schalter 1
E 2 = aktiviere Schalter 4

Schalter 1 [inaktiv]
B 0 = Zeitgeber 2
E 1 = Ansicht wechseln
E 2 = aktiviere Schalter 2

Schalter 2 [inaktiv]
B 0 = Zeitgeber 2
E 1 = Ansicht wechseln
E 2 = aktiviere Schalter 3


Schalter 3 [inaktiv]
B 0 = Zeitgeber 2
E 1 = Ansicht wechseln
E 2 = aktiviere Schalter 1

Schalter 4 [inaktiv]
B 0 = Zeitgeber 120
E 1 = deaktiviere Schalter 1
E 2 = deaktiviere Schalter 2
E 3 = deaktiviere Schalter 3

Wie funktioniert das Ganze?:

Schalter 0 setzt das Erdbeben in Gange
nun zuckt die Ansicht abwechselnd in Richtung 3er Positionen hin und her (durch Hinzufügen weiterer Schalter kann man die Zuckungen noch erweitern)
Schalte 4 beendet nach einer bestimmten Zeit nun das ganze Spektakel

Ps: Oh ich seh grad Chev hat das selbe Prinzip ^^
Oh ich seh grad Chev hat das selbe Prinzip ^^
Haha, schon wieder Vorzeitiger Posting-Erguß? ^^
Tja, du hättest (Achtung Kalauer) eben vorher deine "Ansicht wechseln" sollen. LOL :D

Ansichtwechsel können übrigens durchaus zu Abstürzen führen.
Normalerweise vor allem bei zu hohen Distanzen, aber wenn man etwa wie im Falle eines simulierten Erdbebens die Zeitgeber sich evtl. überlappen oder zu eng gesetzt sind, kann das auch da passieren. Habs bei der Erstellung eines Intro mal festgestellt.
Bei einer streng gestaffelten Anordnung wie oben (in doppelter Ausführung ^^) sollte das aber - bei ausreichendem zeitlichen bzw nicht zu großem örtlichen Abstand der Effektpositionen - ziemlich narrensicher sein.

Viel alternative Schalterungsmöglichkeiten gibts beim Thema Erdbeben ja auch kaum. Ein Aktivator, mehrere Rüttler in Reihe und ein Deaktivator. Das war's. :(
Danke, Chevalier und Danke, Björn! :super:
Sehr klar und einfach. Meine Abstürze hatten wohl tatsächlich was mit kollidierenden Zeitgebern zu tun, denn im Prinzip habe ich dasselbe gemacht (genau kann ich's allerdings nicht mehr eruieren, da mir das Szenario vor dem Abspeichern beim Testen jeweils abgestürzt ist.)

Überhaupt "Zeitgeber" - da habe ich, glaube ich, noch ein paar prinzipielle Verständnisprobleme: Weshalb habt Ihr beide jeweils "Zeitgeber = 2" in den Ansichtswechsel-Schaltern?
Ich habe ja schon begriffen, dass "Zeitgeber = 1" und das hypothetische "Zeitgeber = 0" identisch wären; dass also ein Schalter ohne Zeitgeber und einer mit "Zeitgeber = 1" gleichzeitig gestartet werden und erst "Zeitgeber = 2" eine Verzögerung von einer Sekunde auslöst.
Ist das der Grund dafür?

Und weil wir schon bei der Zeit sind: Kennt ihr eigentlich den AOE2 Time Calculator? Kann manchmal ganz praktisch sein, finde ich.

LG
Andreas
Ja genau deswegen.. 2 is halt das kürzeste, was geht und bei Spielgeschwindigkeit schnell fällt das auch nich weiter auf :)
Ja genau deswegen.. 2 is halt das kürzeste, was geht und bei Spielgeschwindigkeit schnell fällt das auch nich weiter auf :)
Mhm. Tatsächlich kommt bei lediglich zwei Ansichtswechsel-Schaltern (können aber natürlich auch, wie von Dir vorgeschlagen, mehr sein) ein besseres Ergebnis raus, wenn einer der Schalter mit "Timer = 1" arbeitet. Das - ohnehin nicht berauschende - "Ruckeln" wird dann weniger ... gemächlich.

@Chevalier: Bei den neuen Objekten macht sich neben Rissen und Kratern auch "Dust C" (also eine Explosions-Staubwolke) ganz gut. Sollte aber, weil sehr kurzlebig, in einem Loop-Schalter immer wieder erschaffen werden - wie zum Beispiel auch SMOKE, S_SMOKE, S_FIRE etc.

Danke nochmal für Eure Hilfe!

LG
Andreas
Findig: "Bei den neuen Objekten macht sich neben Rissen und Kratern auch "Dust C" (also eine Explosions-Staubwolke) ganz gut. Sollte aber, weil sehr kurzlebig, in einem Loop-Schalter immer wieder erschaffen werden - wie zum Beispiel auch SMOKE, S_SMOKE, S_FIRE etc."

Hab ich auch gemacht in "Der Bruderkrieg". Das Dorf, das überfallen wird, brennt nämlich schon gehörig und um das ganze noch "schöner" zu machen, habe ich auch S_FIRE & S_SMOKE verwendet. Auch per Loop - nur ist hier Vorsicht geboten! Ich hatte mit der Schleife etwas übertrieben und -schwups!- hatte ich ein Dorf voller ITs ... :D :D
dann kann man die ja auch per schleife wieder löschen ^^