Hay mucha materia de por medio:
point_distance()<500;
Eso quiere decir básicamente que si la distancia entre tu personaje y la del NPC es menor a 500 se abrirá el recuadro de dialogo.
En el caso de que sea justo cuando colisiona con su mascara es tan fácil como poner un "place_meeting" y a correr.
Y a partir de eso creas la condicion y empiezas a picar codigo en un evento Draw como este
draw_text_ext(x,y,"Hola",-1,200);
Si no me equivoco de sintaxis con eso le dices primero donde quieres que se posicione el texto, le indicas lo que va a haber escrito, la separación entre lineas(la normal es -1) y 200 son los pixeles entre linea y linea.(suelo usar draw_text_ext por que basicamente te permite modificar más el texto que con un simple "draw_text")
Luego si quieres que el texto presentado este en un rectangulo o un sprite, sólo tienes que aplicar un sistema similar:
draw_rectangle();
draw_sprite();
Siempre con el draw si quieres dibujar algo por pantalla, incluso si quieres indicar una variable sería así:
draw_text(x,y,"Nivel: "+string(global.nivel));
Es cuestión de ir manejandose, a diferencia de C u otros lenguajes de programación, GML ya trae muchas funciones prefabricadas donde sólo debes aplicarlas, te facilita el curro del copiar y pegar un montón de lineas innecesarias y así centrarte sólo en la materia que quieres reproducir.
point_distance()<500;
Eso quiere decir básicamente que si la distancia entre tu personaje y la del NPC es menor a 500 se abrirá el recuadro de dialogo.
En el caso de que sea justo cuando colisiona con su mascara es tan fácil como poner un "place_meeting" y a correr.
Y a partir de eso creas la condicion y empiezas a picar codigo en un evento Draw como este
draw_text_ext(x,y,"Hola",-1,200);
Si no me equivoco de sintaxis con eso le dices primero donde quieres que se posicione el texto, le indicas lo que va a haber escrito, la separación entre lineas(la normal es -1) y 200 son los pixeles entre linea y linea.(suelo usar draw_text_ext por que basicamente te permite modificar más el texto que con un simple "draw_text")
Luego si quieres que el texto presentado este en un rectangulo o un sprite, sólo tienes que aplicar un sistema similar:
draw_rectangle();
draw_sprite();
Siempre con el draw si quieres dibujar algo por pantalla, incluso si quieres indicar una variable sería así:
draw_text(x,y,"Nivel: "+string(global.nivel));
Es cuestión de ir manejandose, a diferencia de C u otros lenguajes de programación, GML ya trae muchas funciones prefabricadas donde sólo debes aplicarlas, te facilita el curro del copiar y pegar un montón de lineas innecesarias y así centrarte sólo en la materia que quieres reproducir.