• 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.

Pokémon Starter Selection [ADVANCED VERSION]

Zeak6464

Zeak #3205 - Discord
1,101
Posts
11
Years
  • 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
    • 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
    • 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
    • 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
    • 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
    11
    Years
  • 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
    11
    Years
  • 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
    • 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
    8
    Years
    • 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
     

    Zeak6464

    Zeak #3205 - Discord
    1,101
    Posts
    11
    Years
  • 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
    6
    Years
    • 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