Gut, wie bekomm ich das hin?

Mein Vorschlag wäre Arrays, aber das ist bei mir schon mal misslungen
ICh benutze AGS 2.7
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.
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);
Jaja, Schleichwerbungkhrismuc hat geschrieben:Code: Alles auswählen
c++;
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++;
}
}
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++;
}
}