Wahrscheinlich musst du item[inv[x,y],name] selbst nochmal in ein string(item[]) umwandeln.
Bzw ich hatte vor kurzem bei ds_grids (fast dasselbe wie ein 2d array) auch DoAdd errors und musste so etwas machen:
eine frage noch.. @Aku_Ryou ..ich hab ein kleines problem..also ich hab grad ein wenig mit den arrays herum gespielt und ein kleines inventar gemacht
mit diesem code stücken..
obj_player
create event:
GML-Quellcode
//Lange Fassung
/*
inv[1]= "EMPTY"
inv[2]= "EMPTY"
inv[3]= "EMPTY"
inv[4]= "EMPTY"
inv[5]= "EMPTY"
*/
inv_desc[0]="Zauberflasche"
inv_desc[1]="Zauber"
inv_desc[2]="Handtuch"
inv_desc[3]="Mehlwurm"
inv_desc[4]="Tatze"
//Kurze Fassung erstellung des inventars
for (i =0;i < inv_max; i++)
{
inv[i]="EMPTY";
inv_numb[i]=0;
}
Alles anzeigen
obj_player
collision_event mit obj_item
GML-Quellcode
for (var index =0;index <= inv_max;index++)
{
if (inv[index]=="EMPTY") or (inv[index]==other.object_index)
{
inv[index]=other.object_index;
inv_numb[index]++;
with(other)
instance_destroy();
break;
}
}
Alles anzeigen
obj_player
collision_event mit obj_item2
GML-Quellcode
for (var index =0;index <= inv_max;index++){if (inv[index]=="EMPTY") or (inv[index]==other.object_index){inv[index]=other.object_index;inv_numb[index]++;with(other)instance_destroy();break;}}
draw_event obj player
GML-Quellcode
for (i =0;i<inv_max;i++)
{
if (inv[i]=="EMPTY"){draw_text(50,100*(i+1),inv[i])}
if (inv[i]!="EMPTY"){
draw_text(50,100*(i+1),inv_desc[i])
draw_text(50-15,110*(i+1),inv_numb[i])
}
}
das problem was ich habe ist....wenn ich jetzt item1 einsammle schreibt er zauberflasche und wenn ich item2 einsammle zauber....
aber wenn ich neu starte und dann item 2 einsammle ist das bei zauberflasche..
wie mach ich es das item1 fix zauberflasche ist und item2 der zauber????? was mach ich falsch
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von acidrain833 ()
Wahrscheinlich musst du item[inv[x,y],name] selbst nochmal in ein string(item[]) umwandeln.
Bzw ich hatte vor kurzem bei ds_grids (fast dasselbe wie ein 2d array) auch DoAdd errors und musste so etwas machen:
GML-Quellcode
var toItem = item[inv[x,y,],name];
var toInv = inv[j,1];
draw_text(x,y,string(item +"x"+string(inv)));
@Aku_Ryou
ahhhmmmm eins noch ..wenn ich das so mache mit dem +string funktioniert es zwar aber er schreibt nicht mehr den namen sondern einfach 0 usw....komisch...wie kann ich das ändern
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von acidrain833 ()
am Anfang ja inv[0] = "EMPTY" ist und dein Zauber( also inv_desc[1]= "Zauber") "passiert" somit
GML-Quellcode
if (inv[index]=="EMPTY") or (inv[index]==other.object_index)
dann wird
inv[0] = other.object_index; // z.B 6 oder so --> obj_zauber
inv_numb[0]++ // 0--> 1;
und zeichnet dann
draw_text(50,100*(i+1),inv_desc) // was das Zaubertuch ist (also invDesc[0]) obwohl du eigentlich invDesc[1] aufgenommen hast
draw_text(50-15,110*(i+1),inv_numb[i]) // mit der Anzahl 1
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von glim888 ()
puh komm nicht ganz mit... sorry... ich versteh schon das wenn ich jetzt eine kollision habe mit irgendeinem item wird inv_desc[1] = zauber
hmmm die eine zeile hab ich leider nicht selbst geschrieben bzw nicht ganz
GML-Quellcode
if (inv[index]=="EMPTY") or (inv[index]==other.object_index)
ich versteh das inv[index]==other.object_index sowieso nicht....
und wie kann ich das ändern....sorry anscheinend ist mein kopf heute nicht mehr aufnahmefähig....werd es morgen sicher weiter probieren...und es dann vielleicht verstehen..