Wie benutze ich bestimmtes Inventar mit anderem bestimmtem?
- Azrael
- Hobby-Archäologe
- Beiträge: 124
- Registriert: 13.05.2003, 16:46
- Kontaktdaten:
Wie benutze ich bestimmtes Inventar mit anderem bestimmtem?
Hallo zusammen,
ich habe mich bisher nie mit Inventar beschäftigt und bin nun auf folgendes Problem gestoßen:
Im Raum befinden sich 3 Gegenstände. Alle 3 kann ich nehmen. Nun möchte ich, dass sich Inventar 1 und 2 über "benutze" kombinieren lassen. Gegenstand 3 soll aber keinen Einfluss haben. Wie kann ich definieren, dass sich nur Inventar 1 und 2 kombinieren lassen, nicht 1 mit 1, 1 mit 3, 2 mit 2 oder 2 mit 3? Hab schon an globale Variablen gedacht, bin an der Ecke aber nicht weitergekommen.
Könnt ihr mir sagen, wie ich das programmtechnisch definieren kann (am besten in AGS 2.x)? In der Hilfe hab ich keine zusammenhängenden Scripte gefunden.
Liebe Grüße,
Azrael
ich habe mich bisher nie mit Inventar beschäftigt und bin nun auf folgendes Problem gestoßen:
Im Raum befinden sich 3 Gegenstände. Alle 3 kann ich nehmen. Nun möchte ich, dass sich Inventar 1 und 2 über "benutze" kombinieren lassen. Gegenstand 3 soll aber keinen Einfluss haben. Wie kann ich definieren, dass sich nur Inventar 1 und 2 kombinieren lassen, nicht 1 mit 1, 1 mit 3, 2 mit 2 oder 2 mit 3? Hab schon an globale Variablen gedacht, bin an der Ecke aber nicht weitergekommen.
Könnt ihr mir sagen, wie ich das programmtechnisch definieren kann (am besten in AGS 2.x)? In der Hilfe hab ich keine zusammenhängenden Scripte gefunden.
Liebe Grüße,
Azrael
- gff
- Profi-Abenteurer
- Beiträge: 802
- Registriert: 09.03.2004, 18:49
- Wohnort: Ge
- Kontaktdaten:
Re: Wie benutze ich bestimmtes Inventar mit anderem bestimmtem?
Inventory items--> interaction(z.B. von Gegenstand 1)--> use Inventory on this item-->neues Script
oder
Heißt: auf Item 1 kann man nur Item 2 anwenden, weil die andern ungleich 2 sind. Bei allen anderen Items wird dann dieser Satz angezeigt.
Globale Variablen brauchst du für Inventargegenstände nicht.
Code: Alles auswählen
if(player.ActiveInventory==i2)
{
player.LoseInventory(ibild);
player.LoseInventory(ischere);
player.AddInventory(imaske);
Display("Gut!Ich schneide das Gesicht aus dem Bild aus");
}
else if(player.ActiveInventory==i3)
{
Display("Bist du des Wahnsinns fette Beute?");
}
else if(player.ActiveInventory==i1)
{
Display("Dat jeht nich. Weisse Bescheid! Isch kandidiere^^");
}
Code: Alles auswählen
else if(player.ActiveInventory!=i2)
{
Display("Netter Versuch!");
}
Globale Variablen brauchst du für Inventargegenstände nicht.
- Azrael
- Hobby-Archäologe
- Beiträge: 124
- Registriert: 13.05.2003, 16:46
- Kontaktdaten:
Re: Wie benutze ich bestimmtes Inventar mit anderem bestimmtem?
Hallo gff,
super, vielen Dank. Hat wunderbar geklappt
Viele Grüße,
Azrael
super, vielen Dank. Hat wunderbar geklappt
Viele Grüße,
Azrael
- Fellowtraveller
- Frischling
- Beiträge: 6
- Registriert: 21.03.2010, 16:11
- Wohnort: Zweibrücken
Re: Wie benutze ich bestimmtes Inventar mit anderem bestimmtem?
Hallo zusammen,
ich bin neu hier und arbeite gerade an meinem ersten kleinen Adventure, welches eigentlich insbesondere für das Geocaching (GPS-unterstützte Schnitzeljagd) gedacht sein soll.
An dieser Stelle möchte ich mich gleich entschuldigen, weil ich einen alten Thread aufwärme. Ich habe die Dynamic Help vom AGS 3.0 durchforstet, dazu hier die Threads, im Internet gelesen und mir auf youtube die entsprechenden Tutorials angesehen, und eigentlich ist meine Frage schon beantwortet worden. Es klappt aber leider trotzdem nicht.
Mein Problem ist folgendes: Ich will, wie hier schon gefragt, zwei (und nur diese zwei) Gegenstände miteinander kombinieren, damit ein dritter rauskommt. Ich habe das Beispiel-Script oben umgewandelt:
function iPizza2_UseInv()
{
if(player.ActiveInventory == iSalzstreuer)
player.LoseInventory(iSalzstreuer);
player.LoseInventory(iPizza2);
player.AddInventory(iSalzigePizza);
Display("Jetzt habe ich eine sehr salzige Pizza.");
}
else if(player.ActiveInventory!=iSalzstreuer)
{
Display("Blöde Idee!");
}
Das ganze hab ich nochmal für Pizza2 umgeschrieben. Beim Abspielen kommt immer folgende Anmerkung: "parse error: unexpected else".
Was mache ich falsch?
Danke und bitte nochmal um Entschuldigung!
Liebe Grüße, Fellowtraveller
ich bin neu hier und arbeite gerade an meinem ersten kleinen Adventure, welches eigentlich insbesondere für das Geocaching (GPS-unterstützte Schnitzeljagd) gedacht sein soll.
An dieser Stelle möchte ich mich gleich entschuldigen, weil ich einen alten Thread aufwärme. Ich habe die Dynamic Help vom AGS 3.0 durchforstet, dazu hier die Threads, im Internet gelesen und mir auf youtube die entsprechenden Tutorials angesehen, und eigentlich ist meine Frage schon beantwortet worden. Es klappt aber leider trotzdem nicht.
Mein Problem ist folgendes: Ich will, wie hier schon gefragt, zwei (und nur diese zwei) Gegenstände miteinander kombinieren, damit ein dritter rauskommt. Ich habe das Beispiel-Script oben umgewandelt:
function iPizza2_UseInv()
{
if(player.ActiveInventory == iSalzstreuer)
player.LoseInventory(iSalzstreuer);
player.LoseInventory(iPizza2);
player.AddInventory(iSalzigePizza);
Display("Jetzt habe ich eine sehr salzige Pizza.");
}
else if(player.ActiveInventory!=iSalzstreuer)
{
Display("Blöde Idee!");
}
Das ganze hab ich nochmal für Pizza2 umgeschrieben. Beim Abspielen kommt immer folgende Anmerkung: "parse error: unexpected else".
Was mache ich falsch?
Danke und bitte nochmal um Entschuldigung!
Liebe Grüße, Fellowtraveller
-
- Verpackungs-Wegwerfer
- Beiträge: 76
- Registriert: 09.04.2006, 17:51
- Kontaktdaten:
Re: Wie benutze ich bestimmtes Inventar mit anderem bestimmtem?
Du hast zwei Klammern vergessen (rot markiert):
function iPizza2_UseInv()
{
if(player.ActiveInventory == iSalzstreuer)
{
player.LoseInventory(iSalzstreuer);
player.LoseInventory(iPizza2);
player.AddInventory(iSalzigePizza);
Display("Jetzt habe ich eine sehr salzige Pizza.");
}
else if(player.ActiveInventory!=iSalzstreuer)
{
Display("Blöde Idee!");
}
}
function iPizza2_UseInv()
{
if(player.ActiveInventory == iSalzstreuer)
{
player.LoseInventory(iSalzstreuer);
player.LoseInventory(iPizza2);
player.AddInventory(iSalzigePizza);
Display("Jetzt habe ich eine sehr salzige Pizza.");
}
else if(player.ActiveInventory!=iSalzstreuer)
{
Display("Blöde Idee!");
}
}
- Fellowtraveller
- Frischling
- Beiträge: 6
- Registriert: 21.03.2010, 16:11
- Wohnort: Zweibrücken
Re: Wie benutze ich bestimmtes Inventar mit anderem bestimmtem?
Oh, super, jetzt klappts!
Das ist für mich echt schwierig mit diesen ganzen Klammern. Die machen einen wahnsinnig.
Vielen, vielen Dank!
Fellowtraveller
Das ist für mich echt schwierig mit diesen ganzen Klammern. Die machen einen wahnsinnig.
Vielen, vielen Dank!
Fellowtraveller
Mein Informatiklehrer sagte immer, der Computer tut nur das, was der Mensch sagt. Ich glaub das nicht. Ich glaub, der Computer hat doch ein Eigenleben, besonders, wenn man in AGS arbeitet.
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: Wie benutze ich bestimmtes Inventar mit anderem bestimmtem?
Zum Verständnis: Klammern haben genau einen Zweck: mehrere Befehle zu einem Block zusammenfassen.
Das muss entweder bei Definitionen von Funktionen gemacht werden, oder bei den Befehlen, die abhängig von if-Abfragen ausgeführt werden sollen.
Und ein "else if" braucht man nur, wenn man mehr als einen Fall prüfen will. Ansonsten deckt ein einfaches "else" alle anderen Fälle ab.
Das muss entweder bei Definitionen von Funktionen gemacht werden, oder bei den Befehlen, die abhängig von if-Abfragen ausgeführt werden sollen.
Und ein "else if" braucht man nur, wenn man mehr als einen Fall prüfen will. Ansonsten deckt ein einfaches "else" alle anderen Fälle ab.
Use gopher repellent on funny little man
- Fellowtraveller
- Frischling
- Beiträge: 6
- Registriert: 21.03.2010, 16:11
- Wohnort: Zweibrücken
Re: Wie benutze ich bestimmtes Inventar mit anderem bestimmtem?
Vielen Dank nochmal für die hilfreichen Antworten! Ich hab überraschenderweise auch bisher alles so hinbekommen, wie ich das wollte. Bin fast fertig *freu*!
Mein Informatiklehrer sagte immer, der Computer tut nur das, was der Mensch sagt. Ich glaub das nicht. Ich glaub, der Computer hat doch ein Eigenleben, besonders, wenn man in AGS arbeitet.
-
- Hobby-Archäologe
- Beiträge: 133
- Registriert: 25.09.2004, 18:13
Re: Wie benutze ich bestimmtes Inventar mit anderem bestimmt
Nur so nebenbei,
wenn man mit Einrückungen arbeitet (meistens Tabs), wird es übersichtlicher.
Dann passieren einem Klammerfehler seltener.
z.B. so
wenn man mit Einrückungen arbeitet (meistens Tabs), wird es übersichtlicher.
Code: Alles auswählen
function iPizza2_UseInv()
{
if(player.ActiveInventory == iSalzstreuer)
{
player.LoseInventory(iSalzstreuer);
player.LoseInventory(iPizza2);
player.AddInventory(iSalzigePizza);
Display("Jetzt habe ich eine sehr salzige Pizza.");
}
else if(player.ActiveInventory!=iSalzstreuer)
{
Display("Blöde Idee!");
}
}
z.B. so
Code: Alles auswählen
function iPizza2_UseInv()
{
if(player.ActiveInventory == iSalzstreuer)
player.LoseInventory(iSalzstreuer);
player.LoseInventory(iPizza2);
player.AddInventory(iSalzigePizza);
Display("Jetzt habe ich eine sehr salzige Pizza.");
}
else if(player.ActiveInventory!=iSalzstreuer)
{
Display("Blöde Idee!");
}