He intentado reformular las cláusulas para las pantallas 17, 30 y 31, para el caso en que si nuestro robot ha conseguido recoger los tres objetos especiales, indepen- dientemente del número de objetos normales recogidos (OBJECT_COUNT), se pudiese imprimir en pantalla (desde los comandos EXTERN 2, 3 y 4) una serie de textos, pero hasta ahora no he conseguido que esto ocurra y me pregunto por qué... Éstos son los últimos intentos realizados con diferentes fórmulas y hasta la fecha ni una de ellas ha dado el resultado esperado. ================================== Nuevo intento: 17-08-2015 // 18:23 ================================== ENTERING SCREEN 17 # Lata de fuel = Obj1 IF FLAG 2 = 0 THEN SET TILE (13, 5) = 29 SET_FIRE_ZONE 177, 95, 193, 95 END IF FLAG 2 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN EXTERN 2 EXTERN 3 REDRAW SOUND 7 INC FLAG 2, 1 END IF FLAG 2 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN EXTERN 2 EXTERN 4 REDRAW SOUND 7 INC FLAG 2, 1 END END PRESS_FIRE AT SCREEN 17 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 13, 5 IF FLAG 2 = 0 THEN PRINT_TILE_AT (2, 21) = 29 SOUND 6 SET TILE (13, 5) = 0 SET FLAG 2, 1 INC FLAG 5, 1 END END ENTERING SCREEN 30 # Barril de cerveza = Obj2 IF FLAG 3 = 0 THEN SET TILE (1, 2) = 30 SET_FIRE_ZONE 1, 31, 17, 47 END IF FLAG 3 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN EXTERN 2 EXTERN 3 REDRAW SOUND 7 INC FLAG 3, 1 END IF FLAG 3 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN EXTERN 2 EXTERN 4 REDRAW SOUND 7 INC FLAG 3, 1 END END PRESS_FIRE AT SCREEN 30 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 1, 2 IF FLAG 3 = 0 THEN PRINT_TILE_AT (4, 21) = 30 SOUND 6 SET TILE (1, 2) = 0 SET FLAG 3, 1 INC FLAG 5, 1 END END ENTERING SCREEN 31 # Cartera comprometedora = Obj3 IF FLAG 4 = 0 THEN SET TILE (13, 3) = 31 SET_FIRE_ZONE 141, 63, 193, 63 END IF FLAG 4 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN EXTERN 2 EXTERN 3 SOUND 7 REDRAW INC FLAG 4, 1 END IF FLAG 4 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN EXTERN 2 EXTERN 4 SOUND 8 REDRAW INC FLAG 4, 1 END END PRESS_FIRE AT SCREEN 31 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 13, 3 IF FLAG 4 = 0 THEN PRINT_TILE_AT (6, 21) = 31 SOUND 6 SET TILE (13, 3) = 0 SET FLAG 4, 1 INC FLAG 5, 1 END END ================================== Nuevo intento: 20-08-2015 // 21:37 ================================== ENTERING SCREEN 17 # Lata de fuel = Obj1 IF FLAG 2 = 0 THEN SET TILE (13, 5) = 29 SET_FIRE_ZONE 177, 95, 193, 95 END END PRESS_FIRE AT SCREEN 17 # Si lo cojemos, añadirlo a lista # y comprobamos inventario IF PLAYER_TOUCHES 13, 5 IF FLAG 2 = 0 THEN PRINT_TILE_AT (2, 21) = 29 SOUND 6 SET TILE (13, 5) = 0 SET FLAG 2, 1 INC FLAG 5, 1 END IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN EXTERN 2 EXTERN 3 REDRAW SOUND 7 END IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN EXTERN 2 EXTERN 4 REDRAW SOUND 7 END END ENTERING SCREEN 30 # Barril de cerveza = Obj2 IF FLAG 3 = 0 THEN SET TILE (1, 2) = 30 SET_FIRE_ZONE 1, 31, 17, 47 END END PRESS_FIRE AT SCREEN 30 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 1, 2 IF FLAG 3 = 0 THEN PRINT_TILE_AT (4, 21) = 30 SOUND 6 SET TILE (1, 2) = 0 SET FLAG 3, 1 INC FLAG 5, 1 END IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN EXTERN 2 EXTERN 3 REDRAW SOUND 7 END IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN EXTERN 2 EXTERN 4 REDRAW SOUND 7 END END ENTERING SCREEN 31 # Cartera comprometedora = Obj3 IF FLAG 4 = 0 THEN SET TILE (13, 3) = 31 SET_FIRE_ZONE 141, 63, 193, 63 END END PRESS_FIRE AT SCREEN 31 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 13, 3 IF FLAG 4 = 0 THEN PRINT_TILE_AT (6, 21) = 31 SOUND 6 SET TILE (13, 3) = 0 SET FLAG 4, 1 INC FLAG 5, 1 END IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN EXTERN 2 EXTERN 3 SOUND 7 REDRAW INC FLAG 4, 1 END IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN EXTERN 2 EXTERN 4 SOUND 8 REDRAW INC FLAG 4, 1 END END ================================== Nuevo intento: 20-08-2015 // 22:06 ================================== ENTERING SCREEN 17 # Lata de fuel = Obj1 IF FLAG 2 = 0 THEN SET TILE (13, 5) = 29 SET_FIRE_ZONE 177, 95, 193, 111 END END PRESS_FIRE AT SCREEN 17 # Si lo cojemos, añadirlo a lista # y comprobamos inventario IF PLAYER_TOUCHES 13, 5 IF FLAG 2 = 0 THEN PRINT_TILE_AT (2, 21) = 29 SOUND 6 SET TILE (13, 5) = 0 SET FLAG 2, 1 INC FLAG 5, 1 END IF PLAYER_IN_X 177, 193 IF PLAYER_IN_Y 95, 111 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN EXTERN 2 EXTERN 4 REDRAW SOUND 7 END IF PLAYER_IN_X 177, 193 IF PLAYER_IN_Y 95, 111 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN EXTERN 2 EXTERN 3 REDRAW SOUND 7 END END ENTERING SCREEN 30 # Barril de cerveza = Obj2 IF FLAG 3 = 0 THEN SET TILE (1, 2) = 30 SET_FIRE_ZONE 1, 31, 17, 47 END END PRESS_FIRE AT SCREEN 30 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 1, 2 IF FLAG 3 = 0 THEN PRINT_TILE_AT (4, 21) = 30 SOUND 6 SET TILE (1, 2) = 0 SET FLAG 3, 1 INC FLAG 5, 1 END IF PLAYER_IN_X 1, 17 IF PLAYER_IN_Y 31, 47 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN EXTERN 2 EXTERN 4 REDRAW SOUND 7 END IF PLAYER_IN_X 1, 17 IF PLAYER_IN_Y 31, 47 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN EXTERN 2 EXTERN 3 REDRAW SOUND 7 END END ENTERING SCREEN 31 # Cartera comprometedora = Obj3 IF FLAG 4 = 0 THEN SET TILE (13, 3) = 31 SET_FIRE_ZONE 141, 63, 193, 63 END END PRESS_FIRE AT SCREEN 31 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 13, 3 IF FLAG 4 = 0 THEN PRINT_TILE_AT (6, 21) = 31 SOUND 6 SET TILE (13, 3) = 0 SET FLAG 4, 1 INC FLAG 5, 1 END IF PLAYER_IN_X 141, 193 IF PLAYER_IN_Y 63, 79 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN EXTERN 2 EXTERN 4 SOUND 8 REDRAW END IF PLAYER_IN_X 141, 193 IF PLAYER_IN_Y 63, 79 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN EXTERN 2 EXTERN 3 SOUND 7 REDRAW END END ================================== Nuevo intento: 20-08-2015 // 22:34 ================================== ENTERING SCREEN 17 # Lata de fuel = Obj1 IF FLAG 2 = 0 THEN SET TILE (13, 5) = 29 SET_FIRE_ZONE 177, 95, 193, 111 END END PRESS_FIRE AT SCREEN 17 # Si lo cojemos, añadirlo a lista # y comprobamos inventario IF PLAYER_TOUCHES 13, 5 IF FLAG 2 = 0 THEN PRINT_TILE_AT (2, 21) = 29 SOUND 6 SET TILE (13, 5) = 0 INC FLAG 5, 1 END IF PLAYER_IN_X 177, 193 IF PLAYER_IN_Y 95, 111 IF FLAG 2 = 0 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN SET FLAG 2, 1 EXTERN 2 EXTERN 4 REDRAW SOUND 7 END IF PLAYER_IN_X 177, 193 IF PLAYER_IN_Y 95, 111 IF FLAG 2 = 0 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN SET FLAG 2, 1 EXTERN 2 EXTERN 3 REDRAW SOUND 7 END END ENTERING SCREEN 30 # Barril de cerveza = Obj2 IF FLAG 3 = 0 THEN SET TILE (1, 2) = 30 SET_FIRE_ZONE 1, 31, 17, 47 END END PRESS_FIRE AT SCREEN 30 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 1, 2 IF FLAG 3 = 0 THEN PRINT_TILE_AT (4, 21) = 30 SOUND 6 SET TILE (1, 2) = 0 INC FLAG 5, 1 END IF PLAYER_IN_X 1, 17 IF PLAYER_IN_Y 31, 47 IF FLAG 3 = 0 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN SET FLAG 3, 1 EXTERN 2 EXTERN 4 REDRAW SOUND 7 END IF PLAYER_IN_X 1, 17 IF PLAYER_IN_Y 31, 47 IF FLAG 3 = 0 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN SET FLAG 3, 1 EXTERN 2 EXTERN 3 REDRAW SOUND 7 END END ENTERING SCREEN 31 # Cartera comprometedora = Obj3 IF FLAG 4 = 0 THEN SET TILE (13, 3) = 31 SET_FIRE_ZONE 141, 63, 193, 63 END END PRESS_FIRE AT SCREEN 31 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 13, 3 IF FLAG 4 = 0 THEN PRINT_TILE_AT (6, 21) = 31 SOUND 6 SET TILE (13, 3) = 0 INC FLAG 5, 1 END IF PLAYER_IN_X 141, 193 IF PLAYER_IN_Y 63, 79 IF FLAG 4 = 0 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN SET FLAG 4, 1 EXTERN 2 EXTERN 4 SOUND 8 REDRAW END IF PLAYER_IN_X 141, 193 IF PLAYER_IN_Y 63, 79 IF FLAG 4 = 0 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN SET FLAG 4, 1 EXTERN 2 EXTERN 3 SOUND 7 REDRAW END END =================================== =================================== Nuevo intento: 21-08-2015 // 18:02 =================================== ENTERING SCREEN 17 # Lata de fuel = Obj1 IF FLAG 2 = 0 THEN SET TILE (13, 5) = 29 SET_FIRE_ZONE 177, 95, 193, 111 END END PRESS_FIRE AT SCREEN 17 # Si lo cojemos, añadirlo a lista # y comprobamos inventario IF PLAYER_TOUCHES 13, 5 IF FLAG 2 = 0 THEN PRINT_TILE_AT (2, 21) = 29 SOUND 6 SET TILE (13, 5) = 0 SET FLAG 2 = 1 INC FLAG 5, 1 END IF FLAG 2 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN SET FLAG 2 = 2 EXTERN 2 EXTERN 4 REDRAW SOUND 7 END IF FLAG 2 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN SET FLAG 2 = 2 EXTERN 2 EXTERN 3 REDRAW SOUND 7 END END ENTERING SCREEN 30 # Barril de cerveza = Obj2 IF FLAG 3 = 0 THEN SET TILE (1, 2) = 30 SET_FIRE_ZONE 1, 31, 17, 47 END END PRESS_FIRE AT SCREEN 30 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 1, 2 IF FLAG 3 = 0 THEN PRINT_TILE_AT (4, 21) = 30 SOUND 6 SET TILE (1, 2) = 0 SET FLAG 3 = 1 INC FLAG 5, 1 END IF FLAG 3 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN SET FLAG 3 = 2 EXTERN 2 EXTERN 4 REDRAW SOUND 7 END IF FLAG 3 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN SET FLAG 3 = 2 EXTERN 2 EXTERN 3 REDRAW SOUND 7 END END ENTERING SCREEN 31 # Cartera comprometedora = Obj3 IF FLAG 4 = 0 THEN SET TILE (13, 3) = 31 SET_FIRE_ZONE 141, 63, 193, 63 END END PRESS_FIRE AT SCREEN 31 # Si lo cojemos, añadirlo a lista IF PLAYER_TOUCHES 13, 3 IF FLAG 4 = 0 THEN PRINT_TILE_AT (6, 21) = 31 SOUND 6 SET TILE (13, 3) = 0 SET FLAG 4 = 1 INC FLAG 5, 1 END IF FLAG 4 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT = 15 THEN SET FLAG 4 = 2 EXTERN 2 EXTERN 4 SOUND 8 REDRAW END IF FLAG 4 = 1 IF FLAG 5 = 3 IF OBJECT_COUNT <> 15 THEN SET FLAG 4 = 2 EXTERN 2 EXTERN 3 SOUND 7 REDRAW END END