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:
under this:
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
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
and add
in a line under it. Then search for
and replace that scene with this one:
Go to the "PScreen_Mart" script and search for
Ruby:
pbDisplayPaused(_INTL("Turned over the {1} and received ${2}.",itemname,pbCommaNumber(price)))
Ruby:
@scene.pbRefresh
Ruby:
def pbRefresh
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
and replace everything in that section with this:
Ruby:
def pbOptions
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
and comment out or delete both lines. You can also comment out or delete this, though not necessary:
Ruby:
else
dorefresh = pbOptions
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.