Registrarse

[RPG - Scripting] Duda con pokemon summary

Estado
Cerrado para nuevas respuestas.

randaku

Pokémon Cielo Infinito
Hola tengo la v17.2 de essentials y estoy tratando de añadir algunos mod de bw2 pero estos ultimos solo llegaron a la v16
Estoy tratando de poner el siguiente script

Código:
#=====================================================================================
#* Summary Screens by shiney570. (Originally written for the Essentials BW2 Mod)
#=================================================================================

# skew method by Luka S.J (written for the EBS)
class Sprite
  def skew(angle=90)
    return false if !self.bitmap
    angle=angle*(Math::PI/180)
    bitmap=self.bitmap
    rect=Rect.new(0,0,bitmap.width,bitmap.height)
    width=rect.width+((rect.height-1)/Math.tan(angle))
    self.bitmap=Bitmap.new(width,rect.height)
    for i in 0...rect.height
      y=rect.height-i
      x=i/Math.tan(angle)
      self.bitmap.blt(x+rect.x,y+rect.y,bitmap,Rect.new(0,y,rect.width,1))
    end
  end
end



class MoveSelectionSprite < SpriteWrapper
  attr_reader :preselected
  attr_reader :index

  def initialize(viewport=nil,fifthmove=false)
    super(viewport)
    @movesel=AnimatedBitmap.new("Graphics/Pictures/Summary/movesel_1")
    @frame=0
    @index=0
    @fifthmove=fifthmove
    @preselected=false
    @updating=false
    @spriteVisible=true
    refresh
  end

  def dispose
    @movesel.dispose
    super
  end

  def index=(value)
    @index=value
    refresh
  end

  def preselected=(value)
    @preselected=value
    refresh
  end

  def visible=(value)
    super
    @spriteVisible=value if !@updating
  end

  def refresh
    w=@movesel.width
    h=@movesel.height#/2
    if @index==0
      @movesel=AnimatedBitmap.new("Graphics/Pictures/Summary/movesel_1")
    elsif @index==1
      @movesel=AnimatedBitmap.new("Graphics/Pictures/Summary/movesel_2")
    elsif @index==2
      @movesel=AnimatedBitmap.new("Graphics/Pictures/Summary/movesel_3")
    elsif @index==3
      @movesel=AnimatedBitmap.new("Graphics/Pictures/Summary/movesel_4")
    else
      @movesel=AnimatedBitmap.new("Graphics/Pictures/Summary/movesel_5")
    end
    self.x=5
    self.y=0
    self.y=15 if self.index==0
    self.y=79 if self.index==1
    self.y=143 if self.index==2
    self.y=207 if self.index==3
    self.y=317 if @fifthmove && self.index==4
    self.bitmap=@movesel.bitmap
    if self.preselected
      self.src_rect.set(0,h,w,h)
    else
      self.src_rect.set(0,0,w,h)
    end
  end

  def update
    @updating=true
    super
    @movesel.update
    @updating=false
    refresh
  end
end



class PokemonSummaryScene
  def pbPokerus(pkmn)
    return pkmn.pokerusStage
  end

  def pbUpdate
    pbUpdateSpriteHash(@sprites)
  end

  def pbStartScene(party,partyindex)
    @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
    @viewport.z=99999
    @party=party
    @partyindex=partyindex
    @pokemon=@party[@partyindex]
    @sprites={}
    @typebitmap=AnimatedBitmap.new(_INTL("Graphics/Pictures/types"))
    @sprites["bg"]=IconSprite.new(0,0,@viewport)
    @sprites["bg"].setBitmap("Graphics/Pictures/Summary/bg")
    @sprites["background"]=IconSprite.new(0,0,@viewport)
    @sprites["hpbar"]=IconSprite.new(0,0,@viewport)
    @sprites["hpbar"].setBitmap("Graphics/Pictures/Party/hp_bar")
    @sprites["hpbar"].x=240
    @sprites["hpbar"].y=96
    @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
    @sprites["overlay"].z=999999
    @sprites["pokemonshadow"]=PokemonSprite.new(@viewport)
    @sprites["pokemonshadow"].setPokemonBitmap(@pokemon)
    @sprites["pokemonshadow"].mirror=false
    @sprites["pokemonshadow"].color=Color.new(0,0,0)
    #@sprites["pokemonshadow"].angle=45
    @sprites["pokemonshadow"].skew(90)
    @sprites["pokemonshadow"].opacity=30
    @sprites["pokemonshadow"].zoom_x=0.75
    @sprites["pokemonshadow"].zoom_y=1.5
    #pbPositionPokemonSprite(@sprites["pokemonshadow"],335/2+80,140)
    pbPositionPokemonSprite(@sprites["pokemonshadow"],335,129)
    @sprites["pokemon"]=PokemonSprite.new(@viewport)
    @sprites["pokemon"].setPokemonBitmap(@pokemon)
    @sprites["pokemon"].mirror=false
    @sprites["pokemon"].color=Color.new(0,0,0,0)
    pbPositionPokemonSprite(@sprites["pokemon"],335,129)
    @sprites["pokeicon"]=PokemonBoxIcon.new(@pokemon,@viewport)
    @sprites["pokeicon"].x=14
    @sprites["pokeicon"].y=52
    @sprites["pokeicon"].mirror=false
    @sprites["pokeicon"].visible=false
    @sprites["movepresel"]=MoveSelectionSprite.new(@viewport)
    @sprites["movepresel"].visible=false
    @sprites["movepresel"].preselected=true
    @sprites["movesel"]=MoveSelectionSprite.new(@viewport)
    @sprites["movesel"].visible=false
    @sprites["box"]=IconSprite.new(0,0,@viewport)
    @sprites["box"].setBitmap("Graphics/Pictures/Universal/box")
    @sprites["box"].x=248
    @sprites["box"].y=344
    @sprites["updown"]=IconSprite.new(0,0,@viewport)
    @sprites["updown"].setBitmap("Graphics/Pictures/Universal/updown")
    @sprites["updown"].x=298
    @sprites["updown"].y=342
    @sprites["exit"]=IconSprite.new(0,0,@viewport)
    @sprites["exit"].setBitmap("Graphics/Pictures/Universal/exit")
    @sprites["exit"].x=410
    @sprites["exit"].y=346
    @sprites["return"]=IconSprite.new(0,0,@viewport)
    @sprites["return"].setBitmap("Graphics/Pictures/Universal/return")
    @sprites["return"].x=474
    @sprites["return"].y=346
    @page=0
    drawPageOne(@pokemon)
    pbFadeInAndShow(@sprites) { pbUpdate }
  end

  def pbStartForgetScene(party,partyindex,moveToLearn)
    @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
    @viewport.z=99999
    @party=party
    @partyindex=partyindex
    @pokemon=@party[@partyindex]
    @sprites={}
    @page=3
    @typebitmap=AnimatedBitmap.new(_INTL("Graphics/Pictures/types"))
    @sprites["background"]=IconSprite.new(0,0,@viewport)
    @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
    @sprites["pokeicon"]=PokemonBoxIcon.new(@pokemon,@viewport)
    @sprites["pokeicon"].x=14
    @sprites["pokeicon"].y=52
    @sprites["pokeicon"].mirror=false
    @sprites["movesel"]=MoveSelectionSprite.new(@viewport,moveToLearn>0)
    @sprites["movesel"].visible=false
    @sprites["movesel"].visible=true
    @sprites["movesel"].index=0
    drawSelectedMove(@pokemon,moveToLearn,@pokemon.moves[0].id)
    pbFadeInAndShow(@sprites)
  end

  def pbEndScene
    pbFadeOutAndHide(@sprites) { pbUpdate }
    pbDisposeSpriteHash(@sprites)
    @typebitmap.dispose
    @viewport.dispose
  end
   
def drawMarkings(bitmap,x,y,width,height,markings)
    totaltext=""
    oldfontname=bitmap.font.name
    oldfontsize=bitmap.font.size
    oldfontcolor=bitmap.font.color
    bitmap.font.size=24
    bitmap.font.name="Arial"
    PokemonStorage::MARKINGCHARS.each{|item| totaltext+=item }
    totalsize=bitmap.text_size(totaltext)
    realX=x+(width/2)-(totalsize.width/2)
    realY=y+(height/2)-(totalsize.height/2)
    i=0
    PokemonStorage::MARKINGCHARS.each{|item|
       marked=(markings&(1<<i))!=0
       bitmap.font.color=(marked) ? Color.new(72,64,56) : Color.new(184,184,160)
       itemwidth=bitmap.text_size(item).width
       bitmap.draw_text(realX,realY,itemwidth+2,totalsize.height,item)
       realX+=itemwidth
       i+=1
    }
    bitmap.font.name=oldfontname
    bitmap.font.size=oldfontsize
    bitmap.font.color=oldfontcolor
  end

  # Draws the page one.
  def drawPageOne(pokemon)
    pbPositionPokemonSprite(@sprites["pokemonshadow"],335/2+80,140)
    @sprites["pokemon"].visible=true
    @sprites["pokemonshadow"].visible=true
    @sprites["box"].visible=true
    @sprites["return"].visible=true
    @sprites["exit"].visible=true
    @sprites["updown"].visible=true
    @sprites["hpbar"].visible=false
    if pokemon.isEgg?
      drawPageOneEgg(pokemon)
      return
    end
    overlay=@sprites["overlay"].bitmap
    overlay.clear
    @sprites["background"].setBitmap("Graphics/Pictures/Summary/summary_1")
    imagepos=[]
    if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
      status=6 if pbPokerus(pokemon)==1
      status=@pokemon.status-1 if @pokemon.status>0
      status=5 if pokemon.hp==0
      imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
    end
    if pokemon.isShiny?
      imagepos.push([sprintf("Graphics/Pictures/shiny"),304,256,0,0,-1,-1])
    end
    if pbPokerus(pokemon)==2
      imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
    end
    ballused=@pokemon.ballused ? @pokemon.ballused : 0
    ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
    imagepos.push([ballimage,320,2,0,0,-1,-1])
    if (pokemon.isShadow? rescue false)
      imagepos.push(["Graphics/Pictures/summaryShadow",224,240,0,0,-1,-1])
      shadowfract=pokemon.heartgauge*1.0/PokeBattle_Pokemon::HEARTGAUGESIZE
      imagepos.push(["Graphics/Pictures/summaryShadowBar",242,280,0,0,(shadowfract*248).floor,-1])
    end
    pbDrawImagePositions(overlay,imagepos)
    base=Color.new(255,255,255)
    shadow=Color.new(165,165,173)
    base2=Color.new(90,82,82)
    shiny=Color.new(198,0,0)
    shiny2=Color.new(255,115,115)
    pbSetSystemFont(overlay)
    numberbase=(pokemon.isShiny?) ? Color.new(248,56,32) : Color.new(64,64,64)
    numbershadow=(pokemon.isShiny?) ? Color.new(224,152,144) : Color.new(176,176,176)
    publicID=pokemon.publicID
    speciesname=PBSpecies.getName(pokemon.species)
    itemname=pokemon.hasItem? ? PBItems.getName(pokemon.item) : _INTL("None")
    growthrate=pokemon.growthrate
    startexp=PBExperience.pbGetStartExperience(pokemon.level,growthrate)
    endexp=PBExperience.pbGetStartExperience(pokemon.level+1,growthrate)
    pokename=@pokemon.name
    textpos=[
       [_INTL("Name"),34,54-4,0,base,shadow],
       [pokename,354,6,0,base2,shadow],
       [_INTL("Lv. {1}",pokemon.level.to_s),322,38-4,0,base2,shadow],
       [_INTL("Item"),326,278-4,0,base2,shadow],
       [itemname,316,310-4,0,base2,shadow],
       [_ISPRINTF("Dex No."),34,22-4,0,base,shadow],
       [sprintf("%03d",pokemon.species),162,22-4,0,shiny,shiny2],
       [sprintf("%03d",pokemon.species),162,22-4,0,base2,shadow],
   
       [speciesname,162,54-4,0,base2,shadow],
       [_INTL("Type"),34,86-4,0,base,shadow],
       [_INTL("OT"),34,118-4,0,base,shadow],
       [_INTL("ID No."),36,150-4,0,base,shadow],
        (pokemon.isShiny? ?
        [sprintf("%03d",pokemon.species),162,22-4,0,shiny,shiny2] :
        [sprintf("%03d",pokemon.species),162,22-4,0,base2,shadow])
     ]
    if (pokemon.isShadow? rescue false)
      textpos.push([_INTL("Heart Gauge"),34,182,0,base,shadow])
      heartmessage=[_INTL("The door to its heart is open! Undo the final lock!"),
                    _INTL("The door to its heart is almost fully open."),
                    _INTL("The door to its heart is nearly open."),
                    _INTL("The door to its heart is opening wider."),
                    _INTL("The door to its heart is opening up."),
                    _INTL("The door to its heart is tightly shut.")
                    ][pokemon.heartStage]
      memo=sprintf("<c3=404040,B0B0B0>%s\n",heartmessage)
      drawFormattedTextEx(overlay,238,304,276,memo)
    else
      textpos.push([_INTL("Exp. Points"),34,182-4,0,base,shadow])
      textpos.push([sprintf("%d",pokemon.exp),164,214-4,0,base2,shadow])
      textpos.push([_INTL("To Next Lv."),34,246-4,0,base,shadow])
      textpos.push([sprintf("%d",endexp-pokemon.exp),162,278-4,0,base2,shadow])
    end
    idno=(pokemon.ot=="") ? "?????" : sprintf("%05d",publicID)
    textpos.push([idno,162,150-4,0,base2,shadow])
    if pokemon.ot==""
      textpos.push([_INTL("RENTAL"),162,150-4,0,base2,shadow])
    else
      ownerbase=Color.new(0,0,214)
      ownershadow=Color.new(115,148,255)
      if pokemon.otgender==0 # male OT
        ownerbase=Color.new(0,0,214)
        ownershadow=Color.new(115,148,255)
      elsif pokemon.otgender==1 # female OT
        ownerbase=Color.new(198,0,0)
        ownershadow=Color.new(255,115,115)
      end
      textpos.push([pokemon.ot,162,118-4,0,ownerbase,ownershadow])
    end
    if pokemon.isMale?
      textpos.push([_INTL("?"),482,8-4,0,Color.new(0,0,214),Color.new(115,148,255)])
    elsif pokemon.isFemale?
      textpos.push([_INTL("?"),482,8-4,0,Color.new(248,56,32),Color.new(224,152,144)])
    end
    pbDrawTextPositions(overlay,textpos)
    drawMarkings(overlay,360,256-4,72,20,pokemon.markings)
    type1rect=Rect.new(0,pokemon.type1*24,64,24)
    type2rect=Rect.new(0,pokemon.type2*24,64,24)
    if pokemon.type1==pokemon.type2
      overlay.blt(161,84,@typebitmap.bitmap,type1rect)
    else
      overlay.blt(161,84,@typebitmap.bitmap,type1rect)
      overlay.blt(230,84,@typebitmap.bitmap,type2rect)
    end
    if pokemon.level<PBExperience::MAXLEVEL
      overlay.fill_rect(160,310,(pokemon.exp-startexp)*128/(endexp-startexp),6,Color.new(0,0,214))
    end
  end
  # Draws the Page one for Eggs.
  def drawPageOneEgg(pokemon)
    @sprites["pokemon"].visible=true
    @sprites["pokemonshadow"].visible=true
    @sprites["box"].visible=true
    @sprites["return"].visible=true
    @sprites["exit"].visible=true
    @sprites["updown"].visible=true
    @sprites["hpbar"].visible=false
    pbPositionPokemonSprite(@sprites["pokemonshadow"],335/2+70,140+25)
    overlay=@sprites["overlay"].bitmap
    overlay.clear
    @sprites["background"].setBitmap("Graphics/Pictures/Summary/summary_egg")
    imagepos=[]
    ballused=@pokemon.ballused ? @pokemon.ballused : 0
    ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
    imagepos.push([ballimage,320,2,0,0,-1,-1])
    pbDrawImagePositions(overlay,imagepos)
    base=Color.new(90,82,82)
    shadow=Color.new(165,165,173)
    pbSetSystemFont(overlay)
    itemname=pokemon.hasItem? ? PBItems.getName(pokemon.item) : _INTL("None")
    textpos=[
       [pokemon.name,354,6-4,0,base,shadow],
       [_INTL("Item"),326,278-4,0,base,shadow],
       [itemname,316,310-4,0,base,shadow],
    ]
    pbDrawTextPositions(overlay,textpos)
    drawMarkings(overlay,360,256-4,72,20,pokemon.markings)
  end

  # draws the page two for eggs.
  def drawPageTwoEgg(pokemon)
    @sprites["pokemon"].visible=false
    @sprites["pokemonshadow"].visible=false
    @sprites["box"].visible=false
    @sprites["return"].visible=false
    @sprites["exit"].visible=false
    @sprites["updown"].visible=false
    @sprites["hpbar"].visible=false
    overlay=@sprites["overlay"].bitmap
    overlay.clear
    @sprites["background"].setBitmap("Graphics/Pictures/Summary/summary_2")
    imagepos=[]
    pbDrawImagePositions(overlay,imagepos)
    base=Color.new(90,82,82)
    shadow=Color.new(165,165,173)
    pbSetSystemFont(overlay)
    memo=""
    if pokemon.timeReceived
      month=pbGetAbbrevMonthName(pokemon.timeReceived.mon)
      date=pokemon.timeReceived.day
      year=pokemon.timeReceived.year
      memo+=_INTL("<c3=404040,B0B0B0>{1} {2}, {3}\n",month,date,year)
    end
    mapname=pbGetMapNameFromId(pokemon.obtainMap)
    if (pokemon.obtainText rescue false) && pokemon.obtainText!=""
      mapname=pokemon.obtainText
    end
    if mapname && mapname!=""
      memo+=_INTL("<c3=404040,B0B0B0>A mysterious Pokémon Egg received from <c3=F83820,E09890>{1}<c3=404040,B0B0B0>.\n",mapname)
    end
    memo+="<c3=404040,B0B0B0>\n"
    memo+=_INTL("<c3=404040,B0B0B0>\"The Egg Watch\"\n")
    eggstate=_INTL("It looks like this Egg will take a long time to hatch.")
    eggstate=_INTL("What will hatch from this?  It doesn't seem close to hatching.") if pokemon.eggsteps<10200
    eggstate=_INTL("It appears to move occasionally.  It may be close to hatching.") if pokemon.eggsteps<2550
    eggstate=_INTL("Sounds can be heard coming from inside!  It will hatch soon!") if pokemon.eggsteps<1275
    memo+=sprintf("<c3=404040,B0B0B0>%s\n",eggstate)
    drawFormattedTextEx(overlay,66,86-4,276,memo)
  end

  # draws the page two.
  def drawPageTwo(pokemon)
    @sprites["pokemon"].visible=false
    @sprites["pokemonshadow"].visible=false
    @sprites["box"].visible=false
    @sprites["return"].visible=false
    @sprites["exit"].visible=false
    @sprites["updown"].visible=false
    @sprites["hpbar"].visible=false
    overlay=@sprites["overlay"].bitmap
    overlay.clear
    @sprites["background"].setBitmap("Graphics/Pictures/Summary/summary_2")
    imagepos=[]
    pbDrawImagePositions(overlay,imagepos)
    base=Color.new(248,248,248)
    shadow=Color.new(104,104,104)
    pbSetSystemFont(overlay)
    naturename=PBNatures.getName(pokemon.nature)
    itemname=pokemon.hasItem? ? PBItems.getName(pokemon.item) : _INTL("None")
    pokename=@pokemon.name
    memo=""
    shownature=(!(pokemon.isShadow? rescue false)) || pokemon.heartStage<=3
    if shownature
      memo+=_INTL("<c3=F83820,E09890>{1}<c3=404040,B0B0B0> nature.\n",naturename)
    end
    if pokemon.timeReceived
      month=pbGetAbbrevMonthName(pokemon.timeReceived.mon)
      date=pokemon.timeReceived.day
      year=pokemon.timeReceived.year
      memo+=_INTL("<c3=404040,B0B0B0>{1} {2}, {3}\n",month,date,year)
    end
    mapname=pbGetMapNameFromId(pokemon.obtainMap)
    if (pokemon.obtainText rescue false) && pokemon.obtainText!=""
      mapname=pokemon.obtainText
    end
    if mapname && mapname!=""
      memo+=sprintf("<c3=F83820,E09890>%s\n",mapname)
    else
      memo+=_INTL("<c3=F83820,E09890>Faraway place\n")
    end
    if pokemon.obtainMode
      mettext=[_INTL("Met at Lv. {1}.",pokemon.obtainLevel),
               _INTL("Egg received."),
               _INTL("Traded at Lv. {1}.",pokemon.obtainLevel),
               "",
               _INTL("Had a fateful encounter at Lv. {1}.",pokemon.obtainLevel)
               ][pokemon.obtainMode]
      memo+=sprintf("<c3=404040,B0B0B0>%s\n",mettext)
      if pokemon.obtainMode==1 # hatched
        if pokemon.timeEggHatched
          month=pbGetAbbrevMonthName(pokemon.timeEggHatched.mon)
          date=pokemon.timeEggHatched.day
          year=pokemon.timeEggHatched.year
          memo+=_INTL("<c3=404040,B0B0B0>{1} {2}, {3}\n",month,date,year)
        end
        mapname=pbGetMapNameFromId(pokemon.hatchedMap)
        if mapname && mapname!=""
          memo+=sprintf("<c3=F83820,E09890>%s\n",mapname)
        else
          memo+=_INTL("<c3=F83820,E09890>Faraway place\n")
        end
        memo+=_INTL("<c3=404040,B0B0B0>Egg hatched.\n")
      else
        memo+="<c3=404040,B0B0B0>\n"
      end
    end
    if shownature
      bestiv=0
      tiebreaker=pokemon.personalID%6
      for i in 0...6
        if pokemon.iv[i]==pokemon.iv[bestiv]
          bestiv=i if i>=tiebreaker && bestiv<tiebreaker
        elsif pokemon.iv[i]>pokemon.iv[bestiv]
          bestiv=i
        end
      end
      characteristic=[_INTL("Loves to eat."),
                      _INTL("Often dozes off."),
                      _INTL("Often scatters things."),
                      _INTL("Scatters things often."),
                      _INTL("Likes to relax."),
                      _INTL("Proud of its power."),
                      _INTL("Likes to thrash about."),
                      _INTL("A little quick tempered."),
                      _INTL("Likes to fight."),
                      _INTL("Quick tempered."),
                      _INTL("Sturdy body."),
                      _INTL("Capable of taking hits."),
                      _INTL("Highly persistent."),
                      _INTL("Good endurance."),
                      _INTL("Good perseverance."),
                      _INTL("Likes to run."),
                      _INTL("Alert to sounds."),
                      _INTL("Impetuous and silly."),
                      _INTL("Somewhat of a clown."),
                      _INTL("Quick to flee."),
                      _INTL("Highly curious."),
                      _INTL("Mischievous."),
                      _INTL("Thoroughly cunning."),
                      _INTL("Often lost in thought."),
                      _INTL("Very finicky."),
                      _INTL("Strong willed."),
                      _INTL("Somewhat vain."),
                      _INTL("Strongly defiant."),
                      _INTL("Hates to lose."),
                      _INTL("Somewhat stubborn.")
                      ][bestiv*5+pokemon.iv[bestiv]%5]
      memo+=sprintf("<c3=404040,B0B0B0>%s\n",characteristic)
    end
    drawFormattedTextEx(overlay,66,86-4,276,memo)
  end

  # draws the page three.
  def drawPageThree(pokemon)
    @sprites["pokemon"].visible=false
    @sprites["pokemonshadow"].visible=false
    @sprites["box"].visible=false
    @sprites["return"].visible=false
    @sprites["exit"].visible=false
    @sprites["updown"].visible=false
    @sprites["hpbar"].visible=true
    overlay=@sprites["overlay"].bitmap
    overlay.clear
    @sprites["background"].setBitmap("Graphics/Pictures/Summary/summary_3")
    imagepos=[]
    pbDrawImagePositions(overlay,imagepos)
    base=Color.new(90,82,82)
    shadow=Color.new(165,165,173)
    base2=Color.new(255,255,255)
    statshadows=[]
    for i in 0...5; statshadows[i]=shadow; end
    if !(pokemon.isShadow? rescue false) || pokemon.heartStage<=3
      natup=(pokemon.nature/5).floor
      natdn=(pokemon.nature%5).floor
      statshadows[natup]=Color.new(136,96,72) if natup!=natdn
      statshadows[natdn]=Color.new(64,120,152) if natup!=natdn
    end
    pbSetSystemFont(overlay)
    abilityname=PBAbilities.getName(pokemon.ability)
    abilitydesc=pbGetMessage(MessageTypes::AbilityDescs,pokemon.ability)
    itemname=pokemon.hasItem? ? PBItems.getName(pokemon.item) : _INTL("None")
    pokename=@pokemon.name
    textpos=[
       [_INTL("HP"),178,70-4,0,base2,shadow],
       [sprintf("%3d / %3d",pokemon.hp,pokemon.totalhp),328,70-4,2,base,shadow],
       [_INTL("Attack"),130,118-4,0,base2,Color.new(206,148,156)],
       [sprintf("%d",pokemon.attack),328,118-4,2,base,shadow],
       [_INTL("Defense"),130,150-4,0,base2,shadow],
       [sprintf("%d",pokemon.defense),328,150-4,2,base,shadow],
       [_INTL("Sp. Atk"),130,182-4,0,base2,Color.new(148,148,214)],
       [sprintf("%d",pokemon.spatk),328,182-4,2,base,shadow],
       [_INTL("Sp. Def"),130,214-4,0,base2,shadow],
       [sprintf("%d",pokemon.spdef),328,214-4,2,base,shadow],
       [_INTL("Speed"),130,246-4,0,base2,shadow],
       [sprintf("%d",pokemon.speed),328,246-4,2,base,shadow],
       [_INTL("Ability"),106,294-4,0,base2,shadow],
       [abilityname,226,294-4,0,base,shadow],
    ]
    pbDrawTextPositions(overlay,textpos)
    drawTextEx(overlay,106,326-4,282,0,abilitydesc,base,shadow)
    if pokemon.hp>0
      hpcolors=[
             Color.new(99,255,99),Color.new(24,198,33),   # Green
             Color.new(255,222,0),Color.new(239,173,0),   # Orange
             Color.new(255,156,156),Color.new(255,74,57)  # Red
      ]
      hpzone=0
      hpzone=1 if pokemon.hp<=(@pokemon.totalhp/2).floor
      hpzone=2 if pokemon.hp<=(@pokemon.totalhp/4).floor
      overlay.fill_rect(272,102,pokemon.hp*94/pokemon.totalhp,2,hpcolors[hpzone*2+1])
      overlay.fill_rect(272,104,pokemon.hp*94/pokemon.totalhp,2,hpcolors[hpzone*2])
    end
  end

  # draws the page four.
  def drawPageFour(pokemon)
    @sprites["box"].visible=true
    @sprites["return"].y=346 if @sprites["return"].y != 346
    @sprites["return"].visible=true
    @sprites["exit"].visible=true
    @sprites["updown"].visible=true
    @sprites["hpbar"].visible=false
    overlay=@sprites["overlay"].bitmap
    overlay.clear
    @sprites["background"].setBitmap("Graphics/Pictures/Summary/summary_4")
    @sprites["pokemon"].visible=true
    @sprites["pokemonshadow"].visible=true
    @sprites["pokeicon"].visible=false
    imagepos=[]
    if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
      status=6 if pbPokerus(pokemon)==1
      status=@pokemon.status-1 if @pokemon.status>0
      status=5 if pokemon.hp==0
      imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
    end
    if pokemon.isShiny?
      imagepos.push([sprintf("Graphics/Pictures/shiny"),304,256-4,0,0,-1,-1])
    end
    if pbPokerus(pokemon)==2
      imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
    end
    ballused=@pokemon.ballused ? @pokemon.ballused : 0
    ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
    imagepos.push([ballimage,320,2,0,0,-1,-1])
    pbDrawImagePositions(overlay,imagepos)
    base=Color.new(90,82,82)
    shadow=Color.new(165,165,173)
    base2=Color.new(255,255,255)
    pbSetSystemFont(overlay)
    itemname=pokemon.hasItem? ? PBItems.getName(pokemon.item) : _INTL("None")
    pokename=@pokemon.name
    textpos=[
       [pokename,354,6,0,base,shadow],
       [_INTL("Lv. {1}",pokemon.level.to_s),322,38-4,0,base,shadow],
       [_INTL("Item"),326,278-4,0,base,shadow],
       [itemname,316,310-4,0,base,shadow],
    ]
    if pokemon.isMale?
      textpos.push([_INTL("?"),482,8-4,0,Color.new(0,0,214),Color.new(115,148,255)])
    elsif pokemon.isFemale?
      textpos.push([_INTL("?"),482,8-4,0,Color.new(248,56,32),Color.new(224,152,144)])
    end
    pbDrawTextPositions(overlay,textpos)
    imagepos=[]
    yPos=40-4
    for i in 0...pokemon.moves.length
      if pokemon.moves[i].id>0
        imagepos.push(["Graphics/Pictures/types",36,yPos+2,0,
           pokemon.moves[i].type*24,64,24])
        textpos.push([PBMoves.getName(pokemon.moves[i].id),102,yPos,0,
           base2,shadow])
        if pokemon.moves[i].totalpp>0
          textpos.push([_ISPRINTF("PP"),122,yPos+30,0,
             base2,shadow])
          textpos.push([sprintf("%d/%d",pokemon.moves[i].pp,pokemon.moves[i].totalpp),
             250,yPos+30,1,base2,shadow])
        end
      else
        textpos.push(["-----",102,yPos,0,base2,shadow])
        textpos.push(["--",194,yPos+30,0,base2,shadow])
      end
      yPos+=64
    end
    pbDrawTextPositions(overlay,textpos)
    pbDrawImagePositions(overlay,imagepos)
    drawMarkings(overlay,360,256-4,72,20,pokemon.markings)
  end

  # draws the selected move page.
  def drawSelectedMove(pokemon,moveToLearn,moveid)
    if !@sprites["bg"]
      @sprites["bg"]=IconSprite.new(0,0,@viewport)
      @sprites["bg"].setBitmap("Graphics/Pictures/Summary/bg")
      @sprites["bg"].z-=1
    end
    overlay=@sprites["overlay"].bitmap
    @sprites["overlay"].z=999999
    @sprites["pokemon"].visible=false if @sprites["pokemon"]
    @sprites["pokemonshadow"].visible=false if @sprites["pokemonshadow"]
    @sprites["box"].visible=false if @sprites["box"]
    @sprites["return"].visible=true if @sprites["return"]
    @sprites["exit"].visible=false if @sprites["exit"]
    @sprites["updown"].visible=false if @sprites["updown"]
    movedata=PBMoveData.new(moveid)
    basedamage=movedata.basedamage
    type=movedata.type
    accuracy=movedata.accuracy
    drawMoveSelection(pokemon,moveToLearn)
    pbSetSystemFont(overlay)
    base=Color.new(90,82,82)
    base2=Color.new(255,255,255)
    shadow=Color.new(165,165,173)
    move=moveid
    textpos=[
       [basedamage<=1 ? basedamage==1 ? "???" : "---" : sprintf("%d",basedamage),
          294+168,134-4,0,base,shadow],
       [accuracy==0 ? "---" : sprintf("%d",accuracy),
          294+168,166-4,0,base,shadow]
    ]
    pbDrawTextPositions(overlay,textpos)
    category=Bitmap.new("Graphics/Pictures/category")
    @sprites["overlay"].bitmap.blt(284+168,99,category,
                        Rect.new(0,movedata.category*28,64,28))
    #imagepos=[["Graphics/Pictures/category",307+160,98,0,category*28,64,28]]
    #pbDrawImagePositions(overlay,imagepos)
    drawTextEx(overlay,18,282-4,512-18*2,3,
       pbGetMessage(MessageTypes::MoveDescriptions,moveid),
       base,shadow) if moveToLearn==0
  end

  def drawMoveSelection(pokemon,moveToLearn)
    overlay=@sprites["overlay"].bitmap
    overlay.clear
    base=Color.new(90,82,82)
    base2=Color.new(255,255,255)
    shadow=Color.new(165,165,173)
    @sprites["background"].setBitmap("Graphics/Pictures/Summary/summary_5")
    if moveToLearn!=0
      @sprites["background"].setBitmap("Graphics/Pictures/Summary/summary_learnmove")
    end
    pbSetSystemFont(overlay)
    textpos=[
       [_INTL("CATEGORY"),307,104-4,0,base2,shadow],
       [_INTL("POWER"),307,136-4,0,base2,shadow],
       [_INTL("ACCURACY"),307,168-4,0,base2,shadow]
    ]
    type1rect=Rect.new(0,pokemon.type1*24,64,24)
    type2rect=Rect.new(0,pokemon.type2*24,64,24)
    imagepos=[]
    yPos=23-4
    #yPos-=76 if moveToLearn!=0
    for i in 0...5
      moveobject=nil
      if i==4
        moveobject=PBMove.new(moveToLearn) if moveToLearn!=0
        yPos+=44
      else
        moveobject=pokemon.moves[i]
      end
      if moveobject
        if moveobject.id!=0
        imagepos.push(["Graphics/Pictures/types",25,yPos+2,0,
           moveobject.type*24,64,24])#pokemon.moves[i]
        textpos.push([PBMoves.getName(moveobject.id),102,yPos,0,
           base2,shadow])
        if moveobject.totalpp>0
          textpos.push([_ISPRINTF("PP"),122,yPos+30,0,
             base2,shadow])
          textpos.push([sprintf("%d/%d",moveobject.pp,moveobject.totalpp),
             250,yPos+30,1,base2,shadow])
          end
        else
        textpos.push(["-----",102,yPos,0,base2,shadow])
        textpos.push(["--",194,yPos+30,0,base2,shadow])
        end
      end
      yPos+=64
    end
    pbDrawTextPositions(overlay,textpos)
    pbDrawImagePositions(overlay,imagepos)
  end

  # draws the fith page.
  def drawPageFive(pokemon)
    overlay=@sprites["overlay"].bitmap
    overlay.clear
    @sprites["background"].setBitmap("Graphics/Pictures/summary5")
    imagepos=[]
    if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
      status=6 if pbPokerus(pokemon)==1
      status=@pokemon.status-1 if @pokemon.status>0
      status=5 if pokemon.hp==0
      imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
    end
    if pokemon.isShiny?
      imagepos.push([sprintf("Graphics/Pictures/shiny"),2,134,0,0,-1,-1])
    end
    if pbPokerus(pokemon)==2
      imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
    end
    ballused=@pokemon.ballused ? @pokemon.ballused : 0
    ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
    imagepos.push([ballimage,14,60,0,0,-1,-1])
    pbDrawImagePositions(overlay,imagepos)
    base=Color.new(248,248,248)
    shadow=Color.new(104,104,104)
    pbSetSystemFont(overlay)
    itemname=pokemon.hasItem? ? PBItems.getName(pokemon.item) : _INTL("None")
    pokename=@pokemon.name
    textpos=[
       [_INTL("RIBBONS"),26,16,0,base,shadow],
       [pokename,46,62,0,base,shadow],
       [pokemon.level.to_s,46,92,0,Color.new(64,64,64),Color.new(176,176,176)],
       [_INTL("Item"),16,320,0,base,shadow],
       [itemname,16,352,0,Color.new(64,64,64),Color.new(176,176,176)],
       [_INTL("No. of Ribbons:"),234,342,0,Color.new(64,64,64),Color.new(176,176,176)],
       [pokemon.ribbonCount.to_s,450,342,1,Color.new(64,64,64),Color.new(176,176,176)],
    ]
    if pokemon.isMale?
      textpos.push([_INTL("?"),178,62,0,Color.new(24,112,216),Color.new(136,168,208)])
    elsif pokemon.isFemale?
      textpos.push([_INTL("?"),178,62,0,Color.new(248,56,32),Color.new(224,152,144)])
    end
    pbDrawTextPositions(overlay,textpos)
    imagepos=[]
    coord=0
    if pokemon.ribbons
      for i in pokemon.ribbons
        ribn=i-1
        imagepos.push(["Graphics/Pictures/ribbons",236+64*(coord%4),86+80*(coord/4).floor,
           64*(ribn%8),64*(ribn/8).floor,64,64])
        coord+=1
        break if coord>=12
      end
    end
    pbDrawImagePositions(overlay,imagepos)
    drawMarkings(overlay,15,291,72,20,pokemon.markings)
  end

  def pbChooseMoveToForget(moveToLearn)
    selmove=0
    ret=0
    maxmove=(moveToLearn>0) ? 4 : 3
    loop do
      Graphics.update
      Input.update
      @sprites["bg"].ox+=1
      @sprites["bg"].oy+=1
      @sprites["bg"].ox=0 if @sprites["bg"].ox>64
      @sprites["bg"].oy=0 if @sprites["bg"].oy>64
      pbUpdate
      if Input.trigger?(Input::B)
        ret=4
        break
      end
      if Input.trigger?(Input::C)
        break
      end
      if Input.trigger?(Input::DOWN)
        selmove+=1
        if selmove<4 && selmove>=@pokemon.numMoves
          selmove=(moveToLearn>0) ? maxmove : 0
        end
        selmove=0 if selmove>maxmove
        @sprites["movesel"].index=selmove
        newmove=(selmove==4) ? moveToLearn : @pokemon.moves[selmove].id
        drawSelectedMove(@pokemon,moveToLearn,newmove)
        ret=selmove
      end
      if Input.trigger?(Input::UP)
        selmove-=1
        selmove=maxmove if selmove<0
        if selmove<4 && selmove>=@pokemon.numMoves
          selmove=@pokemon.numMoves-1
        end
        @sprites["movesel"].index=selmove
        newmove=(selmove==4) ? moveToLearn : @pokemon.moves[selmove].id
        drawSelectedMove(@pokemon,moveToLearn,newmove)
        ret=selmove
      end
    end
    return (ret==4) ? -1 : ret
  end

  def waitAndUpdateMoveSelection(frames)
    frames.times do
      pbUpdate
      @sprites["bg"].ox+=1
      @sprites["bg"].oy+=1
      @sprites["bg"].ox=0 if @sprites["bg"].ox>64
      @sprites["bg"].oy=0 if @sprites["bg"].oy>64
      pbWait(1)
    end
  end

  def pbMoveSelection(move)
    @sprites["return"].y-=4
    @sprites["movesel"].visible=true
    @sprites["movesel"].index=move
    selmove=0
    oldselmove=0
    switching=false
    drawSelectedMove(@pokemon,0,@pokemon.moves[selmove].id)
    loop do
      Graphics.update
      Input.update
      pbUpdate
      @sprites["bg"].ox+=1
      @sprites["bg"].oy+=1
      @sprites["bg"].ox=0 if @sprites["bg"].ox>64
      @sprites["bg"].oy=0 if @sprites["bg"].oy>64
      if @sprites["movepresel"].index==@sprites["movesel"].index
        @sprites["movepresel"].z=@sprites["movesel"].z+1
      else
        @sprites["movepresel"].z=@sprites["movesel"].z
      end
      if Input.trigger?(Input::B)
        @sprites["return"].bitmap=Bitmap.new("Graphics/Pictures/Universal/return2")
        waitAndUpdateMoveSelection(10)
        @sprites["return"].bitmap=Bitmap.new("Graphics/Pictures/Universal/return")
        waitAndUpdateMoveSelection(5)
        break if !switching
        @sprites["movepresel"].visible=false
        switching=false
      end
      if Input.trigger?(Input::C)
        if selmove==4
          break if !switching
          @sprites["movepresel"].visible=false
          switching=false
        else
          if !(@pokemon.isShadow? rescue false)
            if !switching
              @sprites["movepresel"].index=selmove
              oldselmove=selmove
              @sprites["movepresel"].visible=true
              switching=true
            else
              tmpmove=@pokemon.moves[oldselmove]
              @pokemon.moves[oldselmove]=@pokemon.moves[selmove]
              @pokemon.moves[selmove]=tmpmove
              @sprites["movepresel"].visible=false
              switching=false
              drawSelectedMove(@pokemon,0,@pokemon.moves[selmove].id) #0
            end
          end
        end
      end
      if Input.trigger?(Input::DOWN)
        selmove+=1
        selmove=0 if selmove<4 && selmove>=@pokemon.numMoves
        selmove=0 if selmove>=4
        selmove=4 if selmove<0
        @sprites["movesel"].index=selmove
        newmove=@pokemon.moves[selmove].id
        pbPlayCursorSE()
        drawSelectedMove(@pokemon,0,newmove)
      end
      if Input.trigger?(Input::UP)
        selmove-=1
        if selmove<4 && selmove>=@pokemon.numMoves
          selmove=@pokemon.numMoves-1
        end
        selmove=0 if selmove>=4
        selmove=@pokemon.numMoves-1 if selmove<0
        @sprites["movesel"].index=selmove
        newmove=@pokemon.moves[selmove].id
        pbPlayCursorSE()
        drawSelectedMove(@pokemon,0,newmove)
      end
      if defined?($mouse)
        # Makes clicking on a move possible.
        for i in 0..3
          y=13+64*i
          if $mouse.inAreaLeft?(5,y,272,64)
            selmove=i
            @sprites["movesel"].index=selmove
            newmove=@pokemon.moves[selmove].id
            pbPlayCursorSE()
            drawSelectedMove(@pokemon,0,newmove)
          end
        end
        if $mouse.leftClick?(@sprites["return"])
          @sprites["return"].bitmap=Bitmap.new("Graphics/Pictures/Universal/return2")
          waitAndUpdateMoveSelection(10)
          @sprites["return"].bitmap=Bitmap.new("Graphics/Pictures/Universal/return")
          waitAndUpdateMoveSelection(5)
          break if !switching
          @sprites["movepresel"].visible=false
          switching=false
        end
      end
     
    end
    @sprites["movesel"].visible=false
  end

  def pbGoToPrevious
    if @page!=0
      newindex=@partyindex
      while newindex>0
        newindex-=1
        if @party[newindex] && !@party[newindex].isEgg?
          @partyindex=newindex
          break
        end
      end
    else
      newindex=@partyindex
      while newindex>0
        newindex-=1
        if @party[newindex]
          @partyindex=newindex
          break
        end
      end
    end
  end

  def pbGoToNext
    if @page!=0
      newindex=@partyindex
      while newindex<@party.length-1
        newindex+=1
        if @party[newindex] && !@party[newindex].isEgg?
          @partyindex=newindex
          break
        end
      end
    else
      newindex=@partyindex
      while newindex<@party.length-1
        newindex+=1
        if @party[newindex]
          @partyindex=newindex
          break
        end
      end
    end
  end

  def pbScene
    pbPlayCry(@pokemon)
    @box=0
    loop do
      @sprites["bg"].ox+=1
      @sprites["bg"].oy+=1
      @sprites["bg"].ox=0 if @sprites["bg"].ox>64
      @sprites["bg"].oy=0 if @sprites["bg"].oy>64
      Graphics.update
      Input.update
      pbUpdate
      if Input.trigger?(Input::B)
        @sprites["exit"].setBitmap("Graphics/Pictures/Universal/exit2")
        pbWait(10)
        @sprites["exit"].setBitmap("Graphics/Pictures/Universal/exit")
        pbWait(5)
        break
      end
      dorefresh=false

      if Input.trigger?(Input::C)
     #   if @page==0
     #     break
     #   end
        if @page==3
          pbMoveSelection(0)
          dorefresh=true
          drawPageFour(@pokemon)
        end
      end
      if @page==0 || @page==3
        if defined?($mouse)
          for i in 0..3
            if $mouse.inAreaLeft?(16,30+i*64,272,64)
              pbMoveSelection(i)
              dorefresh=true
              drawPageFour(@pokemon)
            end
          end
          if $mouse.leftClick?(@sprites["exit"])
              @sprites["exit"].setBitmap("Graphics/Pictures/Universal/exit2")
              pbWait(10)
              @sprites["exit"].setBitmap("Graphics/Pictures/Universal/exit")
              pbWait(5)
              break
            end
            if $mouse.leftClick?(@sprites["return"])
                @sprites["return"].setBitmap("Graphics/Pictures/Universal/return2")
                pbWait(10)
                @sprites["return"].setBitmap("Graphics/Pictures/Universal/return")
                pbWait(5)
                $MenuClose=true
                break
              end
            if $mouse.leftClick?(@sprites["box"])
            @box+=1
            @sprites["box"].setBitmap("Graphics/Pictures/Universal/box_check")
            @sprites["box"].setBitmap("Graphics/Pictures/Universal/box") if @box%2==1
            5.times do
              Graphics.update
              Input.update
              @sprites["bg"].ox+=1
              @sprites["bg"].oy+=1
              @sprites["bg"].ox=0 if @sprites["bg"].ox>64
              @sprites["bg"].oy=0 if @sprites["bg"].oy>64
            end
          end
        end
      end
      if @page==0 && defined?($mouse)
        if $mouse.inAreaLeft?(85,340,68,40) && !@pokemon.isEgg?
          @page=3
          pbPlayCursorSE()
          dorefresh=true
        end
      end
      if @page==3 && defined?($mouse)
        if $mouse.inAreaLeft?(6,340,68,40) && !@pokemon.isEgg?
          @page=0
          pbPlayCursorSE()
          dorefresh=true
        end
      end
      if Input.trigger?(Input::UP) && @partyindex>0
        oldindex=@partyindex
        pbGoToPrevious
        if @partyindex!=oldindex
          @pokemon=@party[@partyindex]
          @sprites["pokemon"].setPokemonBitmap(@pokemon)
          @sprites["pokemon"].color=Color.new(0,0,0,0)
          pbPositionPokemonSprite(@sprites["pokemon"],335,129)
          @sprites["pokemonshadow"].setPokemonBitmap(@pokemon)
          @sprites["pokemonshadow"].mirror=false
          @sprites["pokemonshadow"].color=Color.new(0,0,0)
          @sprites["pokemonshadow"].skew(angle=90)
          @sprites["pokemonshadow"].opacity=30
          @sprites["pokemonshadow"].zoom_x=0.75
          @sprites["pokemonshadow"].zoom_y=1.5
          pbPositionPokemonSprite(@sprites["pokemonshadow"],335/2+80,140)
          dorefresh=true
          pbPlayCry(@pokemon)
        end
      end
      if defined?($mouse) && @partyindex>0
        if $mouse.inAreaLeft?(289,342,28,34) && (@page==0 || @page==3)
          @sprites["updown"].setBitmap("Graphics/Pictures/Universal/updown_2")
          pbWait(10)
          @sprites["updown"].setBitmap("Graphics/Pictures/Universal/updown")
          pbWait(5)
          oldindex=@partyindex
          pbGoToPrevious
          if @partyindex!=oldindex
            @pokemon=@party[@partyindex]
            @sprites["pokemon"].setPokemonBitmap(@pokemon)
            @sprites["pokemon"].color=Color.new(0,0,0,0)
            pbPositionPokemonSprite(@sprites["pokemon"],335,129)
            @sprites["pokemonshadow"].setPokemonBitmap(@pokemon)
            @sprites["pokemonshadow"].mirror=false
            @sprites["pokemonshadow"].color=Color.new(0,0,0)
            @sprites["pokemonshadow"].skew(angle=90)
            @sprites["pokemonshadow"].opacity=30
            @sprites["pokemonshadow"].zoom_x=0.75
            @sprites["pokemonshadow"].zoom_y=1.5
            pbPositionPokemonSprite(@sprites["pokemonshadow"],335/2+80,140)
            dorefresh=true
            pbPlayCry(@pokemon)
          end
        end
      end
      if defined?($mouse) && @partyindex<@party.length-1
        if $mouse.inAreaLeft?(337,344,28,34) && (@page==0 || @page==3)
          @sprites["updown"].setBitmap("Graphics/Pictures/Universal/updown_3")
          pbWait(10)
          @sprites["updown"].setBitmap("Graphics/Pictures/Universal/updown")
          pbWait(5)
          oldindex=@partyindex
          pbGoToNext
          if @partyindex!=oldindex
            @pokemon=@party[@partyindex]
            @sprites["pokemon"].setPokemonBitmap(@pokemon)
            @sprites["pokemon"].color=Color.new(0,0,0,0)
            pbPositionPokemonSprite(@sprites["pokemon"],335,129)
            @sprites["pokemonshadow"].setPokemonBitmap(@pokemon)
            @sprites["pokemonshadow"].mirror=false
            @sprites["pokemonshadow"].color=Color.new(0,0,0)
            @sprites["pokemonshadow"].skew(angle=90)
            @sprites["pokemonshadow"].opacity=30
            @sprites["pokemonshadow"].zoom_x=0.75
            @sprites["pokemonshadow"].zoom_y=1.5
            pbPositionPokemonSprite(@sprites["pokemonshadow"],335/2+80,140)
            dorefresh=true
            pbPlayCry(@pokemon)
          end
        end
      end
      if Input.trigger?(Input::DOWN) && @partyindex<@party.length-1
        oldindex=@partyindex
        pbGoToNext
        if @partyindex!=oldindex
          @pokemon=@party[@partyindex]
          @sprites["pokemon"].setPokemonBitmap(@pokemon)
          @sprites["pokemon"].color=Color.new(0,0,0,0)
          pbPositionPokemonSprite(@sprites["pokemon"],335,129)
          @sprites["pokemonshadow"].setPokemonBitmap(@pokemon)
          @sprites["pokemonshadow"].mirror=false
          @sprites["pokemonshadow"].color=Color.new(0,0,0)
          @sprites["pokemonshadow"].skew(angle=90)
          @sprites["pokemonshadow"].opacity=30
          @sprites["pokemonshadow"].zoom_x=0.75
          @sprites["pokemonshadow"].zoom_y=1.5
          pbPositionPokemonSprite(@sprites["pokemonshadow"],335/2+80,140)
          dorefresh=true
          pbPlayCry(@pokemon)
        end
      end
      if Input.trigger?(Input::LEFT) && !@pokemon.isEgg?
        oldpage=@page
        @page-=1
        @page=0 if @page<0
        @page=4 if @page>4
        dorefresh=true
        if @page!=oldpage # Move to next page
          pbPlayCursorSE()
          dorefresh=true
        end
      end
      if Input.trigger?(Input::LEFT) && @pokemon.isEgg?
        oldpage=@page
        @page-=1 if @page==1
        if @page!=oldpage # Move to next page
          pbPlayCursorSE()
          dorefresh=true
        end
      end
        #if $mouse.inAreaLeft?(337,344,28,34)
      if Input.trigger?(Input::RIGHT) && @pokemon.isEgg?
        oldpage=@page
        @page+=1 if @page==0
        if @page!=oldpage # Move to next page
          pbPlayCursorSE()
          dorefresh=true
        end
      end
      if Input.trigger?(Input::RIGHT) && !@pokemon.isEgg?
        oldpage=@page
        @page+=1
        @page=0 if @page<0
        @page=3 if @page>3
        if @page!=oldpage # Move to next page
          pbPlayCursorSE()
          dorefresh=true
        end
      end
      if dorefresh
        case @page
        when 0
          if @pokemon.isEgg?
            drawPageOneEgg(@pokemon)
          else
            drawPageOne(@pokemon)
          end
        when 1
          if @pokemon.isEgg?
            drawPageTwoEgg(@pokemon)
          else
            drawPageTwo(@pokemon)
          end
        when 2
          drawPageThree(@pokemon)
        when 3
          drawPageFour(@pokemon)
        when 4
          drawPageFive(@pokemon)
        end
      end
    end
    return @partyindex
  end
end

class PokemonSummary
  def initialize(scene)
    @scene=scene
  end

  def pbStartScreen(party,partyindex)
    @scene.pbStartScene(party,partyindex)
    ret=@scene.pbScene
    @scene.pbEndScene
    return ret
  end

  def pbStartForgetScreen(party,partyindex,moveToLearn)
    ret=-1
    @scene.pbStartForgetScene(party,partyindex,moveToLearn)
    loop do
      ret=@scene.pbChooseMoveToForget(moveToLearn)
      if ret>=0 && moveToLearn!=0 && pbIsHiddenMove?(party[partyindex].moves[ret].id) && !$DEBUG
        Kernel.pbMessage(_INTL("HM moves can't be forgotten now.")){ @scene.pbUpdate }
      else
        break
      end
    end
    @scene.pbEndScene
    return ret
  end

  def pbStartChooseMoveScreen(party,partyindex,message)
    ret=-1
    @scene.pbStartForgetScene(party,partyindex,0)
    Kernel.pbMessage(message){ @scene.pbUpdate }
    loop do
      ret=@scene.pbChooseMoveToForget(0)
      if ret<0
        Kernel.pbMessage(_INTL("You must choose a move!")){ @scene.pbUpdate }
      else
        break
      end
    end
    @scene.pbEndScene
    return ret
  end
end
El cual me genera el siguiente error

Captura4.PNG


Porfa si alguien sabe o tiene este script modificado para la v17
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
El problema no es de essentials, si no del mod de bw que utiliza PokemonStorage::MARKINGCHARS que no existe en el vanilla
 

randaku

Pokémon Cielo Infinito
El problema no es de essentials, si no del mod de bw que utiliza PokemonStorage::MARKINGCHARS que no existe en el vanilla
Si me di cuenta de eso, no me manejo mucho en script pero en PScreen_pokemonstorage puse lo siguiente
MARKINGCHARS=["●","▲","■","♥","★","☀"]
lo puse antes de class PokemonStoragescene
Y funciono genial
 
Estado
Cerrado para nuevas respuestas.
Arriba