Registrarse

[RPG - Scripting] BW2 Mod

Estado
Cerrado para nuevas respuestas.

Hiro696

El Chanfle
Hola a todos, me ha surgido un problemilla con el mod de Pokémon BW2, con el script de sabe, cuando voy a guardar me arroja error, ¿Cómo puedo arreglarlo?

De antemano muchas gracias.
 

Leviatan

Antisocial
que script agregaste y cual es el error que te da? puedes ponerlo en el post para dar mas informacion para ayudarte
 

Hiro696

El Chanfle
Éste es el script:

#=====================================================================================
# * Pokemon Save Screen adapted to the BW2 interfaces.
#===================================================================================
class PokemonSaveScene
def pbStartScreen
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
@sprites={}
totalsec = Graphics.frame_count / Graphics.frame_rate
hour = totalsec / 60 / 60
min = totalsec / 60 % 60
mapname=$game_map.name
time=_ISPRINTF("{1:02d}:{2:02d}",hour,min)
datenow=_ISPRINTF("{1:s} {2:d}, {3:d}",
pbGetAbbrevMonthName($PokemonGlobal.pbGetTimeNow.mon),
$PokemonGlobal.pbGetTimeNow.day,
$PokemonGlobal.pbGetTimeNow.year)
@sprites["bg"]=IconSprite.new(0,0,@viewport)
@sprites["bg"].setBitmap("Graphics/Pictures/Save/background")
# Creating Party Icons.
if $Trainer
if $Trainer.party.length>0
for i in 0...$Trainer.party.length
@sprites["pokemon#{i}"]=PokemonIconSprite.new($Trainer.party,@viewport)
@sprites["pokemon#{i}"].x = 64+64*(i)
@sprites["pokemon#{i}"].y = 180
end
end
end
@sprites["overlay"]=BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
overlay = @sprites["overlay"].bitmap
overlay.clear
baseColor = Color.new(231,231,231)
shadowColor = Color.new(140,140,140)
pbSetSystemFont(@sprites["overlay"].bitmap)
textos=[]
textos.push([_ISPRINTF("{1:02d} : {2:02d}", Time.now.hour, Time.now.min),226,116,false,baseColor,shadowColor])
textos.push([_INTL("BADGES:"),48,260,false,baseColor,shadowColor])
textos.push([_INTL("{1}",$Trainer.numbadges),133,260,false,baseColor,shadowColor])
textos.push([_INTL("POKÉDEX:"),256,260,false,baseColor,shadowColor])
textos.push([_INTL("{1}",$game_map.name),48,143,false,baseColor,shadowColor]) #48,148
textos.push([_INTL("{1}", $Trainer.pokedexSeen),358,260,false,baseColor,shadowColor])
textos.push([_INTL("TIME:", $Trainer.pokedexSeen),48,292,false,baseColor,shadowColor])
textos.push([_INTL("{1}", time),174,292,false,baseColor,shadowColor])
textos.push([_INTL("{1}", datenow),48,111,false,baseColor,shadowColor])
if $game_system.save_count>0 && $game_system.last_saved!=nil
textos.push([_INTL("Last saved on {1}", $game_system.last_saved),82,344,false,baseColor,shadowColor])
end
pbDrawTextPositions(overlay,textos)
end

def pbGetTimeNow
return Time.now
end

def pbEndScreen
pbDisposeSpriteHash(@sprites)
@viewport.dispose
end
end


def pbEmergencySave
oldscene=$scene
$scene=nil
Kernel.pbMessage(_INTL("The script is taking too long. The game will restart."))
return if !$Trainer
$game_system.save_count+=1
$game_system.last_saved=retTimeFormatOne
if safeExists?(RTP.getSaveFileName("Game.rxdata"))
File.open(RTP.getSaveFileName("Game.rxdata"), 'rb') {|r|
File.open(RTP.getSaveFileName("Game.rxdata.bak"), 'wb') {|w|
while s = r.read(4096)
w.write s
end
}
}
end
if pbSave
Kernel.pbMessage(_INTL("\\se[]The game was saved.\\se[save]\\wtnp[30]"))
else
Kernel.pbMessage(_INTL("\\se[]Save failed.\\wtnp[30]"))
end
$scene=oldscene
end

def pbSave(safesave=false)
$Trainer.metaID=$PokemonGlobal.playerID
$game_system.save_count+=1
$game_system.last_saved=retTimeFormatOne
$PokemonGlobal.safesave=safesave
begin
File.open(RTP.getSaveFileName("Game.rxdata"),"wb"){|f|
Marshal.dump($Trainer,f)
Marshal.dump(Graphics.frame_count,f)
if $data_system.respond_to?("magic_number")
$game_system.magic_number = $data_system.magic_number
else
$game_system.magic_number = $data_system.version_id
end
Marshal.dump($game_system,f)
Marshal.dump($PokemonSystem,f)
Marshal.dump($game_map.map_id,f)
Marshal.dump($game_switches,f)
Marshal.dump($game_variables,f)
Marshal.dump($game_self_switches,f)
Marshal.dump($game_screen,f)
Marshal.dump($MapFactory,f)
Marshal.dump($game_player,f)
Marshal.dump($PokemonGlobal,f)
Marshal.dump($PokemonMap,f)
Marshal.dump($PokemonBag,f)
Marshal.dump($PokemonStorage,f)
}
Graphics.frame_reset
rescue
return false
end
return true
end

class PokemonSave
def initialize(scene)
@scene=scene
end

def pbDisplay(text,brief=false)
@scene.pbDisplay(text,brief)
end

def pbDisplayPaused(text)
@scene.pbDisplayPaused(text)
end

def pbConfirm(text)
return @scene.pbConfirm(text)
end

def pbSaveScreen
default_message_positon=$game_system.message_position
$game_system.message_position=0 # Text is at the top.
ret=false
@scene.pbStartScreen
if Kernel.pbConfirmMessage(_INTL("Would you like to save the game?"))
if safeExists?(RTP.getSaveFileName("Game.rxdata"))
confirm=""
if $PokemonTemp.begunNewGame
Kernel.pbMessage(_INTL("WARNING!"))
Kernel.pbMessage(_INTL("There is a different game file that is already saved."))
Kernel.pbMessage(_INTL("If you save now, the other file's adventure, including items and Pokémon, will be entirely lost."))
if !Kernel.pbConfirmMessageSerious(
_INTL("Are you sure you want to save now and overwrite the other save file?"))
@scene.pbEndScreen
$game_system.message_position=default_message_positon
return false
end
else
if !Kernel.pbConfirmMessage(
_INTL("There is already a saved file. Is it OK to overwrite it?"))
@scene.pbEndScreen
$game_system.message_position=default_message_positon
return false
end
end
end
$PokemonTemp.begunNewGame=false
if pbSave
Kernel.pbMessage(_INTL("\\se[]{1} saved the game.\\se[save]\\wtnp[30]",$Trainer.name))
ret=true
else
Kernel.pbMessage(_INTL("\\se[]Save failed.\\wtnp[30]"))
ret=false
end
end
@scene.pbEndScreen
$game_system.message_position=default_message_positon
return ret
end
end

# Adding "last Saved" variable to the Game_System class.
class Game_System
attr_accessor :last_saved
end


Y este es el error:

 
Última edición:

Jessie

What goes around, comes around
No conozco ese script, pero el error marca que la función retTimeFormatOne no existe y dentro del script que compartiste no esta definida esa función, ya sea que este defina en otra parte y que pertenezca a algún class o module y por eso no lo lee, o simplemente no está definida en ningún lado.

Te recomiendo que uses ctrl+shift+F para buscar en todas las secciones donde podría estar definido, debería aparecer como "def retTimeFormatOne", si no esta en alguna sección quiere decir que no fue definida y por eso marca el error y si aparece, verifica si está dentro de algún class o module, y si es así lo único que debes hacer es llamar esa función según sea el caso.
 

Jessie

What goes around, comes around
Pues primero que nada, necesitas ver de donde descargaste ese script o de donde lo has tomado, seguramente ahí mismo estaría la explicación de la función que te hace falta.
 

Hiro696

El Chanfle
Pues nope, ya se me había ocurrido y no solo sale que hay que poner el script arriba de main y pegar los gráficos en la carpeta pictures. Es por eso que hise esta duda.
 

KleinStudio

Un plato es un plato
Miembro del equipo
Webmaster
Por lo que veo el script es relativamente antiguo y Essentials cambió bastantes cosas en la v17, lo suyo sería que hablases con el creador del script directamente (preguntandole por el perfil de Pokeco por ejemplo) o que lo probases en una v16, porque he visto como la v17 rompía incluso scripts bastante simples.
 

Hiro696

El Chanfle
Lo que vieron fue en un V16, a decir verdad es que la v17 no me acomoda usar y me siento mucho mejor usando la V16
 

KleinStudio

Un plato es un plato
Miembro del equipo
Webmaster
Me ha picado la curiosidad, en el tema original del mod pone esto:

shiney570 dijo:
BW2 UTILITIES: this is basically a script containing some functions other scripts refer to. it is REQUIRED if you want to add any of my scripts below. Just like any other script post this one above Main.
Y en el script que te dice que tienes que añadir si quieres usar cualquiera de los scripts del mod está justo la función que dice que te falta.
 
Estado
Cerrado para nuevas respuestas.
Arriba