Switch to full style
Thema gesperrt

Item-Abfragen in has, drop, take sowie White-/Blacklists

Fr 05 Apr, 2013 15:16

Zu eurer Information: Ich habe die Auswertung der Itemangaben vereinheitlicht und möchte euch ein paar Beispiele geben, was man damit alles machen kann.

Abfragen von Items mit <has item="" />

<has item="Schwert"> ... prüft, ob der Held ein Schwert dabei hat
<has item="%dolch"> ... prüft, ob der Held irgendein Item dabei hat, dessen Name mit 'dolch' aufhört (z.B. 'Meucheldolch').
<has item="*Nahkampfwaffe"> ... prüft, ob der Held ein Item, das als Nahkampfwaffe getaggt ist, dabei hat. Man beachte den * -> alle Angaben mit einem * am Anfang sind Angaben zu Waren-Tags.

Verknüpfung von mehren Items:
<has item="Schwert|Dolch"> ... prüft ob der Held ein Schwert oder ein Dolch dabei hat.
<has item="*Alkohol|*Marschverpflegung"> ... prüft, ob der Held Alkoholika oder einfache Nahrungsmittel für unterwegs dabei hat
<has item="Schwert+Dolch"> ... prüft, ob der Held ein Schwert UND ein Dolch dabei hat. Diesen "+" Operator gibt es übrigens nur bei has!

Die zwei Operatoren | (ODER) und + (UND) können dabei beliebig oft gesetzt werden.


Ablegen von Items mit <drop item="" />

Analog zu has, können bei drop mehrere Angaben zum Item erfolgen.

<drop item="Schwert" />.... klaut ein Schwert.
<drop item="*Alkohol"/> ... klaut ein alkoholisches Item.
<drop item="*Nahkampfwaffe|*Fernkampfwaffe" /> ... klaut eine Waffe (Verwendung eines Warentags).
<drop item="att_magisch=1" /> ... klaut einen magischen Gegenstand. Hier wurde mit att_magisch ein Warenattribut angegeben. Mehr zu Warenattributen weiter unten.

Auch hier ist eine Verknüpfunt mehrer Itemangaben mit dem ODER-Zeichen "|" möglich.


Ablegen von Items in Inventare mit <drop to="" />

Man kann dem Spieler ein Inventar anzeigen lassen mit <drop to="inventarname"/> wo der Spieler wählen kann, welche(s) Item(s) er ablegen möchte.
(Die Transferansicht kommt nur, wenn kein item angegeben ist. Andernfalls werden die unter item angegebenen Gegenstände automatisch ins Inventar gedroppt.)

Für den Tausch mit einem Inventar kann jetzt auch eine Blacklist oder eine Whitelist an Waren angegeben werden, z.B.
<drop to="Barkeeper" whitelist="*Alkohol" count="1"/>
ermöglicht, dass man dem Inventar genau einen alkoholischen Gegenstand geben kann.

Die Angabe einer Blacklist (Waren, die NICHT abgeben werden dürfen) erfolgt analog. Es können jeweils konkrete WarenIDs oder Warennamen oder Wildcars à la '%pfeil' oder '%dolch' verwendet werden. Immer mit | verknüpfbar. Also z.B.
<drop to="Truhe" blacklist="*Nahkampfwaffe|*Fernkampfwaffe|#1234|%pfeil" /> -> man kann alles ablegen außer Waffen, die Ware 1234 und keine Pfeile.

Neu: Es können Warenattribute angegeben werden, z.B.:
<drop to="Stall" whitelist="att_tier=1" count="1" /> Hier können nur Items ins Inventar 'Stall' gelegt werden, die das Warenattribut 'att_tier' auf 1 haben. Mehr zu Warenattributen weiter unten.

Oder:
<drop to="Altar" whitelist="Alabasterkelch|att_daemon=1|att_magisch=1|Besondere%" /> (würde Alabasterkelche, dämonisch-geflaggte Sachen, magische Sachen, sowie alle Items, die mit "Besondere" anfangen (z.B. Besonderer Zweihänder) droppbar machen.


Tausch zwischen Heldenrucksack und Behältern mit <transfer />

Dazu muss zunächst ein Behälter selektiert sein. Mehr dazu im Wiki.
Danach kann mit <transfer /> eine Transferansicht anzeigen lassen, wo der Spieler bestimmen kann, was er in den Behälter legen möchte.

Möchte man als AOQML-Schreiber nun einschränken, was im Behälter aufgenommen werden darf, kann wiederum eine Whitelist oder eine Blacklist verwendet werden (ehemals allowed und forbidden -> ist dasgleiche).
<transfer whitelist="%dolch" count="1" /> nur ein Dolch kann im Behälter aufgenommen werden.
<transfer blacklist="att_tier=1" /> Es dürfen keine Tiere im Behälter verstaut werden.


Aufnehmen von Items mit <take item="" />

Diese ganze Vereinheitlichung der Auswertung der Itemangabe gilt nicht für take item="", da ist es m.E. besser, wenn da der konkrete Warenname oder die konkrete WareID angegeben wird.
Also hier ist lediglich möglich:

<take item="Schwert" />
<take item="#1871" />


Aufnehmen von Items aus Inventaren mit <take from="" />

Wenn ein Inventar definiert wurde, in dem sich Gegenstände befinden, kann dies dem Spieler angezeigt werden: <take from="inventarname" />
Auch hier sind wiederum Einschränkungen durch den AOQML-Schreiber möglich.
Whitelist- und Blacklisteinschränkungen gibt es hier nicht. Jedoch könnte festgelegt werden, dass lediglich ein Item (oder zwei, oder drei ...) entnommen werden darf:
<take from="Altar" count="1"/> ... nur ein Gegenstand darf mitgenommen werden.


Verfügbare Warenattribute

Für jede Ware sind in der Datenbank die folgenden Attribute gepflegt (mögliche Ausprägungen sind 0 oder 1):
Code:
att_alltaeglich
att_daemon
att_essbar
att_exotisch
att_geweiht
att_handwerk
att_kunst
att_lebendig
att_lesbar
att_magisch
att_medizinisch
att_meeresbezogen
att_natur
att_pulver
att_rare
att_selten
att_spielbar
att_tragbar
att_transportmittel
att_trinkbar
att_werkzeug
att_wertgegenstand

sowie 'att_tier' (wobei das nicht wirklich in der DB existiert, aber im Code zur Verfügung steht)



Soweit der Überblick. Ich werde die Tage die Informationen zu White-/Blacklists und zu Warenattributen im Wiki aktualisieren.

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

Fr 05 Apr, 2013 15:54

Sag, wenn du mit dem Backup fertig bist, bitte mal Bescheid, ob das noch gilt, oder da der Fehler lag und das erstmal wieder vom Tisch ist.

Ansonsten: :Jupp:

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

Fr 05 Apr, 2013 16:25

Das gilt ... Der Fehler hatte eigentlich nur indirekt damit zu tun ... wenn man schnell noch was verschönern will und das dann ungetestet live schaltet ...

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

Fr 05 Apr, 2013 16:37

Prima, dann baue ich das gleich in die neuen ein und rüste wo nötig nach. Kommt dann alles morgen im Block.

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

Fr 05 Apr, 2013 19:23

Mein Hirn verknoten sich gerade wieder:

Wenn ich auf der Whitelist eines Behälters "att_lebendig=0" eintrage heißt das, dass man alles hineinlegen kann, was nicht als lebendig attribuiert ist? (Bei einer Whitelist spielt das Ausgrenzen von lebenden Tieren ohnehin keine Rolle, aber grundsätzlich zur Funktion des Wertes "0")

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

Fr 05 Apr, 2013 19:27

Ja, das würde bedeuten: Nur Sachen, die nicht lebendig sind. Aber ein Hinweis: Pflanzen und Gewürze haben wir als lebendig markiert, z.B. Feuerkraut, Fenchel, Garnelen und alle Tiere.

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

Sa 06 Apr, 2013 11:11

<drop item="Schwert" />.... klaut ein Schwert.
<drop item="*Alkohol"/> ... klaut ein alkoholisches Item.


Wenn ich möchte das mehr als ein Schwert oder alkoholisches Item geklaut werden soll, heißt es dann wie folgt?

<drop item="Schwert" count="2"/>.... klaut zwei Schwert.
<drop item="*Alkohol" count="*"/> ... klaut alle alkoholisches Item.

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

Sa 06 Apr, 2013 11:13

Genau. Auf count bin ich gar nicht weiter eingegangen, aber hast du richtig erkannt.

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

So 07 Apr, 2013 18:23

Werden die Waren-Tags noch gepflegt? Ist auch eine Verknüpfung der White-/Blacklists mit Warentag denkbar?

Grüße
Enno

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

So 07 Apr, 2013 18:25

Enno hat geschrieben:Werden die Waren-Tags noch gepflegt? Ist auch eine Verknüpfung der White-/Blacklists mit Warentag denkbar?

Grüße
Enno


Ja, geht.

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

So 07 Apr, 2013 18:39

Super!

Hat jemand was dagegen, wenn wir alle Waren mit Tag Kleinkram siehe Waren-Tag für alle kleineren Behälter ohne Spezialfunktion erlauben?

Gruß
Enno

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

So 07 Apr, 2013 18:41

Na wenn da alles reinpasst? Da sind auch Decken, Geschirr etc. mit dabei. Kleinkram bezieht sich eher auf den Warenwert und nicht unbedingt auf Gewicht und Größe.

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

So 07 Apr, 2013 18:45

Es könnte auch sein, dass ich die Frage falsch verstanden hatte. Wenn du meinst, ob man auch Blacklist UND Whitelist bei einem Behälter definieren kann und sich beide dann ergänzen, dann lautet die Antwort leider nein. Es gilt entweder oder und ich meine eine der beiden ist auch höherrangig.

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

So 07 Apr, 2013 19:24

Ja, Whitelist vor Blacklist. Wenn eine Whitelist gesetzt ist, dann greift die Blacklist nicht. Das ließe sich aber prinzipiell ändern.

Bei den Behältern greift aktuell die Größenrestriktion/Gewichtsrestriktion aber immer, egal was für eine White-/Blacklist angegeben wurde.

also ein <transfer whitelist="Elefant" size="50" /> würde dazu führen, dass nix reingeht, weil size wichtiger als die Whitelist.

Re: Item-Abfragen in has, drop, take sowie White-/Blacklists

Fr 14 Jun, 2013 23:35

Neuerdings kann man auch den Waffentyp der Waffen, die man mit sich rumschleppt, abfragen.

Möchte man z.B. wissen, ob der Held gerade einen Dolch trägt, kann man dies wie folgt tun:
Code:
<has item="waffe_typ=Dolche" equipped="true">


Möchte man z.B. wissen, ob der Held eine Wuchtwaffe irgendwo dabei hat (gerüstet oder nicht, auf Begleiter oder im Gepäck - ganz egal):
Code:
<has item="waffe_typ=Wuchtwaffen">


Ist auch kombinierbar. Möchte man z.B. wissen, ob der Held eine beliebige Zweihandwuchtwaffe oder Zweihandflegel angelegt hat:
Code:
<has item="waffe_typ=Zweihandwuchtwaffen|waffe_typ=Zweihandflegel" equipped="true">


usw.

Zur Info: Es existieren die folgenden Waffentypen:
Code:
Anderthalbhänder
Dolche
Fechtwaffen
Kettenstäbe
Kettenwaffen
Peitsche
Raufen
Schwerter
Speere
Stangenwaffen
Stäbe
Säbel
Wuchtwaffen
Zweihandflegel
Zweihandklingen
Zweihandwuchtwaffen
Thema gesperrt