View Single Post
  #32    
Old July 11th, 2013 (09:44 AM).
Phaelitico
 
Join Date: Jul 2013
Gender: Male
Quote originally posted by Nickalooose:
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.

Actually, there's a error on this code too, whe you select "Continue" it will reload the file before the mystery gift was downloaded. I have done my own editing and it's working fine like this:

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
    @overlay=@sprites["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["Options"] = Sprite.new
      @sprites["Options"].x = 68
      @sprites["Options"].y = 282
      @sprites["Options"].z = 99998
      @sprites["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar")
      @sprites["Options"].opacity = 210
      
      @sprites["MysteryGift"] = Sprite.new
      @sprites["MysteryGift"].x = 68
      @sprites["MysteryGift"].y = 332
      @sprites["MysteryGift"].z = 99998
      @sprites["MysteryGift"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar")
      @sprites["MysteryGift"].opacity = 210
      
      textpos=[
      [_INTL("CONTINUE"),84,10,false,baseColor,shadowColor],
      [_INTL("NEW GAME"),84,238,false,baseColor,shadowColor],
      [_INTL("OPTIONS"),84,288,false,baseColor,shadowColor],
      [_INTL("MYSTERY GIFT"),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"].viewport=@viewport
    @sprites["locwindow"].visible=false
    @sprites["cmdwindow"]=Window_CommandPokemon.new([])
    @sprites["cmdwindow"].x=512
    @sprites["cmdwindow"].y=0
    @sprites["cmdwindow"].viewport=@viewport
    @sprites["cmdwindow"].visible=false
    pbFadeInAndShow(@sprites) { pbUpdate }
  end

  def pbSetAuxiliaryWindow(loctext)
     @sprites["locwindow"].resizeToFit(loctext,Graphics.width-@sprites["cmdwindow"].width)
     @sprites["locwindow"].width=228 if @sprites["locwindow"].width<228
     @sprites["locwindow"].height=Graphics.height
     @sprites["locwindow"].x=512#Graphics.width-@sprites["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["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar")
          @sprites["MysteryGift"].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["MysteryGift"].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["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar_S")
          @sprites["MysteryGift"].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["Options"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/Bar")
          @sprites["MysteryGift"].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
    cmdMysteryGift=-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
        @overlay=@sprites["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[cmdOption=commands.length]=_INTL("Options")
      commands[cmdMysteryGift=commands.length]=_INTL("Mystery Gift") if (trainer.mysterygiftaccess rescue false)
    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
      command=@scene.pbChoose(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|
           Marshal.load(f) # Trainer already loaded
           $Trainer             = trainer
           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 cmdOption>=0 && command==cmdOption
        scene=PokemonOptionScene.new
        screen=PokemonOption.new(scene)
        pbFadeOutIn(99999) { screen.pbStartScreen }
      elsif cmdMysteryGift>=0 && command==cmdMysteryGift
       pbFadeOutIn(99999){
           trainer=pbDownloadMysteryGift(trainer)
        }
      end
    end
    @sprites["overlay"].opacity = 0
    @scene.pbEndScene
    return
  end
end
See that in the Continue part you "Reloaded" the $Trainer from the file?

basically you change this:
Code:
           $Trainer             = Marshal.load(f)
to this:
Code:
           Marshal.load(f) # Trainer already loaded
           $Trainer             = trainer
It's 100% Working, the only "issue" know is that every save file will have the "Mystery Gift" on the Menu regardless the access.

PS: Sorry about bad english and stuff
Reply With Quote