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.

Mensajes - jmbs19

166
Preguntas y respuestas / Re:Eliminar archivos de hosting?
Noviembre 20, 2015, 09:16:53 PM
niuweb para poder hacer lo que dice guacusio simplemente tienes que saber como obtener las variables a partir de un link, te lo sintetiso:

hay dos maneras de pasar informacion a un php

las que usan la variable $_GET:

link: www.tu-pagina.com/tuphp.php?variable1=cadenadetexto&variable2entero=5
php

<?php
$variable1
$_GET['variable1'];
int $variable2entero=$_GET['variable2entero'];
?>



y las que usan la variable $_POST:

link: www.tu-pagina.com/tuphp.php
<?php
$variable1
$_POST['variable1'];
int $variable2entero=$_POST['variable2entero'];
?>


la principal diferencia entre ellas es que, como puedes ver, en una la variable esta en el link y en la otra se envia en forma de formulario y es invisible para un navegador. las variables get y post son array superglobales que no requieren que las declares antes de llamarlas. una cosa importante acerca de las variables en php es que siempre tienen que iniciar con $.

entonces a partir de aqui tu puedes hacer cosas increibles con un php, puedes hacer bucles, condicionales, llamadas de datos entre otras cosas.

lo que nos preocupa en tu caso es que quieres que introduscan una clave y si la clave es correcta se puede borrar el archivo, bueno eso es bastante interesante y se puede hacer de muchas maneras, te recomendaria usar sql, de esta manera seria algo asi

<?php
$nivel 
$_GET['nivel']
$pass $_GET['pass']
//despues de conectarte con la base de datos
mysql_query("DELETE FROM `tabla_de_niveles` WHERE `id_nivel` = $nivel and`id_nivel`= $pass")?>



si no quieres usar un sql puedes hacer esto


<?php
$pass 
=$_GET['pass'];
$_pass_global="tu pass";
$fname $_GET['archivo'];
if (
$pass == $pass_global)
{
unlink('uploads/'.$fname);}
else
echo 
"pass incorrecto";
?>



el problema con el segundo es que no podras tener una clave por archivo como seria el caso el sql. sino que sera una sola clave y todos los que la tengan podran borrar cualquier archivo.

ps: uso variables GET para los ejemplos pero perfectamente se podria usar variables post, para hacer uso de una u otra dentro de gml se usaria lo siguiente




http_post_string(url,variables en post): variables post
http_get(url?variables): variables get

aqui tienes el manual de php: http://php.net/manual/es/index.php
167
Preguntas y respuestas / Re:REBOTAR LA PELOTA CONTRA PARED
Noviembre 16, 2015, 03:40:07 PM
una pregunta, tu codigo move_towards esta en el step o en el create? en caso de que solo se ejecute en el create con colocar en el evento colision
[gml]
speed = speed*(-1);
friction = friction*(-1);

[/gml]
deberia de bastar
168
pero dinos, el problema se soluciono con lo de verificar el status?
169
Preguntas y respuestas / Re:Errorcito con evento HTTP
Noviembre 13, 2015, 10:38:46 PM
Cita de: Markus en Noviembre 13, 2015, 10:01:40 PM
El código está mal, no están poniendo como les dije:

1. Si status es menor que cero hubo un error. En esta situación puedes volver a solicitar el archivo.
2. Si status es mayor que cero, el evento resultó exitoso y sólo en este caso debes poner tu código para cargar el nivel.
3. Si status es mayor que -1 y menor que 1 (en el caso del código lo puse como ELSE) no hay que hacer nada, ya que aún no llegan todos los paquetes. Por lo que no debes poner nada.

A mí me pasó lo mismo que a ti, por eso leí bien el manual y entendí mi error. De ese modo funciona bien.

Saludos
marcus e testeado muchas veces y abriendo una pagina en mi propio codigo de pruebas y status solo era 1 cuando todavia estaba descargando la pagina, pero cuando terminaba se colocaba en 0, entonces status solo es 0 cuando termino de descargar los archivos, te adjunto imagenes.
170
Preguntas y respuestas / Re:Errorcito con evento HTTP
Noviembre 13, 2015, 09:22:46 PM
te muestro

[gml]
/*if ds_map_find_value(async_load, "id") == file
{*/
    var status = ds_map_find_value(async_load, "status");
    if status == 0//cambia esto a if status >=0
    {
        //show_message("leido");
        var path = ds_map_find_value(async_load, "result");
        //show_message("path: "+string(path));
        ini_open(path)
        mapnum = ini_read_string('num','num',"666");
        ini_close();
        mapnum = real(mapnum)-1;
        randomize();
        middown = irandom(mapnum);
        mid = midname+string(middown)+midext;
    }
    else if status < 0
    {
        show_message("fail (-1)");
        file = http_get_file(url+"data/maps.ini","maps.ini");
    }
    /*else
        show_message("fail (+1)");
        file = http_get_file(url+"data/maps.ini","maps.ini");
}*/
/*else
{
    show_message("superfail");
        file = http_get_file(url+"data/maps.ini","maps.ini");
}*/[/gml]

quitale lo que le puse como anotacion o ponlo como anotacion tambien
171
Preguntas y respuestas / Re:Errorcito con evento HTTP
Noviembre 13, 2015, 09:06:55 PM
Cita de: kostra en Noviembre 13, 2015, 08:51:59 PM
1- pero como ves, esto pasa tambien con xampp :S
2- no, por eso separe en 2 objetos

si, pero porque se desfaso la peticion con la condicion, ademas si te fijas ya no da el segundo problema, el del result que daba error como a los 30 niveles.

prueba esto, quita la condicional que verifica la id del file con la id del get
172
Preguntas y respuestas / Re:Errorcito con evento HTTP
Noviembre 13, 2015, 08:33:58 PM
pues mira a estas alturas solo te diria dos cosas, ya sabemos que por un lado el problema era el servidor, por el otro quiero preguntarte si hay algun otro evento http que se ejecute cuando este objeto exista

en caso de que no y como este es eliminado apenas se ejecuta que tal si eliminas la condicional del id y dejas solo la del result
173
la variable debe estar entre comilla, pero el valor no necesariamente debe estar entre comillas, el valor puede ser entero o string.

hasta donde se tambien puedes usar como key un valor entero, pero no creo que sea recomendable por cuestiones de lectura.
174
se me olvidaba, para cambiar el valor del la variable almacenada, por si lo necesitas, usa
[gml]
ds_map_replace(variable_mapa,"tu_variable_creada","nuevo valor")
[/gml]
175
seria algo asi.

en el primer objeto que se crea o cualquiera que este antes de la ejecucion de la comprobacion creas la ds map en el evento create

[gml]
variable_mapa = ds_map_create();
[/gml]

luego pon esto en tu comprobacion
[gml]
if ds_map_exists(variable_mapa,"tu_variable_creada")
    {
     //tu codigo
    }
[/gml]
y para crear la variable haces esto
[gml]
ds_map_add(variable_mapa,"tu_variable_creada","valor que tendra, puede ser tanto string, como entero")
[/gml]

de todas maneras aqui te dejo la documentacion de las ds_maps
http://docs.yoyogames.com/source/dadiospice/002_reference/data%20structures/ds%20maps/index.html

ps: le hice quote a tu primer comentario para saber como poner codigo gml en el foro, para el que tampoco lo sabia es: [gml][/gml]
176
eso depende, si usas game maker 8.1 o menor se usaba algo como global_variable_exists, pero fue quitada en el studio, asi que la unica manera seria usando ds_maps
177
Preguntas y respuestas / Re:Errorcito con evento HTTP
Noviembre 13, 2015, 06:08:33 PM
Cita de: Guacusio en Noviembre 13, 2015, 05:59:43 PM
Me gustaría poder ayudarte, pero aún no entiendo cuál es el problema. ¿Es que no recibes el archivo solicitado? Para empezar, que el valor de la variable status no sea 0 no significa que haya un error; puede que estén llegando paquetes del archivo aún (en cuyo caso valdría 1), así que deberías cambiar la primera condición else a:

else if status<0//sólo valores negativos significan error

Si el valor de status es efectivamente negativo, significa que hubo un error en la descarga del archivo. En ese caso, puede ser que el servidor no acepte peticiones de descarga o que la ruta del archivo en el servidor no coincida con la que le entregas en el argumento de http_get_file.

guacusio su problema no es que de plano no le funcione, el problema es que funciona, pero al cabo de unas cuantas peticiones(entre 25 y 33) deja de abrirle la pagina, a mi parecer no es un error de codigo, sino del hosting, esto lo digo porque le esta enviando el error de que no cargo osea status=-1, hay hostings que si tienen muchas peticiones desde una misma ip la bloquea, tambien puede ser que consume todo el ancho de banda que su hosting le da. por ejemplo un hosting te da un ancho de banda de 100gb al mes, pero con una velocidad maxima de 10mbps entonces yo no se cuanto pesa su archivo, pero si hace muchas peticiones en unos pocos segundos puede acabarse o sobrepasar la velocidad maxima que le dan.
178
Preguntas y respuestas / Re:Errorcito con evento HTTP
Noviembre 13, 2015, 05:18:01 PM
aparte de eso el evento http no es un bucle, solo se ejecuta una vez en el momento en que alguna función http da algún resultado, a ti se te queda en bucle por decirlo así, porque así está hecho el código, si no logra descargar el mapa lo intenta otra vez, si todavía no lo logra lo vuelve a hacer y así hasta que logre descargarlo.

recomendaciones:
1) no entiendo por qué tener dos objetos, creo que sería preferible colocar esto en vez de crear otra instancia y destruir esta: donde están los
instance_create(x,y,object_index);
instance_destroy();

pon
file = http_get_file(url+"data/maps.ini","maps.ini");
show_message(string(file))

2) descárgate el xampp, y has pruebas en local, de esta manera se descartaría o corroboraría que el problema es el código
179
Preguntas y respuestas / Re:Errorcito con evento HTTP
Noviembre 13, 2015, 03:33:05 AM
Cita de: kostra en Noviembre 13, 2015, 02:46:54 AM
definitivamente, markus me has dicho una buena función que no sabía, me facilita muchísimo, ahora nisiquiera necesito usar el evento HTTP :D

Pero igual me sigue fallando en ocasiones y pone los datos el ini predeterminados... pero una pregunta, porque creo que no será un problema, por eso que dice jmbs de "por ip"... explico... ahora solo estoy probando por eso reinicio y envio hago las cosas bien rápido pero... la idea es poner que mientras el player está en una room fija del juego, se descargue el archivo para el siguiente nivel, entonces en la siguiente room, se descarga el nivel en sí que le toca, según previamente se descargó el dato en la room anterior, me explico?, hay un tiempo entre petición y petición por así decirlo... creen que así no me dará problema nunca? (de todos modos voy a explotar testeando esa posibilidad)

EDITO: pordiossh, lo he separado de rooms y ahora me pasa más aun :S T_T

VUELVO A EDITAR: Mira.. voy a leerme con detenimiento estas funciones en el manual para entender todo mejor, porque voy muy a ciegas...
mira, pon un show_message con ds_map_find_value(async_load,"status") y dinos que te sale cuando te carga el mapa de defecto, si no te carga la pagina deberia de ser -1, si la cargo 0 o mas, otra cosa mira que pasa si haces esto con tu evento http


estatus = ds_map_find_value(async_load,"status")
if estatus >=0
{
//todo el codigo que tienes hay
}
else
{
//el codigo para hacer un nuevo pedido, el que era urlx = http_get(tu url)
}


deberia de seguir enviando peticiones hasta que le reciba un archivo, incluso puedes poner un contador para que si se le va el internet no este todo el rato trantando de conectarse y que envie un mensaje como "no hay conexion en este momento, trate mas tarde"
180
Preguntas y respuestas / Re:Errorcito con evento HTTP
Noviembre 13, 2015, 01:47:45 AM
sabes, acabo de probar lo que el dice y tiene razon, cuando no abre la pagina, por x o y razon, eso te coloca en el status -1, seria util para comprobar si te cargo o no, y si no cargo, es decir si status = -1 volver a enviar la peticion, sí cargo, continuas con el proceso normalmente.

esto solo es para que, por ejemplo, siga enviando peticiones hasta que reciba una respuesta del servidor

lo que podrias hacer es que todo tu evento http lo pongas dentro de un if con la condicion de que el estatus sea 0 o mayor, sino envias otravez el http_get