Recopilación de bugs de Echo

Started by Drumpi, March 05, 2010, 06:38:04 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

ATENCION: BUG DETECTED

Sea el siguiente código:
[code language="bennu"]program test_file_exists;

const
    max_savefiles=6;
end
global
    int savegame_exists_file[max_savefiles];
end
private
    int cont;
end

BEGIN
    refresh_savegame_exists_file();

    for (cont=0;cont<max_savefiles;cont++)
        say(itoa(savegame_exists_file[cont]));
    end

    while(!key(_esc)) frame; end
END


function refresh_savegame_exists_file ()
private
    int cont;
begin
    for (cont=0;cont<max_savefiles;cont++)
        savegame_exists_file[cont]=file_exists("save/data0"+itoa(cont+1)+".sav");
    end
end[/code]

Sí, el mismo que el de Echo. Bien, el caso es que he comprobado que detecta los ficheros de la carpeta save perfectamente, pero (y aqui viene el error) si existe, por ejemplo, el fichero "data02.sav" EN LA MISMA CARPETA QUE EL PRG (vamos, el que es el "directorio raiz"), tambien lo detecta, aunque este fichero no exista en la carpeta save. Podeis comprobarlo.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind

Según mi experiencia, primero busca en la carpeta, y despues en la raiz.
Si no existe el fichero save suele petar dependiendo de como hagas el código de guardado.

Yo suelo compilar con recursos embebidos y un save vacio (o con los datos por defecto) que se quedará dentro del dcb, y por ejemplo si borras el save que esta fuera o en la carpeta, el programa buscará despues el embebido :)

Ya es una norma que tengo, que es antes de hacer la release certificarme que tengo un save limpio para que quede embebido :)

SplinterGU

- Si el archivo tiene no permisos de lectura no lo encontrara... (funcion exists)

- Primero busca el archivo en la carpeta que especificas
- Si no esta en el disco intentara buscarlo en el embebido
- Si no esta en los embebido intentara abrirlo en la carpeta "<extension>/" (en este caso "sav/")
- Si no esta en la carpeta "<extension>/" intentara abrirlo en el directorio de trabajo (por lo general donde esta el dcb)
- Si no funciono ninguna de las anteriores falla

Esto sirve tanto para exists como para los open.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Pero eso no debería ser así ¿no? Quiero decir, si yo busco un fichero determinado en una ruta específica (como es el caso) no debería encontrar otro en otro sitio, aunque se llame de la misma forma... al menos, poder especificarlo de alguna forma, o que lo indique de alguna forma, porque es un detalle que me ha vuelto loco en los dos últimos días y que no está documentado :S

Además, haciendo un CD("save") antes y otro después (CD("..")) no me ha dado este "problema", es decir, que no me lo ha buscado en el directorio raiz, por lo que habría una incongruencia en el uso de la propia función.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

#19
Asi es el mundo div like... siempre fue asi...

absolutamente no hay incongruencias... si lees lo que puse dice "por ultimo busca en el directorio de trabajo", y con "cd" lo que haces es cambiar el directorio de trabajo...

si tu quieres forzarlo, entonces has "cd" y luego ahi te lo buscara en ese directorio.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Curioso, nunca me he puesto a probar las funciones de comprobación de existencia de fichero o listado de directorios, tampoco me hubiese esperado que el comportamiento fuese así.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

FreeYourMind

Pues no se porque no esperabais este comportamiento, si el la lógica del 'buen comportamiento' que se ve en la mayoria de las aplicaciones (almenos las bien echas) ...

Una buena aplicación, siempre tiene más caminos de comprobación cuando el primero falla, vamos, esto no es nada nuevo, y es una practica viejuna como la programación misma  :P

SplinterGU

hay algo que no se si es un bug, pero ahora me acorde...

cuando estas en el suelo y los pajaros violetas tambien lo estan, es muy dificil darles con los disparos... incluso si los tenes muy encima... diferente a todos los demas bichos...

no se, quizas eso necesite ajuste...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Mmmmmm, puedo hacer que no vuelen tan a ras del suelo, pues van buscando el "centro" de Echo, que está puesto a sus pies.
El que se te echen encima ya no es tan fácil de resolver, pues es su naturaleza.

Por cierto, no son pájaros, son murciélagos. Si te fijas sólo se dan en interiores de la tierra y dentro de los castillos, nunca en exteriores (he soltado algún detallito como esos en el juego). No se nota porque no podía jugar con dos capas de tiles para cambiar el fondo, por eso el primer nivel se divide en pantallas.

De todas formas, a buenas horas me lo dices ;D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

entonces el que yo digo no es el murcielago, porque aparecen en el exterior en la 1era pantalla... tienen pico y se vienen en picada...

quizas no tienen que atacar al centro de los pies, sino a otro centro en el medio del personaje...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Aaaaaamigo, los corvos son muy puñeteros (y azules, al menos, la última vez que lo miré en la escala cromática del paint ^^U) y cuanto atacan en picado sólo tienes dos soluciones: o disparar desde abajo, o huir de ellos y esperar otro ataque en vertical :D

Pero si tanto te fastidian, el mejor remedio es un buen espadazo cargado, mano de santo. Aun cuando hayas recibido su picotazo.

De todas formas, queda anotado para revisión.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

revisa en general a los bichos... cuando los tienes pegados a ti, tienes que poder matarlos con cualquier arma... para conseguir la espada tienes que hacer mucho del juego... ademas es muy dificil conseguirla... no sirve esa solucion...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Obviamente, si se pegan a ti, la mejor solución es acabar con ellos antes de que se acerquen demasiado, hasta donde yo se, los zombies en otros juegos no se quedan a una distancia suficiente para que les puedas acertar, vienen para darte un muerdo bien pegaditos a tu piel ;D
Si no, el plan B: huye de ellos, y cuando estén a distancia, dispara. Si te has fijado, todos los enemigos son más lentos que tu ;D

Y claro que la espada es difícil de conseguir: el "cerebral bore" o el "lanzacohetes" se ve muy poco en los juegos, y encima sólo tienen algunos tiros. La espada tiene uso ilimitado ;)
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

no me importan los otros juegos... vamos, no hay que justificarse mencionando a otros...

como sea, cuando los tenes pegados a ti... le das 10 disparos y no mueren... cuando si estan a distancia a los 2 disparos mueren... creo que eso necesita una correccion...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Lo de los 10 disparos, seguramente sea porque los disparos no salen desde el centro del prota, sino de la punta del arma. Como digo, en esos casos lo mejor es alejarse un par de tiles y darles caña.
El único enemigo que aumenta su energía con la proximidad son los murciélagos colgados de los techos: normalmente están durmiendo, con la guardia baja, pero si te acercas, se despiertan (se les iluminan los ojos) y se ponen en guardia (aumentan un punto de resistencia). Pero tranquilos que está controlado, al alejarte y dormirse de nuevo vuelven a su energía original, no van a salir super-murciélagos por acercarte y alejarte varias veces (comprobado ^^U).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)