Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Temas - bygdle

41
Aki se viene uno sencillito xD
Autor: Mi gato cuando saltó al teclado xD. Mentiras, yo (NiuWeb)
Versión de GM utilizada: Studio 1.4.1657 stable version
Descripción: Busca un valor en un array y devuelve los índices en donde se encuentra dicho valor en un array unidimensional. De no encontrar el valor buscado devolverá -1. Por ejemplo, si busco el valor "gato" en el array:
[gml]
array[0] = "perro";
array[1] = "gato";
array[2] = "conejo";
array[3] = "gato";
[/gml]

El script devolverá un array con el número 1 y el número 3.

Código:
[gml]
///array_1d_find_value(array, value);
var arr = argument0;
var find = argument1;
var r = -1;

for(var i = 0; i < array_length_1d(arr); i++)
{
    if arr == find
     {
        if is_array(r)
         {
            r[array_length_1d(r)] = i;
         }
        else
         {
            r[0] = i;
         }
     }
     
}

return r;
[/gml]

Nivel de utilidad: -59.332% xD, en resumen, es completamente inútil... Todo este lio se resuelve con listas, pero weno xDD
42
Sí, lo sé, soy probablemente la única persona tan aburrida y desocupada como para hacer esto xD
Me tomé la libertad de pasar ABSOLUTAMENTE TTTOOOOODDDDAS las funciones, variables y constantes de GMS a una base de datos SQL para quien desee usarlas de cualquier forma. No hay definiciones, ni argumentos ni nada de nnnnaaaddda xD, pero están todos los nombres.

La base de datos la dejo adjunta en un archivo *.SQL

No me digan que para qué me puse a hacer esto si es tan increíblemente inútil, porque lo sé, y aún sabiéndolo, lo hice... Pero esa es la razón por la que lo posteé en un Off-topic, para que no afecte mucho si es inútil o no xDDDDD

EDIT absolutamente inútil: He adjuntado también la base de datos en versión PDF para todos!!! xDDDDD
43
Vaya nombrecito el del post xD, no había una forma más "corta" de definirlo xDDD

Autor: Yo :v (NiuWeb)
Versión de GM utilizada: 1.4.1657 stable version
Descripción: Alternativa mejorada de la función propia del GM string_pos(). Busca las coincidencias de una substring en una string y devuelve la posición de las mismas en un array unidimensional.
La substring puede ser tanto un solo caracter como varios; si es una cadena con más de 1 caracter, el script la buscará igualmente, y devolverá la posición del primer caracter en donde la haya encontrado, por ejemplo: Si busco "gato" en la string "el gato vuela, es un gato volador porque gustavo lo vio volar", el script me devolverá la posición de la "g" de la primera coincidencia de "gato" (es decir, la posición 4) y la "g" de la segunda coincidencia de "gato" (es decir, la posición 22).
De no encontrar la cadena buscada, el script devolverá 0.

Código:
[gml]
///string_pos_fixed(str, substr);
var str = argument0;
var substr = argument1;
var lenght = string_length(str);
var arr = 0, c, m;
for(var i = 1; i <= lenght; i++)
{
    if string_length(substr) == 1
     {
        c = string_copy(str,i,1);
        if c == substr
         {
            if is_array(arr)
                arr[array_length_1d(arr)] = i;
            else
                arr[0] = i;
         }
     }
    else
     {
        m = string_copy(str,i,string_length(substr));
        if m == substr
         {
            if is_array(arr)
                arr[array_length_1d(arr)] = i;
            else
                arr[0] = i;
         }
     }
}

return arr;
[/gml]

Argumentos:
[gml]
string_pos_fixed(str, substr);
[/gml]



str:La cadena en donde buscar coincidencias
substr:La cadena a buscar


Espero pueda ser de utilidad para alguien, no olviden dar créditos si lo desean :B
44
Guenas, comencé un bonito proshectico muy sensual (este sí lo termino porque lo termino XD ), y he progresado muy bien. El juego está casi, CASI, ¡¡¡CASI!!! listo (en el sentido del motor, no los niveles y eso xD).
Le intenté implantar un sistema de "teletransporte". Que la idea original fuera que funcionara así:

Se tienen varias instancias de "oTeleport" (el objeto de teletransporte xD).
Todas las instancias tienen un ID de teletransporte, y hay parejas de estos, es decir que cada dos instancias tienen el mismo ID para teletransportarse de una a la otra.
Al colisionar con una, se busca a otra instancia con su misma ID de teletransporte, y si la encuentra, teletransportar al player

Ahora los códigos:
En el create del oTeleport tengo esto:
[gml]
teleid = 0;
teled = true;
[/gml]

Y en el evento collision con el oTeleport del player tengo esto:
[gml]
var g = other.teleid;
var d = ds_list_create();
var xX, yY, j, m;
var otherid = other.id;
with oTeleport
{
    if id != otherid
     {
        ds_list_add(d,id);
     }
}

for(i=0;i<ds_list_size(d);i++)
{
    m = d[| i];
    if m.teleid == g and m.id != otherid
     {
        xX = m.x;
        yY = m.y;
        j = m;
        break;
     }
}
ds_list_destroy(d);

if instance_exists(j) and j.teled == true
{
    x = xX;
    y = yY;
    j.teled = false;
}
[/gml]
La variable "teleid" dice a cuál objeto teletransportar el player. Yo configuro estos valores en el Creation Code de cada instancia, aunque por defecto el valor es 0. Tengo dos instancias separadas entre sí, y ambas tienen "teleid" en 1

Más o menos explicado el código hace esto:
Citar
-->se sacan los valores "id" y "teleid" del objeto que colisionó con el player
-->Se crea una lista para almacenar todas las "id" de las instancias de oTeleport
-->Se revisan cada instancia de oTeleport, y si el "id" de la instancia que se está revisando actualmente no es el mismo de la instancia que colisionó con el player, éste se agrega a la lista
--> Se examina cada elemento que quedó guardado en la lista
-->Si el elemento tiene el mismo valor en "teleid", guardar en xX & yY la posición del elemento, y guardar la id del mismo en la variable "j".
-->Si la instancia con la id "j" existe, y éste no ha sido activado (variable "teled"), teletransportar al player hacia esta instancia y desactivar a la que colisionó con él primero.

Pero sencillamente me deja el player en donde está. Pero veo que lo mueve un poquito, como si se tomara a sí mismo como "j", pero eso lo veo imposible porque ni siquiera se agregó a la lista.
Decidí poner un show_message después de las acciones importantes, puse los mensajes así:

[gml]
var g = other.teleid;
show_message(string(g));
var d = ds_list_create();
var xX, yY, j, m;
var otherid = other.id;
show_message(string(otherid));
with oTeleport
{
    show_message(string(id));
    if id != otherid
     {
        ds_list_add(d,id);
        show_message(string(id) + " agregado a la lista");
     }
    else
        show_message(string(id) + " no agregado a la lista");
}

for(i=0;i<ds_list_size(d);i++)
{
    m = d[| i];
    show_message("Instancia numero "+string(i+1)+" probando#id: "+string(m.id)+"#teleid: "+string(m.teleid));
    if m.teleid == g and m.id != otherid
     {
        xX = m.x;
        yY = m.y;
        j = m;
        show_message("Se ha encontrado:#id: "+string(m.id)+"#x: "+string(xX) + "#y: " + string(yY));
        break;
     }
}
ds_list_destroy(d);

if instance_exists(j) and j.teled == true
{
    x = xX;
    y = yY;
    j.teled = false;
}
[/gml]

Y el resultado fue este:

Citar
1

-----------------
110117

-----------------
110117

-----------------
110117 no agregado a la lista

-----------------
110118

-----------------
110118 agregado a la lista

-----------------
Instancia numero 1 probando
id: 110118
teleid: 1

-----------------
Se ha encontrado:
id: 110118
x: 432
y: 432

Efectivamente, los datos que me arrojan los mensajes coinciden con la instancia a la que deseo que el player se teletransporte, pero sencillamente NO lo hace.

¿Alguien logra descubrir cuál es el error?
Muchas gracias de antecabeza :B
45
Hola, hace poco hice una pregunta en el foro "Preguntas y respuestas" donde tenía un error con mi código de encriptación. Gracias a jmbs19 logré solucionar el problema principal y se me ocurrió darle una pequeña (en verdad, muy pequeña xD) mejora para hacerle un poco (en verdad, muy poco) más complejo y extraño.
Al terminar mi script, recordé que muchos sistemas de encriptación tienen un nombre, como base64, sha1 (Secure Hash algorithm) y otros que obviamente tienen un nivel muy superior al mio, así que para no quedar tan abajo (?), le dí su propio nombre: "SEEA" (Siglas en inglés de: "Scrambled egg encryption algorithm", que significa "Algoritmo de cifrado del Huevo Revuelto").

Así que vamos allá:

Autor: NiuWeb (agradecimiento a jmbs19)
Versión de GM utilizada: GM:S 1.4.1657 (Debería funcionar en cualquier GM:S, pero más abajo seguro que no)
Descripción: Encripta o proteje una cadena de texto con una clave de encriptación para hacer ilegible su contenido. En realidad, el proceso de protección es una tontería, pero funciona aceptablemente

Códigos:
Ahora se viene lo importante, los códigos:
Primero, el código para encriptar:
[gml]
///seea_encode( str, key );
var str = argument0;
var key = argument1;

var kl = string_length(key);

if (kl mod 2) == 0
{
    var m1 = string_copy(key,1,kl/2);
    var m2 = string_copy(key,kl/2,kl/2);
    key = m2 + m1;
}
else if (kl mod 2) == 1
{
    var m1 = string_copy(key,1,1);
    var m2 = string_copy(key,kl-1,1);
    key += chr(  max(  ord(m1), ord(m2)  ) - min(  ord(m1), ord(m2)  )  );
}


var result = "";
var char;

while string_length(str) > (string_length(key) + 1)
{
    var rest = string_length(str) - string_length(key);
    var falt = string_copy(key,1,rest);
    key += falt;
}


for(i=1;i<=string_length(str);i++)
{
    char = ((string_ord_at(str,i) + string_ord_at(str,i) - string_ord_at(key,i)));
    result += chr(char);
}
return (result);
[/gml]

Y luego, el de desencriptar:

[gml]
///seea_decode( str, key );
var str = (argument0);
var key = argument1;

var kl = string_length(key);

if (kl mod 2) == 0
{
    var m1 = string_copy(key,1,kl/2);
    var m2 = string_copy(key,kl/2,kl/2);
    key = m2 + m1;
}
else if (kl mod 2) == 1
{
    var m1 = string_copy(key,1,1);
    var m2 = string_copy(key,kl-1,1);
    key += chr(  max(  ord(m1), ord(m2)  ) - min(  ord(m1), ord(m2)  )  );
}


var result = "";
var char;
while string_length(str) > (string_length(key) + 1)
{
    var rest = string_length(str) - string_length(key);
    var falt = string_copy(key,1,rest);
    key += falt;
}
for(i=1;i<=string_length(str);i++)
{
    char = ((string_ord_at(str,i) - string_ord_at(str,i) + string_ord_at(key,i)));
    result += chr(char);
}
return result;
[/gml]

Los argumentos de cada script son:
[gml]
seea_encode( str, key );
/*
donde str es la cadena a encriptar
y key es la clave para encriptar
*/


seea_decode( str, key );

/*
donde str es la cadena encriptada a desencriptar
y key es la clave que se usó para encriptar
*/
[/gml]


Espero le pueda ser de utilidad a alguien. :-[
No les pido créditos porque entre menos se sepa con qué tipo de protección guardas tu información, más seguro es  XD
46
Hola, en el proyecto que estoy haciendo llegué a un punto en el que es completamente necesario crear una encriptación para archivos de información, pero esta encriptación no puede ser desencriptable fácilmente, necesita una "clave" para desencriptarla. Por eso el base64 queda fuera, y los Hash igual, así que decidí buscar algunos ejemplos de cualquier lenguaje, y encontré uno muy bueno en PHP, así que me dediqué a traducirlo a GML. Al final me quedó así:

[gml]
///encode
str = argument0;
key = argument1;
result = "";

for(i=0;i<string_length(str);i++)
{
result += chr(string_ord_at(str,i) + string_ord_at(key,i));
}
return base64_encode(result);
[/gml]

Lo cual hace que así se desencripte el base64, haya un segundo nivel de protección para desencriptar el contenido, y este nivel es el que está protegido con contraseña.
Ahora, la desencriptación:

[gml]
///decode
str = base64_decode(argument0);
key = argument1;
result = "";

for(i=0;i<string_length(str);i++)
{
result += chr(string_ord_at(str,i) - string_ord_at(key,i));
}
return result;
[/gml]

Y se supone que con esto debería funcionar, pero sencillamente desencripta cosas que no son, por ejemplo, si encripto "hola", al desencriptar lo que ha encriptado me sale "hhhy", y cosas por el estilo

¿Alguien puede encontrar cuál es el error en este código? Yo no encuentro qué está mal, y aclaro que la clave de encriptación siempre es la misma por si alguien sale con esa idea xD
47
Preguntas y respuestas / ¿zip_zip?
Enero 09, 2016, 07:39:57 PM
Hola, acabo de iniciar un proyecto en GM, cosa que de por sí ya es bastante extraña :-[ , Y nada más crear el proyecto en blanco me encontré con un muro de 120 metros llamado zip_zip...
Sé que existe la función zip_unzip en GM, que sirve para descomprimir archivos .ZIP, pero en este caso, necesito también comprimir el archivo.
Había pensado crear una extensión, pero según lo que he leído, tendía que hacerla en Java para que pudiera usarla en Android, y de Java no sé nada (Ni siquiera he lograo crear un nuevo proyecto en Eclipse xD). Y aunque de VB sepa algo, no es lo suficiente...Por estas razones pienso que sería mejor hacerlo con código interno de GM, o en el peor de los casos, una extensión ya existente.
¿Alguien se ha topado de casualidad con una extensión que haga este trabajo? ¿De no existir, alguien me puede instruir para poder crear este sistema?
Muchas gracias a todos de posmano.
48
Hola, estaba bien aburrido por ahí, y me dio por dar click derecho>abrir con>Notepad++ a todos los archivos en mi PC, y descubrí que recursos como scripts y objetos en cualquier proyecto de GMS tienen una estructura semi-html legible a la perfección por el ser humano, y se me ocurrió una magnífica idea que era crear un juego completamente online que descargara todos sus recursos de mi servidor, y luego los importe. Esto para yo poder modificar todo en el juego sin tener que hacer actualizaciones tan seguido, y también poder agregar más cosas, como los típicos objetos de regalo en cada temporada y blahbhahvhabhabvaHSQSDJHKHAKJDFjfg....Estoy delirando de la alegría xD

Mi pregunta es sencilla: ¿Si hago que el GMS tome estos recursos de mi servidor y los descarge al directorio del juego, puedo hacer que después, el GMS importe estos recursos al juego?

Espero no me den un guantazo en mi cara diciendo que no se puede, lloraré por tiempo indefinido :'( XD
49
Buenas, estaba haciendo un pequeño sistema que se basaba en usar un script para crear un objeto y modificar las propiedades del mismo desde el script. Todo anda perfecto, pero hay un script que crea un objeto algo "especial" que "debería" reaccionar ante la respuesta del juegador. Algo similar a un show_question. Ese objeto "pregunta" tiene dos posibles opciones, y mi pregunta es: Cómo hacer para enviar la respuesta del usuario por el script, algo como conectar el script con el objeto, algo como esto:
[gml]
respuesta = el_script_xd();
[/gml]

Donde el_script_xd() es el script que crea este objeto pregunta, y debería dar el valor a la variable respuesta dependiendo de la elección tomada por el usuario. Si, prácticamente lo mismo a un show_question()

He pensado usar estructuras de datos, pero no me parece muy eficaz para al macenar UN SÓLO DATO.
Gracias de antemano
50
Hola, estaba haciendo un pequeño sistema para  separa información con strings, todo va perfecto, pero tengo un problema: necesito encontrar el número del primer índice del array. Busqué información en la documentación de yoyo y sólo me encontré coñ tres funciones: array_length_1d, array_length_2d y array_heigth_2d. Pero ninguna de estas tres sirve, ya que si tengo un array así:
[gml]
array[11] = 0
array[12] = 0
array[13] = 0
[/gml]

El resultado que devolverá la función array_length_1d será 3. Lo mismo con las otras funciones, siendo que el resultado que necesito obtener es 11.

Agradecería me ayudaran con esto
Gracias de antemano
51
Buenashfnkjgfkjdrh, se me ocurrió una extraña idea para un extraño juego de poca monta para practicar nomás, y al momento de dar New Project me quedé en blanco. Lo que necesito es sencillo, crear un objeto X,Y o Z, o incluso modificar uno ya existente y que este objeto vaya en una dirección. Pero esta dirección debo calcularla en ángulos, Por favor no me bombardeen de ángulos mierdones o algunos cálculos trigono/matema/físicos raros, no les voy a entender, porque de eso no sé  xD. Así que dejo lo que en mi concepto son ángulos. Estoy usando el sistema de físicas por defecto del GMS, e intenté usar la variable phy_rotation, pero WTF no sé a donde va eso, pongo un ángulo tal y me manda el objeto a ubicaciones desconocidas por la ciencia :-[
También quisiera saber cómo hacer que el objeto se impulse a esa dirección, emulando lo que normalmente se lograría con direction y speed
En resumen: Necesito emular la función direction normalita en el sistema de físicas, y acompañarla con la emulación de la función speed. ¿Cómo puedo lograrlo?
52
Creo este post principalmente con la esperanza de que podamos revivir, aunque sea un poquito, la comunidad. Desde que creé mi cuenta veo que ha estado algo vacía y no hay mucho contenido.
Con eso sumado al infinito aburrimiento que tengo en este momento, quisiera proponerles algo.
¿Qué cosa? No lo sé, sólo pienso que debemos hacer algo entre todos los usuarios de la comunidad (o algunos, al menos) que después de haberlo terminado podamos decir: "Wow!...Hemos hecho algo grandioso".
Dada la falta de cosas interesantes en la comunidad, muchos usuarios se quedan en visitante por siempre, ya que para lo único que les sirve es para publicar 3 preguntas y largarse por siempre. Sé que hay muchas propuestas diciendo algo parecido, "crear un juego para la comunidad", hacer tal cosa para la comunidad, hacer café para los admins de la comunidad (ok, eso no XD ), pero nunca se ha llegado a nada. Siento que la comunidad está decayendo, cada vez hay menos usuarios activos (Y eso en el corto tiempo que llevo aquí, no me imagino lo que han visto los usuarios más veteranos) y pareciera un foro creado por unos cuantos amigos diciendo "Ey, vamos a hacer un foro para hablar de GM sólo entre nosotros!" porque los pocos usuarios que se conectan son siempre los mismos, y los podría nombrar de no ser por el horrendo aburrimiento que tengo. :-[

En fin, pienso que debaríamos idear algo, algo que sea interesante, algo que insentive a las personas a iniciarse con el desarrollo de videojuegos en GM, algo que haga que los más novatos se motiven a aprender más y más. Algo.
No tengo muchas ideas, pero se me ocurren algunas que, posiblemente suenen descabelladas o sin sentido para algunos.

1- La más común de todas, pero con unos arreglitos XD . Crear un videojuego social para la comunidad, con social me refiero a un RPG donde te crees tu usuario, te conectes y compartas con los demás. Batallas, misiones de búsqueda, en fin, sería algo divertido de hacer y la idea no me parece nada mal. Ayudaría sin problemas excepto por algo...No se usar networking!, pero puede ser una buena idea si entre todos colaboramos de verdad

2- Lograr crear, con el aporte de todos, un libro o megamanual que contenga el conocimiento de todos reunído, para poder ayudar más fácilmente a todos...eso sí. Que el manual se encuentre sólo en CGM, para que los que lo quieran deban entrar  XD

3- Pienso que la más sencilla y extraña. Simplemente incentivar a personas a comenzar su mundo como desarrolladores, intentar hacer llegar a esta comunidad a más personas que estén interesadas en aprender, porque les puedo asegurar que hay muchas, pero muchas personas que quieren, o ya usan el GM, pero no conocen de esta comunidad. Así mismo también hay personas que les gustaría aprender, pero no hay nada que las motive a hacerlo. Un ejemplo claro es éste: Un amigo vio unos tontuelos proyectos fake que estaba haciendo, y se vio interesado. Hablamos un montón y llegamos al acuerdo de que yo le enseñaría. Pero un día se sintió desilucionado porque buscó en internet videojuegos de GM hechos por personas de habla hispana (qué según él, son la prueba feaciente de que es posible dar resultados buenos, porque en inglés todo puede estar hecho por Yoyo sólo para patrocinar XD XD ). Y pues ya sabrán lo que pasó... Absolutamente nada bueno que no estuviera hecho con GM0.000001 y anteriores XD .Se me ocurrió mostrarle la CGM, pero me arrepentí por lo mismo, no hay nada actualmente que pueda motivar de manera eficaz a la gente. Pienso que se han perdido varias personas porque ni siquiera en la comunidad "más grande" de GM en español hay mucho que ver....Saliendo del ejemplo, deberíamos comenzar a esforzarnos más para dar a conocer esta comunidad, y trabajar más en ella.

Pero bueno, son sólo ideas.. no se pueden realizar con unas cuantas personas trabajando...
53
Primero que todo, busqué en el manual, pero no encontré mucha información sobre ellos... :-[
Pensarán que soy increíblemente noob por preguntar esto. Pero jamás he usado un parent, porque no sé cómo funcionan ni tampoco los he necesitado. Pero quisiera conocerlos y aprenderlos a usar por si acaso XD
Bien, he oído que los parents comparten sus propiedades con sus hijos, pero quisiera saber qué clase de propiedades comparten, qué eventos, qué códigos, etc.
Gracias de antecabeza...xD
[spoiler]Tú, sí, tú, quien responderá mi pregunta... estás diciendo en este momento:
"Demasiadas preguntas a la vez, bombardea mi mente, ahhh!!!!!!!!!!!"
xD[/spoiler]
54
Hola!
Estaba dando vueltas por ahí, y recordé lo eternamente agradecido con el post de Subir archivos a hosting. Entonces, fue ahí donde, por primea vez en mi vida, le di puntos a un tema. Luego, estaba escribiendo una respuesta en otro tema, y de casualidad miré la parte de dar puntos (Aclaro, no intentaba darlos...xD),y me decía:
CitarPaciencia! No tienes puntos por el momento :(

Y fue en ese momento que quedé más perdido que Fenris78 (xD). Porque en mi perfil aún tenia puntos (En la sección que dice puntos y mensajes).
y no logro comprender absolutamente nada de este sistema de puntos
¿Podría alguien explicarme por qué y cómo se le agregan puntos a cada usuario, si es automático, y entre otras cosas?
55
Hola... sí, sí... lo sé, acabé de publicar otra pregunta pero qué se le hace XD
Vamos al grano...
Comenzamos un proceso, imaginemos, Fabricación de un arma.
El proceso dura 24 horas, y tú cierras el juego.
Aunque el juego esté cerrado, el proceso seguirá ejecutándose y cuando abra el juego de nuevo, el tiempo ha de seguir contando, es decir:
Llegé a las 2 horas mientras jugaba. Cerré el juego, lo volví a abrir en 20 horas, y el proceso ya lleva 22 horas (dos horas más para finalizar)
¿Cómo puedo lograr esto?
Preferiría no tener que recurrir a servidores o códigos web externos, ya que mi juego está al tope de ellos.
PD: Cómo lo dice en el título, esto lo necesito para Android

Gracias de antemano.
56
Hola, estoy haciendo un sistema que "Te avisa" cuando, por ejemplo, Algo se ha completado (la fabricación de un arma, la completación de energia, y otras...sean creativos...xD). Pero quisiera que las notificaciones push se ejecutaran en tiempo real. Me explico:
El juego:
Mandas a fabricar el Super-Hiper Mega Arma Suprema, y ésta tarda 24 horas en fabricarse. Cuando comienza el proceso, el contador inicia. Al pasar las 24 horas, PUM! notificación...
Te Gastaste toda tu energia, y ésta se regenerará por completo en 30 minutos. Cuando te la acabas, el contador inicia. Al pasar los 30 minutos, PUM! notificación.


Pero a tiempo real también me refiero a: Aunque haya cerrado el juego el contador sigue aumentando, y no importa si el juego está cerrado, al llegar el momento, PUM! notificación.

He estado leyendo el manual del GMS, pero no entiendo mucho, los argumentos no se especifican por completo y sencillamente quedé perdido.
He estado buscando por CGM, y los pocos temas que hablan de eso están, bueno, en blanco (Esperemos que no le pase lo mismo a éste XD )
Agradecería eternamente su ayuda :D
57
Sí, puede que el título no diga mucho :-[
Hola, Estoy probando las últimas del sistema de niveles de mi juego. Pero me encontré con un problema que, probablemente es muy tonto.
Primero, los niveles se guardan en archivos.
Segundo, quiero que el GMS abra el archivo de X nivel, copie TODO su contenido y lo almacene en una variable.

Cuando uso la función file_text_read_string me veo en un problema: Sólo copia la primera linea del archivo, por ejemplo, si el nivel es asi:

Nivel:
algo
algo
algo
algo


y uso file_text_read_string, la variable sólo me almacena lo que está en el primer "renglón", (Nivel:). Lo que necesito es que almacene en una sola variable TODO el contenido del archivo. ¿Cómo puedo lograr esto?
58
Estaba viendo ejemplos de juegos, y me encontré con un tipo de condición que, aunque ya había visto, sigo sin entender qué es lo que condiciona.
[gml]
if a
{
   b += 3;
}
[/gml]

Quisiera saber qué es lo que este if condiciona... gracias  :D
59
Hola, estoy creando una especie de "formulario" donde se pide el correo electrónico. Pero tengo un problema: Al escribir el signo "@", no me lo dibuja. En vez de eso, dibuja un espacio vacio entre los caracteres que estaban antes y después del signo. Ya he comprobado que la fuente tiene el signo @, pero parece que el GMS lo detecta con otra función, como con el signo #. Es una pregunta fácil de entender, y quizás tonta. Pero buaaahhno, para quien no sabe, pues es un lio...xD
60
Hola, he estado pegado con esto del online un buen tiempo, y está bien. Pero me encontré con una pequeña duda:
Quisiera saber cómo puedo emular la función file_exists() en directorios de internet. Por ejemplo:
tengo un buscador de archivos off-line, así:
[gml]
fname = get_string("Busca el archivo:","");
if file_exists('files/'+fname);
show_message(Se ha encontrado el archivo!);
else
show_message('El archivo no existe');
[/gml]

Quisiera saber, 1: Si se puede usar file_exists con directorios online, así:
[gml]
fname = get_string("Busca el archivo:","");
if file_exists('http://www.archivos.com/files/'+fname);
show_message(Se ha encontrado el archivo!);
else
show_message('El archivo no existe');
[/gml]

2: En caso de que no se pueda, cómo puedo emular esta función.
Gracias de antemano XD :D