Registrarse

Error Sprite_Resizer

Estado
Cerrado para nuevas respuestas.

Kurotao

Cocinando Queques.
Buenas, ultimamente me han estado informando de un error que tambien me dio a mi en su dia, pero no se como se arregla, se trata del siguiente.



Al parecer sucede cuando se agranda la ventana con las Opciones del juego, el cual al principio va todo bien, pero al abrirlo por segunda vez, aparece ese error.

¿Alguna idea del porque eso sucede?
 

Lunos

Enfrentando a La Organización
Miembro insignia

Lunos

Enfrentando a La Organización
Miembro insignia
He traducido toda la conversación, hazte una taza de té o de cafe y preparate para leer un huevo de texto.
TheOminousJephed dijo:
Estoy teniendo este problema que ocurre al guardar la partida con un tamaño de pantalla especifico. El error solo ocurre al guardar con el tamaño de pantalla XL o Full, los demas no me dan problema en lo absoluto.

Con la información que este error me dió, asumí que algo iba mal con los "redimensionadores de sprites" en la Linea 20. No sé cual sea el problema con exactitud.

No pude encontrar una solución, por lo que acabé optando por eliminar temporalmente la sección "sprite_resizer", porque esa era la unica forma con la cual podia abrir mi juego de nuevo.
El nuevo problema es que debido a que eliminé la sección sprite_resizer, los graficos ya no estaban alineados.

Apenas pude abrir mi juego de nuevo, fuí a Opciones, donde puedo ajustar el tamaño de pantalla (bueno, mas o menos) e intenté cambiar el tamaño de pantalla, y pese a que usar XL o Full ya no produce un crasheo, el cambio en si no se efectua debido a la falta del script Sprite_Resizer. Ahora que el script fue removido, no importa con qué tamaño de pantalla guarde la partida. Todo funciona, pero luce deforme, nada nada bien.

En este punto las unicas opciones completamente funcionales en cuanto al tamaño de la ventana de mi juego, siguen siendo "Small, Medium y Large".
Tras guardar mi partida y cerrar el juego. Luego de que se ha cerrado por completo, vuelvo al editor de scripts y vuelvo a poner la sección Sprite_Resizer.

Tras esto, pude volver a abrir mi juego otra vez correctamente (a menos de que haya guardado con el tamaño de pantalla XL o Full, lo que produciria el error otra vez).

En definitiva, no tengo ni idea de como solucionar este problema. Busqué un poco y entendí que este error no tiene ningun sentido. El error dice que el problema yace en la Linea 20 del editor de scripts (como mencioné antes, sin esa sección el juego abre correctamente).
SIN EMBARGO!
Jugué el juego "Pokémon Bonfire Stories" que tiene exactamente la misma sección Sprite_Resizer (exactamente igual que como la tengo yo) y el problema simplemente no ocurre en ese juego.
A fin de cuentas, llegué a la conclusión de que mi problema está en otra parte, pero es que no sé en donde buscar.
Maruno, un conocido desarrollador (creo que es el que tiene las riendas del proyecto hoy en dia) de Essentials, posteó lo siguiente:
Maruno dijo:
¿Empezaste tu proyecto en Essentials v16.2 o empezaste en una versión anterior y luego lo actualizaste a la v16.2?
En mi experiencia, la mayoria de la gente no puede seguir correctamente las instrucciones de actualización de versiones y acaban haciendo algo mal en el proceso.

¿Que otras cosas has modificado en tu juego? ¿Alguna parte de PScreen_Options quizá?
¿Tienes o estás usando una vieja partida guardada, o la borraste al actualizar Essentials?
A ese post, el autor del tema (TheOminousJephed) respondió:
TheOminousJephed dijo:
Yo abrí la v16 de Pokémon Essentials, luego la actualizé a la v16.2 y añadí el EBS Script. Despues de eso pusé todos mis mapas, eventos y datos en la nueva v16.2 y finalmente, cuando terminé de pasarlo todo, añadí otros scripts mas.
Estoy casi seguro de que hice todo correctamente.
Yo supongo que esto no califica como una actualización.
Hasta donde yo sé, no cometí error alguno en el proceso de saltar desde la v16 a la v16.2 (Podria intentar repetir el proceso con otro backup, pero preferiria no hacerlo).

Luego de que me preguntaste si tenia una partida guardada vieja, pensé en probar que pasaria si intento cambiar el tamaño de pantalla a XL o Full en mi segunda partida guardada, si la partida numero 1 funciona bien.
El resultado fue este:

Si la Partida Guardada #1 tiene el tamaño de pantalla Small, Medium o Large, puedo abrir el juego. Sin embargo, este no me permite usar la Partida Guardada #2 si esa fue guardada con el tamaño de pantalla XL.
A ese post, Maruno respondió:
Maruno dijo:
El error que estás teniendo no tiene ningun puñetero sentido, pues se refiere a la Linea #100 de la sección de scripts PSystem_System como si fuese una partida del def pbSetUpSystem, pero eso jamas fue asi en ninguna versión de Essentials. Muestranos esa parte de la sección de scripts en tu juego.
A ese post, el autor del tema (TheOminousJephed) respondió:
TheOminousJephed dijo:
Esto es lo que aparece en mi sección PSystem_System:
# Loads data from a file "safely", similar to load_data. If an encrypted archive
# exists, the real file is deleted to ensure that the file is loaded from the
# encrypted archive.
def pbSafeLoad(file)
if (safeExists?("./Game.rgssad") || safeExists?("./Game.rgss2a")) && safeExists?(file)
File.delete(file) rescue nil
end
return load_data(file)
end

def pbLoadRxData(file) # :nodoc:
if $RPGVX
return load_data(file+".rvdata")
else
return load_data(file+".rxdata")
end
end

def pbChooseLanguage
commands=[]
for lang in LANGUAGES
commands.push(lang[0])
end
return Kernel.pbShowCommands(nil,commands)
end

if !Kernel.respond_to?("pbSetResizeFactor")
def pbSetResizeFactor(dummy); end
def setScreenBorderName(border); end

$ResizeFactor=1.0
$ResizeFactorMul=100
$ResizeOffsetX=0
$ResizeOffsetY=0
$ResizeFactorSet=false

module Graphics
def self.snap_to_bitmap; return nil; end
end
end


#############
#############


def pbSetUpSystem(tempsave=0,autosave=nil)
begin
trainer=nil
framecount=0
havedata=false
game_system=nil
pokemonSystem=nil
if tempsave>1
if autosave !=nil
File.open(RTP.getSaveFileName("Game_"+tempsave.to_s+"_autosave.rxdata")){|f|
trainer=Marshal.load(f)
framecount=Marshal.load(f)
game_system=Marshal.load(f)
pokemonSystem=Marshal.load(f)
}
else
File.open(RTP.getSaveFileName("Game_"+tempsave.to_s+".rxdata")){|f|
trainer=Marshal.load(f)
framecount=Marshal.load(f)
game_system=Marshal.load(f)
pokemonSystem=Marshal.load(f)
}
end
elsif autosave !=nil
File.open(RTP.getSaveFileName("Game_autosave.rxdata")){|f|
trainer=Marshal.load(f)
framecount=Marshal.load(f)
game_system=Marshal.load(f)
pokemonSystem=Marshal.load(f)
}
else
File.open(RTP.getSaveFileName("Game.rxdata")){|f|
trainer=Marshal.load(f)
framecount=Marshal.load(f)
game_system=Marshal.load(f)
pokemonSystem=Marshal.load(f)
}
end
raise "Corrupted file" if !trainer.is_a?(PokeBattle_Trainer)
raise "Corrupted file" if !framecount.is_a?(Numeric)
raise "Corrupted file" if !game_system.is_a?(Game_System)
raise "Corrupted file" if !pokemonSystem.is_a?(PokemonSystem)
havedata=true
rescue
pokemonSystem=PokemonSystem.new
game_system=Game_System.new
end
if !$INEDITOR
$PokemonSystem=pokemonSystem
$game_system=Game_System
$ResizeOffsetX=0 #[0,0][$PokemonSystem.screensize]
$ResizeOffsetY=0 #[0,0][$PokemonSystem.screensize]
resizefactor=[0.5,1.0,2.0][$PokemonSystem.screensize]
pbSetResizeFactor(resizefactor)
else
pbSetResizeFactor(1.0)
end
# Load constants
begin
consts=pbSafeLoad("Data/Constants.rxdata")
consts=[] if !consts
rescue
consts=[]
end
for script in consts
next if !script
eval(Zlib::Inflate.inflate(script[2]),nil,script[1])
end
if LANGUAGES.length>=2
if !havedata
pokemonSystem.language=pbChooseLanguage
end
pbLoadMessages("Data/"+LANGUAGES[pokemonSystem.language][1])
end
end

def pbScreenCapture
capturefile=nil
5000.times {|i|
filename=RTP.getSaveFileName(sprintf("capture%03d.bmp",i))
if !safeExists?(filename)
capturefile=filename
break
end
i+=1
}
if capturefile && safeExists?("rubyscreen.dll")
takescreen=Win32API.new("rubyscreen.dll","TakeScreenshot","%w(p)","i")
takescreen.call(capturefile)
if safeExists?(capturefile)
pbSEPlay("expfull") if FileTest.audio_exist?("Audio/SE/expfull")
end
end
end



module Input
unless defined?(update_KGC_ScreenCapture)
class << Input
alias update_KGC_ScreenCapture update
end
end

def self.update
update_KGC_ScreenCapture
if trigger?(Input::F8)
pbScreenCapture
end
if trigger?(Input::F7)
pbDebugF7
end
end
end



def pbDebugF7
if $DEBUG
Console::setup_console
begin
debugBitmaps
rescue
end
pbSEPlay("expfull") if FileTest.audio_exist?("Audio/SE/expfull")
end
end

pbSetUpSystem()
A ese post, Maruno respondió:
Maruno dijo:
Eso pertenece a una versión antigua de Essentials. Ya que el proceso de actualizar la versión de Essentials es algo tan comun para quienes lo utilizan, reemplazaste scripts nuevos con otros viejos sin siquiera pensarlo, esperando a que todo funcionase correctamente. Bueno, pues no funciona.

Probablemente hiciste lo mismo con otros tantos scripts. Quizá ellos no te estén dando errores, pero tampoco estás recibiendo los beneficios del cambio de la versión de Essentials.

Cuando quieras transferir cualquier pieza de codigo desde una versión antigua de tu juego a una mas nueva de Essentials, presta atención al codigo en si, a lo que es y a por qué lo estás transfiriendo. ¿Que es lo que hace este codigo, y necesito moverlo de aqui para allá? ¿Es necesario mover una pieza de codigo, o solo lo estás haciendo porque está en la misma sección de scripts que los otros codigos que tú quieres insertar?

El proceso quizá requiera mucho tiempo y esfuerzo de tu parte, hacer un repaso a cada linea de codigo que has cambiado en las distintas secciones de los distintos scripts no es nada facil, pero:
a) deberias haber ido anotando los cambios que hiciste tal y como la Wikia de Essentials lo sugiere, para asi tener toda información posible a la mano cuando sea que tengas un problema como lo estás teniendo ahora.
y b) al hacer eso, la posibilidad de que esta clase de problemas pasen es muchisimo menor.
Y finalmente, el autor del tema (TheOminousJephed) respondió:
TheOminousJephed dijo:
Gracias por tu respuesta.

Ahora sé que cometí un error al añadir el script para tener multiples partidas guardadas, que ciertamente pertenecia a una versión antigua de Essentials. Al final decidí borrarlo de mi juego. Ahora todos los tamaños de pantalla funcionan perfectamente.

Creo que intentaré mejorar en el lenguaje de programación Ruby antes de copiar y pegar scripts sin pensarlo y sin considerar los problemas que eso podria ocasionar. Muchas gracias por haberme querido ayudar durante este proceso.
Prometo que tendré mas cuidado en el futuro. :D
Uff.. listo.
 

Kurotao

Cocinando Queques.
Segun entendi @Lunos,el problema viene de actualizar mal el Pokemon Essentials, pero no tendría sentido en mi, ya que yo empece en la versión 16.2 y nunca cambie la versión :/ Por lo que nunca actualiza el programa, y los Scripts están intactos.
 

Lunos

Enfrentando a La Organización
Miembro insignia

Kurotao

Cocinando Queques.

KleinStudio

Un plato es un plato
Miembro del equipo
Webmaster
En opciones, ¿qué opción de pantalla elegiste para que te pasase eso?
 

Lunos

Enfrentando a La Organización
Miembro insignia
Lo baje de la pagina oficial la version española de la misma, ahora mismo estoy bajándolo de nuevo para ver si hay algo malo, aunque se me hace extraño, ya que los únicos Scripts que e agregado son solo para Fixear algunas cosas y el Turbo.
Pues acabo de bajar Essentials v16.2 en Español desde aqui y parece funcionar bien.



Yo diria que tu problema claramente reside en alguno de los fixes que implementaste, o en el script de Turbo.
Quizá hiciste algo mal al implementarlos o simplemente no son compatibles con la versión.
 
Última edición:

Kurotao

Cocinando Queques.
Pues acabo de bajar Essentials v16.2 en Español desde aqui y parece funcionar bien.



Yo diria que tu problema claramente reside en alguno de los fixes que implementaste, o en el script de Turbo.
Quizá hiciste algo mal al implementarlos o simplemente no son compatibles con la versión.
Los únicos Scripts de terceros que tengo implementados son los siguientes.

* Stat Down/Up Animation V1 by KleinStudio

* Map Connection Overlap fix by KleinStudio

* Fast Map Exporter by KleinStudio V1.1

* Turbo mode by Kleinstudio

Si sigue dando problemas, descargare la ultima version, y copiare y pegare los eventos y mapas, ya que no entiendo porque el error si descargue la version oficial de la pagina.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Los únicos Scripts de terceros que tengo implementados son los siguientes.

* Stat Down/Up Animation V1 by KleinStudio

* Map Connection Overlap fix by KleinStudio

* Fast Map Exporter by KleinStudio V1.1

* Turbo mode by Kleinstudio

Si sigue dando problemas, descargare la ultima version, y copiare y pegare los eventos y mapas, ya que no entiendo porque el error si descargue la version oficial de la pagina.
Pues entonces explicale a @KleinStudio en este mismo tema, que proceso seguiste para implementar dichos scripts en tu Essentials v16.2. Ademas, siendo él el creador tambien podrá aclararte si esos scripts son compatibles con la versión o no.
 

KleinStudio

Un plato es un plato
Miembro del equipo
Webmaster
No, mis funciones no tocan nada de eso, de hecho son tan simples que deberían funcionar en todas las versiones de Essentials.
Si nos vamos a la línea que nos indica el error vemos que está dentro de la función pbSetResizeFactor que es la que se encarga de cambiar la resolución.
Me llama especialmente la atención esta línea:
Código:
(factor<0) ? pbConfigureFullScreen : pbConfigureWindowedScreen(factor)
Probablemente alguna de esas dos funciones esté devolviendo un valor completamente vacío por alguna razón. Comparando las funciones de la versión 17 con la de las 16 he visto que la única que cambia un poco es pbConfigureFullScreen.
Prueba una cosa, en la línea de arriba verás esto:

Código:
factor=[0.5,1.0,2.0,-1][factor] if !norecalc
Pues cambia el -1 por un 1.0, de forma que quede así:

Código:
factor=[0.5,1.0,2.0,1.0][factor] if !norecalc
Si al iniciarlo te sigue dando error, no es problema de la pantalla completa, si ya no te da error pues ya hemos localizado el problema, que es un primer paso para poder solucionarlo.
 

Kurotao

Cocinando Queques.
No, mis funciones no tocan nada de eso, de hecho son tan simples que deberían funcionar en todas las versiones de Essentials.
Si nos vamos a la línea que nos indica el error vemos que está dentro de la función pbSetResizeFactor que es la que se encarga de cambiar la resolución.
Me llama especialmente la atención esta línea:
Código:
(factor<0) ? pbConfigureFullScreen : pbConfigureWindowedScreen(factor)
Probablemente alguna de esas dos funciones esté devolviendo un valor completamente vacío por alguna razón. Comparando las funciones de la versión 17 con la de las 16 he visto que la única que cambia un poco es pbConfigureFullScreen.
Prueba una cosa, en la línea de arriba verás esto:

Código:
factor=[0.5,1.0,2.0,-1][factor] if !norecalc
Pues cambia el -1 por un 1.0, de forma que quede así:

Código:
factor=[0.5,1.0,2.0,1.0][factor] if !norecalc
Si al iniciarlo te sigue dando error, no es problema de la pantalla completa, si ya no te da error pues ya hemos localizado el problema, que es un primer paso para poder solucionarlo.
Voy a descargarme la ultima versión y traspasare los datos allí, igual gracias por la ayuda, igual queria cambiarme a la version mas reciente ;D
 
Estado
Cerrado para nuevas respuestas.
Arriba