- Pokémon Essentials Version
 - v18.1 ➖
 
This is the first time I ever create a script so I´m very excited.
This script allows the player to choose a starting map for his/her journey, I think it´s a good idea to add it in an open world game.
		
	
		
	
To use the script its simple, just paste the script in and call pbMapSelector to start it.
The script it highly modifiable, you can use how many maps you would like.
I don´t know if it works with v19, cause it doesn´t run in my computer so I couldn´t test it (If you ever test it please tell me)
Also, I tried to add some animation to the arrows when a button is not pressed but I don´t know how to do it, without making the whole scene wait forever until the player can choose which map he/she wants to play.
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
					
					
	
		
			This script allows the player to choose a starting map for his/her journey, I think it´s a good idea to add it in an open world game.
To use the script its simple, just paste the script in and call pbMapSelector to start it.
The script it highly modifiable, you can use how many maps you would like.
I don´t know if it works with v19, cause it doesn´t run in my computer so I couldn´t test it (If you ever test it please tell me)
Also, I tried to add some animation to the arrows when a button is not pressed but I don´t know how to do it, without making the whole scene wait forever until the player can choose which map he/she wants to play.
			
				Map Selector:
			
		
		
		PluginManager.register({
  :name => "Starting Map Selector",
  :version => "1.0",
  :credits => ["barretoareias"],
  :link => "https://reliccastle.com/resources/491/"
})
#MAP FOLDER
SELECTOR_FOLDER = "MapSelector/"
MAP_SELECTOR = SELECTOR_FOLDER+"selector.png"
#MAP CHOOSEN VARIABLE
MAP_CHOOSEN_VARIABLE = 26
#ARRAY WITH FILE NAMES
MAPS_ARRAY = {
  0 => "Kanto",
  1 => "Johto"
}
#Class
class MapSelectorScene
  #Start
  def pbStartScene
    @sprites={}
    @viewport=Viewport.new(0,0,Graphics.width,SCREEN_HEIGHT)
    @viewport.z=99999
    @select=-1
    @finished=false
    @mapNumber=0
    #Selector start
    @sprites["selector"] = Sprite.new(@viewport)
    @sprites["selector"].bitmap = RPG::Cache.picture(MAP_SELECTOR)
    @sprites["selector"].x = 0
    @sprites["selector"].y = 0
    @sprites["selector"].z = 0
    @sprites["selector"].opacity = 0
    #Map
    @sprites["map"] = Sprite.new(@viewport)
    @sprites["map"].bitmap = RPG::Cache.picture(SELECTOR_FOLDER+MAPS_ARRAY[0])
    @sprites["map"].x = 100
    @sprites["map"].y = 21
    @sprites["map"].z = 1
    @sprites["map"].opacity = 0
    #left arrow
    @sprites["left"] = Sprite.new(@viewport)
    @sprites["left"].bitmap = RPG::Cache.picture(SELECTOR_FOLDER+"left.png")
    @sprites["left"].x = 25
    @sprites["left"].y = 30
    @sprites["left"].z = 1
    @sprites["left"].opacity = 0
    #right arrow
    @sprites["right"] = Sprite.new(@viewport)
    @sprites["right"].bitmap = RPG::Cache.picture(SELECTOR_FOLDER+"right.png")
    @sprites["right"].x = 436
    @sprites["right"].y = 30
    @sprites["right"].z = 1
    @sprites["right"].opacity = 0
  end
  #Update
  def pbUpdate
    pbShow
    pbMessage("Where are you from?")
    loop do
        Graphics.update
        Input.update
        if Input.trigger?(Input::LEFT)
          pbChoose(0)
        elsif Input.trigger?(Input::RIGHT)
          pbChoose(1)
        end
  
        if Input.trigger?(Input::ENTER)
          mapSelected
        end
      break if @finished
    end
  end
  def mapSelected
    choosen = pbConfirmMessage("Are you from "+MAPS_ARRAY[@mapNumber]+"?")
    if choosen
      $game_variables[MAP_CHOOSEN_VARIABLE] = @mapNumber
      pbClose
      @finished = true
    end
  end
  def pbClose
    10.times do
      Graphics.update
      @sprites["selector"].opacity-=25.5
      @sprites["left"].opacity-=25.5
      @sprites["right"].opacity-=25.5
      @sprites["map"].opacity-=25.5
    end
  end
  def pbChoose(side)
    if(side==1) #right
      @sprites["right"].x+=15
      @mapNumber+=1
      if(@mapNumber>(MAPS_ARRAY.size-1))
        @mapNumber=0
      end
    else        #left
      @sprites["left"].x-=15
      @mapNumber-=1
      if(@mapNumber<0)
        @mapNumber=(MAPS_ARRAY.size-1)
      end
    end
    mapOff
    @sprites["map"] = Sprite.new(@viewport)
    @sprites["map"].bitmap = RPG::Cache.picture(SELECTOR_FOLDER+MAPS_ARRAY[@mapNumber])
    @sprites["map"].x = 100
    @sprites["map"].y = 21
    @sprites["map"].z = 1
    @sprites["map"].opacity = 0
    mapOn
    @sprites["left"].x = 25
    @sprites["right"].x = 436
  end
  def mapOff
    20.times do
      Graphics.update
      @sprites["map"].opacity-=25.5
    end
  end
  def mapOn
    20.times do
      Graphics.update
      @sprites["map"].opacity+=25.5
    end
  end
  def pbShow
    10.times do
      Graphics.update
      @sprites["selector"].opacity+=25.5
      @sprites["left"].opacity+=25.5
      @sprites["right"].opacity+=25.5
      @sprites["map"].opacity+=25.5
    end
  end
  #End
  def pbEndScene
    pbDisposeSpriteHash(@sprites)
    @viewport.dispose
  end
end
#Caller
class MapSelector
  def initialize(scene)
    @scene=scene
  end
  def pbStartScreen
    @scene.pbStartScene
    @scene.pbUpdate
    @scene.pbEndScene
  end
end
def pbMapSelector
  scene=MapSelectorScene.new
  screen=MapSelector.new(scene)
  screen.pbStartScreen
end
	- Credits
 - barretoareias, DeepBlue
 
	