Tengo un paths llamado "path_Aliado_Blue_Heart1", pueden notar que lleva un 1 al final, ya que son varios, este esta colocado en un evento "CREATE", lo que busco de esto es que dependiendo de la room, elija a un path, es decir si la room se llama jefe1, elija el path1, si la room se llama jefe2, elige al path2, deduzco que en el evento "ROOM STAR" seria un mejor lugar para hacer algo como esto, pero ¿como debería programar esto?

NOTA: el objeto que tiene o debe tener esto, es uno que actúa a modo de guía, para tener una idea mas clara, imaginen que es una luz que el jugador debe seguir para tomar el camino correcto, cada habitación tiene un camino diferente que pide que el jugador siga un patrón de movimiento guiado por la luz.

Puedes usar un switch-case
[gml]
switch (room)
{
  case room_level_1: guia = path_Aliado_Blue_Heart1; break;
  case room_level_2: guia = path_Aliado_Blue_Heart2; break;
  // ...
}
[/gml]

Si el número de la room y de la path son iguales, puedes obtener el nombre de la room y copiar los últimos caracteres
[gml]
nom = room_get_name(room_level_1); //nombre de la room
lon = string_length(name); //longitud del nombre
num = string_copy(nom, lon, 1); //copiar ultimo caracter (un numero)
[/gml]
Entonces buscar el index de la path que tiene los mismos caracteres al final
[gml]
nom = "path_Aliado_Blue_Heart" + num; //nombre de la path
p = asset_get_index(nom); //index de la path
[/gml]

Cita de: Clamud en Marzo 09, 2018, 08:02:27 PM
Puedes usar un switch-case
[gml]
switch (room)
{
  case room_level_1: guia = path_Aliado_Blue_Heart1; break;
  case room_level_2: guia = path_Aliado_Blue_Heart2; break;
  // ...
}
[/gml]

Si el número de la room y de la path son iguales, puedes obtener el nombre de la room y copiar los últimos caracteres
[gml]
nom = room_get_name(room_level_1); //nombre de la room
lon = string_length(name); //longitud del nombre
num = string_copy(nom, lon, 1); //copiar ultimo caracter (un numero)
[/gml]
Entonces buscar el index de la path que tiene los mismos caracteres al final
[gml]
nom = "path_Aliado_Blue_Heart" + num; //nombre de la path
p = asset_get_index(nom); //index de la path
[/gml]
Tomando en cuenta que tengo zonas de nivel especial 1,2...3 y niveles normales 1,2...3, esto no es practico, incluso parece que ese código es complicado para esta función, lo que me hace deducir esto es que

if (room == rom_Final_Neutral)
{ visible = false; }
if (room == rom_Final_Intermedio)
{ visible = false; }
if (room == rom_Final_Verdadero)
{ visible = false; }
if (room == rom_Final_Secreto)
{ visible = false; }

En este código se comprueba que si la room es igual a esta room, el objeto se hace invisible, de este mismo modo debe haber algo similar a esto.

if (room == rom_Final_Neutral)
{ path_Aliado_Blue_Heart1; }
if (room == rom_Final_Intermedio)
{ path_Aliado_Blue_Heart2; }
if (room == rom_Final_Verdadero)
{ path_Aliado_Blue_Heart3; }
if (room == rom_Final_Secreto)
{ path_Aliado_Blue_Heart4; }

Probablemente este malo, pero es una idea de lo que busco hacer en un evento "ROOM STAR", que si la room tiene este nombre el objeto ejecute este patrón, pero todavía sigo con la duda  :-\.

Cita de: Clamud en Marzo 09, 2018, 08:02:27 PM
Puedes usar un switch-case
[gml]
switch (room)
{
  case room_level_1: guia = path_Aliado_Blue_Heart1; break;
  case room_level_2: guia = path_Aliado_Blue_Heart2; break;
  // ...
}
[/gml]

Si el número de la room y de la path son iguales, puedes obtener el nombre de la room y copiar los últimos caracteres
[gml]
nom = room_get_name(room_level_1); //nombre de la room
lon = string_length(name); //longitud del nombre
num = string_copy(nom, lon, 1); //copiar ultimo caracter (un numero)
[/gml]
Entonces buscar el index de la path que tiene los mismos caracteres al final
[gml]
nom = "path_Aliado_Blue_Heart" + num; //nombre de la path
p = asset_get_index(nom); //index de la path
[/gml]
Parece que lo he descubierto, creo que era algo tan simple como

CREATE
patron = path_start (path_Aliado_Blue_Heart1,3, path_action_stop,true)

ROOM STAR
if (room == rom_Zona_Espectador)
{ patron = path_start (path_Caminante_Jefe,3, path_action_stop,true); }
if (room == rom_jefe_El_Amo1)
{ patron = path_start (path_Aliado_Blue_Heart1,3, path_action_stop,true); }