• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Trading Card Game 2 protagonist in the poll by clicking here.
  • 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.

Pokémon Starter Selection [ADVANCED VERSION]

can you edit the script to work with 6 pokemon ?

Code:
#===============================================================================
# * Advanced Starter Selection Script for Pokémon Essentials by shiney570.
#
# Current Version: V1.0
# 
# 
# * If you have any questions or found a bug let me know.
# * Contact: Skype: imatrix.wt ;  DeviantArt: shiney570
# edited by Zeak6464 
#===============================================================================
class PokemonStarterSelection
 
 
 STARTERLEVEL = 5 # Feel free to change the value for the Level of your Starters.

 # Whether you are using the Elite Battle System or not.
 USING_ELITE_BATTLE = true
 
 def initialize(pkmn1,pkmn2,pkmn3,pkmn4,pkmn5,pkmn6)
  
  if $game_switches[62]==true # Randomizer 
    @pkmn1=rand(PBSpecies.maxValue)+1;@pkmn2=rand(PBSpecies.maxValue)+1;@pkmn3=rand(PBSpecies.maxValue)+1
  else
    @pkmn1=pkmn1; @pkmn2=pkmn2; @pkmn3=pkmn3; @pkmn4=pkmn4; @pkmn5=pkmn5; @pkmn6=pkmn6
	end
  
  @select=1
 
  @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  @viewport.z=99999
  @sprites={}
  
  @sprites["black"]=IconSprite.new(0,0,@viewport)    
  @sprites["black"].setBitmap("Graphics/Pictures/StarterSelection/black")
  @sprites["black"].opacity=0
  
  @sprites["bg"]=IconSprite.new(0,0,@viewport)    
  @sprites["bg"].setBitmap("Graphics/Pictures/StarterSelection/bg")
  @sprites["bg"].opacity=0
  
  @sprites["ball_1"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_1"].setBitmap("Graphics/Pictures/StarterSelection/ball1")
  @sprites["ball_1"].x=145
  @sprites["ball_1"].y=45
  @sprites["ball_1"].opacity=0
  
  @sprites["ball_2"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_2"].setBitmap("Graphics/Pictures/StarterSelection/ball2")
  @sprites["ball_2"].x=201
  @sprites["ball_2"].y=13
  @sprites["ball_2"].opacity=0
      
  @sprites["ball_3"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_3"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_3"].x=260
  @sprites["ball_3"].y=43
  @sprites["ball_3"].opacity=0
  
  @sprites["ball_4"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_4"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_4"].x=260
  @sprites["ball_4"].y=43
  @sprites["ball_4"].opacity=0
  
  @sprites["ball_5"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_5"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_5"].x=260
  @sprites["ball_5"].y=43
  @sprites["ball_5"].opacity=0
  
  @sprites["ball_6"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_6"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_6"].x=260
  @sprites["ball_6"].y=43
  @sprites["ball_6"].opacity=0
  
  @sprites["select"]=IconSprite.new(0,0,@viewport)
  @sprites["select"].setBitmap("Graphics/Pictures/StarterSelection/select")
  @sprites["select"].opacity=0
  @sprites["select"].x=5000
  
  @sprites["pkmn_1"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_1"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn1))
  @sprites["pkmn_1"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn1)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_1"].x=340
  @sprites["pkmn_1"].y=120
  @sprites["pkmn_1"].opacity=0
  @sprites["pkmn_1"].ox = 104/2
  @sprites["pkmn_1"].oy =  96/2


  @sprites["pkmn_2"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_2"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn2))
  @sprites["pkmn_2"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn2)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_2"].x=410
  @sprites["pkmn_2"].y=120
  @sprites["pkmn_2"].opacity=0
  @sprites["pkmn_2"].ox = 108/2
  @sprites["pkmn_2"].oy = 100/2
  
  
  @sprites["pkmn_3"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_3"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn3))
  @sprites["pkmn_3"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn3)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_3"].x=170
  @sprites["pkmn_3"].y=120-10
  @sprites["pkmn_3"].opacity=0
  @sprites["pkmn_3"].ox = 105/2
  @sprites["pkmn_3"].oy =  95/2

  @sprites["pkmn_4"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_4"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn4))
  @sprites["pkmn_4"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn4)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_4"].x=170
  @sprites["pkmn_4"].y=120-10
  @sprites["pkmn_4"].opacity=0
  @sprites["pkmn_4"].ox = 105/2
  @sprites["pkmn_4"].oy =  95/2
  
  @sprites["pkmn_5"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_5"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn5))
  @sprites["pkmn_5"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn5)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_5"].x=170
  @sprites["pkmn_5"].y=120-10
  @sprites["pkmn_5"].opacity=0
  @sprites["pkmn_5"].ox = 105/2
  @sprites["pkmn_5"].oy =  95/2
  
  @sprites["pkmn_6"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_6"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn6))
  @sprites["pkmn_6"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn6)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_6"].x=170
  @sprites["pkmn_6"].y=120-10
  @sprites["pkmn_6"].opacity=0
  @sprites["pkmn_6"].ox = 105/2
  @sprites["pkmn_6"].oy =  95/2
  
  @sprites["overlay"]=BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
  @sprites["overlay"].opacity=0
  
  @data={}
  @data["pkmn_1"]=PokeBattle_Pokemon.new(@pkmn1,STARTERLEVEL)
  @data["pkmn_2"]=PokeBattle_Pokemon.new(@pkmn2,STARTERLEVEL)
  @data["pkmn_3"]=PokeBattle_Pokemon.new(@pkmn3,STARTERLEVEL)
  @data["pkmn_4"]=PokeBattle_Pokemon.new(@pkmn4,STARTERLEVEL)
  @data["pkmn_5"]=PokeBattle_Pokemon.new(@pkmn5,STARTERLEVEL)
  @data["pkmn_6"]=PokeBattle_Pokemon.new(@pkmn6,STARTERLEVEL)
  @pokemon=@data["pkmn_#{@select}"]    
  self.openscene
 end
 
 def openscene
  25.times do
    @sprites["black"].opacity+=10.2
    @sprites["bg"].opacity+=10.2
    @sprites["ball_1"].opacity+=10.2
    @sprites["ball_2"].opacity+=10.2
    @sprites["ball_3"].opacity+=10.2
    @sprites["ball_4"].opacity+=10.2
    @sprites["ball_5"].opacity+=10.2
    @sprites["ball_6"].opacity+=10.2
    @sprites["select"].opacity+=10.2
    pbWait(1)
  end
  self.gettinginput
  self.input_action
 end
 
 def closescene
  25.times do
    @sprites["black"].opacity-=10.2
    @sprites["bg"].opacity-=10.2
    @sprites["ball_1"].opacity-=10.2
    @sprites["ball_2"].opacity-=10.2
    @sprites["ball_3"].opacity-=10.2
    @sprites["ball_4"].opacity-=10.2
    @sprites["ball_5"].opacity-=10.2
    @sprites["ball_6"].opacity-=10.2
    @sprites["select"].opacity-=10.2
    @sprites["pkmn_1"].opacity-=10.2
    @sprites["pkmn_2"].opacity-=10.2
    @sprites["pkmn_3"].opacity-=10.2
    @sprites["pkmn_4"].opacity-=10.2
    @sprites["pkmn_5"].opacity-=10.2
    @sprites["pkmn_6"].opacity-=10.2
    @sprite.opacity-=10.2
    @sprites["pkmn_#{@select}"].opacity-=10.2
    @sprites["overlay"].opacity-=10.2
    pbWait(1)
    end      
  end
 
 def gettinginput
  if Input.trigger?(Input::RIGHT)  && @select <6
    @select+=1
  end
  if Input.trigger?(Input::LEFT) && @select >1
    @select-=1
  end
  pokemon=[@pkmn1,@pkmn2,@pkmn3,@pkmn4,@pkmn5,@pkmn6]
  @pkmn_array=pokemon
  if defined?($mouse)
    for i in 1...4
      if $mouse.over?(@sprites["ball_#{i}"]) && !$mouse.isStatic?
        @select=i
      end
    end
    if $mouse.leftClick?(@sprites["ball_#{@select}"])
      pressBall
    end
  end
  if Input.trigger?(Input::C) 
    pressBall
  end
 end
 
 def pressBall
  @sprites["select"].visible=false
  20.times do
    @sprites["pkmn_#{@select}"].opacity+=255/20
    @sprite.opacity+=255/20; @sprites["overlay"].opacity+=255/20
    @sprites["ball_#{@select}"].x-=4; @sprites["ball_#{@select}"].y-=4
    @sprites["ball_#{@select}"].zoom_x+=0.05; @sprites["ball_#{@select}"].zoom_y+=0.05
    for j in 1...4
      @sprites["ball_#{j}"].opacity-=10 if !(j==@select)
      if @select==2#
      @sprites["ball_1"].x-=1
      else#
      @sprites["ball_#{j}"].x-=2 if !(j==@select) && @select>1
    end#
  end      
  @sprites["bg"].opacity-=10
  pbWait(1)
  end
  @sprites["pkmn_#{@select}"].visible=true
  @sprite.visible=true
  pbSEPlay(sprintf("%03dCry",@pkmn_array[@select-1]))
  pbWait(20)
  if Kernel.pbConfirmMessage("Do you want #{@pokemon.name}?")
    pbAddPokemon(@pkmn_array[@select-1],STARTERLEVEL)
    $game_variables[7]=@select
    self.closescene
  else
    20.times do
      @sprites["pkmn_#{@select}"].opacity-=255/20
      @sprite.opacity-=255/20; @sprites["overlay"].opacity-=255/20
      @sprites["ball_#{@select}"].x+=4; @sprites["ball_#{@select}"].y+=4
      @sprites["ball_#{@select}"].zoom_x-=0.05; @sprites["ball_#{@select}"].zoom_y-=0.05
      for j in 1...4
        @sprites["ball_#{j}"].opacity+=10 if !(j==@select)
          if @select==2
          @sprites["ball_1"].x+=1
          else
          @sprites["ball_#{j}"].x+=2 if !(j==@select) && @select>1
        end
      end  
      @sprites["bg"].opacity+=10
      pbWait(1)
    end
      @sprites["pkmn_#{@select}"].visible=false
      @sprite.visible=false
      @sprites["select"].visible=true
    end
  end
    
 def input_action
  x=[5000,170,229,285,285,285,285]
  y=[5000,25 ,-10 ,23 ,23 ,23, 23]
  while $game_variables[7]==0
    Graphics.update
    Input.update
    @pokemon=@data["pkmn_#{@select}"]
    self.gettinginput
    @sprites["select"].x=x[@select]
    @sprites["select"].y=y[@select]
    self.text; self.typebitmap
  end
 end

 def text
  overlay= @sprites["overlay"].bitmap
  overlay.clear
  baseColor=Color.new(255, 255, 255)
  shadowColor=Color.new(0,0,0)
  pbSetSystemFont(@sprites["overlay"].bitmap)
  name_x=[5000,273,343,103,103,103,103] # -70
  textos=[]
  textos.push([_INTL("{1}", @pokemon.name),name_x[@select],10,false,baseColor,shadowColor])
  pbDrawTextPositions(overlay,textos)
 end

 def typebitmap
  
  @sprite=Sprite.new(@viewport)
  @sprite.bitmap=Bitmap.new(194,28)
  @sprite.y=171
  
  @sprite.opacity=0
  @bitmap=BitmapCache.load_bitmap("Graphics/Pictures/types")
  
  @type1rect=Rect.new(0,@pokemon.type1*28,64,28)
  @type2rect=Rect.new(0,@pokemon.type2*28,64,28)
  
  typex=[5000,-120,-50,-285,-285,-285,-285]
  
  if @[email protected]
    @sprite.x=402+typex[@select]
    @sprite.bitmap.blt(0,0,@bitmap,@type1rect)
  else
    @sprite.x=370+typex[@select]
    @sprite.bitmap.blt(0,0,@bitmap,@type1rect)
    @sprite.bitmap.blt(66,0,@bitmap,@type2rect)
  end
 end
end
Your going to have to edit X,Y coordinates for all pokemon and pokeball images
 
Code:
#===============================================================================
# * Advanced Starter Selection Script for Pokémon Essentials by shiney570.
#
# Current Version: V1.0
# 
# 
# * If you have any questions or found a bug let me know.
# * Contact: Skype: imatrix.wt ;  DeviantArt: shiney570
# edited by Zeak6464 
#===============================================================================
class PokemonStarterSelection
 
 
 STARTERLEVEL = 5 # Feel free to change the value for the Level of your Starters.

 # Whether you are using the Elite Battle System or not.
 USING_ELITE_BATTLE = true
 
 def initialize(pkmn1,pkmn2,pkmn3,pkmn4,pkmn5,pkmn6)
  
  if $game_switches[62]==true # Randomizer 
    @pkmn1=rand(PBSpecies.maxValue)+1;@pkmn2=rand(PBSpecies.maxValue)+1;@pkmn3=rand(PBSpecies.maxValue)+1
  else
    @pkmn1=pkmn1; @pkmn2=pkmn2; @pkmn3=pkmn3; @pkmn4=pkmn4; @pkmn5=pkmn5; @pkmn6=pkmn6
    end
  
  @select=1
 
  @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  @viewport.z=99999
  @sprites={}
  
  @sprites["black"]=IconSprite.new(0,0,@viewport)    
  @sprites["black"].setBitmap("Graphics/Pictures/StarterSelection/black")
  @sprites["black"].opacity=0
  
  @sprites["bg"]=IconSprite.new(0,0,@viewport)    
  @sprites["bg"].setBitmap("Graphics/Pictures/StarterSelection/bg")
  @sprites["bg"].opacity=0
  
  @sprites["ball_1"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_1"].setBitmap("Graphics/Pictures/StarterSelection/ball1")
  @sprites["ball_1"].x=145
  @sprites["ball_1"].y=45
  @sprites["ball_1"].opacity=0
  
  @sprites["ball_2"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_2"].setBitmap("Graphics/Pictures/StarterSelection/ball2")
  @sprites["ball_2"].x=201
  @sprites["ball_2"].y=13
  @sprites["ball_2"].opacity=0
      
  @sprites["ball_3"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_3"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_3"].x=260
  @sprites["ball_3"].y=43
  @sprites["ball_3"].opacity=0
  
  @sprites["ball_4"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_4"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_4"].x=260
  @sprites["ball_4"].y=43
  @sprites["ball_4"].opacity=0
  
  @sprites["ball_5"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_5"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_5"].x=260
  @sprites["ball_5"].y=43
  @sprites["ball_5"].opacity=0
  
  @sprites["ball_6"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_6"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_6"].x=260
  @sprites["ball_6"].y=43
  @sprites["ball_6"].opacity=0
  
  @sprites["select"]=IconSprite.new(0,0,@viewport)
  @sprites["select"].setBitmap("Graphics/Pictures/StarterSelection/select")
  @sprites["select"].opacity=0
  @sprites["select"].x=5000
  
  @sprites["pkmn_1"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_1"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn1))
  @sprites["pkmn_1"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn1)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_1"].x=340
  @sprites["pkmn_1"].y=120
  @sprites["pkmn_1"].opacity=0
  @sprites["pkmn_1"].ox = 104/2
  @sprites["pkmn_1"].oy =  96/2


  @sprites["pkmn_2"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_2"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn2))
  @sprites["pkmn_2"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn2)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_2"].x=410
  @sprites["pkmn_2"].y=120
  @sprites["pkmn_2"].opacity=0
  @sprites["pkmn_2"].ox = 108/2
  @sprites["pkmn_2"].oy = 100/2
  
  
  @sprites["pkmn_3"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_3"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn3))
  @sprites["pkmn_3"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn3)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_3"].x=170
  @sprites["pkmn_3"].y=120-10
  @sprites["pkmn_3"].opacity=0
  @sprites["pkmn_3"].ox = 105/2
  @sprites["pkmn_3"].oy =  95/2

  @sprites["pkmn_4"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_4"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn4))
  @sprites["pkmn_4"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn4)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_4"].x=170
  @sprites["pkmn_4"].y=120-10
  @sprites["pkmn_4"].opacity=0
  @sprites["pkmn_4"].ox = 105/2
  @sprites["pkmn_4"].oy =  95/2
  
  @sprites["pkmn_5"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_5"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn5))
  @sprites["pkmn_5"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn5)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_5"].x=170
  @sprites["pkmn_5"].y=120-10
  @sprites["pkmn_5"].opacity=0
  @sprites["pkmn_5"].ox = 105/2
  @sprites["pkmn_5"].oy =  95/2
  
  @sprites["pkmn_6"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_6"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn6))
  @sprites["pkmn_6"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn6)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_6"].x=170
  @sprites["pkmn_6"].y=120-10
  @sprites["pkmn_6"].opacity=0
  @sprites["pkmn_6"].ox = 105/2
  @sprites["pkmn_6"].oy =  95/2
  
  @sprites["overlay"]=BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
  @sprites["overlay"].opacity=0
  
  @data={}
  @data["pkmn_1"]=PokeBattle_Pokemon.new(@pkmn1,STARTERLEVEL)
  @data["pkmn_2"]=PokeBattle_Pokemon.new(@pkmn2,STARTERLEVEL)
  @data["pkmn_3"]=PokeBattle_Pokemon.new(@pkmn3,STARTERLEVEL)
  @data["pkmn_4"]=PokeBattle_Pokemon.new(@pkmn4,STARTERLEVEL)
  @data["pkmn_5"]=PokeBattle_Pokemon.new(@pkmn5,STARTERLEVEL)
  @data["pkmn_6"]=PokeBattle_Pokemon.new(@pkmn6,STARTERLEVEL)
  @pokemon=@data["pkmn_#{@select}"]    
  self.openscene
 end
 
 def openscene
  25.times do
    @sprites["black"].opacity+=10.2
    @sprites["bg"].opacity+=10.2
    @sprites["ball_1"].opacity+=10.2
    @sprites["ball_2"].opacity+=10.2
    @sprites["ball_3"].opacity+=10.2
    @sprites["ball_4"].opacity+=10.2
    @sprites["ball_5"].opacity+=10.2
    @sprites["ball_6"].opacity+=10.2
    @sprites["select"].opacity+=10.2
    pbWait(1)
  end
  self.gettinginput
  self.input_action
 end
 
 def closescene
  25.times do
    @sprites["black"].opacity-=10.2
    @sprites["bg"].opacity-=10.2
    @sprites["ball_1"].opacity-=10.2
    @sprites["ball_2"].opacity-=10.2
    @sprites["ball_3"].opacity-=10.2
    @sprites["ball_4"].opacity-=10.2
    @sprites["ball_5"].opacity-=10.2
    @sprites["ball_6"].opacity-=10.2
    @sprites["select"].opacity-=10.2
    @sprites["pkmn_1"].opacity-=10.2
    @sprites["pkmn_2"].opacity-=10.2
    @sprites["pkmn_3"].opacity-=10.2
    @sprites["pkmn_4"].opacity-=10.2
    @sprites["pkmn_5"].opacity-=10.2
    @sprites["pkmn_6"].opacity-=10.2
    @sprite.opacity-=10.2
    @sprites["pkmn_#{@select}"].opacity-=10.2
    @sprites["overlay"].opacity-=10.2
    pbWait(1)
    end      
  end
 
 def gettinginput
  if Input.trigger?(Input::RIGHT)  && @select <6
    @select+=1
  end
  if Input.trigger?(Input::LEFT) && @select >1
    @select-=1
  end
  pokemon=[@pkmn1,@pkmn2,@pkmn3,@pkmn4,@pkmn5,@pkmn6]
  @pkmn_array=pokemon
  if defined?($mouse)
    for i in 1...4
      if $mouse.over?(@sprites["ball_#{i}"]) && !$mouse.isStatic?
        @select=i
      end
    end
    if $mouse.leftClick?(@sprites["ball_#{@select}"])
      pressBall
    end
  end
  if Input.trigger?(Input::C) 
    pressBall
  end
 end
 
 def pressBall
  @sprites["select"].visible=false
  20.times do
    @sprites["pkmn_#{@select}"].opacity+=255/20
    @sprite.opacity+=255/20; @sprites["overlay"].opacity+=255/20
    @sprites["ball_#{@select}"].x-=4; @sprites["ball_#{@select}"].y-=4
    @sprites["ball_#{@select}"].zoom_x+=0.05; @sprites["ball_#{@select}"].zoom_y+=0.05
    for j in 1...4
      @sprites["ball_#{j}"].opacity-=10 if !(j==@select)
      if @select==2#
      @sprites["ball_1"].x-=1
      else#
      @sprites["ball_#{j}"].x-=2 if !(j==@select) && @select>1
    end#
  end      
  @sprites["bg"].opacity-=10
  pbWait(1)
  end
  @sprites["pkmn_#{@select}"].visible=true
  @sprite.visible=true
  pbSEPlay(sprintf("%03dCry",@pkmn_array[@select-1]))
  pbWait(20)
  if Kernel.pbConfirmMessage("Do you want #{@pokemon.name}?")
    pbAddPokemon(@pkmn_array[@select-1],STARTERLEVEL)
    $game_variables[7]=@select
    self.closescene
  else
    20.times do
      @sprites["pkmn_#{@select}"].opacity-=255/20
      @sprite.opacity-=255/20; @sprites["overlay"].opacity-=255/20
      @sprites["ball_#{@select}"].x+=4; @sprites["ball_#{@select}"].y+=4
      @sprites["ball_#{@select}"].zoom_x-=0.05; @sprites["ball_#{@select}"].zoom_y-=0.05
      for j in 1...4
        @sprites["ball_#{j}"].opacity+=10 if !(j==@select)
          if @select==2
          @sprites["ball_1"].x+=1
          else
          @sprites["ball_#{j}"].x+=2 if !(j==@select) && @select>1
        end
      end  
      @sprites["bg"].opacity+=10
      pbWait(1)
    end
      @sprites["pkmn_#{@select}"].visible=false
      @sprite.visible=false
      @sprites["select"].visible=true
    end
  end
    
 def input_action
  x=[5000,170,229,285,285,285,285]
  y=[5000,25 ,-10 ,23 ,23 ,23, 23]
  while $game_variables[7]==0
    Graphics.update
    Input.update
    @pokemon=@data["pkmn_#{@select}"]
    self.gettinginput
    @sprites["select"].x=x[@select]
    @sprites["select"].y=y[@select]
    self.text; self.typebitmap
  end
 end

 def text
  overlay= @sprites["overlay"].bitmap
  overlay.clear
  baseColor=Color.new(255, 255, 255)
  shadowColor=Color.new(0,0,0)
  pbSetSystemFont(@sprites["overlay"].bitmap)
  name_x=[5000,273,343,103,103,103,103] # -70
  textos=[]
  textos.push([_INTL("{1}", @pokemon.name),name_x[@select],10,false,baseColor,shadowColor])
  pbDrawTextPositions(overlay,textos)
 end

 def typebitmap
  
  @sprite=Sprite.new(@viewport)
  @sprite.bitmap=Bitmap.new(194,28)
  @sprite.y=171
  
  @sprite.opacity=0
  @bitmap=BitmapCache.load_bitmap("Graphics/Pictures/types")
  
  @type1rect=Rect.new(0,@pokemon.type1*28,64,28)
  @type2rect=Rect.new(0,@pokemon.type2*28,64,28)
  
  typex=[5000,-120,-50,-285,-285,-285,-285]
  
  if @[email protected]
    @sprite.x=402+typex[@select]
    @sprite.bitmap.blt(0,0,@bitmap,@type1rect)
  else
    @sprite.x=370+typex[@select]
    @sprite.bitmap.blt(0,0,@bitmap,@type1rect)
    @sprite.bitmap.blt(66,0,@bitmap,@type2rect)
  end
 end
end
Your going to have to edit X,Y coordinates for all pokemon and pokeball images

thnx :D! it work
 
Oh! Is really interesting this script, i will use it in my fan game and i will give you credits for this obviously.
 
can someone help me how i have the option to end the selection so that vou can cancel

and i have animatet battlers but they aren´t show
 
Last edited by a moderator:
So if you are using the latest version of the elite battle system(4.3) you have to change the directory of the Pokemon graphics in the script
Change the Lines (x just as an example do it for every 3 or more of these lines) :
Spoiler:

Into:
Spoiler:


So just add the Front into the line and it should work fine

Hope you understood what i meant :D
 
Works pretty good! Just one question. If I run the PokemonStarterSelection.new(
1,155,258) again why doesnt it work the second time?
 
Works pretty good! Just one question. If I run the PokemonStarterSelection.new(
1,155,258) again why doesnt it work the second time?

as long as $game_variables[7]==0 it will keep on running but if $game_variables[7] goes above 1 it will not run at all
 
I tried to put this in my game and didn't give me any errors. All of the graphics are fine, but when I trigger the event, it brings up the choosing "GUI" for half a second and then goes away without any message. What have I done wrong?
It may be worth pointing out that I have already got 9 other scripts above main. I'm on v16.2 and I have EBS installed.
 
I tried to put this in my game and didn't give me any errors. All of the graphics are fine, but when I trigger the event, it brings up the choosing "GUI" for half a second and then goes away without any message. What have I done wrong?
It may be worth pointing out that I have already got 9 other scripts above main. I'm on v16.2 and I have EBS installed.

as long as $game_variables[7]==0 it will keep on running but if $game_variables[7] goes above 1 it will not run at all
 
If you are working with Klein's BW Kit, the types of the starter Pok?mon will not be shown properly and the sprite of the Pok?mon itself will not be shown. To fix these problems do following:

1. Replace the "types.png" image in Graphics/Pictures with the types.png from standart Essentials (16.2)
2. In line 59 will be three paragraphs for the 3 starter Pok?mon sprites. Each Pok?mon will have two paths. Write instead of "Graphics/Battlers/...", "Graphics/Battler/Front/...".

Hope this fix.
 
My problem is that i can see the 3 balls but i can't the pokemon nor the arrow that supposed to indicate that i can choose something. With the result that i can't seem to select anything .

[PokeCommunity.com] Pokémon Starter Selection [ADVANCED VERSION]
 
hello this works fine and amazing but is there any way u can make it so u can back out I have different sets of Pokemon you can choose from
so i didn't want the player to be stuck in that play scene and can't check what the other Pokemon are
 
Can i add more then three starters i wanted to have kanto to alola
 
Can i add more then three starters i wanted to have kanto to alola

read post above please ... i already stated this before...

Code:
#===============================================================================
# * Advanced Starter Selection Script for Pokémon Essentials by shiney570.
#
# Current Version: V1.0
# 
# 
# * If you have any questions or found a bug let me know.
# * Contact: Skype: imatrix.wt ;  DeviantArt: shiney570
# edited by Zeak6464 
#===============================================================================
class PokemonStarterSelection
 
 
 STARTERLEVEL = 5 # Feel free to change the value for the Level of your Starters.

 # Whether you are using the Elite Battle System or not.
 USING_ELITE_BATTLE = true
 
 def initialize(pkmn1,pkmn2,pkmn3,pkmn4,pkmn5,pkmn6)
  
  if $game_switches[62]==true # Randomizer 
    @pkmn1=rand(PBSpecies.maxValue)+1;@pkmn2=rand(PBSpecies.maxValue)+1;@pkmn3=rand(PBSpecies.maxValue)+1
  else
    @pkmn1=pkmn1; @pkmn2=pkmn2; @pkmn3=pkmn3; @pkmn4=pkmn4; @pkmn5=pkmn5; @pkmn6=pkmn6
	end
  
  @select=1
 
  @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  @viewport.z=99999
  @sprites={}
  
  @sprites["black"]=IconSprite.new(0,0,@viewport)    
  @sprites["black"].setBitmap("Graphics/Pictures/StarterSelection/black")
  @sprites["black"].opacity=0
  
  @sprites["bg"]=IconSprite.new(0,0,@viewport)    
  @sprites["bg"].setBitmap("Graphics/Pictures/StarterSelection/bg")
  @sprites["bg"].opacity=0
  
  @sprites["ball_1"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_1"].setBitmap("Graphics/Pictures/StarterSelection/ball1")
  @sprites["ball_1"].x=145
  @sprites["ball_1"].y=45
  @sprites["ball_1"].opacity=0
  
  @sprites["ball_2"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_2"].setBitmap("Graphics/Pictures/StarterSelection/ball2")
  @sprites["ball_2"].x=201
  @sprites["ball_2"].y=13
  @sprites["ball_2"].opacity=0
      
  @sprites["ball_3"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_3"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_3"].x=260
  @sprites["ball_3"].y=43
  @sprites["ball_3"].opacity=0
  
  @sprites["ball_4"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_4"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_4"].x=260
  @sprites["ball_4"].y=43
  @sprites["ball_4"].opacity=0
  
  @sprites["ball_5"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_5"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_5"].x=260
  @sprites["ball_5"].y=43
  @sprites["ball_5"].opacity=0
  
  @sprites["ball_6"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_6"].setBitmap("Graphics/Pictures/StarterSelection/ball3")
  @sprites["ball_6"].x=260
  @sprites["ball_6"].y=43
  @sprites["ball_6"].opacity=0
  
  @sprites["select"]=IconSprite.new(0,0,@viewport)
  @sprites["select"].setBitmap("Graphics/Pictures/StarterSelection/select")
  @sprites["select"].opacity=0
  @sprites["select"].x=5000
  
  @sprites["pkmn_1"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_1"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn1))
  @sprites["pkmn_1"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn1)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_1"].x=340
  @sprites["pkmn_1"].y=120
  @sprites["pkmn_1"].opacity=0
  @sprites["pkmn_1"].ox = 104/2
  @sprites["pkmn_1"].oy =  96/2


  @sprites["pkmn_2"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_2"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn2))
  @sprites["pkmn_2"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn2)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_2"].x=410
  @sprites["pkmn_2"].y=120
  @sprites["pkmn_2"].opacity=0
  @sprites["pkmn_2"].ox = 108/2
  @sprites["pkmn_2"].oy = 100/2
  
  
  @sprites["pkmn_3"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_3"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn3))
  @sprites["pkmn_3"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn3)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_3"].x=170
  @sprites["pkmn_3"].y=120-10
  @sprites["pkmn_3"].opacity=0
  @sprites["pkmn_3"].ox = 105/2
  @sprites["pkmn_3"].oy =  95/2

  @sprites["pkmn_4"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_4"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn4))
  @sprites["pkmn_4"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn4)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_4"].x=170
  @sprites["pkmn_4"].y=120-10
  @sprites["pkmn_4"].opacity=0
  @sprites["pkmn_4"].ox = 105/2
  @sprites["pkmn_4"].oy =  95/2
  
  @sprites["pkmn_5"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_5"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn5))
  @sprites["pkmn_5"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn5)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_5"].x=170
  @sprites["pkmn_5"].y=120-10
  @sprites["pkmn_5"].opacity=0
  @sprites["pkmn_5"].ox = 105/2
  @sprites["pkmn_5"].oy =  95/2
  
  @sprites["pkmn_6"]=IconSprite.new(0,0,@viewport)
  @sprites["pkmn_6"].setBitmap(sprintf("Graphics/Battlers/%03d",@pkmn6))
  @sprites["pkmn_6"].bitmap=AnimatedBitmapWrapper.new(sprintf("Graphics/Battlers/%03d",@pkmn6)).bitmap if USING_ELITE_BATTLE
  @sprites["pkmn_6"].x=170
  @sprites["pkmn_6"].y=120-10
  @sprites["pkmn_6"].opacity=0
  @sprites["pkmn_6"].ox = 105/2
  @sprites["pkmn_6"].oy =  95/2
  
  @sprites["overlay"]=BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
  @sprites["overlay"].opacity=0
  
  @data={}
  @data["pkmn_1"]=PokeBattle_Pokemon.new(@pkmn1,STARTERLEVEL)
  @data["pkmn_2"]=PokeBattle_Pokemon.new(@pkmn2,STARTERLEVEL)
  @data["pkmn_3"]=PokeBattle_Pokemon.new(@pkmn3,STARTERLEVEL)
  @data["pkmn_4"]=PokeBattle_Pokemon.new(@pkmn4,STARTERLEVEL)
  @data["pkmn_5"]=PokeBattle_Pokemon.new(@pkmn5,STARTERLEVEL)
  @data["pkmn_6"]=PokeBattle_Pokemon.new(@pkmn6,STARTERLEVEL)
  @pokemon=@data["pkmn_#{@select}"]    
  self.openscene
 end
 
 def openscene
  25.times do
    @sprites["black"].opacity+=10.2
    @sprites["bg"].opacity+=10.2
    @sprites["ball_1"].opacity+=10.2
    @sprites["ball_2"].opacity+=10.2
    @sprites["ball_3"].opacity+=10.2
    @sprites["ball_4"].opacity+=10.2
    @sprites["ball_5"].opacity+=10.2
    @sprites["ball_6"].opacity+=10.2
    @sprites["select"].opacity+=10.2
    pbWait(1)
  end
  self.gettinginput
  self.input_action
 end
 
 def closescene
  25.times do
    @sprites["black"].opacity-=10.2
    @sprites["bg"].opacity-=10.2
    @sprites["ball_1"].opacity-=10.2
    @sprites["ball_2"].opacity-=10.2
    @sprites["ball_3"].opacity-=10.2
    @sprites["ball_4"].opacity-=10.2
    @sprites["ball_5"].opacity-=10.2
    @sprites["ball_6"].opacity-=10.2
    @sprites["select"].opacity-=10.2
    @sprites["pkmn_1"].opacity-=10.2
    @sprites["pkmn_2"].opacity-=10.2
    @sprites["pkmn_3"].opacity-=10.2
    @sprites["pkmn_4"].opacity-=10.2
    @sprites["pkmn_5"].opacity-=10.2
    @sprites["pkmn_6"].opacity-=10.2
    @sprite.opacity-=10.2
    @sprites["pkmn_#{@select}"].opacity-=10.2
    @sprites["overlay"].opacity-=10.2
    pbWait(1)
    end      
  end
 
 def gettinginput
  if Input.trigger?(Input::RIGHT)  && @select <6
    @select+=1
  end
  if Input.trigger?(Input::LEFT) && @select >1
    @select-=1
  end
  pokemon=[@pkmn1,@pkmn2,@pkmn3,@pkmn4,@pkmn5,@pkmn6]
  @pkmn_array=pokemon
  if defined?($mouse)
    for i in 1...4
      if $mouse.over?(@sprites["ball_#{i}"]) && !$mouse.isStatic?
        @select=i
      end
    end
    if $mouse.leftClick?(@sprites["ball_#{@select}"])
      pressBall
    end
  end
  if Input.trigger?(Input::C) 
    pressBall
  end
 end
 
 def pressBall
  @sprites["select"].visible=false
  20.times do
    @sprites["pkmn_#{@select}"].opacity+=255/20
    @sprite.opacity+=255/20; @sprites["overlay"].opacity+=255/20
    @sprites["ball_#{@select}"].x-=4; @sprites["ball_#{@select}"].y-=4
    @sprites["ball_#{@select}"].zoom_x+=0.05; @sprites["ball_#{@select}"].zoom_y+=0.05
    for j in 1...4
      @sprites["ball_#{j}"].opacity-=10 if !(j==@select)
      if @select==2#
      @sprites["ball_1"].x-=1
      else#
      @sprites["ball_#{j}"].x-=2 if !(j==@select) && @select>1
    end#
  end      
  @sprites["bg"].opacity-=10
  pbWait(1)
  end
  @sprites["pkmn_#{@select}"].visible=true
  @sprite.visible=true
  pbSEPlay(sprintf("%03dCry",@pkmn_array[@select-1]))
  pbWait(20)
  if Kernel.pbConfirmMessage("Do you want #{@pokemon.name}?")
    pbAddPokemon(@pkmn_array[@select-1],STARTERLEVEL)
    $game_variables[7]=@select
    self.closescene
  else
    20.times do
      @sprites["pkmn_#{@select}"].opacity-=255/20
      @sprite.opacity-=255/20; @sprites["overlay"].opacity-=255/20
      @sprites["ball_#{@select}"].x+=4; @sprites["ball_#{@select}"].y+=4
      @sprites["ball_#{@select}"].zoom_x-=0.05; @sprites["ball_#{@select}"].zoom_y-=0.05
      for j in 1...4
        @sprites["ball_#{j}"].opacity+=10 if !(j==@select)
          if @select==2
          @sprites["ball_1"].x+=1
          else
          @sprites["ball_#{j}"].x+=2 if !(j==@select) && @select>1
        end
      end  
      @sprites["bg"].opacity+=10
      pbWait(1)
    end
      @sprites["pkmn_#{@select}"].visible=false
      @sprite.visible=false
      @sprites["select"].visible=true
    end
  end
    
 def input_action
  x=[5000,170,229,285,285,285,285]
  y=[5000,25 ,-10 ,23 ,23 ,23, 23]
  while $game_variables[7]==0
    Graphics.update
    Input.update
    @pokemon=@data["pkmn_#{@select}"]
    self.gettinginput
    @sprites["select"].x=x[@select]
    @sprites["select"].y=y[@select]
    self.text; self.typebitmap
  end
 end

 def text
  overlay= @sprites["overlay"].bitmap
  overlay.clear
  baseColor=Color.new(255, 255, 255)
  shadowColor=Color.new(0,0,0)
  pbSetSystemFont(@sprites["overlay"].bitmap)
  name_x=[5000,273,343,103,103,103,103] # -70
  textos=[]
  textos.push([_INTL("{1}", @pokemon.name),name_x[@select],10,false,baseColor,shadowColor])
  pbDrawTextPositions(overlay,textos)
 end

 def typebitmap
  
  @sprite=Sprite.new(@viewport)
  @sprite.bitmap=Bitmap.new(194,28)
  @sprite.y=171
  
  @sprite.opacity=0
  @bitmap=BitmapCache.load_bitmap("Graphics/Pictures/types")
  
  @type1rect=Rect.new(0,@pokemon.type1*28,64,28)
  @type2rect=Rect.new(0,@pokemon.type2*28,64,28)
  
  typex=[5000,-120,-50,-285,-285,-285,-285]
  
  if @[email protected]
    @sprite.x=402+typex[@select]
    @sprite.bitmap.blt(0,0,@bitmap,@type1rect)
  else
    @sprite.x=370+typex[@select]
    @sprite.bitmap.blt(0,0,@bitmap,@type1rect)
    @sprite.bitmap.blt(66,0,@bitmap,@type2rect)
  end
 end
end
Your going to have to edit X,Y coordinates for all pokemon and pokeball images

This is for 6 Pokemon
 
Last edited:
Hello, sorry if this is necropost, I want to make it so when the pokeball is not selected it's represented with a picture, and selected with another one. Why? because I want to make it look like the player grabs the pokeball (not an animation, just different pictures for the two instances),
Is this possible with this script? or do I have to modify it? In that case, anyone knows what to do?
 
Back
Top