View Single Post
  #29    
Old May 23rd, 2013 (1:55 PM). Edited May 23rd, 2013 by Nickalooose.
Nickalooose Nickalooose is offline
--------------------
 
Join Date: Mar 2008
Gender: Female
Posts: 1,285

I'll go take a look now and see what's up...

EDIT:

If the mystery gift works during the game... Why would you want it to appear on the load screen?
It would seem so far that I can't get mystery gift to appear on the load screen anyway, so I don't think I can help you unless I can get that to work

EDIT:

So I figured out everything.

Code:
class PokemonLoadScene # :doc:
  def pbUpdate
    pbUpdateSpriteHash(@sprites)
  end

def pbStartScene @sprites={} @viewport=Viewport.new(0,0,Graphics.width,Graphics.height) @viewport.z=99998 savefile=RTP.getSaveFileName("Game.rxdata")

@sprites["overlay"]=BitmapSprite.new(Graphics.width, Graphics.height) @sprites["overlay"].z = 99999 @[email protected]["overlay"].bitmap @overlay.clear baseColor=Color.new(239, 239, 239) shadowColor=Color.new(140,140,140) pbSetSystemFont(@sprites["overlay"].bitmap)

if safeExists?(savefile) @sprites["Continue"] = Sprite.new @sprites["Continue"].x = 52 @sprites["Continue"].y = 4 @sprites["Continue"].z = 99998 @sprites["Continue"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Continue") @sprites["Continue"].opacity = 210

@sprites["NewGame"] = Sprite.new @sprites["NewGame"].x = 68 @sprites["NewGame"].y = 232 @sprites["NewGame"].z = 99998 @sprites["NewGame"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["NewGame"].opacity = 210

@sprites["MysteryGift"] = Sprite.new @sprites["MysteryGift"].x = 68 @sprites["MysteryGift"].y = 282 @sprites["MysteryGift"].z = 99998 @sprites["MysteryGift"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["MysteryGift"].opacity = 210

@sprites["Options"] = Sprite.new @sprites["Options"].x = 68 @sprites["Options"].y = 332 @sprites["Options"].z = 99998 @sprites["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["Options"].opacity = 210

textpos=[ [_INTL("CONTINUE"),84,10,false,baseColor,shadowColor], [_INTL("NEW GAME"),84,238,false,baseColor,shadowColor], [_INTL("MYSTERY GIFT"),84,288,false,baseColor,shadowColor], [_INTL("OPTIONS"),84,338,false,baseColor,shadowColor], #[_INTL( ] pbDrawTextPositions(@overlay,textpos) else @sprites["NewGame"] = Sprite.new @sprites["NewGame"].x = 68 @sprites["NewGame"].y = 142 @sprites["NewGame"].z = 99998 @sprites["NewGame"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["NewGame"].opacity = 210

@sprites["Options"] = Sprite.new @sprites["Options"].x = 68 @sprites["Options"].y = 192 @sprites["Options"].z = 99998 @sprites["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["Options"].opacity = 210

textpos=[ [_INTL("NEW GAME"),84,148,false,baseColor,shadowColor], [_INTL("OPTIONS"),84,198,false,baseColor,shadowColor], ] pbDrawTextPositions(@overlay,textpos)

end

addBackgroundOrColoredPlane(@sprites,"background","loadbg", Color.new(96,96,248),@viewport) @sprites["locwindow"]=Window_AdvancedTextPokemon.new("") @sprites["locwindow"].[email protected] @sprites["locwindow"].visible=false @sprites["cmdwindow"]=Window_CommandPokemon.new([]) @sprites["cmdwindow"].x=512 @sprites["cmdwindow"].y=0 @sprites["cmdwindow"].[email protected] @sprites["cmdwindow"].visible=false pbFadeInAndShow(@sprites) { pbUpdate } end

def pbSetAuxiliaryWindow(loctext) @sprites["locwindow"].resizeToFit(loctext,[email protected]["cmdwindow"].width) @sprites["locwindow"].width=228 if @sprites["locwindow"].width<228 @sprites["locwindow"].height=Graphics.height @sprites["locwindow"].[email protected]["locwindow"].width @sprites["locwindow"].visible=true @sprites["locwindow"].text=loctext end

def pbSetParty(trainer,hasPokedex=false) for i in 0...trainer.party.length @sprites["party#{i}"]=PokemonIconSprite.new(trainer.party[i]) @sprites["party#{i}"].z=99999 @sprites["party#{i}"].x=80+60*i @sprites["party#{i}"].y=150 end end

def pbChoose(commands) @sprites["cmdwindow"].resizeToFit(commands) @sprites["cmdwindow"].commands=commands @sprites["cmdwindow"].x=512 @sprites["cmdwindow"].y=0 @sprites["cmdwindow"].visible=true loop do Graphics.update Input.update pbUpdate savefile=RTP.getSaveFileName("Game.rxdata") if safeExists?(savefile) if @sprites["cmdwindow"].index==0 @sprites["NewGame"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["Continue"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Continue_S") @sprites["MysteryGift"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") elsif @sprites["cmdwindow"].index==1 @sprites["NewGame"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar_S") @sprites["Continue"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Continue") @sprites["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") elsif @sprites["cmdwindow"].index==2 @sprites["NewGame"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["Continue"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Continue") @sprites["MysteryGift"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar_S") @sprites["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") elsif @sprites["cmdwindow"].index==3 @sprites["NewGame"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["Continue"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Continue") @sprites["MysteryGift"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar_S") end else if @sprites["cmdwindow"].index==0 @sprites["NewGame"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar_S") @sprites["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") elsif @sprites["cmdwindow"].index==1 @sprites["NewGame"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar") @sprites["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar_S") end end

if Input.trigger?(Input::C) return @sprites["cmdwindow"].index end end end

def pbEndScene pbFadeOutAndHide(@sprites) { pbUpdate } pbDisposeSpriteHash(@sprites) @viewport.dispose end

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

module FontInstaller # :doc: # filenames of fonts to be installed Filenames = [ 'pkmnem.ttf', 'pkmnemn.ttf', 'pkmnems.ttf', 'pkmnrs.ttf', 'pkmndp.ttf', 'pkmnfl.ttf' ] # names (not filenames) of fonts to be installed Names = [ 'Power Green', 'Power Green Narrow', 'Power Green Small', 'Power Red and Blue', 'Power Clear', 'Power Red and Green' ] # whether to notify player (via pop-up message) that fonts were installed Notify = true # location of fonts (relative to game folder) Source = 'Fonts/'

def self.getFontFolder fontfolder=MiniRegistry.get(MiniRegistry::HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", "Fonts") return fontfolder+"\\" if fontfolder if ENV['SystemRoot'] return ENV['SystemRoot'] + '\\Fonts\\' elsif ENV['windir'] return ENV['windir'] + '\\Fonts\\' else return '\\Windows\\Fonts\\' end end

AFR = Win32API.new('gdi32', 'AddFontResource', ['P'], 'L') WPS = Win32API.new('kernel32', 'WriteProfileString', ['P'] * 3, 'L') SM = Win32API.new('user32', 'PostMessage', ['L'] * 4, 'L') WM_FONTCHANGE = 0x001D HWND_BROADCAST = 0xffff

def self.copy_file(src,dest) File.open(src, 'rb') {|r| File.open(dest, 'wb') {|w| while s = r.read(4096) w.write s end } } end

def self.pbResolveFont(name) RTP.eachPathFor(Source+name) {|file| return file if safeExists?(file) } return Source+name end

def self.install success = [] # Check if all fonts already exist filesExist=true fontsExist=true dest=self.getFontFolder() for i in 0...Names.size if !safeExists?(dest + Filenames[i]) filesExist=false end if !Font.exist?(Names[i]) fontsExist=false end end return if filesExist # Check if all source fonts exist exist=true for i in 0...Names.size if !RTP.exists?(Source + Filenames[i]) exist=false break end end return if !exist # Exit if not all source fonts exist Kernel.pbMessage(_INTL("One or more fonts used in this game do not exist on the system.\1")) Kernel.pbMessage(_INTL("The game can be played, but the look of the game's text will not be optimal.\1")) failed=false for i in 0...Filenames.size f = Filenames[i] if safeExists?(dest + f) && !Font.exist?(Names[i]) File.delete(dest + f) rescue nil end # check if already installed... if not safeExists?(dest + f) # check to ensure font is in specified location... if RTP.exists?(Source + f) # copy file to fonts folder succeeded=false begin copy_file(pbResolveFont(f), dest + f) # add font resource AFR.call(dest + f) # add entry to win.ini/registry WPS.call('Fonts', Names[i] + ' (TrueType)', f) succeeded=safeExists?(dest + f) rescue SystemCallError # failed succeeded=false end if succeeded success.push(Names[i]) else failed=true end end else success.push(Names[i]) # assume success end end if success.length>0 # one or more fonts successfully installed SM.call(HWND_BROADCAST,WM_FONTCHANGE,0,0) if Notify fonts = '' success.each do |f| fonts << f << ', ' end if failed Kernel.pbMessage(_INTL("Some of the fonts were successfully installed.\1")) Kernel.pbMessage(_INTL("To install the other fonts, copy the files in this game's Fonts folder to the Fonts folder in Control Panel.")) else Kernel.pbMessage(_INTL("The fonts were successfully installed.\1")) end if Kernel.pbConfirmMessage(_INTL("Would you like to restart the game and apply the changes?")) a = Thread.new { system('Game') } exit end end else # No fonts were installed. Kernel.pbMessage(_INTL("To install the necessary fonts, copy the files in this game's Fonts folder to the Fonts folder in Control Panel.")) end end end

class PokemonLoad 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 pbTryLoadFile(savefile) trainer=nil framecount=nil game_system=nil pokemonSystem=nil mapid=nil File.open(savefile){|f| trainer=Marshal.load(f) framecount=Marshal.load(f) game_system=Marshal.load(f) pokemonSystem=Marshal.load(f) mapid=Marshal.load(f) } 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) raise "Corrupted file" if !mapid.is_a?(Numeric) return [trainer,framecount,game_system,pokemonSystem,mapid] end

def pbStartDeleteScreen savefile=RTP.getSaveFileName("Game.rxdata") @scene.pbStartScene if safeExists?(savefile) if Kernel.pbConfirmMessageSerious(_INTL("Delete all saved data?")) Kernel.pbMessage(_INTL("Once data has been deleted, there is no way to recover it.\1")) if Kernel.pbConfirmMessageSerious(_INTL("Delete the saved data anyway?")) Kernel.pbMessage(_INTL("Deleting all data.\r\nDon't turn off the power.\\wtnp[0]")) begin; File.delete(savefile); rescue; end begin; File.delete(savefile+".bak"); rescue; end Kernel.pbMessage(_INTL("The save file was deleted.")) end end else Kernel.pbMessage(_INTL("No save file was found.")) end @scene.pbEndScene $scene=pbCallTitle end

def pbStartLoadScreen $PokemonTemp = PokemonTemp.new $game_temp = Game_Temp.new $game_system = Game_System.new $PokemonSystem = PokemonSystem.new if !$PokemonSystem @scene.pbStartScene cmdContinue=-1 cmdNewGame=0 cmdOption=1 cmdLanguage=-1 commands=[] savefile=RTP.getSaveFileName("Game.rxdata") FontInstaller.install data_system = pbLoadRxData("Data/System") mapfile=$RPGVX ? sprintf("Data/Map%03d.rvdata",data_system.start_map_id) : sprintf("Data/Map%03d.rxdata",data_system.start_map_id) if data_system.start_map_id==0 || !pbRgssExists?(mapfile) Kernel.pbMessage(_INTL("No starting position was set in the map editor.\1")) Kernel.pbMessage(_INTL("The game cannot continue.")) @scene.pbEndScene $scene=nil return end if safeExists?(savefile) trainer=nil framecount=0 showContinue=false haveBackup=false begin trainer, framecount, $game_system, $PokemonSystem, mapid=pbTryLoadFile(savefile) showContinue=true rescue if safeExists?(savefile+".bak") begin trainer, framecount, $game_system, $PokemonSystem, mapid=pbTryLoadFile(savefile+".bak") haveBackup=true showContinue=true rescue end end if haveBackup Kernel.pbMessage(_INTL("The save file is corrupt. The previous save file will be loaded.")) else Kernel.pbMessage(_INTL("The save file is corrupt, or is incompatible with this game.")) if !Kernel.pbConfirmMessageSerious(_INTL("Do you want to delete the save file and start anew?")) raise "scss error - Corrupted or incompatible save file." end begin; File.delete(savefile); rescue; end begin; File.delete(savefile+".bak"); rescue; end $PokemonSystem=PokemonSystem.new if !$PokemonSystem $game_system=Game_System.new Kernel.pbMessage(_INTL("The save file was deleted.")) end end if showContinue if !haveBackup begin; File.delete(savefile+".bak"); rescue; end end totalsec = framecount / Graphics.frame_rate hour = totalsec / 60 / 60 min = totalsec / 60 % 60 mapname=pbGetMapNameFromId(mapid) mapname.gsub!(/\\PN/,trainer.name) textColor=["0070F8,78B8E8","E82010,F8A8B8","0070F8,78B8E8"][trainer.gender] loctext=_INTL("<ac><c2=06644bd2>{1}</c2></ac>",mapname) loctext+=_INTL("Player<r><c3={1}>{2}</c3><br>",textColor,fmtescape(trainer.name)) loctext+=_ISPRINTF("Time<r><c3={1:s}>{2:02d}:{3:02d}</c3><br>",textColor,hour,min) loctext+=_INTL("Badges<r><c3={1}>{2}</c3><br>",textColor,trainer.numbadges) if trainer.pokedex loctext+=_INTL("Pokédex<r><c3={1}>{2}/{3}</c3><br>",textColor,trainer.pokedexOwned,trainer.pokedexSeen) end

@sprites={} @sprites["overlay"]=BitmapSprite.new(Graphics.width, Graphics.height) @sprites["overlay"].z = 99999 @[email protected]["overlay"].bitmap @overlay.clear baseColor=Color.new(239, 239, 239) shadowColor=Color.new(140,140,140) pbSetSystemFont(@sprites["overlay"].bitmap)

textpos=[ [_INTL("{1}",trainer.name),84,60,false,Color.new(57,165,255),Color.new(57,107,173)], [_INTL("{1}",mapname),84,90,false,baseColor,shadowColor], [_INTL("Badges: {1}",trainer.numbadges),84,135,false,baseColor,shadowColor], [_ISPRINTF("Time: {1:02d}:{2:02d}",hour,min),220,135,false,baseColor,shadowColor], ] pbDrawTextPositions(@overlay,textpos)

loctext+=_INTL("Party") if trainer.party.length>0 @scene.pbSetAuxiliaryWindow(loctext) @scene.pbSetParty(trainer,trainer.pokedex) end commands[cmdContinue=commands.length]=_INTL("Continue") if showContinue commands[cmdNewGame=commands.length]=_INTL("New Game") commands[cmdMysteryGift=commands.length]=_INTL("Mystery Gift") if (trainer.mysterygiftaccess rescue false) commands[cmdOption=commands.length]=_INTL("Options") else commands[cmdNewGame=commands.length]=_INTL("New Game") commands[cmdOption=commands.length]=_INTL("Options") end if LANGUAGES.length>=2 commands[cmdLanguage=commands.length]=_INTL("Language") end loop do [email protected](commands) if cmdNewGame>=0 && command==cmdNewGame savefile=RTP.getSaveFileName("Game.rxdata") if safeExists?(savefile) @sprites["overlay"].opacity = 0 end @scene.pbEndScene if $game_map && $game_map.events for event in $game_map.events.values event.clear_starting end end $game_temp.common_event_id=0 if $game_temp $scene = Scene_Map.new Graphics.frame_count = 0 $game_system = Game_System.new $game_switches = Game_Switches.new $game_variables = Game_Variables.new $game_self_switches = Game_SelfSwitches.new $game_screen = Game_Screen.new $game_player = Game_Player.new $ItemData = readItemList("Data/items.dat") $PokemonMap = PokemonMapMetadata.new $PokemonGlobal = PokemonGlobalMetadata.new $PokemonStorage = PokemonStorage.new $PokemonEncounters = PokemonEncounters.new $PokemonTemp.begunNewGame=true $data_system = pbLoadRxData("Data/System") $MapFactory = PokemonMapFactory.new($data_system.start_map_id) # calls setMapChanged $game_player.moveto($data_system.start_x, $data_system.start_y) $game_player.refresh $game_map.autoplay $game_map.update return elsif cmdLanguage>=0 && command==cmdLanguage @scene.pbEndScene $PokemonSystem.language=pbChooseLanguage pbLoadMessages("Data/"+LANGUAGES[$PokemonSystem.language][1]) savedata=[] if safeExists?(savefile) File.open(savefile,"rb"){|f| 14.times { savedata.push(Marshal.load(f)) } } savedata[3]=$PokemonSystem begin File.open(RTP.getSaveFileName("Game.rxdata"),"wb"){|f| 14.times {|i| Marshal.dump(savedata[i],f) } } rescue; end end $scene=pbCallTitle return elsif cmdContinue>=0 && command==cmdContinue unless safeExists?(savefile) pbPlayBuzzerSE() next end @sprites["overlay"].opacity = 0 @scene.pbEndScene metadata=nil File.open(savefile){|f| $Trainer = Marshal.load(f) Graphics.frame_count = Marshal.load(f) $game_system = Marshal.load(f) Marshal.load(f) # PokemonSystem already loaded Marshal.load(f) # Current map id no longer needed $game_switches = Marshal.load(f) $game_variables = Marshal.load(f) $game_self_switches = Marshal.load(f) $game_screen = Marshal.load(f) $MapFactory = Marshal.load(f) $game_map = $MapFactory.map $game_player = Marshal.load(f) $PokemonGlobal = Marshal.load(f) metadata = Marshal.load(f) $ItemData = readItemList("Data/items.dat") $PokemonBag = Marshal.load(f) $PokemonStorage = Marshal.load(f) magicNumberMatches=false if $data_system.respond_to?("magic_number") magicNumberMatches=($game_system.magic_number==$data_system.magic_number) else magicNumberMatches=($game_system.magic_number==$data_system.version_id) end if !magicNumberMatches || $PokemonGlobal.safesave if pbMapInterpreterRunning? pbMapInterpreter.setup(nil,0) end begin $MapFactory.setup($game_map.map_id) # calls setMapChanged rescue Errno::ENOENT if $DEBUG Kernel.pbMessage(_INTL("Map {1} was not found.",$game_map.map_id)) map=pbWarpToMap() if map $MapFactory.setup(map[0]) $game_player.moveto(map[1],map[2]) else $game_map=nil $scene=nil return end else $game_map=nil $scene=nil Kernel.pbMessage(_INTL("The map was not found. The game cannot continue.")) end end $game_player.center($game_player.x, $game_player.y) else $MapFactory.setMapChanged($game_map.map_id) end } if !$game_map.events # Map wasn't set up $game_map=nil $scene=nil Kernel.pbMessage(_INTL("The map is corrupt. The game cannot continue.")) return end $PokemonMap=metadata $PokemonEncounters=PokemonEncounters.new $PokemonEncounters.setup($game_map.map_id) pbAutoplayOnSave $game_map.update $PokemonMap.updateMap $scene = Scene_Map.new return elsif cmdMysteryGift>=0 && command==cmdMysteryGift pbFadeOutIn(99999){ trainer=pbDownloadMysteryGift(trainer) } elsif cmdOption>=0 && command==cmdOption scene=PokemonOptionScene.new screen=PokemonOption.new(scene) pbFadeOutIn(99999) { screen.pbStartScreen } end end @sprites["overlay"].opacity = 0 @scene.pbEndScene return end end

Replace your code with this one, made it look neat and tidy too...
This was tested with a gift waiting, it will look silly if there isn't one... If you want it to look better, I'll let you figure that out, since all the code is there, you can learn to edit it yourself.

Reply With Quote