Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: get_version()  (Leído 374 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dixon

en: Enero 27, 2020, 04:53:12 am
Nombre de los creadores: Fabriyin, TheWood, TioGilito22 y mi persona. En colaboración se logró el objetivo. Ver más
Breve descripción de su función: Indicar la versión de Game maker que se esté usando.
Versión GM utilizada: Todas
Código del script:

{

BATCH="
goto inicio
"
repeat(score=0)
{
version=0
font_color=0.54

//color fondo
color_xx=draw_getpixel(0,0)
//caracter
draw_text(0,0,string(chr(126)))

//evaluador
contadorxx=0
iy=0
repeat(5)
{
ix=0
repeat(5)
{
repeat(draw_getpixel(5+ix,5+iy)=color_xx)contadorxx+=1
ix+=1
}

iy+=1
}

antiguas=0
//#antiguas=1

repeat(antiguas)
{
c1="Html"+string("5")
c2=(c1="Html"+"0")
c3=solid
c4=(solid=0)
c5="include"+string("<iostream>")
c6=(c5="include<iostream>")
repeat(c2*c3)version=1
repeat(c2*c4)version=2
repeat(c6)version=3
}

//#bloquear_codigo='
repeat(0){/*}
version=4
//*/}

repeat(version=0){
repeat(font_color=1){version=5}
}

repeat(font_color<1){
version=6
repeat(contadorxx=17){version=7}
repeat(string_length(string(game_id))=9){version=8}
repeat(self=1000000){version="HTML5"}
repeat(instance_id=-4){version="Studio 1"}
repeat(string_length(string(game_id))=1){version="Studio 2"}
}

//fin_bloquear_codigo='


score+=1
}

repeat(antiguas=0)
{
texto="Estas usando Game Maker "+string(version)
draw_text(0,0,texto)
}

repeat(antiguas)
{
texto="Estas usando Game Maker "
draw_text(0,0,texto)
texto=version
draw_text(150,0,texto)
}

BATCH="
:inicio
cls
@echo off
echo Estas usando el CMD de windows
pause>null
"
}

Colocar este script en un evento draw o dibujo.  Se creará una variable llamada versión que nos indicará el numero o nombre del game maker usado.

Nota: Este script es un código híbrido que trabaja tanto en Game Maker como en el CMD de windows. Para hacerlo funcionar en el cmd de windows tenemos que guardarlo en un block de notas y colocarle la extencion ".bat". Ejemplo: get_version.bat

Anexos:


También se agradece realmente la ayuda de Kostra, Jucarave y eduardo960. Aunque por motivos diversos no logramos intercambiar mucha información. Gracias a Black_Cat por indicar que el código presentaba una falla.
« última modificación: Febrero 09, 2020, 03:07:15 am por Johann »

Voy a pedirles ayuda para aprender a programar y con lo poco que ya sé, intentaré aclarar las dudas de otros.
 


No Tienes Permisos Para Dar Puntos
point 15 Puntos

Usuarios que puntuaron el tema » Johann (15 Pts) 


Desconectado Black_Cat

Respuesta #1 en: Enero 27, 2020, 04:14:56 pm
tiene un error y es que lo uso bajo  :GM8: y me dice que es  :GM7:  :-[

Únete al servidor mas chidori de Discord

 
Los siguientes usuarios dieron las gracias a este tema: dixon


Desconectado dixon

Respuesta #2 en: Enero 27, 2020, 06:18:43 pm
Hola, gracias por comentar.

El error fue corregido

Voy a pedirles ayuda para aprender a programar y con lo poco que ya sé, intentaré aclarar las dudas de otros.
 


Desconectado TioGilito22

Respuesta #3 en: Enero 29, 2020, 09:09:21 pm
Lo he probado con el gamemaker 6.1 y el mensaje dice que mi versión es  :GM7:     :'(

 
Los siguientes usuarios dieron las gracias a este tema: dixon


Desconectado TioGilito22

Respuesta #4 en: Enero 30, 2020, 12:27:16 am
Estuve dándole vueltas y quizás podemos aprovecharnos de un bug de  :GM6: para detectar dicha versión, pero no sé si está presente en versiones más viejas...

>> median(1,3,5) 1 es devuelto en vez de 3

if (median(1,3,5)==1){version=6}

El error se corrigió en  :GM7:

 
Los siguientes usuarios dieron las gracias a este tema: dixon


Desconectado dixon

Respuesta #5 en: Enero 30, 2020, 02:24:37 pm
Hola, gracias por encontrar ese fallo.

la función median() existe solo a partir de la versión 6, si la aplicamos el verificador de errores no la reconocerá en las versiones viejas y dará error. Aunque puede bloquearse su verificación en Gmk4, Gmk3, Gmk2 y Gmk1. El problema es que no puede bloquearse su verificación en Gmk5 porque el visor de errores es diferente a partir de esa versión.

Error en Game maker 5


Pero si existe otra llamada mean() y no nos traerá problemas porque existe en Gmk5 y aunque no existiese en versiones viejas puede bloquearse su verificación, el problema está que si en Gmk 6 el valor será diferente al Gmk 7.

El siguiente script nos dará el valor de mean() al igual que otras funciones para compararlas. Solo debe colocarse en un evento draw y al ejecutar presionar la tecla ENTER para hacer una captura de pantalla, luego podremos subirla. Aunque es mejor subir una imagen jpg porque son más ligeras.

Código: [Seleccionar]
{

repeat(score=0)
{
screen_width=479.5
screen_height=383.5
font_color=0.54
score+=1
}

//dibujo
dy=0
dx=0

texto="screen_width: "+string(screen_width)
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="screen_height: "+string(screen_height)
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="id: "+string(id)
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="instance_id: "+string(instance_id)
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="game_id: "+string(game_id)
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="string_length(string(game_id)): "+string(string_length(string(game_id)))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="font_color: "+string(font_color)
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="self: "+string(self)
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="other: "+string(other)
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="(self=100000): "+string((self=100000))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="(other=100000): "+string((other=100000))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="(self=other): "+string((self=other))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="c_black: "+string(c_black)
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}


texto="chr(126): "+string(chr(126))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="chr(127): "+string(chr(127))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="(chr(127)=''): "+string((chr(127)=''))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="chr(128): "+string(chr(128))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="(chr(128)='€'): "+string((chr(128)='€'))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="chr(129): "+string(chr(129))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="chr(130): "+string(chr(130))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="(chr(129)=chr(130)): "+string((chr(129)=chr(130)))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="(1.49+0.0000000000000001): "+string((1.49+0.0000000000000001))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="script_get_name(0): "+string(script_get_name(0))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="script_get_name(-1): "+string(script_get_name(-1))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="window_handle(): "+string(window_handle())
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="median(1,3,5): "+string(median(1,3,5))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

texto="mean(1,3,5): "+string(mean(1,3,5))
draw_text(dx,dy,texto)
dy+=20;if(dy>300){dy=0;dx+=300}

if(keyboard_check(13))
{
foto_pantalla=get_save_filename("screenshot|*.png", "");

if(string_length(foto_pantalla)>4)
{
ex1=string_count(".png",foto_pantalla)
ex2=string_count(".gif",foto_pantalla)
ex3=string_count(".jpg",foto_pantalla)
ex4=string_count(".bmp",foto_pantalla)

if(ex1+ex2+ex3+ex4=0)
{
foto_pantalla+=".png"
}
screen_save(foto_pantalla);
}

}

}

Esta es la imagen obtenida en Game Maker 7.
« última modificación: Enero 30, 2020, 03:28:08 pm por dixon »

Voy a pedirles ayuda para aprender a programar y con lo poco que ya sé, intentaré aclarar las dudas de otros.
 


Desconectado TioGilito22

Respuesta #6 en: Enero 30, 2020, 08:07:18 pm
Aquí te muestro mis resultados en gm6:
« última modificación: Enero 30, 2020, 08:15:09 pm por TioGilito22 »

 
Los siguientes usuarios dieron las gracias a este tema: dixon


Desconectado dixon

Respuesta #7 en: Enero 31, 2020, 08:25:06 pm
Hola.

Mediante su ayuda hemos logrado corregir el problema con Gmk6, agregando al script un proceso que utilizando la función draw_getpixel se escanea el caracter 126 e identifica la diferencia entre Gmk7 y Gmk6. El problea está en que si se convierte un .exe de Gmk6 para que se pueda ejecutar en windows superiores a XP, el script devolverá que es Gm7 porque deja de existir la diferencia entre caracteres. Para finalizar, el programa que permite que un .exe de Gmk6 se ejecute en versiones superiores a Windows xp se llama GM_Convert_Game y está disponible aquí.
« última modificación: Febrero 04, 2020, 08:42:13 pm por dixon »

Voy a pedirles ayuda para aprender a programar y con lo poco que ya sé, intentaré aclarar las dudas de otros.
 
Los siguientes usuarios dieron las gracias a este tema: TioGilito22