• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Gegenstände mit einander benutzen/kombinieren

Sabeta

Geocacher
Hi,

Urwigo ist doch komplizierter als ich dachte

Ich habe zwei Gegenstände, eine Box und ein Schlüssel, es gibt darüber hinaus auch noch weitere Gegenstände.
Den Schlüssel ordne ich den Spieler zu (er hat ihn zuvor gefunden) mit ihm kann er alles aufschließen was aufschließbar ist untere anderem die Box die einer Zone zugeordnet ist
Nun gebe ich dem Schlüssel den Befehl „öffne“ und weise ihm die Box zu, eventuell noch andere Gegenstände.
Nun gibt es mehrere Probleme:
- (1) Befindet sich der Spieler nicht in der Zone und der Spieler klickt den Schlüssel an, kommt: „öffne“, klickt man das an, kommt nichts. Hier wäre schön wenn man statt dessen eine Meldung bringen könnte in der Art „hier ist nichts zum aufschließen“
- (2) Ist der Spieler in der Zone, ist alles wunderbar, es kommt wieder „öffne“ und dann eine Auswahl der Gegenstände, mindestens aber „Box“. Also lautet der Befehl des Schlüssels „öffne Box“ - so soll es sein, es ist sprachlich auch korrekt.
- (3) Nun kann der Spieler aber auch die Box anklicken, hätte er keinen Schlüssel ist wieder das Problem (1) zugegen
- (4) hat der Spieler den Schlüssel, klickt aber die Box an, kommt auch bei der Box der Befehl „öffne“ und dann die Auswahl „Schlüssel“, der Befehl der Box lautet also „öffne Schlüssel“, was sprachlicher Unsinn ist. Statt „öffne“ würde ich bei der Box lieber „benutze“ verwenden wollen. Also mache ich das und gebe der Box den Befehl „benutze“ und weise ihr den Schlüssel zu. Nun erscheinen aber jeweils beide Befehle bei der Box und Schlüssel. Das ist schlecht.
Wie kann ich dieses Problem lösen. Ich möchte bei der Box nur „benutze“ (benutze Schlüssel) und beim Schlüssel nur „öffne“ (öffne Box), letztlich führen beide Befehle eine Aktion aus, die Box wird geöffnet, wenn nichts zum öffnen da ist soll dies auch per Meldung mitgeteilt werden, sonst steht der Befehl da und der Spieler wundert sich bei anklicken das nichts passiert/nichts angewählt werden kann (man könnte natürlich einen weiteren Dummy-Gegenstand einführen sodass immer etwas zur Auswahl steht aber das ist sicherlich nicht die eleganteste Lösung.

Sabeta
 

kansu_makugen

Geocacher
Tach,

zu allen vier Punkten kann ich nichts sagen, aber das bisschen, was ich weiß, teil ich doch gerne mit anderen ;)
Zu (1) und (3): Du kannst den Befehl "Öffne" beim Betreten einer Zone, in der ein Gegenstand liegt, den man auch öffnen kann, aktivieren und beim Verlassen deaktivieren. Wenn du dabei noch abfragst, ob der Spieler den Schlüssel in Inventar hat (Urwigo hat den "contains" bzw. "enthält" Baustein), wird der Befehl auch nur dann angezeigt, wenn der Schlüssel im Inventar und der Spieler in der besagten Zone ist.
Zu (4): Ich weiß es nicht sicher, aber ich denke, da gibt es keine Möglichkeit (oder zumindest keine einfach). Mach es doch einfach wie in den guten alten Point&Click Adventures und nenn den Befehl "Benutzen", das geht für so ziemlich alles und klingt nur halb so komisch wie "öffne Sclüssel" ;)
 

jonny65

Geomaster
Ich glaub das geht nicht 2 miteinander verknüpften Items unterschiedliche Kommandos zu geben bzw. es zu vermeiden daß 1 Befehl bei beiden angezeigt wird.
Ich hab einen Brunnen, in dem was versteckt ist. Man muss aber dazu a) ne Lampe haben und b) die Lampe muss natürlich angeschaltet sein. Brunnen und Lampe sind verknüpft und haben deswegen beide den Befehl "Benutze". Und das stimmt auch, wenn man "es sich richtig interpretiert" und zwar einerseits passiv, andrerseits aktiv. Also es kommt "Brunnen" mit der Auswahl "Benutze"...im Sinn von "Benutze was für den Brunnen ?" > eben die Lampe. Bei der Lampe im Sinn von "Benutze sie für was ?" > eben zum ausleuchten des Brunnens.

zu 1)
Man kann ein Kommando entweder disablen wos kein Sinn macht und nur dann anschalten wenn das Item oder der Charakter in der Zone ist. Oder man lässt es immer an, verknüpft es mit dem passenden Item und trägt bei "Empty Text" des Kommandos ein "Mit dem Schlüssel kannst du hier nichts anfangen". Zu der Texteingabe kommt man über "Edit Item" des entsprechenden Kommandos, da wo man auch das Item mit andren verknüpft.
 
OP
S

Sabeta

Geocacher
Danke euch zwei, "benutzen" universell einzusetzen ginge natürlich und behalte es im Hinterkopf, derzeit habe ich meine Konzept etwas umgestellt und biete die Befehle erst beim Zielobjekt an, wenn den aktionsausübenden Gegenstand besitzt. Und deaktive den Befehl wieder, wenn eine Aktion erfolgreich war. Das ist einerseits für den Spieler leichter oder schwerer, jenachdem.

Da mit dem "Empty Text" ist ein gute Hinweis, bisher wusste ich nicht wofür eigentlich dieser Teil ist.

Sabeta
 

austriaka

Geocacher
du kannst den Namen deines Befehls auch per LUA Code ändern, z.B. je nachdem in welcher Zone sich der Player befindet:
objItemName.Commands["objCommandName"]["Text"] = "oeffnen"
 

bodenseepingu

Geomaster
Wenn die vorgefertigten Kombinationen nicht passen, kann man ja auch auf das Kombinieren von Gegenständen verzichten und das selber programmieren.

d.h. bei Öffne z.b. einfach einen Input mit einer Selektionsbox aufrufen.
Wenn man ein bisschen LUA kann, kann man durchaus auch die Box mit
dem befüllen, was man tatsächlich auch im Inventar hat und in der Liste haben
möchte...

Damit hat man auch die Möglichkeit, denselben Befehl in verschiedenen Items unterschiedlich zu bezeichnen..ist halt viel Arbeit für wenig Ergebnis.

Wenn ein WIG von der Story her gut ist und gut umgesetzt ist, dann kommts m.E. aber nicht unbedingt drauf an, ob die Befehle grammatikalisch gut passen...
 
OP
S

Sabeta

Geocacher
Mit LUA muss ich mich erst noch auseinandersetzen, mein größtes Problem dabei wäre, wie ich auf alles überhaupt zugreifen kann, LUA selbst ist im www gut dokumentiert.

Bisher habe ich es nun so gelöst das nur das Ziel den Befehl erhält, z.B. ein "Tür" hätte den Befehl "öffnen" "aufschließen" "zuschließen"

ist die Tür verschlossen und man hat kein Schlüssel im Inventar
"öffnen" -> Die Tür ist verschlossen
"aufschließen" -> Womit, ich habe keinen passenden Schlüssel

ist die Tür verschlossen und man hat den Schlüssel
"öffnen" -> Die Tür ist verschlossen
"aufschließen" -> Du schließt die Tür mitd em Schlüssel auf

ist die Tür offen und man hat den Schlüssel
"öffnen" -> Die Tür ist bereits offen
"zuschließen" -> Du schließt die Tür ab.

Generell habe ich mich dazu entschlossen, das Befehle, wenn deren Aktion einmalig sind entfernt werden, wenn sie noch nicht funktionieren weil etwas im Inventar fehlt bleiben sie aktiv.
Einige erscheinen auch erst, wenn man das passende Mittel vorhanden ist.
Und dann gibt es noch die Dummy-Befehle, wobei ich damit sparsam umgehe, damit es nicht zu langweilig wird. So könnte man theoretisch alles mit Werkzeug reparieren oder auseinandernehmen, aber z.B. bei Obst wärst dann doch zu abgefahren und überflüssig dann zu sagen, das Obst kannst du nicht reparieren oder es ist nicht defekt, anderseits könnte man es natürlich "zerschneiden" mit einer Säge.

Vom Gedanken ein Adventure im Scumm-Stil umzusetzen, habe mich schon wieder verabschiedet, das ist einfach zu komplex. Wenngleich ich bei 2 Stages schon recht weit fortgeschritten bin (20 Aktionen in Summe), nur letztlich läßt sich das dann doch nur linear umsetzen, weil es sonst zuviel Bedingungen gibt die man abfragen müsste und natürlich auch entsprechende Variablen setzen muß (das dauert bei der Programmabarbeitung leider recht lange), anderseits würde ich dann auch die Spieler hin und her schicken, wenn man etwas an Stage 3 nicht machen kann, weill man an Stage 1 etwas vergessen hat.

Sabeta
 

bodenseepingu

Geomaster
LUA in Urwigo ist relativ einfach. Man schreibt in Urwigo (User-Funktions) einfach LUA-Funktionen und ruft diese über "Benutzerdefinierte Funktion oder Benutzerdefinierter Ausdruck auf"

Es gibt hier etliche Beispiele im Forum - z.b. hier

Man kann auch Urwigo-Variablen uebergeben (dann empfehle ich aber selber in Urwigo Variablennamen zu vergeben anstatt dies automatisch machen zu lasssen) oder das Ergebnis zurückgeben. Müsste genügend Beispielcartridges hier geben in denen man das sieht - eigentlich haben alle meine Beispielcartridges LUA-Code drin...
 

hefi1

Geocacher
Hi, kann mir (einem "benutzen mit" Neuling) mal jemand kurz erklären, wie "benutzen mit" generell funktioniert bzw. was man beachten muss? Ich benutze urwigo.

Danke im vorraus!
 

jonny65

Geomaster
Mmmh, was willst denn genau wissen ? Der Player findet ne Kiste mit Schloss (das Item Kiste). Die kann er aber nur öffnen, wenn er das Item "Schlüssel" besitzt/vorher gefunden hat. Jetzt sind 2 Items da, eins in der Zone (Kiste), eins im Inventar. Jetzt klickt er im Inventar auf den Schlüssel, dann kommt "Benutze" und als nächstes erscheinen die Items die mit dem Schlüssel verknüpft sind (in dem Fall nur die Kiste). Ist in der Zone noch eine Fee zu sehen, ist diese natürlich nicht verknüpft mit dem Schlüssel (öffne Fee :D )
Jetzt Klick auf Kiste, worauf ein Dialog kommt "In der Kiste liegen 20 Goldstücke...." Die Goldstücke sind wieder als Item definiert mit dem Kommando "Nehmen" oder man verzichtet drauf und moved sie gleich zum Player ins Inventar. Was andres als "Nehmen" macht in dem Fall ja keinen Sinn, also könnt man es weglassen.
 
Oben