Noviembre 12, 2017, 06:12:44 PM Ultima modificación: Noviembre 13, 2017, 07:20:46 PM por pixel king
Pues estaba a punto de publicar mi juego que ya tenia todo hecho y de repente ha dejado de funcionar mi sistema de cargar un archivo Ini desde un servidor, creo que se debe a un problema del servidor o algo porque si no no me lo explico.
El error que marca GMS es "file_text_write_string argument 2 incorrect type (undefined) expecting a String (YYGS)
at gml_Object_obj_load_data_WebAsyncEvent_2 (line 16) -                 file_text_write_string(file,result)" pero hasta hace un día funcionaba bien y no he tocado nada del código. El archivo que esta en la nube es un .txt
El código es este:
CREATE

url=http_get("https://xxxxxxxxxxxx.com/news.txt")

HTTP

if(os_is_network_connected()){
    var result, evid;
    evid=ds_map_find_value(async_load,"id")
    n_noticias_pre=100000;
    if(file_exists("news_files.txt")){
        ini_open("news_files.txt")
            n_noticias_pre=ini_read_real("check","n_noticias",0)
        ini_close()
        file_delete("news_files.txt")
    }
    switch(evid){
        case url:
                result=ds_map_find_value(async_load,"result")
                file=file_text_open_write("news_files.txt")
                file_text_write_string(file,result)
                file_text_close(file)
        break;
    }
}
if(file_exists("news_files.txt")){
                    ini_open("news_files.txt")
                        n_noticias_post=ini_read_real("check","n_noticias",0)
                    ini_close()
                    if(n_noticias_post>n_noticias_pre && n_noticias_pre!=noone){
                        global.show="Nuevas noticias"
                    } else{
                        exit;
                    }
}


Cita de: Seirlord_Games en Noviembre 12, 2017, 06:17:47 PM
mira bien que las variables "file" y "result" son strings
El problema viene del argumento 2, es decir, del "result" que toma el valor del archivo que hay en la nube que es news.txt, pero no se que pasa prq no he tocado nada ni del archivo del servidor ni del código del juego

Ya se porque falla, pensando he dicho pues igual es porque hay muchos caracteres o algo y en efecto, el archivo .txt subido a 000webhost tiene unos 13400 caracteres si supero esa cifra deja de enviar el archivo bien, aunque no se si es por el servidor o por GMS o a saber que
Si alguno tiene idea del porque seria de ayuda  :-[

Revisa si desde tu navegador puedes acceder normalmente al archivo en el servidor.

EDIT: Iba a escribir esto antes de tu último mensaje, pero igual lo publico :v.

Parece ser que GM no es capaz de obtener el contenido del archivo news.txt. ¿El archivo está en línea, la ruta está correcta, el servidor no está saturado?

Además, creo que puedes resumir todo ese código con una función, para evitar errores.
[gml]
///Evento create
download = http_get_file("https://xxxxxxx.com/news.txt", "news_files.txt");
[/gml]
[gml]
///Evento HTTP
if(async_load[? "id"] == download)
{
    if(async_load[? "status"] < 0) //Si ha ocurrido un error
    {
       show_message("Error descargando el archivo");
    }
}
[/gml]
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Noviembre 12, 2017, 07:12:32 PM
Revisa si desde tu navegador puedes acceder normalmente al archivo en el servidor.

EDIT: Iba a escribir esto antes de tu último mensaje, pero igual lo publico :v.

Parece ser que GM no es capaz de obtener el contenido del archivo news.txt. ¿El archivo está en línea, la ruta está correcta, el servidor no está saturado?

Además, creo que puedes resumir todo ese código con una función, para evitar errores.
[gml]
///Evento create
download = http_get_file("https://xxxxxxx.com/news.txt", "news_files.txt");
[/gml]
[gml]
///Evento HTTP
if(async_load[? "id"] == download)
{
    if(async_load[? "status"] < 0) //Si ha ocurrido un error
    {
       show_message("Error descargando el archivo");
    }
}
[/gml]
Gracias mejorare el código como dices
En cuanto a los caracteres probaré con otros servidores para ver si me dejan y si no pues ya me buscaré una solucion(crear mas archivos .txt  XD )