Hola... a ver si me explico:
Tengo un juego ya hecho que dura bastantes horas. Pues a ese juego quiero meterle una variable global como todas las demás (por poner un ejemplo: global.item=0). Eso significa que no tienes ese item y cuando lo consigas se pondrá, donde sea, global.item=1 y con algún if ya funcionaría todo bien
El problema es que tengo varias versiones de ese juego (distintos exes muy similares). Hasta el momento, las partidas guardadas de una versión a otras son compatibles porque sólo cambié algunos eventos y añadi objetos, cosa que se actualiza bien y no da problemas. Pero quiero que esa variable global esté en las versiones anteriores del juego...
Ahora es evidente al usarla da error porque no la encuentra, sin embargo al darle valor globa.item=1 la crea de nuevo y ya va, pero mientras no se crea quiero que automáticamente tenga el valor 0 en las partidas guardadas con exes antiguos... puedo hacer eso?
El caso es que ese item se vería en algunos menus y en el momento que la variable no está creada da mil errores, o aunque desactive los errores, se ve mal y se producen fallos jugables y errores gráficos
No se si se entiende pero no se que hacer
Creo que con la función "Treat uninitialized variables as value 0" que se encuentra en Global Game Settings > Errors, podría funcionar. Hacer compatibles distintas versiones es muy complicado.
O bien, para las próximas versiones usas otro sistema de guardado (con inis, por ejemplo) lo que haría que no tendrías problemas a la hora de cargar partida (ya que no se tendría en cuenta tooodas las variables del juego) o haces que se ejecute un txt al comenzar el juego, y en ese txt vas añadiendo todas las variables nuevas (así, aunque el juego sea anterior, iniciaría la variable, pero seguiría dando errores al cargar partida).
¡Saludos!
La solucion es crear un documento osea un .ini y ahi guardar las variables nuevas y claro que sea acepsibles al iniciar el juego, en pocas palabras las variables estan en un documento y se cargan al inicio de cada juego con el valor que quieras asi no te da problemas.
Usá en el step de algún objeto de control, o quienes chequeen la variable un
if !variable_global_exists("item") {global.item=0}
Vale, ya está resuelto tan sólo poniendo que trate la variable como si fuera 0, gracias por las respuestas (pensaba que me daría más problemas que tuve otras veces que traté de hacer algo parecido)