Resource icon

Some v17.2 Fixes

I found some bugs through testing and playing other fan games on v17.2 and figured I could try and fix them and post them so others can fix up their games while they wait for v18. May update if I find more as I currently only have found a few. If you have any fixes that you have made and want to add to the thread, feel free. :)

Things like camouflage wouldn't work properly as there is no way to set a Forest environment so I made it check for the name of the map and set it.

Go to the "PField_Battles" script and find "def pbGetEnvironment" and add this:
Ruby:
  elsif ($game_map.name).include?("Forest") #Checks if "Forest" is in the map name
    return PBEnvironment::Forest #Camo fix
under this:
Ruby:
  elsif !pbGetMetadata($game_map.map_id,MetadataOutdoor)
    return PBEnvironment::None

This fix is not one that I made but found on pokecommunity here, it was made by Vendily so if you want to credit them feel free.

Go to the "PScreen_Mart" script and search for
Ruby:
pbDisplayPaused(_INTL("Turned over the {1} and received ${2}.",itemname,pbCommaNumber(price)))
and add
Ruby:
@scene.pbRefresh
in a line under it. Then search for
Ruby:
def pbRefresh
and replace that scene with this one:
Ruby:
  def pbRefresh
    if !@subscene
      itemwindow=@sprites["itemwindow"]
      @sprites["icon"].item=itemwindow.item
      @sprites["itemtextwindow"].text=(itemwindow.item==0) ? _INTL("Quit shopping.") :
         @adapter.getDescription(itemwindow.item)
      itemwindow.refresh
    else # This line is new
      @subscene.pbRefresh # So is this one
    end
    @sprites["moneywindow"].text=_INTL("Money:\n<r>${1}",pbCommaNumber(@adapter.getMoney))
  end

Maruno explained this one in a post here on the Wiki.

If you open the summary screen in battle it allows you to add/remove items, view the Pokédex and mark the Pokémon. If the Pokémon is holding an item and you remove it during battle you will get the item, but after the item is still being held thus creating a duplication bug. This isn't a feature that is in any Pokémon games and is easy to remove.

Go to the "PScreen_Summary" script and search for
Ruby:
def pbOptions
and replace everything in that section with this:
Ruby:
  def pbOptions
    dorefresh = false
    commands   = []
    cmdGiveItem = -1
    cmdTakeItem = -1
    cmdPokedex  = -1
    cmdMark     = -1
    if !$game_temp.in_battle #checks if player is in battle
      commands[cmdGiveItem = commands.length] = _INTL("Give item")
      commands[cmdTakeItem = commands.length] = _INTL("Take item") if @pokemon.hasItem?
      commands[cmdPokedex = commands.length]  = _INTL("View Pokédex")
      commands[cmdMark = commands.length]     = _INTL("Mark")
      commands[commands.length]               = _INTL("Cancel")
      command = pbShowCommands(commands)
      if cmdGiveItem>=0 && command==cmdGiveItem
        item = 0
        pbFadeOutIn(99999){
          scene = PokemonBag_Scene.new
          screen = PokemonBagScreen.new(scene,$PokemonBag)
          item = screen.pbChooseItemScreen(Proc.new{|item| pbCanHoldItem?(item) })
        }
        if item>0
          dorefresh = pbGiveItemToPokemon(item,@pokemon,self,@partyindex)
        end
      elsif cmdTakeItem>=0 && command==cmdTakeItem
        dorefresh = pbTakeItemFromPokemon(@pokemon,self)
      elsif cmdPokedex>=0 && command==cmdPokedex
        pbUpdateLastSeenForm(@pokemon)
        pbFadeOutIn(99999){
          scene = PokemonPokedexInfo_Scene.new
          screen = PokemonPokedexInfoScreen.new(scene)
          screen.pbStartSceneSingle(@pokemon.species)
        }
        dorefresh = true
      elsif cmdMark>=0 && command==cmdMark
        dorefresh = pbMarking(@pokemon)
      end
      return dorefresh
    end
  end
Go to "PScreen_Summary" and search for
Ruby:
        else
          dorefresh = pbOptions
and comment out or delete both lines. You can also comment out or delete this, though not necessary:
Ruby:
  def pbOptions
    dorefresh = false
    commands   = []
    cmdGiveItem = -1
    cmdTakeItem = -1
    cmdPokedex  = -1
    cmdMark     = -1
    commands[cmdGiveItem = commands.length] = _INTL("Give item")
    commands[cmdTakeItem = commands.length] = _INTL("Take item") if @pokemon.hasItem?
    commands[cmdPokedex = commands.length]  = _INTL("View Pokédex")
    commands[cmdMark = commands.length]     = _INTL("Mark")
    commands[commands.length]               = _INTL("Cancel")
    command = pbShowCommands(commands)
    if cmdGiveItem>=0 && command==cmdGiveItem
      item = 0
      pbFadeOutIn(99999){
        scene = PokemonBag_Scene.new
        screen = PokemonBagScreen.new(scene,$PokemonBag)
        item = screen.pbChooseItemScreen(Proc.new{|item| pbCanHoldItem?(item) })
      }
      if item>0
        dorefresh = pbGiveItemToPokemon(item,@pokemon,self,@partyindex)
      end
    elsif cmdTakeItem>=0 && command==cmdTakeItem
      dorefresh = pbTakeItemFromPokemon(@pokemon,self)
    elsif cmdPokedex>=0 && command==cmdPokedex
      pbUpdateLastSeenForm(@pokemon)
      pbFadeOutIn(99999){
        scene = PokemonPokedexInfo_Scene.new
        screen = PokemonPokedexInfoScreen.new(scene)
        screen.pbStartSceneSingle(@pokemon.species)
      }
      dorefresh = true
    elsif cmdMark>=0 && command==cmdMark
      dorefresh = pbMarking(@pokemon)
    end
   return dorefresh
end
Credits
Not necessary but if you would like to credit me, michael or vendily it would be a nice gesture.
Author
Buttjuice
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from Buttjuice

Top