Swift

Tela de Seleção Avançada - Script Essentials





O que faz o script faz?
O Script irá criar uma cena legal onde o jogador é capaz de escolher o seu Pokémon.

Começando:
- Baixar os Sprites de https://www.mediafire.com/?a9bxepawiuvtcrq e colocá-los em seu jogo.
- Copie o script abaixo em uma nova seção script acima Main, e chamá-lo "Pokemon Starter Selection"
Código:
#===============================================================================
# * 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
#===============================================================================
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)
  
  @pkmn1=pkmn1; @pkmn2=pkmn2; @pkmn3=pkmn3
  
  @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/black")
  @sprites["black"].opacity=0
  
  @sprites["bg"]=IconSprite.new(0,0,@viewport)    
  @sprites["bg"].setBitmap("Graphics/Pictures/bg")
  @sprites["bg"].opacity=0
  
  @sprites["ball_1"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_1"].setBitmap("Graphics/Pictures/ball1")
  @sprites["ball_1"].x=90
  @sprites["ball_1"].y=154
  @sprites["ball_1"].opacity=0
  
  @sprites["ball_2"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_2"].setBitmap("Graphics/Pictures/ball2")
  @sprites["ball_2"].x=206
  @sprites["ball_2"].y=147
  @sprites["ball_2"].opacity=0
      
  @sprites["ball_3"]=IconSprite.new(0,0,@viewport)
  @sprites["ball_3"].setBitmap("Graphics/Pictures/ball3")
  @sprites["ball_3"].x=330
  @sprites["ball_3"].y=151
  @sprites["ball_3"].opacity=0
  
  @sprites["select"]=IconSprite.new(0,0,@viewport)
  @sprites["select"].setBitmap("Graphics/Pictures/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_1"].zoom_x=1.5
  @sprites["pkmn_1"].zoom_y=1.5

  @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_2"].zoom_x=1.5
  @sprites["pkmn_2"].zoom_y=1.5
  
  @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_3"].zoom_x=1.5
  @sprites["pkmn_3"].zoom_y=1.5
  
  @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)
  @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["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["select"].opacity-=10.2
    @sprites["pkmn_1"].opacity-=10.2
    @sprites["pkmn_2"].opacity-=10.2
    @sprites["pkmn_3"].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 <3
    @select+=1
  end
  if Input.trigger?(Input::LEFT) && @select >1
    @select-=1
  end
  pokemon=[@pkmn1,@pkmn2,@pkmn3]
  @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,109,229,353]
  y=[5000,54 ,45 ,51 ]
  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] # -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]
  
  if @pokemon.type1==@pokemon.type2
    @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

Se você estiver usando o Elite Battle System 2015, em seguida, definir USING_ELITE_BATTLE (na linha 16) para True!

Você pode alterar o nível do Pokémon arranque editando a linha (Neste caso, o nível para as entradas é 5.):

Código:
STARTERLEVEL = 5

Para chamar o Script, use:
PokemonStarterSelection.new(
1,4,7)


Para alterar o Pokémon na Selecção Inicial, altere os três valores para o número do Pokémon no arquivo pokemon.txt.

por isso é construída assim: Pokemon starter Selection.new (PokémonNumber1, PokémonNumber2, PokémonNumber3).

Exemplo:
PokemonStarterSelection.new (
1.155.258)
para escolher entre bulbasaur (1), Cyndaquil (155) e mudkip (258).


Fonte: Pokémon Comunity / ShirouDouglas

You Might Also Like

0 comentários

Flickr Images