Inventargegenstände einpacken?
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
Inventargegenstände einpacken?
Gut, diese Frage wendet sich jetzt an diejenigen, die MMD, Zak1, MI1 oder Sam & Max gespielt haben. Dort gibt es ja Momente, in denen man alles an Inventargegenständen verliert und diese dann woanders findet (im Umschlag, im Schrank...)
Gut, wie bekomm ich das hin?
Mein Vorschlag wäre Arrays, aber das ist bei mir schon mal misslungen
ICh benutze AGS 2.7
Gut, wie bekomm ich das hin?
Mein Vorschlag wäre Arrays, aber das ist bei mir schon mal misslungen
ICh benutze AGS 2.7
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
- Problem
- Logik-Lord
- Beiträge: 1261
- Registriert: 16.12.2004, 18:35
- Wohnort: Kassel
- Kontaktdaten:
- DieFüchsin
- Adventure-Gott
- Beiträge: 4406
- Registriert: 12.03.2004, 16:55
- neon
- Adventure-Treff
- Beiträge: 29983
- Registriert: 08.07.2004, 10:55
- Wohnort: Wiesbaden
- Kontaktdaten:
Richtig, aber wenn Du ihm dann die Gegenstände wiedergeben willst, weißt Du nicht mehr welche er hatte und welche nicht.
"Ich habe mich so gefühlt, wie Sie sich fühlen würden, wenn sie auf einer Rakete sitzen, die aus zwei Millionen Einzelteilen besteht - die alle von Firmen stammen, die bei der Regierungsausschreibung das niedrigste Angebot abgegeben haben"
- John Glenn nach der ersten Erdumrundung 1962
- John Glenn nach der ersten Erdumrundung 1962
- Problem
- Logik-Lord
- Beiträge: 1261
- Registriert: 16.12.2004, 18:35
- Wohnort: Kassel
- Kontaktdaten:
- DieFüchsin
- Adventure-Gott
- Beiträge: 4406
- Registriert: 12.03.2004, 16:55
- neon
- Adventure-Treff
- Beiträge: 29983
- Registriert: 08.07.2004, 10:55
- Wohnort: Wiesbaden
- Kontaktdaten:
Ja Du weißt das, aber wie merkt sich das Programm, welche Gegenstände zum Zeitpunkt des Wegnehmens im Inventar waren?
"Ich habe mich so gefühlt, wie Sie sich fühlen würden, wenn sie auf einer Rakete sitzen, die aus zwei Millionen Einzelteilen besteht - die alle von Firmen stammen, die bei der Regierungsausschreibung das niedrigste Angebot abgegeben haben"
- John Glenn nach der ersten Erdumrundung 1962
- John Glenn nach der ersten Erdumrundung 1962
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7308
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
Einem unspielbarem Char alle Gegenstände zu geben wär auch ne möglichkeit. Aber Array ist meiner Meinung nach nicht so verschwenderisch.
Ich dachte, so langsam wissen alle, dass ich viele AGS-Befehle beherrsche...DieFüchsin hat geschrieben:Wenn ich mich nicht irre, gibts doch auch den Befehl "lose inventory". Damit kannst du nach der Abfrage, ob der Charakter den Gegenstand besitzt, diesen aus dem Inventar entfernen.
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Hier:
Wenn der Spieler jetzt sein Inventar verliert:
Und wenn er es wieder zurückbekommen soll:
Hab's nicht getestet, aber sollte funktionieren.
Code: Alles auswählen
function MoveInventory(Character *cone, Character *ctwo) {
// komplettes Inventar von cone an ctwo übergeben
int c=1;
int a;
int ic;
while(c<=300) {
a=cone.InventoryQuantity[c];
if (a>0) {
ic=1;
while(ic<=a) {
cone.LoseInventory(inventory[c]); // <--- EDIT: [] statt ()
ctwo.AddInventory(inventory[c]);
ic++;
}
}
c++;
}
}
Code: Alles auswählen
MoveInventory(player, dummy);
Code: Alles auswählen
MoveInventory(dummy, player);
Zuletzt geändert von KhrisMUC am 13.07.2005, 14:06, insgesamt 2-mal geändert.
Use gopher repellent on funny little man
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
Jaja, Schleichwerbungkhrismuc hat geschrieben:Code: Alles auswählen
c++;
Das Script müsste eigentlich gehen, aber ich versuche mit Hilfe dieses Scripts eins mit Arrays zu machen.
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
Code: Alles auswählen
function OwningInvs(Character *chara) {
// komplettes Inventar von chara in einem Array zurück
int c=1;
int a;
int ic;
int ret[AGS_MAX_INV_ITEMS];
while(c<=AGS_MAX_INV_ITEMS ) {
a=chara.InventoryQuantity[c];
if (a>0) {
ic=1;
while(ic<=a) {
chara.LoseInventory(inventory[c]);
ret[c] = a;
ic++;
}
}
c++;
}
}
Für den Fall, dass es nur einen Char gibt und der der PC ist (und alle anderen bloß Objekte)
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
-
- Hobby-Archäologe
- Beiträge: 163
- Registriert: 28.04.2005, 16:26
- Wohnort: Mönchengladbach
würd das auch so gehen?
Code: Alles auswählen
int a[300];
function LoseInv(Character *cone) {
// komplettes Inventar verlieren
int c=1;
while(c<=300) {
a[c]=cone.InventoryQuantity[c];
cone.LoseInventory(inventory(c));
c++;
}
}
function AddInv(Character *cone) {
// Inventar zurückbekommen
int c=1;
while(c<=300) {
if (a[c] > 0) {
cone.AddInventory(inventory(c));
cone.InventoryQuantity[c]=a[c];
}
c++;
}
}
Zuletzt geändert von Smiley am 13.07.2005, 14:19, insgesamt 1-mal geändert.
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
Garantiert nicht, diese Namen sind reserviert
Aber vom Inhalt her kein Problem
Aber vom Inhalt her kein Problem
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet