• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

POKEMON SPRITE CHECKER

Code:
#------------------------------------------------------------------------------#
# Pokemon Sprite Checker by Bhagya Jyoti
# Call by- PokemonSpriteChecker.new
# Don't forget to place the 2 graphics in their Pictures folder.
# This script allows you to check individual sprites in game.
# It can be used to check sprites for every form and follow pokemon.
#------------------------------------------------------------------------------#
# There are 4 comments in the script.
# 2 are just a few lines below, which checks for follow pokemon sprites.
# 2 are far below which tell how to use thi script in v17.
#------------------------------------------------------------------------------#
# This is just for teting purpose if you want to check multiple sprites.
# You can remove it in the release.
# Would like if you credit me if it helped.
#------------------------------------------------------------------------------#

class PokemonSpriteChecker
  def initialize    
    @followpokemon = true
    # Set it to true if you have Follow Pokemon Sprites and want to check them.
    @defaultow = "Graphics/Characters/000"
    # This is the default graphics if none is found for Follow Pokemon.
    @dex = 001
    @form = 0
    @option = 0
    @sprites = {}
    @background = {}
    @pokemon = {}
    @overworld = {}
    @viewmain = Viewport.new(0,0,Graphics.width,Graphics.height) 
    
    @left_x       = 438
    @left_y       = 216
    @right_x      = 438
    @right_y      = 250
    @normal_ix    = 436
    @normal_fx    = 58
    @normal_fy    = 30
    @female_iy    = 18
    @oworld_iy    = 50
    @normal_iy    = 82
    @select = {}
        
    @select["right"] = Sprite.new(Viewport.new(@right_x,@right_y,@normal_fx,@normal_fy))
    @select["right"].bitmap = Bitmap.new("Graphics/Pictures/setow")
    @select["right"].src_rect.x = @normal_ix
    @select["right"].src_rect.y = @female_iy
    @select["left"] = Sprite.new(Viewport.new(@left_x,@left_y,@normal_fx,@normal_fy))
    @select["left"].bitmap = Bitmap.new("Graphics/Pictures/setow")
    @select["left"].src_rect.x = @normal_ix
    if @followpokemon
      @select["left"].src_rect.y = @oworld_iy
    else
      @select["left"].src_rect.y = @female_iy
    end
    
    @background["bg"] = Sprite.new(@viewmain)
    @background["bg"].bitmap = Bitmap.new("Graphics/Pictures/setmon")
    @background["bg"].z = 99998
    
    @pokemon["f"] = PokemonSprite.new(@viewmain)
    @pokemon["f"].setSpeciesBitmap(@dex,false,0,false,false,false,false)
    @pokemon["f"].x = 96
    @pokemon["f"].y = 96
    @pokemon["f"].z = 99999
    
    @pokemon["b"] = PokemonSprite.new(@viewmain)
    @pokemon["b"].setSpeciesBitmap(@dex,false,0,false,false,true,false)
    @pokemon["b"].x = 96
    @pokemon["b"].y = 288
    @pokemon["b"].z = 99999
    
    @pokemon["s"] = PokemonSprite.new(@viewmain)
    @pokemon["s"].setSpeciesBitmap(@dex,false,0,true,false,false,false)
    @pokemon["s"].x = 288
    @pokemon["s"].y = 96
    @pokemon["s"].z = 99999
    
    @pokemon["sb"] = PokemonSprite.new(@viewmain)
    @pokemon["sb"].setSpeciesBitmap(@dex,false,0,true,false,true,false)
    @pokemon["sb"].x = 288
    @pokemon["sb"].y = 288
    @pokemon["sb"].z = 99999
    
    if @followpokemon
      @overworld["ow"] = Sprite.new(@viewport)
      @overworld["ow"].bitmap = Bitmap.new("Graphics/Characters/000")
      @overworld["ow"].x = 192-(@overworld["ow"].bitmap.width/2)
      @overworld["ow"].y = 192-(@overworld["ow"].bitmap.height/2)
      @overworld["ow"].z = 99999
    end
    
    @overworld["bg"] = Sprite.new(Viewport.new(0,0,384,384))
    @overworld["bg"].bitmap = Bitmap.new("Graphics/Pictures/setow")
    @overworld["bg"].z = 99998
    @overworld.each_value{|sprite| sprite.visible=false}
    
    self.seePokemon
  end
  
  def setPokemon
    case @option 
    when 0
      @pokemon.each_value{|sprite| sprite.visible=true}
      @overworld.each_value{|sprite| sprite.visible=false}
      @pokemon["f"].setSpeciesBitmap(@dex,false,@form,false,false,false,false)
      @pokemon["b"].setSpeciesBitmap(@dex,false,@form,false,false,true,false)
      @pokemon["s"].setSpeciesBitmap(@dex,false,@form,true,false,false,false)
      @pokemon["sb"].setSpeciesBitmap(@dex,false,@form,true,false,true,false)
      @select["right"].src_rect.y = @female_iy
      if @followpokemon
        @select["left"].src_rect.y = @oworld_iy
      else
        @select["left"].src_rect.y = @female_iy
      end
    when 1
      @pokemon.each_value{|sprite| sprite.visible=true}
      @overworld.each_value{|sprite| sprite.visible=false}
      @pokemon["f"].setSpeciesBitmap(@dex,true,@form,false,false,false,false)
      @pokemon["b"].setSpeciesBitmap(@dex,true,@form,false,false,true,false)
      @pokemon["s"].setSpeciesBitmap(@dex,true,@form,true,false,false,false)
      @pokemon["sb"].setSpeciesBitmap(@dex,true,@form,true,false,true,false)
      if @followpokemon
        @select["right"].src_rect.y = @oworld_iy
      else
        @select["right"].src_rect.y = @normal_iy
      end
      @select["left"].src_rect.y = @normal_iy
    when 2
      @pokemon.each_value{|sprite| sprite.visible=false}
      @overworld.each_value{|sprite| sprite.visible=true}
      [email protected]_s
      while ow.length!=3
        ow="0"+ow
      end
      if @followpokemon
        if @form!=0 && pbResolveBitmap("Graphics/Characters/"+ow+"_"[email protected]_s)
          @overworld["ow"].bitmap = Bitmap.new("Graphics/Characters/"+ow+"_"[email protected]_s)
        else
          if pbResolveBitmap("Graphics/Characters/"+ow)
            @overworld["ow"].bitmap = Bitmap.new("Graphics/Characters/"+ow)  
          else
            @overworld["ow"].bitmap = Bitmap.new(@defaultow)
          end
        end
      end
      @select["right"].src_rect.y = @normal_iy
      @select["left"].src_rect.y = @female_iy
    end
  end
  
  def seePokemon
    loop do
      Graphics.update
      Input.update
      @pokemon.each_value{|sprite| sprite.update}
      
      if Input.trigger?(Input::C)
        dexlist = pbChooseSpeciesList(@dex)
        @dex = dexlist!=0 ? dexlist : @dex
        @form = 0 if dexlist!=0
        self.setPokemon
      end 
      if Input.repeat?(Input::UP)
        @dex= @dex!=1 ? @dex-=1 : @dex=PBSpecies.maxValue
        @form= 0
        self.setPokemon
      end
      if Input.repeat?(Input::DOWN)
        @dex= @dex!=PBSpecies.maxValue ? @dex+=1 : @dex=001
        @form= 0
        self.setPokemon
      end          
      if Input.repeat?(Input::RIGHT)
        if @followpokemon
          @option= @option==2 ? 0 : @option+=1
        else
          @option= @option==1 ? 0 : 1
        end
        self.setPokemon
      end
      if Input.repeat?(Input::LEFT)
        if @followpokemon
          @option= @option==0 ? 2 : @option-=1
        else
          @option= @option==0 ? 1 : 0
        end
        self.setPokemon
      end 
      
      if Input.trigger?(Input::F)
        formcmds = [[],[]]
        # Use `pbLoadFormsData` for Pokemon Essentials v17
        formdata = pbLoadFormToSpecies 
        formdata[@dex] = [@dex] if !formdata[@dex]
        if formdata[@dex]
          for form in 0...formdata[@dex].length
            fSpecies = pbGetFSpeciesFromForm(@dex,form)
            formname = pbGetMessage(MessageTypes::FormNames,fSpecies)
            formname = _INTL("Unnamed form") if !formname || formname==""
            formname = _INTL("{1}: {2}",form,formname)
            formcmds[0].push(form); formcmds[1].push(formname)
            @form = form if @form==form
          end
        end
        # Add `Kernel.` before `pbShowCommands` for Pokemon Essentials v17
        @form = pbShowCommands(nil,formcmds[1],1,@form)
        self.setPokemon
      end
      
      break if Input.trigger?(Input::A)
    end
  end
end
#------------------------------------------------------------------------------#
 

Attachments

  • Pokemon Sprite Checker.zip
    22 KB · Views: 20
  • setmon.png
    setmon.png
    28.9 KB · Views: 112
  • setow.png
    setow.png
    24.2 KB · Views: 69
Last edited:
56
Posts
10
Years
    • Seen Apr 29, 2024
    Following error occurs on default Pokemon Essentials v18 when running PokemonSpriteChecker.new:

    Spoiler:
     
    Following error occurs on default Pokemon Essentials v18 when running PokemonSpriteChecker.new:

    Spoiler:

    There was a typo, change first line 'class SpriteChecker` to `class PokemonSpriteChecker` and then it will work. Editted the main script, you can copy that too. Thanks.
     
    22
    Posts
    7
    Years
    • Seen May 15, 2023
    I have a error too, when use it in my PE17.2, with EBS, Following and many other scripts

     
    Back
    Top