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 - Texic

677
Desarrollo de Scripts / Asociar Extensión
Agosto 01, 2012, 11:54:35 PM
Creador: Texic
Versión de Gm utilizada:  :GM8:
Descripción: Este script sirve para crear una asociación entre un tipo de archivo y un archivo ejecutable. Puede hacerlo de dos maneras, por medio de los scripts en gml (silencioso), y si no funciona (por ejemplo en windows 7 o similares) pasa al modo no silencioso, creando y ejecutando un archivo de registro .reg
Script:
//argument0: Extensión a asociar (string) Ej: ".svk"
//argument1: Ruta del archivo con que abrirlo (string) Ej: "C:\Mijuego\Juego.exe"
//argument2: Ruta del ícono asociado (string) Ej: "C:\Mijuego\Icono.ico" (Opcional)
//argument3: Tipo de archivo (string) Ej: "Archivo Guardado"
b=registry_set_root(2)
if registry_exists("\"+argument0) {exit}
b+=registry_write_string_ext("\"+argument0,"",string_copy(argument0,2,3)+"file")
b+=registry_write_string_ext('\'+string_copy(argument0,2,3)+"file","",argument3)
b+=registry_write_string_ext('\'+string_copy(argument0,2,3)+"file"+'\shell\open\command',"",argument1+' %1')
if variable_local_exists(argument2) {b+=registry_write_string_ext("\"+string_copy(argument0,2,3)+"\DefaultIcon","",argument2)}
if b=0{
argument1=string_replace_all(string_replace_all(argument1,"\","|"),"|","\\")
argument2=string_replace_all(string_replace_all(argument2,"\","|"),"|","\\")
str='Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\'+argument0+']
@="'+string_copy(argument0,2,3)+"file"+'"

[HKEY_CLASSES_ROOT\'+string_copy(argument0,2,3)+'file'+']
@="'+argument3+'"

[HKEY_CLASSES_ROOT\'+string_copy(argument0,2,3)+"file"+'\DefaultIcon]
@="'+argument2+'"

[HKEY_CLASSES_ROOT\'+string_copy(argument0,2,3)+'file'+'\shell]

[HKEY_CLASSES_ROOT\'+string_copy(argument0,2,3)+'file'+'\shell\open]

[HKEY_CLASSES_ROOT\'+string_copy(argument0,2,3)+'file'+'\shell\open\command]
@="'+argument1+' %1"
'
a=file_text_open_write(working_directory+"\reg.reg")
file_text_write_string(a,str)
file_text_close(a)
execute_shell(working_directory+"\reg.reg",0)
}
str='@echo off
taskkill /IM explorer.exe /F
CD /d %userprofile%\AppData\Local
DEL IconCache.db /a
explorer.exe
exit'
a=file_text_open_write(temp_directory+"\act.bat")
file_text_write_string(a,str)
file_text_close(a)
while(1)
{
screen_redraw()
screen_refresh()
if registry_exists_ext("\"+argument0,"") {execute_shell(temp_directory+"\act.bat",0) break}
}


Soporte para íconos personalizados agregado, y ejemplo sobre cómo usar los parameter string y count para reconocer los archivos asociados abiertos. Usenlo con sabiduría! ;P

Ejemplo Adjunto

PD: Para que el ícono y el nombre de la extensión sean visibles se corre un comando .bat, si lo desean pueden pasar esos comandos de manera silenciosa con silentdos, que se encuentra en gmtoolbox.com. Lo dejo a su elección, de otra manera se muestra en pantalla
678
Preguntas y respuestas / Re:abrir partidas guardadas
Agosto 01, 2012, 09:32:56 PM
Bien, casi lo tengo, estoy teniendo un par de problemas encontrando una manera de romper la seguridad en sistemas nuevos como windows 7 que hasta el momento no permiten ninguna edición en el registro desde gm. En un rato me paso y te doy la solución al problema. De paso me gano un script más para postear en desarrollo de scripts :P
679
Preguntas y respuestas / Re:abrir partidas guardadas
Agosto 01, 2012, 06:27:41 PM
Indeed, tendrías que modificar el registro, se puede hacer desde el mismo juego, creas la asociación con el programa. Lamentablemente creo que con los archivos de game maker no se puede iniciar un comando binario, habría que averiguar bien sobre el tema, principalmente a agregar una asociación desde el registro. Capaz si ando con tiempo investigo un poco y te comento cómo se hace
680
Ponés algo así en un step

if instance_number(obj_enemigo)=0 {room_goto_next()}

Esto significa que si el número de instancias enemigo es 0, se va al siguiente room
681
El código se puede mejorar así

if (exp>300) and global.level<3
{
global.level=3
show_message("Subiste a nivel 3!")
}

Así ya no tendrías el problema del cartel repetido
682
Señor Mandril, por favor lea las reglas antes de postear, ya que los usuarios tienen prohibido contestar a temas que no las cumplan. Es por eso probablemente que no ha obtenido respuesta alguna, vuelva a formular el tema de manera legal y quizás tenga suerte. Saludos!
683
Preguntas y respuestas / Re:Configuración de teclas
Julio 31, 2012, 08:14:02 PM
Te hice un ejemplo, lo dejo adjunto, saludos!
684
Preguntas y respuestas / Re:ENGINE?????????????
Julio 31, 2012, 04:58:52 PM
Algo así, un engine puede tener sprites de prueba, o de orientación, lo que no tiene que tener por ejemplo son niveles jugabes o historia. Tiene que ser un molde a partir del cual se pueda armar el juego facilmente
685
Preguntas y respuestas / Re:DLL para esqueleto ?
Julio 30, 2012, 06:16:53 PM
Ahh, el programa está hecho en game maker 6... Qué cosa. Voy a averigüar por ahí si tiene compatibilidad con windows vista

EDIT: Prueben usar el vista converter (tmb sirve para win 7)
687
Preguntas y respuestas / Re:Guardar personajes
Julio 27, 2012, 07:59:19 PM
Tendrías que guardar las características del personaje en un txt o un ini, por acá en esta sección hay varias preguntas sobre txt e ini, y sino tenés el manual. No es muy complicado el tema, con lo que más se te puede llegar a complicar es definir bien el path del txt (si es q usás txt), pero está bien explicado en los temas concernientes. Saludos!

PD: También podrías usar listas, hay una función que te permite guardarlas y cargarlas directamente en archivos
688
Preguntas y respuestas / Re:Saber la room actual
Julio 26, 2012, 07:15:11 AM
Cita de: Karasuman en Julio 26, 2012, 04:58:05 AM


sonido1=sound_add("Música\Happyland.wav",0,false);
sonido2=sound_add("Música\Happiness in the forest.wav",0,false);
switch(room_get_name(room)){
      case Fondo1: sound_loop(sonido1); break;
      case Fondo2: sound_loop(sonido2); break;
}


Si los nombres de tus roms son Fondo1 y Fondo2, no te iba a funcionar solamente con colocar room(esto te arroja un valor numerico), con room_get_name(room) rescatas el nombre de la room.

En realidad se estaba comparando el valor numérico que devuelve el nombre del room con el valor devuelto por room (tmb un valor numérico). El código estaba bien...
Probablemente el problema esté en cómo escribiste la ruta hacia el archivo, q creo sería working_directory+"\Música\Happyland.wav", si estás ejecutando desde el gmk va a devolver la ruta del gmk, sino del exe, y si el gmk no está guardado, de la carpeta temporal donde corre el juego... Espero que se entienda xD
PD: Separá la carga del sonido en en create y el resto en step; y poné el objeto como persistente
689
Preguntas y respuestas / Re:place_free - place_empty
Julio 17, 2012, 10:44:19 PM
Usá position_empty en vez de place
690
Usá simplemente file_text_open_append en vez del write y listo

archivo=file_text_open_append('hola.txt') //Abrir archivo
file_text_write_string(archivo,string(argument0)+' - '+string(argument1)+' Euros') //Escribir "Producto" - "Precio" Euros
file_text_writeln(archivo) //Saltar una línea
file_text_close(archivo); //Cerrar el archivo