El ejemplo que hice justo mostraba como hacer eso. Bueno, al menos la parte de examinar los items en cada room. Pero ya que no puedes verlo, la idea es esta:
Crea un objeto llamado obj_inventario_room, en su evento create crea un array llamado inv:
[gml]inv[0] = 0[/gml]
Ahora, en el Creation Code de cada room crea una instancia de obj_inventario_room, y agregale a su array los items que hay originalmente en la room, por ejemplo:
[gml]var Inst = instance_create(0,0,obj_inventario_room);
with Inst {
inv[0] = "linterna";
inv[1] = "pedernal";
}[/gml]
Para ver que items hay en el room se usa el mismo código que para ver el inventario del jugador, pero viendo al array en obj_inventario_room.
Para tomar un item de la room se busca si hay espacio en el inventario del jugador y si lo hay se elimina del array de obj_inventario_room y se agrega al array del jugador.
Para dejar un item se elimina del array del jugador y se agrega al array de obj_inventario_room.
Aunque un room no tenga items inicialmente debe tener una instancia de obj_inventario_room. Los rooms deben ser persistentes.
Siguiendo esas reglas se puede usar código que funcionará en cualquier room.
Crea un objeto llamado obj_inventario_room, en su evento create crea un array llamado inv:
[gml]inv[0] = 0[/gml]
Ahora, en el Creation Code de cada room crea una instancia de obj_inventario_room, y agregale a su array los items que hay originalmente en la room, por ejemplo:
[gml]var Inst = instance_create(0,0,obj_inventario_room);
with Inst {
inv[0] = "linterna";
inv[1] = "pedernal";
}[/gml]
Para ver que items hay en el room se usa el mismo código que para ver el inventario del jugador, pero viendo al array en obj_inventario_room.
Para tomar un item de la room se busca si hay espacio en el inventario del jugador y si lo hay se elimina del array de obj_inventario_room y se agrega al array del jugador.
Para dejar un item se elimina del array del jugador y se agrega al array de obj_inventario_room.
Aunque un room no tenga items inicialmente debe tener una instancia de obj_inventario_room. Los rooms deben ser persistentes.
Siguiendo esas reglas se puede usar código que funcionará en cualquier room.