Buenas, ando con un error con mi proyecto.
CitarERROR in
action number 1
of Mouse Event for Left Pressed
for object obj_invslot:
Error in code at line 2:
if obj_slot_control.inv[index,0] != 0 && (obj_inv_m.spr_index = 0 && obj_inv_m.inv_index = 0){
^
at position 30: Unknown variable index
el codigo en el left pressed:
if obj_inv.inventory = true{
if obj_slot_control.inv[index,0] != 0 && (obj_inv_m.spr_index = 0 && obj_inv_m.inv_index = 0){
//select item
obj_inv_m.spr_index = obj_slot_control.inv[index,0];
obj_inv_m.inv_index = obj_slot_control.inv[index,1];
obj_slot_control.inv[index,0] = 0;
obj_slot_control.inv[index,1] = 0;
}
if obj_slot_control.inv[index,0] != 0 && (obj_inv_m.spr_index != 0 && obj_inv_m.inv_index != 0 && obj_inv_m.spr_indexp != 0 && obj_inv_m.inv_indexp != 0){
//place items
obj_slot_control.inv[index,0] = obj_inv_m.spr_indexp;
obj_slot_control.inv[index,1] = obj_inv_m.inv_indexp;
obj_inv_m.spr_index = 0;
obj_inv_m.inv_index = 0;
}
if obj_slot_control.inv[index,0] != 0 && (obj_slot_control.inv[index,0] = obj_inv_m.spr_index && obj_slot_control.inv[index,0]+obj_inv_m.spr_index <= 64) && (obj_inv_m.spr_index != 0 && obj_inv_m.inv_index != 0 && obj_inv_m.spr_indexp != 0 && obj_inv_m.inv_indexp != 0){
//place items
obj_slot_control.inv[index,1] += obj_inv_m.inv_index;
obj_inv_m.spr_index = 0;
obj_inv_m.inv_index = 0;
}
if obj_slot_control.inv[index,0] != 0 && (obj_slot_control.inv[index,0] != obj_inv_m.spr_index) && (obj_inv_m.spr_index != 0 && obj_inv_m.inv_index != 0 && obj_inv_m.spr_indexp != 0 && obj_inv_m.inv_indexp != 0){
//swap items
obj_inv_m.spr_index = obj_slot_control.inv[index,0];
obj_inv_m.inv_index = obj_slot_control.inv[index,1];
obj_slot_control.inv[index,0] = obj_inv_m.spr_indexp;
obj_slot_control.inv[index,1] = obj_inv_m.inv_indexp;
}
}
Donde se supone que tengo la variable declarada
for(i=0; i<41; i+=1){
inv[i,0]=0;
inv[i,1]=0;
}
for(i=0; i<41; i+=1){
inv[i,0]=0;
inv[i,1]=0;
}
Aqui no declaras la variable index, aqui estas creando dos arreglos con el mismo nombre: inv
Me parece que es un problema de scope.
Trate con haciendo global la variable index.
Para que no tengas que cambiar el código, donde declaras la variable index hazlo de la sig. manera:
globalvar index;
index = 0;
El problema se va, pero no queda como yo quiero.
me explico: estoy haciendo un inventario, hasta acá todo bien, pero luego cuando entro en la parte de mover los objetos del inventario (es decir, cambiarlo de lugar en otro slot) sale ese error.
Lo curioso es que en todo el inventario ya trabajé con el "obj_slot_control.inv[index,0]"
Solo en ese paso (exactamente en obj_invslot)
es como si hubiese una parte del codigo que este limitando el uso del index y en obj_slot_control solo están los dos arreglos.
No se si me explico.
En que objeto declaras/inicializas la variable index ?
Por lo que comentas suena como que esa variable index debería estar declarada como global en un objeto controlador persistente para evitar el error. Ni idea de cómo hayas implementado el cambio de items en el inventario, ni cuántos objetos usas, pero el error unknown variable indica que esa variable no está disponible en todo momento para alguno de los objetos
Puedes probar a usar el debugger de GM8 para ver que pasa con la variable index cuando ocurre el error