PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe bei AND und OR --danke gelöst--



EMOD
12.04.2009, 23:24
Ich blicke bei der Logik bei Effecten und Bedinungen nicht ganz durch.

Ich habe ein Betäubungsgwehr, das nicht bei Powerrüstung und Robotern funktionieren soll, was es auch macht.

http://www.abload.de/thumb/unbenannt554k.png (http://www.abload.de/image.php?img=unbenannt554k.png)

Was ich nicht verstehe ist die Effect-Bedingung, die bei beiden auf AND steht. Wäre nicht logischer, dass die erste ein OR ist ? (Was nicht geht, weil dann im Spiel beide Bedingungen nicht mehr funktionieren.)

Wie muss ich es dann formulieren, wenn ich will:

Bedingung 1. Powerrüstung
Bedingung 2. Powerhelm
Bedingung 3. Roboter

Die Sache soll nur funktioniert wenn jemand die komplette Rüstung trägt (also Bedingung 1 + 2, nicht 1 oder 2) oder es ein Roboter ist (Bedingung 3). Also 1+2 oder 3 müssen zutreffen.

Logisch wäre:
Bedingung 1. Powerrüstung AND
Bedingung 2. Powerhelm OR
Bedingung 3. Roboter AND

Allerdings hat micht das erste Beispiel verunsichert (Bild), da dort ja eigentlich ein OR funktionieren müsste, da das Gewehr nur funktionieren soll, wenn es jemand mit Rüstung >= 41 oder ein Roboter ist, das funktionierende AND verwirrt micht dabei total.

Stygs
13.04.2009, 13:11
Bin nicht so der Experte darin, aber nachdem was ich bisher über die Bedingungen gesehen hab, lässt sich das nicht so umsetzten wie du willst

Das OR bezieht sich nur auf die Sachen die direkt Links und Rechts davon stehen - beim nächsten AND wird das OR wieder beeendet.

Beispiel:
Bei Powerrüstung AND Powerhelm OR Roboter
würde es aktiveren wenn man ne Rüstung und nen Helm oder nen Roboter hat.

Bei Roboter AND Powerhelm OR Powerrüstung
würde es aktiveren wenn man nen Roboter ist und einen Helm oder ne Rüstung trägt.


Ich denke daher nicht, das es sich so umsetzten lässt - mein Vorschlag wäre, die Teile der Rüstung in eine Form List zu hauen (wie bei ner Reperaturliste) und abzufragen oder das Object a) die Form List trägt oder obs b) ein Roboter ist.
Allerdings keine Gewähr das das auch wirklich funktioniert.. :(


PS: Sicher dass das Bild auch wirklich auch Menschen mit ner PA funzt? Wenn ichs richtig verstehe, dürfte es wirklich nur bei Robotern mit mindstens 41 Panzerung wirken...

EMOD
13.04.2009, 14:25
Genau das verwirrt mich ja, es funktioniert bei Enklave, die eine Powerrüstung tragen oder bei Robotern. Wenn ich eben ein OR reinmache, was eigentlich rein gehört, dann kann man Roboter und Enklave mit Powerrüstung betäuben, also genau das Gegenteil von dem was ich will (da er anscheinend genau dann SR >41 und Roboter sucht, die er als Bedingung nie finden wird).

Die Formliste geht ja nicht mit Rüstung und Helm komplett, da sonst ja auch ein Helm ohne Rüstung funktionieren würde, nur weil er in der Liste enthalten ist. Ich will eine Helm- und eine Rüstungsliste, die ich beide mit einem UND vebinde und einem ODER für Roboter als Bedingung mache. Das SR >= 41 ist momentan nur ein Notbehelf.

Das schreibt Bethesda dazu:
The OR checkbox is used to determine how a Condition Item is evaluated with the ones that follow it. Consecutive ORs are treated like a single block when evaluating and have order preference over AND. For example, the condition items ( A AND B OR C AND D ) are evaluated as ( A AND ( B OR C ) AND D ) and not ( ( A AND B ) OR ( C AND D ) ).

Also müsste funktionieren:
Roboter AND
Helmliste OR
Rüstungsliste AND

Irgendwie ist die Logik dann genau umgedreht, also ein AND sagt nur aus, dass noch was danach kommt und ein OR verbindet diese und die folgende Bedingung zu einem Block ? :confused::confused::confused:

Ich finde leider keine Beispiele im GECK/Original, wo ich das abschauen könnte, da sich Bedinungen fast immer auf AND beziehen.

Shatra
13.04.2009, 16:20
Roboter OR HeRü, HeRü = WAHR, wenn Helm AND Rüssi

Stygs
13.04.2009, 16:36
Also müsste funktionieren:
Roboter AND
Helmliste OR
Rüstungsliste AND

Nein, das wäre ja wieder (A AND (B OR C)), also endweder Roboter und Helm oder Roboter und Rüstung.

Kannst du nicht einfach 2 Effekte erstellen? Also einen der NUR auf Roboter wirkt und einen der NUR auf Leute mit Rüstungen wirkt? Dann würdest du diese Umfrage einfach umgehen können :/




Genau das verwirrt mich ja, es funktioniert bei Enklave, die eine Powerrüstung tragen oder bei Robotern. Wenn ich eben ein OR reinmache, was eigentlich rein gehört, dann kann man Roboter und Enklave mit Powerrüstung betäuben, also genau das Gegenteil von dem was ich will (da er anscheinend genau dann SR >41 und Roboter sucht, die er als Bedingung nie finden wird).

Wie jetzt? Bei AND sind sie ímmun, bei OR werden sie betäubt?
Wenn ja, ist das doch korrekt. ;)
Der Effekt tritt ja nur ein, wenn die Bedingungen erfüllt sind - da die Enclave-Soldaten zwar nen hohen Rüstungswert haben, aber keine Roboter sind, werden sie NICHT betäubt (sie erfüllen ja nur eine der beiden "AND" Bedingungen). Gleiches gilt für Roboter, auch sie erfüllen nur eine der beiden Bedingungen und werden nicht betäubt.

Wenn du aber ein OR nimmst, erfüllen sowohl Enclaves als auch Roboter je eine "OR" Bedingung und können betäubt werden.
Ist schon richtig so.

EMOD
13.04.2009, 17:09
Genau das verwirrt mich daran, wenn ich die Abfrage in ein Skript machen würde, dann ginge es nicht:

is SR >41 && Roboter
dann mache das nicht...

das würde nie zutreffen, weil nie beides gleichzeitig vorkommt, also ein Roboter mit SR 41, was ich ja auch nicht abfragen will.

Korrekt wäre im Skript:

is SR >41 || Roboter
dann mache das nicht..


Im Object-Effect werden beide Bedingungen mit AND versehen und es geht, mache ich ein OR dazwischen geht es eben nicht. Man beachte, der Effekt soll jeweils nicht bei den Bedingungen anschlagen. Also eine Ausschlußliste ==0.

Genau das letzte verstehe ich nicht, bei einem OR erfüllen sie plötzlich beide Bedingungen nicht. Die Enklaven sind mit oder ohne OR immer SR >41, wieso wird aus dem OR ein UND, da das Spiel es dann so interpretiert:

Bist du SR >41 und ein Roboter dann betrifft es dich nicht.

Warum fragt dieses AND die Bedinungen einzeln ab und ein OR verbindet die Abfrageblöcke ? Mein Hirn läuft da gerade in einer Unlogikschleife :D

Zwei getrennte Abfragen gehen nicht, da man einer Waffe nur einen Object-Effect zuweisen kann. Diese Bedingungsblöcke gehen ja, um sowas abzufragen, nur die Logik der AND OR und ihrer Blockzuweisung kann ich nicht folgen.

EMOD
14.04.2009, 11:19
Die Logik der Bedingungen ist für mich einfach verdreht:

Rüstungsliste == 0 OR
Helmliste == 0 AND
Roboter == 0 AND

hat soweit funktioniert. Das OR verbindet die ersten beiden Bedigungen, die dritte wird als eigenständige Bedigung akzeptiert. Betäubt wird nur wenn 1 oder 2 aktiv ist, wenn 1 und 2 gleichzeitig zutreffen wird nicht betäubt. 3 wird nie betäubt.

Im Grunde genommen mache ich OR AND umgekehrt rein, wie ich sie sonst in Skripte formuliere.