• 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?".
  • Forum moderator applications are now open! Click here for details.
  • 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]

Zeak6464

Zeak #3205 - Discord
1,101
Posts
10
Years
  • Age 31
  • USA
  • Seen Oct 9, 2023
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
 
68
Posts
11
Years
  • Seen Jan 17, 2017
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
 
5
Posts
7
Years
  • Age 24
  • Seen Jan 28, 2018
Oh! Is really interesting this script, i will use it in my fan game and i will give you credits for this obviously.
 
1
Posts
7
Years
  • Age 23
  • Seen Oct 21, 2016
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:
1
Posts
7
Years
  • Age 29
  • Seen Nov 23, 2017
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
 
12
Posts
7
Years
  • Age 23
  • Seen Dec 26, 2017
Works pretty good! Just one question. If I run the PokemonStarterSelection.new(
1,155,258) again why doesnt it work the second time?
 

Zeak6464

Zeak #3205 - Discord
1,101
Posts
10
Years
  • Age 31
  • USA
  • Seen Oct 9, 2023
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
 
971
Posts
7
Years
  • Age 21
  • Seen Nov 28, 2022
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.
 

Zeak6464

Zeak #3205 - Discord
1,101
Posts
10
Years
  • Age 31
  • USA
  • Seen Oct 9, 2023
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
 
971
Posts
7
Years
  • Age 21
  • Seen Nov 28, 2022
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 see! My apologies for being an idiot! (I do these things all the time I swear to god)
 
24
Posts
7
Years
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.
 
13
Posts
6
Years
  • Age 29
  • Seen Aug 11, 2017
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 .

pokemonselection.png
 

Venomous_Zero86

Pokemon Chosen Ones (Coming Soon)
120
Posts
7
Years
  • Age 21
  • Seen Feb 11, 2022
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
 

Venomous_Zero86

Pokemon Chosen Ones (Coming Soon)
120
Posts
7
Years
  • Age 21
  • Seen Feb 11, 2022
Can i add more then three starters i wanted to have kanto to alola
 

Zeak6464

Zeak #3205 - Discord
1,101
Posts
10
Years
  • Age 31
  • USA
  • Seen Oct 9, 2023
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:
3
Posts
5
Years
  • Age 34
  • Seen Nov 15, 2020
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