kodiakbermun
Kodiak
- 2
- Posts
- 1
- Years
- He/Him
- Sacramento, California
- Seen Sep 3, 2023
Hi there,
I had to make a new account to post this since my old account's password expired in 2017 and I can't seem to remember the email attached to it lol. But I've been working on a game in Pokemon Essentials v21 and everything has been running fairly smoothly up until this point. However, two days ago I needed to add a Pokemon from outside Gens 1-5 to one of my routes (Skwovet), and rather than uploading individual sprite assets for each Gen 6-8 Pokemon, I decided to just update/integrate all of the Pokemon sprites through Golisopod User's "Generation 8 Pack for Essentials v20.1" -- now I know there's a version mismatch here (and they've stated there won't be more updates to this script), but I'm truly only encountering one area of conflict and everything else is running exactly as expected. The error occurs when adding a new Pokemon to the PokeDex, specifically after catching it or trying to access its PokeDex entry. Knocking them out will add their data to the PokeDex as "seen,'" but trying to access the PokeDex entry for any Pokemon, whether it has been caught or only seen, returns this error:
The error that occurs when catching a Pokemon and adding its information to the PokeDex is:
It looks like this error occurs when creating or accessing the PokeDex entry page. While I was trying to continue debugging this while writing this post and accounting for the different errors, there was a command line error that /Graphics/Images/PokeDex/bg_info was a missing file, so I downloaded a graphics pack from a different creator that had a nice looking PokeDex background image and added the PokeDex file from that into my Images file; after that, the PokeDex background does show up, but it still goes straight to the previous error (although the missing image error no longer appears). I'm assuming that something got changed between PEv20.1 and PEv21 that is altering how the script would have worked with the Gen 8 Pack in 20.1. I have PyCharm and I tried looking at the coding for the "Footprint Replcement.rb" file from the "Sprite Scaling" folder in the Gen 8 pack, but I've only taken an intro to programming class and coding is not a strong-suit of mine. I'll post that file's contents here in case someone smarter than me knows how it could be fixed to allow the PokeDex page to propogate:
I'm just about at my wit's end trying to figure out how to get around this. If there's truly no way to make this plugin work with v21 then I guess I'll just have to manually start adding all of the Gen 6-8 Pokemon assets, but honestly the upgraded sprites in this pack for Gens 1-5 just look so much better than the base sprites and it would really be disappointing having to go back to those now after starting to get used to these nice looking ones. If anyone could please help me out with this I would truly appreciate it so much. I can provide any additional info too if it helps.
I had to make a new account to post this since my old account's password expired in 2017 and I can't seem to remember the email attached to it lol. But I've been working on a game in Pokemon Essentials v21 and everything has been running fairly smoothly up until this point. However, two days ago I needed to add a Pokemon from outside Gens 1-5 to one of my routes (Skwovet), and rather than uploading individual sprite assets for each Gen 6-8 Pokemon, I decided to just update/integrate all of the Pokemon sprites through Golisopod User's "Generation 8 Pack for Essentials v20.1" -- now I know there's a version mismatch here (and they've stated there won't be more updates to this script), but I'm truly only encountering one area of conflict and everything else is running exactly as expected. The error occurs when adding a new Pokemon to the PokeDex, specifically after catching it or trying to access its PokeDex entry. Knocking them out will add their data to the PokeDex as "seen,'" but trying to access the PokeDex entry for any Pokemon, whether it has been caught or only seen, returns this error:
Spoiler:
[Pokémon Essentials version 21]
Exception: NoMethodError
Message: undefined method `>' for nil:NilClass
Backtrace:
[Generation 8 Pack Scripts] Footprint Replcement.rb:14:in `drawPageInfo'
UI_Pokedex_Entry:214:in `drawPage'
UI_Pokedex_Entry:66:in `pbStartScene'
UI_Pokedex_Entry:584:in `pbStartScreen'
UI_Pokedex_Main:879:in `pbDexEntry'
UI_Pokedex_Main:1282:in `block (2 levels) in pbPokedex'
UI_Pokedex_Main:1257:in `loop'
UI_Pokedex_Main:1257:in `block in pbPokedex'
MessageConfig:721:in `pbActivateWindow'
UI_Pokedex_Main:1256:in `pbPokedex'
Exception: NoMethodError
Message: undefined method `>' for nil:NilClass
Backtrace:
[Generation 8 Pack Scripts] Footprint Replcement.rb:14:in `drawPageInfo'
UI_Pokedex_Entry:214:in `drawPage'
UI_Pokedex_Entry:66:in `pbStartScene'
UI_Pokedex_Entry:584:in `pbStartScreen'
UI_Pokedex_Main:879:in `pbDexEntry'
UI_Pokedex_Main:1282:in `block (2 levels) in pbPokedex'
UI_Pokedex_Main:1257:in `loop'
UI_Pokedex_Main:1257:in `block in pbPokedex'
MessageConfig:721:in `pbActivateWindow'
UI_Pokedex_Main:1256:in `pbPokedex'
The error that occurs when catching a Pokemon and adding its information to the PokeDex is:
Spoiler:
[Pokémon Essentials version 21]
Exception: NoMethodError
Message: undefined method `>' for nil:NilClass
Backtrace:
[Generation 8 Pack Scripts] Footprint Replcement.rb:14:in `drawPageInfo'
UI_Pokedex_Entry:214:in `drawPage'
UI_Pokedex_Entry:114:in `pbStartSceneBrief'
UI_Pokedex_Entry:614:in `pbDexEntry'
Scene_ChooseCommands:470:in `block in pbShowPokedex'
MessageConfig:575:in `pbFadeOutIn'
Scene_ChooseCommands:467:in `pbShowPokedex'
Battle_CatchAndStoreMixin:92:in `block in pbRecordAndStoreCaughtPokemon'
Battle_CatchAndStoreMixin:83:in `each'
Battle_CatchAndStoreMixin:83:in `pbRecordAndStoreCaughtPokemon'
Exception: NoMethodError
Message: undefined method `>' for nil:NilClass
Backtrace:
[Generation 8 Pack Scripts] Footprint Replcement.rb:14:in `drawPageInfo'
UI_Pokedex_Entry:214:in `drawPage'
UI_Pokedex_Entry:114:in `pbStartSceneBrief'
UI_Pokedex_Entry:614:in `pbDexEntry'
Scene_ChooseCommands:470:in `block in pbShowPokedex'
MessageConfig:575:in `pbFadeOutIn'
Scene_ChooseCommands:467:in `pbShowPokedex'
Battle_CatchAndStoreMixin:92:in `block in pbRecordAndStoreCaughtPokemon'
Battle_CatchAndStoreMixin:83:in `each'
Battle_CatchAndStoreMixin:83:in `pbRecordAndStoreCaughtPokemon'
It looks like this error occurs when creating or accessing the PokeDex entry page. While I was trying to continue debugging this while writing this post and accounting for the different errors, there was a command line error that /Graphics/Images/PokeDex/bg_info was a missing file, so I downloaded a graphics pack from a different creator that had a nice looking PokeDex background image and added the PokeDex file from that into my Images file; after that, the PokeDex background does show up, but it still goes straight to the previous error (although the missing image error no longer appears). I'm assuming that something got changed between PEv20.1 and PEv21 that is altering how the script would have worked with the Gen 8 Pack in 20.1. I have PyCharm and I tried looking at the coding for the "Footprint Replcement.rb" file from the "Sprite Scaling" folder in the Gen 8 pack, but I've only taken an intro to programming class and coding is not a strong-suit of mine. I'll post that file's contents here in case someone smarter than me knows how it could be fixed to allow the PokeDex page to propogate:
Spoiler:
class PokemonPokedexInfo_Scene
def drawPageInfo
@sprites["background"].setBitmap("Graphics/Pictures/Pokedex/bg_info")
overlay = @sprites["overlay"].bitmap
base = Color.new(88, 88, 80)
shadow = Color.new(168, 184, 184)
imagepos = []
if @brief
imagepos.push(["Graphics/Pictures/Pokedex/overlay_info", 0, 0])
end
species_data = GameData::Species.get_species_form(@species, @form)
# Write various bits of text
indexText = "???"
if @dexlist[@index][4] > 0
indexNumber = @dexlist[@index][4]
indexNumber -= 1 if @dexlist[@index][5]
indexText = sprintf("%03d", indexNumber)
end
textpos = [
[_INTL("{1}{2} {3}", indexText, " ", species_data.name),
246, 48, 0, Color.new(248, 248, 248), Color.new(0, 0, 0)]
]
if @show_battled_count
textpos.push([_INTL("Number Battled"), 314, 164, 0, base, shadow])
textpos.push([$player.pokedex.battled_count(@species).to_s, 452, 196, 1, base, shadow])
else
textpos.push([_INTL("Height"), 314, 164, 0, base, shadow])
textpos.push([_INTL("Weight"), 314, 196, 0, base, shadow])
end
if $player.owned?(@species)
# Write the category
textpos.push([_INTL("{1} Pokémon", species_data.category), 246, 80, 0, base, shadow])
# Write the height and weight
if !@show_battled_count
height = species_data.height
weight = species_data.weight
if System.user_language[3..4] == "US" # If the user is in the United States
inches = (height / 0.254).round
pounds = (weight / 0.45359).round
textpos.push([_ISPRINTF("{1:d}'{2:02d}"", inches / 12, inches % 12), 460, 164, 1, base, shadow])
textpos.push([_ISPRINTF("{1:4.1f} lbs.", pounds / 10.0), 494, 196, 1, base, shadow])
else
textpos.push([_ISPRINTF("{1:.1f} m", height / 10.0), 470, 164, 1, base, shadow])
textpos.push([_ISPRINTF("{1:.1f} kg", weight / 10.0), 482, 196, 1, base, shadow])
end
end
# Draw the Pokédex entry text
drawTextEx(overlay, 40, 246, Graphics.width - (40 * 2), 4, # overlay, x, y, width, num lines
species_data.pokedex_entry, base, shadow)
# Draw the footprint
if Settings::DEX_SHOWS_FOOTPRINTS
footprintfile = GameData::Species.footprint_filename(@species, @form)
else
footprintfile = GameData::Species.icon_filename(@species, @form)
end
if footprintfile
split = footprintfile.split("/")
path = split[0...split.length - 1].join("/"); name = split[split.length - 1]
footprint = RPG::Cache.load_bitmap(path + "/", name)
if Settings::DEX_SHOWS_FOOTPRINTS
overlay.blt(226, 138, footprint, footprint.rect)
else
min_width = (((footprint.width >= footprint.height * 2) ? footprint.height : footprint.width) - 64)/2
min_height = [(footprint.height - 56)/2 , 0].max
overlay.blt(210, 130, footprint, Rect.new(min_width, min_height, 64, 56))
end
end
# Show the owned icon
imagepos.push(["Graphics/Pictures/Pokedex/icon_own", 212, 44])
# Draw the type icon(s)
species_data.types.each_with_index do |type, i|
type_number = GameData::Type.get(type).icon_position
type_rect = Rect.new(0, type_number * 32, 96, 32)
overlay.blt(296 + (100 * i), 120, @typebitmap.bitmap, type_rect)
end
else
# Write the category
textpos.push([_INTL("????? Pokémon"), 246, 80, 0, base, shadow])
# Write the height and weight
if !@show_battled_count
if System.user_language[3..4] == "US" # If the user is in the United States
textpos.push([_INTL("???'??""), 460, 164, 1, base, shadow])
textpos.push([_INTL("????.? lbs."), 494, 196, 1, base, shadow])
else
textpos.push([_INTL("????.? m"), 470, 164, 1, base, shadow])
textpos.push([_INTL("????.? kg"), 482, 196, 1, base, shadow])
end
end
end
# Draw all text
pbDrawTextPositions(overlay, textpos)
# Draw all images
pbDrawImagePositions(overlay, imagepos)
end
end
def drawPageInfo
@sprites["background"].setBitmap("Graphics/Pictures/Pokedex/bg_info")
overlay = @sprites["overlay"].bitmap
base = Color.new(88, 88, 80)
shadow = Color.new(168, 184, 184)
imagepos = []
if @brief
imagepos.push(["Graphics/Pictures/Pokedex/overlay_info", 0, 0])
end
species_data = GameData::Species.get_species_form(@species, @form)
# Write various bits of text
indexText = "???"
if @dexlist[@index][4] > 0
indexNumber = @dexlist[@index][4]
indexNumber -= 1 if @dexlist[@index][5]
indexText = sprintf("%03d", indexNumber)
end
textpos = [
[_INTL("{1}{2} {3}", indexText, " ", species_data.name),
246, 48, 0, Color.new(248, 248, 248), Color.new(0, 0, 0)]
]
if @show_battled_count
textpos.push([_INTL("Number Battled"), 314, 164, 0, base, shadow])
textpos.push([$player.pokedex.battled_count(@species).to_s, 452, 196, 1, base, shadow])
else
textpos.push([_INTL("Height"), 314, 164, 0, base, shadow])
textpos.push([_INTL("Weight"), 314, 196, 0, base, shadow])
end
if $player.owned?(@species)
# Write the category
textpos.push([_INTL("{1} Pokémon", species_data.category), 246, 80, 0, base, shadow])
# Write the height and weight
if !@show_battled_count
height = species_data.height
weight = species_data.weight
if System.user_language[3..4] == "US" # If the user is in the United States
inches = (height / 0.254).round
pounds = (weight / 0.45359).round
textpos.push([_ISPRINTF("{1:d}'{2:02d}"", inches / 12, inches % 12), 460, 164, 1, base, shadow])
textpos.push([_ISPRINTF("{1:4.1f} lbs.", pounds / 10.0), 494, 196, 1, base, shadow])
else
textpos.push([_ISPRINTF("{1:.1f} m", height / 10.0), 470, 164, 1, base, shadow])
textpos.push([_ISPRINTF("{1:.1f} kg", weight / 10.0), 482, 196, 1, base, shadow])
end
end
# Draw the Pokédex entry text
drawTextEx(overlay, 40, 246, Graphics.width - (40 * 2), 4, # overlay, x, y, width, num lines
species_data.pokedex_entry, base, shadow)
# Draw the footprint
if Settings::DEX_SHOWS_FOOTPRINTS
footprintfile = GameData::Species.footprint_filename(@species, @form)
else
footprintfile = GameData::Species.icon_filename(@species, @form)
end
if footprintfile
split = footprintfile.split("/")
path = split[0...split.length - 1].join("/"); name = split[split.length - 1]
footprint = RPG::Cache.load_bitmap(path + "/", name)
if Settings::DEX_SHOWS_FOOTPRINTS
overlay.blt(226, 138, footprint, footprint.rect)
else
min_width = (((footprint.width >= footprint.height * 2) ? footprint.height : footprint.width) - 64)/2
min_height = [(footprint.height - 56)/2 , 0].max
overlay.blt(210, 130, footprint, Rect.new(min_width, min_height, 64, 56))
end
end
# Show the owned icon
imagepos.push(["Graphics/Pictures/Pokedex/icon_own", 212, 44])
# Draw the type icon(s)
species_data.types.each_with_index do |type, i|
type_number = GameData::Type.get(type).icon_position
type_rect = Rect.new(0, type_number * 32, 96, 32)
overlay.blt(296 + (100 * i), 120, @typebitmap.bitmap, type_rect)
end
else
# Write the category
textpos.push([_INTL("????? Pokémon"), 246, 80, 0, base, shadow])
# Write the height and weight
if !@show_battled_count
if System.user_language[3..4] == "US" # If the user is in the United States
textpos.push([_INTL("???'??""), 460, 164, 1, base, shadow])
textpos.push([_INTL("????.? lbs."), 494, 196, 1, base, shadow])
else
textpos.push([_INTL("????.? m"), 470, 164, 1, base, shadow])
textpos.push([_INTL("????.? kg"), 482, 196, 1, base, shadow])
end
end
end
# Draw all text
pbDrawTextPositions(overlay, textpos)
# Draw all images
pbDrawImagePositions(overlay, imagepos)
end
end
I'm just about at my wit's end trying to figure out how to get around this. If there's truly no way to make this plugin work with v21 then I guess I'll just have to manually start adding all of the Gen 6-8 Pokemon assets, but honestly the upgraded sprites in this pack for Gens 1-5 just look so much better than the base sprites and it would really be disappointing having to go back to those now after starting to get used to these nice looking ones. If anyone could please help me out with this I would truly appreciate it so much. I can provide any additional info too if it helps.