Pokémon Essentials All questions and discussion about Pokémon Essentials, the Pokémon game kit for RPG Maker XP, go in here. Also contains links to the latest downloads and the Essentials Wiki.

Reply
 
Thread Tools
  #1    
Old March 21st, 2014 (11:16 AM).
Ratty524's Avatar
Ratty524 Ratty524 is offline
     
    Join Date: Jan 2011
    Gender: Male
    Nature: Calm
    Posts: 303
    Hi, I apologize ahead of time if this isn't the right place to make script requests for Essentials, because I don't see it anywhere on this board, and this isn't really suited for the "resource request" topic (isn't it?).

    Anyway, I would like to request a new "summary-like" or display type of script that would serve as a feature of the Pokegear. In my game, the screen would be called the "PokeExaminer," and it's purpose is to show the player how many Effort Points a species has, the value of their happiness, and also preferred berry flavor.

    I am fully aware of the EV/IV screen script listed on PE's Wiki, but that script is not only poorly worded, the layout isn't desirable for me and I don't want this part of the summary screen, and instead accessed from the Pokegear.

    As I can explain all of this better through pictures than with words, let me show you the following mock-ups to illustrate precisely what I want:


    Basically, though my custom-made gear, the player would select a button that would go to the "PokeExaminer" screen.


    This is the mock-up for the examiner screen itself. I generally want the same layout, similar to that of a typical summary screen. You don't need to provide a graphic for the background of this scene, by the way. I'll do that myself.

    The pink bubbled numbers correlate to the following notes:

    Spoiler:
    1) Disregarding the incorrect font, I would like the "Pokémon Examiner" title to go here, similar to way titles are displayed on summary screens. Speaking of the font, I basically just want it to be the default font used in any other scene in the game, nothing specific.

    2) Just like most summary screens, this would display the name of the Pokemon, the ball it was captured in, and its level.

    3) Displays the battler sprite of the Pokemon selected. I'd prefer if the image was flipped like this through the script, but if you don't want to, that's fine.

    4) This is the "Flavor Preference" Area. If you would rather have the "flavor preference" be part of the background graphic as oppose to script-generated text that is fine. The thing that matters is only that the strings "Like:" and "Dislike:" shows the Pokemon's preferred/disliked food flavors, as dependant on nature. Info on the Matter

    5) This is the part of the screen that shows the Pokemon's current stats (not base stats), including happiness at the bottom. If there is a way to abbreviate each stat field like I have shown, that would be preferred, to save space for the extra information.

    6) The green numbers that I want displayed should represent the Pokemon's effort points within that stat. The black numbers simply represent the total amount, with that effort point added.

    7) The colored "+10%" and "-10%" represent the respective boosts and decrease given by the Pokemon's nature. I'd prefer the same colors as illustrated, and this data positioned in front of the one that shows EVs

    8) For any stat that has no boost or EVs, I'd prefer nothing shown beside that stat. If you still add a "+0" or something beside it for your own reasons, however, I won't mind.

    9) This field displays the value for the Pokemon's happiness, with everything highlighted in red.



    If anyone could make this script for me, that would be awesome and would be greatly appreciated. If you think this is a hefty task or something I can do myself, I understand as well. Keep in mind, however, that because I'm somewhat inept when it comes to scripting, I would love to receive help from someone to make this happen.

    Thanks!
    Reply With Quote

    Relevant Advertising!

      #2    
    Old March 21st, 2014 (1:56 PM).
    Aquachu's Avatar
    Aquachu Aquachu is offline
       
      Join Date: Feb 2014
      Posts: 14
      I would have no idea how to do this, but it sounds like a great idea. You wouldn't mind if I borrowed it, would you?
      Reply With Quote
        #3    
      Old March 21st, 2014 (3:58 PM).
      Ratty524's Avatar
      Ratty524 Ratty524 is offline
         
        Join Date: Jan 2011
        Gender: Male
        Nature: Calm
        Posts: 303
        Quote:
        Originally Posted by Aquachu View Post
        I would have no idea how to do this, but it sounds like a great idea. You wouldn't mind if I borrowed it, would you?
        I wouldn't mind at all.
        Reply With Quote
          #4    
        Old March 30th, 2014 (6:18 PM).
        Ratty524's Avatar
        Ratty524 Ratty524 is offline
           
          Join Date: Jan 2011
          Gender: Male
          Nature: Calm
          Posts: 303
          Bumping on the account that this is still pertinent.
          Reply With Quote
            #5    
          Old March 31st, 2014 (2:56 AM).
          Nickalooose Nickalooose is offline
          --------------------
             
            Join Date: Mar 2008
            Gender: Female
            Posts: 1,309
            I've seen a similar request like this somewhere else and the advice given was to use the PokéGear script, I think... However, everything you want is already made, the Summary screen already does this... Take a page from that (literally; pageone, pagetwo, pagethree, pagefour) and remove things such as descriptions, abilities and moves etc.

            All you need to do is change the positions of things and the titles, text and coloring.

            You don't need scripting knowledge to do things like this just the know-how, of functions such as:
            ctrl+shift+f
            ctrl+f
            ctrl+v
            ctrl+c

            Have a go at it yourself, when you've tried everything... Come back... Show us what you've done and we will help you thereon... Remember, just because an Apple produces juice, doesn't mean it has to be squeezed.
            Reply With Quote
              #6    
            Old April 6th, 2014 (10:52 PM).
            Ratty524's Avatar
            Ratty524 Ratty524 is offline
               
              Join Date: Jan 2011
              Gender: Male
              Nature: Calm
              Posts: 303
              So I decided to take Nickalooose's advice on this, even deciding to change things around with it by displaying the breeding group of a Pokemon (for this I copied a bit from FL's advanced Pokedex Script. I guess I'll credit him for it?).


              Unfortunately, I don't know whether it works or not because I can't even access the scene from the Pokegear. During gameplay, I see the option for the examiner displayed on the menu, but it takes me to the Jukebox instead, for some reason. The jukebox app, in turn, does nothing.

              I'll post both the edited PokemonPokegear and the new PokemonExaminer script I have for you guys to pick apart, because I'm not sure what I'm doing wrong, exactly.

              PokemonPokegear:
              Code:
              class PokegearButton < SpriteWrapper
                attr_reader :index
                attr_reader :name
                attr_accessor :selected
              
                def initialize(x,y,name="",index=0,viewport=nil)
                  super(viewport)
                  @index=index
                  @name=name
                  @selected=false
                  fembutton=pbResolveBitmap(sprintf("Graphics/Pictures/pokegearButtonf"))
                  if $Trainer.gender==1 && fembutton
                    @button=AnimatedBitmap.new("Graphics/Pictures/pokegearButtonf")
                  else
                    @button=AnimatedBitmap.new("Graphics/Pictures/pokegearButton")
                  end
                  @contents=BitmapWrapper.new(@button.width,@button.height)
                  [email protected]
                  self.x=x
                  self.y=y
                  update
                end
              
                def dispose
                  @button.dispose
                  @contents.dispose
                  super
                end
              
                def refresh
                  self.bitmap.clear
                  self.bitmap.blt(0,0,@button.bitmap,Rect.new(0,0,@button.width,@button.height))
                  pbSetSystemFont(self.bitmap)
                  textpos=[          # Name is written on both unselected and selected buttons
                     [@name,self.bitmap.width/349,93,2,Color.new(248,248,248),Color.new(40,40,40)],
                     [@name,self.bitmap.width/2,62,2,Color.new(248,248,248),Color.new(40,40,40)]
                  ]
                  pbDrawTextPositions(self.bitmap,textpos)
                  icon=sprintf("Graphics/Pictures/pokegear"[email protected])
                  imagepos=[         # Icon is put on both unselected and selected buttons
                     [icon,64,64,0,0,-1,-1],
                     [icon,64,192,0,0,-1,-1],
                     [icon,224,192,0,0,-1,-1],
                     [icon,224,192,0,0,-1,-1],
                  ]
                  pbDrawImagePositions(self.bitmap,imagepos)
                end
              
                def update
                  if self.selected
                    self.src_rect.set(0,self.bitmap.height/2,self.bitmap.width,self.bitmap.height/2)
                  else
                    self.src_rect.set(0,0,self.bitmap.width,self.bitmap.height/2)
                  end
                  refresh
                  super
                end
              end
              
              
              
              #===============================================================================
              # - Scene_Pokegear
              #-------------------------------------------------------------------------------
              # Modified By Harshboy
              # Modified by Peter O.
              # Also Modified By OblivionMew
              # Overhauled by Maruno
              #===============================================================================
              class Scene_Pokegear
                #-----------------------------------------------------------------------------
                # initialize
                #-----------------------------------------------------------------------------
                def initialize(menu_index = 0)
                  @menu_index = menu_index
                end
                #-----------------------------------------------------------------------------
                # main
                #-----------------------------------------------------------------------------
                def main
                  commands=[]
              # OPTIONS - If you change these, you should also change update_command below.
                  @cmdMap=-1
                  @cmdPhone=-1
                  @cmdJukebox=-1
                  @cmdExaminer=-1
                  commands[@cmdMap=commands.length]=_INTL("Map")
                  commands[@cmdPhone=commands.length]=_INTL("Phone") if $PokemonGlobal.phoneNumbers &&
                                                                        $PokemonGlobal.phoneNumbers.length>0
                  commands[@cmdJukebox=commands.length]=_INTL("Jukebox")
                  commands[@cmdJukebox=commands.length]=_INTL("Examiner")
              
                  @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
                  @viewport.z=99999
                  @button=AnimatedBitmap.new("Graphics/Pictures/pokegearButton")
                  @sprites={}
                  @sprites["background"] = IconSprite.new(0,0)
                  femback=pbResolveBitmap(sprintf("Graphics/Pictures/pokegearbgf"))
                  if $Trainer.gender==1 && femback
                    @sprites["background"].setBitmap("Graphics/Pictures/pokegearbgf")
                  else
                    @sprites["background"].setBitmap("Graphics/Pictures/pokegearbg")
                  end
                  @sprites["command_window"] = Window_CommandPokemon.new(commands,160)
                  @sprites["command_window"].index = @menu_index
                  @sprites["command_window"].x = Graphics.width
                  @sprites["command_window"].y = 0
                  for i in 0...commands.length
                    x=118
                    y=196 - (commands.length*24) + (i*48)
                    @sprites["button#{i}"]=PokegearButton.new(x,y,commands[i],i,@viewport)
                    @sprites["button#{i}"].selected=([email protected]["command_window"].index)
                    @sprites["button#{i}"].update
                  end
                  Graphics.transition
                  loop do
                    Graphics.update
                    Input.update
                    update
                    if $scene != self
                      break
                    end
                  end
                  Graphics.freeze
                  pbDisposeSpriteHash(@sprites)
                end
                #-----------------------------------------------------------------------------
                # update the scene
                #-----------------------------------------------------------------------------
                def update
                  pbUpdateSpriteHash(@sprites)
                  for i in 0...@sprites["command_window"].commands.length
                    [email protected]["button#{i}"]
                    sprite.selected=([email protected]["command_window"].index) ? true : false
                  end
                  #update command window and the info if it's active
                  if @sprites["command_window"].active
                    update_command
                    return
                  end
                end
                #-----------------------------------------------------------------------------
                # update the command window
                #-----------------------------------------------------------------------------
                def update_command
                  if Input.trigger?(Input::B)
                    pbPlayCancelSE()
                    $scene = Scene_Map.new
                    return
                  end
                  if Input.trigger?(Input::C)
                    if @cmdMap>=0 && @sprites["command_window"].[email protected]
                      pbPlayDecisionSE()
                      pbShowMap(-1,false)
                    end
                    if @cmdPhone>=0 && @sprites["command_window"].[email protected]
                      pbPlayDecisionSE()
                      pbFadeOutIn(99999) {
                         PokemonPhoneScene.new.start
                      }
                    end
                    if @cmdJukebox>=0 && @sprites["command_window"].[email protected]
                      pbPlayDecisionSE()
                      $scene = Scene_Jukebox.new
                    end
                    if @cmdExaminer>=0 && @sprites["command_window"].[email protected]
                      pbPlayDecisionSE()
                      pbFadeOutIn(99999) {
                         PokemonExaminer.new.initialize
                      }
                    end
                    return
                  end
                end
              end
              I'm also having trouble getting the button graphics to display like the mock-up I've shown in the first post, but that's a new help topic altogether.


              PokemonExaminer:
              Code:
              class Scene_Examiner
                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
                  @[email protected][@partyindex]
                  @sprites={}
                  @typebitmap=AnimatedBitmap.new(_INTL("Graphics/Pictures/types"))
                  @sprites["background"]=IconSprite.new(0,0,@viewport)
                  @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
                  @sprites["pokemon"]=PokemonSprite.new(@viewport)
                  @sprites["pokemon"].setPokemonBitmap(@pokemon)
                  @sprites["pokemon"].mirror=true
                  @sprites["pokemon"].color=Color.new(0,0,0,0)
                  pbPositionPokemonSprite(@sprites["pokemon"],40,134)
                  @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
                  @page=0
                  drawPageOne(@pokemon)
                  pbFadeInAndShow(@sprites) { pbUpdate }
                end
              
                def pbEndScene
                  pbFadeOutAndHide(@sprites) { pbUpdate }
                  pbDisposeSpriteHash(@sprites)
                  @typebitmap.dispose
                  @viewport.dispose
                end
              
                #Draw the page
                def drawPageOne(pokemon)
                  if pokemon.egg?
                    drawPageOneEgg(pokemon)
                    return
                  end
                  [email protected]["overlay"].bitmap
                  overlay.clear
                  @sprites["background"].setBitmap("Graphics/Pictures/pokeexamScreen")
                  imagepos=[]
                  if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
                    status=6 if pbPokerus(pokemon)==1
                    [email protected] 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
                  [email protected] ? @pokemon.ballused : 0
                  ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
                  imagepos.push([ballimage,14,60,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
                  #-----------Define things I guess----------
                  pbDrawImagePositions(overlay,imagepos)
                  base=Color.new(248,248,248)
                  shadow=Color.new(104,104,104)
                  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)
                  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)
                  speciesname=PBSpecies.getName(pokemon.species)
                  growthrate=pokemon.growthrate
                  [email protected]
                  natureBoost=_INTL("")
                  natureBoost=_INTL("+10%") if pokemon.nature==natup
                  natureBoost=_INTL("-10%") if pokemon.nature==natdn
                  #V------ I stole this code from FL's Advanced Pokedex script
                  pbDexDataOffset(dexdata,@species,31)
                  compat10=dexdata.fgetb
                  compat11=dexdata.fgetb
                  eggGroupArray=[
                      nil,_INTL("Monster"),_INTL("Water1"),_INTL("Bug"),_INTL("Flying"),
                      _INTL("Field"),_INTL("Fairy"),_INTL("Plant"),_INTL("Human-Like"),
                      _INTL("Water3"),_INTL("Mineral"),_INTL("Amorphous"),
                      _INTL("Water2"),_INTL("Ditto"),_INTL("Dragon"),_INTL("No Eggs")
                  ]
                  eggGroups = compat10==compat11 ? eggGroupArray[compat10] : 
                      _INTL("{1}, {2}",eggGroupArray[compat10],eggGroupArray[compat11])
                  #-------End of awesomely stolen code
                  if @pokemon.name.split('').last=="♂" || @pokemon.name.split('').last=="♀"
                    [email protected][0..-2]
                  end
                  textpos=[
                     [_INTL("POKéMON EXAMINER"),26,16,0,base,shadow],
                     [pokename,46,62,0,base,shadow],
                     [_INTL("{1}",pokemon.level),46,92,0,Color.new(64,64,64),Color.new(176,176,176)],
                     [_INTL("Egg Group"),16,320,0,base,shadow],
                     [eggGroups,16,352,0,Color.new(64,64,64),Color.new(176,176,176)],
                     [_INTL("HP"),232,114,2,base,shadow],
                     [_ISPRINTF("{1:d}",pokemon.totalhp),293,114,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_ISPRINTF(""),360,114,1,base,shadow],
                     [_ISPRINTF("+{1:3d}",pokemon.ev[0]),440,114,1,Color.new(0,136,72),Color.new(176,176,176)],
                     [_INTL("Atk:"),232,146,0,base,shadow],
                     [natureBoost,360,146,1,statshadows[0],shadow],
                     [_ISPRINTF("{1:d}",pokemon.attack),293,146,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_ISPRINTF("+{1:3d}",pokemon.ev[1]),440,146,1,Color.new(0,136,72),Color.new(176,176,176)],
                     [_INTL("Def:"),232,178,0,base,shadow],
                     [natureBoost,360,178,1,statshadows[1],shadow],
                     [_ISPRINTF("{1:d}",pokemon.defense),293,178,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_ISPRINTF("+{1:3d}",pokemon.ev[2]),440,178,1,Color.new(0,136,72),Color.new(176,176,176)],
                     [_INTL("SpAtk:"),232,210,0,base,shadow],
                     [natureBoost,360,210,1,statshadows[3],shadow],
                     [_ISPRINTF("{1:d}",pokemon.spatk),293,210,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_ISPRINTF("+{1:3d}",pokemon.ev[4]),440,210,1,Color.new(0,136,72),Color.new(176,176,176)],
                     [_INTL("SpDef:"),232,242,0,base,shadow],
                     [natureBoost,360,242,1,statshadows[4],shadow],
                     [_ISPRINTF("{1:d}",pokemon.spdef),293,242,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_ISPRINTF("+{1:3d}",pokemon.ev[5]),440,242,1,Color.new(0,136,72),Color.new(176,176,176)],
                     [_INTL("Spd:"),232,274,0,base,shadow],
                     [natureBoost,360,274,1,statshadows[2],shadow],
                     [_ISPRINTF("{1:d}",pokemon.speed),293,274,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_ISPRINTF("+{1:3d}",pokemon.ev[3]),440,274,1,Color.new(0,136,72),Color.new(176,176,176)],
                     [_INTL("{1:d}",pokemon.happiness),340,312,0,base,shadow],
                  ]
                  if pokemon.gender==0
                    textpos.push([_INTL("♂"),178,62,0,Color.new(24,112,216),Color.new(136,168,208)])
                  elsif pokemon.gender==1
                    textpos.push([_INTL("♀"),178,62,0,Color.new(248,56,32),Color.new(224,152,144)])
                  end
                  pbDrawTextPositions(overlay,textpos)
                end
              
                def drawPageOneEgg(pokemon)
                  [email protected]["overlay"].bitmap
                  overlay.clear
                  @sprites["background"].setBitmap("Graphics/Pictures/pokeexamScreen")
                  imagepos=[]
                  [email protected] ? @pokemon.ballused : 0
                  ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
                  imagepos.push([ballimage,14,60,0,0,-1,-1])
                  #-----------Define things I guess----------
                  pbDrawImagePositions(overlay,imagepos)
                  base=Color.new(248,248,248)
                  shadow=Color.new(104,104,104)
                  pbSetSystemFont(overlay)
                  textpos=[
                     [_INTL("POKéMON EXAMINER"),26,16,0,base,shadow],
                     [pokemon.name,46,62,0,base,shadow],
                     [_INTL("???"),46,92,0,Color.new(64,64,64),Color.new(176,176,176)],
                     [_INTL("Egg Group"),16,320,0,base,shadow],
                     [_ISPRINTF("???"),16,352,0,Color.new(64,64,64),Color.new(176,176,176)],
                     [_INTL("HP"),292,76,2,base,shadow],
                     [_ISPRINTF("???"),462,76,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_INTL("Attack"),248,120,0,base,shadow],
                     [_ISPRINTF("???"),456,120,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_INTL("Defense"),248,152,0,base,shadow],
                     [_ISPRINTF("???"),456,152,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_INTL("Sp. Atk"),248,184,0,base,shadow],
                     [_ISPRINTF("???"),456,184,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_INTL("Sp. Def"),248,216,0,base,shadow],
                     [_ISPRINTF("???"),456,216,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_INTL("Speed"),248,248,0,base,shadow],
                     [_ISPRINTF("???"),456,248,1,Color.new(64,64,64),Color.new(176,176,176)],
                     [_INTL("???"),248,248,0,base,shadow],
                  ]
                  pbDrawTextPositions(overlay,textpos)
                end
              
                def pbGoToPrevious
                  if @page!=0
                    [email protected]
                    while newindex>0
                      newindex-=1
                      if @party[newindex] && [email protected][newindex].egg?
                        @partyindex=newindex
                        break
                      end
                    end
                  else
                    [email protected]
                    while newindex>0
                      newindex-=1
                      if @party[newindex]
                        @partyindex=newindex
                        break
                      end
                    end
                  end
                end
              
                def pbGoToNext
                  if @page!=0
                    [email protected]
                    while newindex<@party.length-1
                      newindex+=1
                      if @party[newindex] && [email protected][newindex].egg?
                        @partyindex=newindex
                        break
                      end
                    end
                  else
                    [email protected]
                    while newindex<@party.length-1
                      newindex+=1
                      if @party[newindex]
                        @partyindex=newindex
                        break
                      end
                    end
                  end
                end
              
                def pbScene
                  pbPlayCry(@pokemon)
                  loop do
                    Graphics.update
                    Input.update
                    pbUpdate
                    if Input.trigger?(Input::B)
                      break
                    end
                    dorefresh=false
                    if Input.trigger?(Input::C)
                      if @page==0
                        break
                      elsif @page==3
                        pbMoveSelection
                        dorefresh=true
                        drawPageFour(@pokemon)
                      end
                    end
                    if Input.trigger?(Input::UP) && @partyindex>0
                      pbGoToPrevious
                      @[email protected][@partyindex]
                      @sprites["pokemon"].setPokemonBitmap(@pokemon)
                      @sprites["pokemon"].color=Color.new(0,0,0,0)
                      pbPositionPokemonSprite(@sprites["pokemon"],40,144)
                      dorefresh=true
                      pbPlayCry(@pokemon)
                    end
                    if Input.trigger?(Input::DOWN) && @partyindex<@party.length-1
                      pbGoToNext
                      @[email protected][@partyindex]
                      @sprites["pokemon"].setPokemonBitmap(@pokemon)
                      @sprites["pokemon"].color=Color.new(0,0,0,0)
                      pbPositionPokemonSprite(@sprites["pokemon"],40,144)
                      dorefresh=true
                      pbPlayCry(@pokemon)
                    end
                    if dorefresh
                      case @page
                        when 0
                          drawPageOne(@pokemon)
                        when 1
                          drawPageTwo(@pokemon)
                        when 2
                          drawPageThree(@pokemon)
                        when 3
                          drawPageFour(@pokemon)
                        when 4
                          drawPageFive(@pokemon)
                      end
                    end
                  end
                  return @partyindex
                end
              end
              
              
              
              class PokemonExaminer
                def initialize(scene)
                  @scene=scene
                end
              
                def pbStartScreen(party,partyindex)
                  @scene.pbStartScene(party,partyindex)
                  [email protected]
                  @scene.pbEndScene
                  return ret
                end
              end
              Reply With Quote
                #7    
              Old April 7th, 2014 (5:18 AM).
              ~JV~'s Avatar
              ~JV~ ~JV~ is offline
              Dev of Pokémon Uranium
                 
                Join Date: Aug 2007
                Location: Rio de Janeiro
                Age: 23
                Nature: Relaxed
                Posts: 715
                To test your script just do a script call in any event with "$scene = Scene_Examiner.new".
                __________________
                Reply With Quote
                  #8    
                Old April 7th, 2014 (9:31 AM).
                Ratty524's Avatar
                Ratty524 Ratty524 is offline
                   
                  Join Date: Jan 2011
                  Gender: Male
                  Nature: Calm
                  Posts: 303
                  Quote:
                  Originally Posted by ~JV~ View Post
                  To test your script just do a script call in any event with "$scene = Scene_Examiner.new".
                  I actually decided to put that in the Pokegear script itself. I figured out why the Pokegear didn't call the script correctly, because on line 91 I listed "@cmdJukebox" twice instead of the examiner, so calling the script from the Pokegear finally works.


                  ... But now I got this:
                  Code:
                  Exception: NoMethodError
                  Message: undefined method `main' for #<Scene_Examiner:0xa87fed0>
                  PokemonUtilities:992:in `pbLoadRpgxpScene'
                  PokemonPauseMenu:169:in `pbStartPokemonMenu'
                  PokemonPauseMenu:144:in `loop'
                  PokemonPauseMenu:264:in `pbStartPokemonMenu'
                  Scene_Map:188:in `call_menu'
                  Scene_Map:159:in `update'
                  Scene_Map:68:in `main'
                  Scene_Map:65:in `loop'
                  Scene_Map:72:in `main'
                  Main:37:in `mainFunctionDebug'
                  I don't see a "main" in Scene_Examiner at all, so I don't understand what this error message is talking about. Any help would be appreciated.
                  Reply With Quote
                    #9    
                  Old April 8th, 2014 (4:29 AM).
                  Nickalooose Nickalooose is offline
                  --------------------
                     
                    Join Date: Mar 2008
                    Gender: Female
                    Posts: 1,309
                    If it works, what's the problem?

                    Do you click something in your examiner?
                    Does the examiner even load?
                    Does the error appear when you click the icon in PokéGear?

                    Try calling PokemonExaminer instead of Scene_Examiner

                    Congrats on doing this yourself btw and you tried getting someone to do this for you... It's not as hard as everyone thinks, is it ;)
                    Reply With Quote
                      #10    
                    Old April 8th, 2014 (11:10 PM).
                    Ratty524's Avatar
                    Ratty524 Ratty524 is offline
                       
                      Join Date: Jan 2011
                      Gender: Male
                      Nature: Calm
                      Posts: 303
                      Quote:
                      Originally Posted by Nickalooose View Post
                      If it works, what's the problem?

                      Do you click something in your examiner?
                      Does the examiner even load?
                      Does the error appear when you click the icon in PokéGear?

                      Try calling PokemonExaminer instead of Scene_Examiner

                      Congrats on doing this yourself btw and you tried getting someone to do this for you... It's not as hard as everyone thinks, is it
                      The error message appeared when I selected the Examiner from the Pokegear. To clarify, what "works" is that the Pokegear is actually calling what I specified instead of loading the Jukebox, which occurred due to the typo I mentioned in my last post. So yeah, the new problem is that the Examiner won't even start.

                      I tried calling PokemonExaminer instead of Scene_Examiner, as you suggested. However, I got an argument error:
                      Code:
                      Exception: ArgumentError
                      Message: wrong number of arguments(0 for 1)
                      PokemonPokegear:168:in `initialize'
                      PokemonPokegear:168:in `new'
                      PokemonPokegear:168:in `update_command'
                      PokemonPokegear:138:in `update'
                      PokemonPokegear:119:in `main'
                      PokemonPokegear:116:in `loop'
                      PokemonPokegear:123:in `main'
                      PokemonUtilities:992:in `pbLoadRpgxpScene'
                      PokemonPauseMenu:169:in `pbStartPokemonMenu'
                      PokemonPauseMenu:144:in `loop'
                      This is the exact code I typed in line 166 of the Pokegear script:
                      Code:
                            if @cmdExaminer>=0 && @sprites["command_window"].[email protected]
                              pbPlayDecisionSE()
                              $scene = PokemonExaminer.new
                            end
                      Reply With Quote
                        #11    
                      Old April 9th, 2014 (12:05 AM).
                      mej71's Avatar
                      mej71 mej71 is offline
                      • Moderator
                       
                      Join Date: Mar 2014
                      Location: Omnipresence
                      Gender: Male
                      Posts: 1,202
                      I don't know if it's your main problem, but the fact that you don't have def's for these
                      Code:
                      when 1
                                  drawPageTwo(@pokemon)
                                when 2
                                  drawPageThree(@pokemon)
                                when 3
                                  drawPageFour(@pokemon)
                                when 4
                                  drawPageFive(@pokemon)
                      will probably present problems later at the very least.
                      Reply With Quote
                        #12    
                      Old April 9th, 2014 (4:16 AM).
                      Nickalooose Nickalooose is offline
                      --------------------
                         
                        Join Date: Mar 2008
                        Gender: Female
                        Posts: 1,309
                        Try:
                        Code:
                            scene=Scene_Examiner.new
                            screen=PokemonExaminer.new(scene)
                            screen.pbStartScreen(party,partyindex)
                        Reply With Quote
                          #13    
                        Old April 9th, 2014 (9:54 AM). Edited April 9th, 2014 by Ratty524.
                        Ratty524's Avatar
                        Ratty524 Ratty524 is offline
                           
                          Join Date: Jan 2011
                          Gender: Male
                          Nature: Calm
                          Posts: 303
                          Quote:
                          Originally Posted by Nickalooose View Post
                          Try:
                          Code:
                              scene=Scene_Examiner.new
                              screen=PokemonExaminer.new(scene)
                              screen.pbStartScreen(party,partyindex)
                          Did this sometime around last night, and it still gave me an error message, specifically an "undefined local variable" message. One problem I think I've narrowed down is that "party" and "partyindex" are two variables that aren't defined in the PokeGear script. I don't know what code I should use that would get both information on the player's party and the party member the player has currently selected.

                          Thanks for sticking with me on this, though.

                          --------------
                          EDIT:

                          I tried this:
                          Code:
                                      [email protected]
                                      [email protected]
                                      scene=Scene_Examiner.new
                                      screen=PokemonExaminer.new(scene)
                                      screen.pbStartScreen(party,partyindex)
                          I think that should take care of the issues defining the variables, but now I have this bizarre error:
                          Code:
                          Exception: NoMethodError
                          Message: undefined method `[]' for nil:NilClass
                          --PokemonExaminer:15:in `pbStartScene'
                          --PokemonExaminer:290:in `pbStartScreen'
                          PokemonPokegear:173:in `update_command'
                          PokemonPokegear:168:in `pbFadeOutIn'
                          PokemonPokegear:168:in `update_command'
                          PokemonPokegear:138:in `update'
                          PokemonPokegear:119:in `main'
                          PokemonPokegear:116:in `loop'
                          PokemonPokegear:123:in `main'
                          PokemonUtilities:992:in `pbLoadRpgxpScene'
                          ... A set of brackets are being looked at as a method?
                          I wonder how Maruno puts up with this.
                          Reply With Quote
                            #14    
                          Old April 11th, 2014 (4:39 PM).
                          Nickalooose Nickalooose is offline
                          --------------------
                             
                            Join Date: Mar 2008
                            Gender: Female
                            Posts: 1,309
                            What does party and partyindex do? Remove them from start scene def... Within the brackets I mean... I don't understand why they are there
                            Reply With Quote
                              #15    
                            Old April 11th, 2014 (5:15 PM).
                            Ratty524's Avatar
                            Ratty524 Ratty524 is offline
                               
                              Join Date: Jan 2011
                              Gender: Male
                              Nature: Calm
                              Posts: 303
                              Quote:
                              Originally Posted by Nickalooose View Post
                              What does party and partyindex do? Remove them from start scene def... Within the brackets I mean... I don't understand why they are there
                              I'd assume it would call the Pokemon you currently have selected? Then again, considering this is a pokegear app that wouldn't make much sense. I removed it.

                              Now, however, it's popping up with a lot of "undefined" errors that kind of baffle me. "egg", "nature", and the icon for the "ball used" (all of these seem to cause no problems in the original summary script, and I see no defs for them anywhere) are popping up as undefined in this script. Is there something I need to reference?
                              Reply With Quote
                                #16    
                              Old April 12th, 2014 (4:23 AM).
                              Nickalooose Nickalooose is offline
                              --------------------
                                 
                                Join Date: Mar 2008
                                Gender: Female
                                Posts: 1,309
                                It's because you originally had partyindex, which you're script wasn't calling properly, so the script never got this far before, so now you're making progress, because you're getting to the final stages of your script.

                                You need to define pokemon as something, because atm you're checking if pokemon.egg? exists, which it can't because, pokemon doesn't mean anything.

                                I see what you've done now, you copied the summary screen, literally... I didn't see this before.

                                Since you've removed partyindex... What you could do is, set partyindex to a number, like 0 and possibly pokemon too... And always have it at 0 at the start of your script... Then add one to the number when down is pressed and take one away when up is pressed... Assuming you only have the one page, all the @page and drawpagetwo etc. is unnecessary, so your next and previous def's can literally look like this.
                                Code:
                                  def pbGoToPrevious
                                    newindex=partyindex
                                    while newindex>0
                                      newindex-=1
                                      if partyindex!=newindex
                                        partyindex=newindex
                                        break
                                      end
                                    end
                                  end
                                
                                  def pbGoToNext
                                    newindex=partyindex
                                    while newindex<$Trainer.party.length-1
                                      newindex+=1
                                      if partyindex!=newindex
                                        partyindex=newindex
                                        break
                                      end
                                    end
                                  end
                                Edit to accompany what you need.
                                Reply With Quote
                                  #17    
                                Old April 12th, 2014 (7:08 AM).
                                Maruno's Avatar
                                Maruno Maruno is offline
                                Lead Dev of Pokémon Essentials
                                   
                                  Join Date: Jan 2008
                                  Location: England
                                  Posts: 5,171
                                  Since you asked for my help, I thought I'd respond in here (because I don't like hiding information away by putting it in a PM to just one person when this thread is public). I've just glanced over what you've all been saying, though.

                                  You're not quite opening the Examiner screen properly. Since you're copying the summary screen scripts, it'd make sense to also copy how, say, the party screen opens the summary screen. It does so like this:

                                  Code:
                                      scene=PokemonSummaryScene.new
                                      screen=PokemonSummary.new(scene)
                                      screen.pbStartScreen(@party,pkmnid)
                                  @party is just $Trainer.party (in battle it's a bit different, with the active Pokémon always at the top, so it makes a new party which is $Trainer.party jumbled up a bit to use instead, which is why it uses @party here. In the storage screen, @party is an array of the Pokémon in the current box and has nothing to do with $Trainer.party. You don't need to worry about that, though). pkmnid is the index in the party of the Pokémon you want to look at first. I'm assuming here that you'll always want to start at the top.

                                  Use this code, but replace @party with $Trainer.party, and replace pkmnid with 0. And, you know, use Scene_Examiner and PokemonExaminer (respectively) for the class names. That'll get it open.

                                  You don't need to replace the previous/next methods like Nickalooose suggested; the existing ones should work just fine. I imagine that the ONLY changes you'd need to make to the original summary screen scripts (aside from renaming the classes) are what I just mentioned along with disabling the left/right buttons so that you can only have one page. After that, it's just a matter of editing what text is displayed on the page (and there's plenty of examples of displaying text and different numbers already to help you). Remember to show nothing for eggs, because that's even more cheating than the Examiner screen already is.

                                  Code:
                                  @sprites["pokemon"].mirror=false
                                  This makes Pokémon look to the left. Set it to true instead to make them look to the right. I generally dislike this, because of some asymmetric Pokémon like Torterra and Togekiss and Kingler.

                                  Quote:
                                  Originally Posted by Ratty524 View Post
                                  Code:
                                  Exception: NoMethodError
                                  Message: undefined method `[]' for nil:NilClass
                                  --PokemonExaminer:15:in `pbStartScene'
                                  --PokemonExaminer:290:in `pbStartScreen'
                                  PokemonPokegear:173:in `update_command'
                                  PokemonPokegear:168:in `pbFadeOutIn'
                                  PokemonPokegear:168:in `update_command'
                                  PokemonPokegear:138:in `update'
                                  PokemonPokegear:119:in `main'
                                  PokemonPokegear:116:in `loop'
                                  PokemonPokegear:123:in `main'
                                  PokemonUtilities:992:in `pbLoadRpgxpScene'
                                  ... A set of brackets are being looked at as a method?
                                  I wonder how Maruno puts up with this.
                                  [] is a method. Have a look in the script section Game_Switches to see a method with this name. Even an array is a class, and [] is a method which applies to that class. = is also a method. If you have $Trainer.party[0], then $Trainer.party is the array and [0] is a method (whose parameter is 0) which returns the 0th element of that array.

                                  An array is a very basic class, but it's still a class and it has associated methods. See here for a list of methods that an array has. (RMXP uses an older version of Ruby than detailed on that page, so some of the methods listed may not be in RMXP.)

                                  Your error message was referring to the line @[email protected][@partyindex]. The array is @party, the method is [], and the parameter is @partyindex. The error was caused by @party being nil rather than an array, and nil has no methods at all, let alone the method [] which is what this line was trying to call.
                                  __________________
                                  Go to the Pokémon Essentials Wiki

                                  | Downloads | Tutorials | Fangames |
                                  | All Animations Project |

                                  Follow me on Twitter: @maruno42


                                  Reply With Quote
                                    #18    
                                  Old April 12th, 2014 (5:28 PM).
                                  Ratty524's Avatar
                                  Ratty524 Ratty524 is offline
                                     
                                    Join Date: Jan 2011
                                    Gender: Male
                                    Nature: Calm
                                    Posts: 303
                                    Real big thanks, Maruno. Your post actually helped me understand this thing a little bit more. After narrowing through some other kinks I was able to get this scene to activate without any error messages.

                                    ... It still has some problems, as you can see.
                                    1) The text positions are wonky - That's something I can easily fix on my own.
                                    2) The "egg group" field will display "Monster" regardless of the Pokemon I have selected.
                                    3) The strings that correspond to the Pokemon's nature ("+10%" and "-10%") aren't displaying at all.
                                    4) The value for "Happiness:" seems to be derped as well, not displaying the right value.
                                    5) If I select an Egg within my party, it shows the egg as if it were a level 1 Pokemon with no EVs, instead of anything I specified in "drawPageOneEgg" (the "???" strings).

                                    What works, however:
                                    1) The controls to scroll between Pokemon in the party.
                                    2) Both the total stats and the effort values are displaying.
                                    3) The battler graphic and things.

                                    Here is my most up to date version of the Pokemon Examiner script:
                                    Code:
                                    class Scene_Examiner
                                      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
                                        @[email protected][@partyindex]
                                        @sprites={}
                                        @typebitmap=AnimatedBitmap.new(_INTL("Graphics/Pictures/types"))
                                        @sprites["background"]=IconSprite.new(0,0,@viewport)
                                        @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
                                        @sprites["pokemon"]=PokemonSprite.new(@viewport)
                                        @sprites["pokemon"].setPokemonBitmap(@pokemon)
                                        @sprites["pokemon"].mirror=true
                                        @sprites["pokemon"].color=Color.new(0,0,0,0)
                                        pbPositionPokemonSprite(@sprites["pokemon"],40,134)
                                        @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
                                        @page=0
                                        drawPageOne(@pokemon)
                                        pbFadeInAndShow(@sprites) { pbUpdate }
                                      end
                                    
                                      def pbEndScene
                                        pbFadeOutAndHide(@sprites) { pbUpdate }
                                        pbDisposeSpriteHash(@sprites)
                                        @typebitmap.dispose
                                        @viewport.dispose
                                      end
                                    
                                      #Draw the page
                                      def drawPageOne(pokemon)
                                        [email protected]["overlay"].bitmap
                                        overlay.clear
                                        @sprites["background"].setBitmap("Graphics/Pictures/pokeexamScreen")
                                        imagepos=[]
                                        [email protected] ? @pokemon.ballused : 0
                                        ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
                                        imagepos.push([ballimage,14,60,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
                                        #-----------Define things I guess----------
                                        pbDrawImagePositions(overlay,imagepos)
                                        base=Color.new(248,248,248)
                                        shadow=Color.new(104,104,104)
                                        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)
                                        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)
                                        speciesname=PBSpecies.getName(pokemon.species)
                                        growthrate=pokemon.growthrate
                                        [email protected]
                                        natureBoost=_INTL("")
                                        natureBoost=_INTL("+10%") if pokemon.nature==natup
                                        natureBoost=_INTL("-10%") if pokemon.nature==natdn
                                        #V------ I stole this code from FL's Advanced Pokedex script
                                        dexdata=pbOpenDexData
                                        compat10=dexdata.fgetb
                                        compat11=dexdata.fgetb
                                        eggGroupArray=[
                                            _INTL("Monster"),_INTL("Water1"),_INTL("Bug"),_INTL("Flying"),
                                            _INTL("Field"),_INTL("Fairy"),_INTL("Plant"),_INTL("Human-Like"),
                                            _INTL("Water3"),_INTL("Mineral"),_INTL("Amorphous"),
                                            _INTL("Water2"),_INTL("Ditto"),_INTL("Dragon"),_INTL("No Eggs")
                                        ]
                                        eggGroups = compat10==compat11 ? eggGroupArray[compat10] : 
                                            _INTL("{1}, {2}",eggGroupArray[compat10],eggGroupArray[compat11])
                                        #-------End of awesomely stolen code
                                        if @pokemon.name.split('').last=="♂" || @pokemon.name.split('').last=="♀"
                                          [email protected][0..-2]
                                        end
                                        textpos=[
                                           [_INTL("POKéMON EXAMINER"),26,16,0,base,shadow],
                                           [pokename,46,62,0,base,shadow],
                                           [_INTL("{1}",pokemon.level),46,92,0,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_INTL("Egg Group"),16,320,0,base,shadow],
                                           [eggGroups,16,352,0,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_INTL("HP"),232,114,2,base,shadow],
                                           [_ISPRINTF("{1:d}",pokemon.totalhp),293,114,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_ISPRINTF(""),360,114,1,base,shadow],
                                           [_ISPRINTF("+{1:3d}",pokemon.ev[0]),440,114,1,Color.new(0,136,72),Color.new(176,176,176)],
                                           [_INTL("Atk:"),232,146,0,base,shadow],
                                           [natureBoost,360,146,1,statshadows[0],shadow],
                                           [_ISPRINTF("{1:d}",pokemon.attack),293,146,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_ISPRINTF("+{1:3d}",pokemon.ev[1]),440,146,1,Color.new(0,136,72),Color.new(176,176,176)],
                                           [_INTL("Def:"),232,178,0,base,shadow],
                                           [natureBoost,360,178,1,statshadows[1],shadow],
                                           [_ISPRINTF("{1:d}",pokemon.defense),293,178,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_ISPRINTF("+{1:3d}",pokemon.ev[2]),440,178,1,Color.new(0,136,72),Color.new(176,176,176)],
                                           [_INTL("SpAtk:"),232,210,0,base,shadow],
                                           [natureBoost,360,210,1,statshadows[3],shadow],
                                           [_ISPRINTF("{1:d}",pokemon.spatk),293,210,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_ISPRINTF("+{1:3d}",pokemon.ev[4]),440,210,1,Color.new(0,136,72),Color.new(176,176,176)],
                                           [_INTL("SpDef:"),232,242,0,base,shadow],
                                           [natureBoost,360,242,1,statshadows[4],shadow],
                                           [_ISPRINTF("{1:d}",pokemon.spdef),293,242,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_ISPRINTF("+{1:3d}",pokemon.ev[5]),440,242,1,Color.new(0,136,72),Color.new(176,176,176)],
                                           [_INTL("Spd:"),232,274,0,base,shadow],
                                           [natureBoost,360,274,1,statshadows[2],shadow],
                                           [_ISPRINTF("{1:d}",pokemon.speed),293,274,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_ISPRINTF("+{1:3d}",pokemon.ev[3]),440,274,1,Color.new(0,136,72),Color.new(176,176,176)],
                                           [_INTL("{1:d}",pokemon.happiness),340,312,0,base,shadow],
                                        ]
                                        if pokemon.gender==0
                                          textpos.push([_INTL("♂"),178,62,0,Color.new(24,112,216),Color.new(136,168,208)])
                                        elsif pokemon.gender==1
                                          textpos.push([_INTL("♀"),178,62,0,Color.new(248,56,32),Color.new(224,152,144)])
                                        end
                                        pbDrawTextPositions(overlay,textpos)
                                      end
                                    
                                      def drawPageOneEgg(pokemon)
                                        [email protected]["overlay"].bitmap
                                        overlay.clear
                                        @sprites["background"].setBitmap("Graphics/Pictures/pokeexamScreen")
                                        imagepos=[]
                                        [email protected] ? @pokemon.ballused : 0
                                        ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
                                        imagepos.push([ballimage,14,60,0,0,-1,-1])
                                        #-----------Define things I guess----------
                                        pbDrawImagePositions(overlay,imagepos)
                                        base=Color.new(248,248,248)
                                        shadow=Color.new(104,104,104)
                                        pbSetSystemFont(overlay)
                                        textpos=[
                                           [_INTL("POKéMON EXAMINER"),26,16,0,base,shadow],
                                           [pokemon.name,46,62,0,base,shadow],
                                           [_INTL("???"),46,92,0,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_INTL("Egg Group"),16,320,0,base,shadow],
                                           [_ISPRINTF("???"),16,352,0,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_INTL("HP"),292,76,2,base,shadow],
                                           [_ISPRINTF("???"),462,76,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_INTL("Attack"),248,120,0,base,shadow],
                                           [_ISPRINTF("???"),456,120,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_INTL("Defense"),248,152,0,base,shadow],
                                           [_ISPRINTF("???"),456,152,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_INTL("Sp. Atk"),248,184,0,base,shadow],
                                           [_ISPRINTF("???"),456,184,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_INTL("Sp. Def"),248,216,0,base,shadow],
                                           [_ISPRINTF("???"),456,216,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_INTL("Speed"),248,248,0,base,shadow],
                                           [_ISPRINTF("???"),456,248,1,Color.new(64,64,64),Color.new(176,176,176)],
                                           [_INTL("???"),248,248,0,base,shadow],
                                        ]
                                        pbDrawTextPositions(overlay,textpos)
                                      end
                                    
                                      def pbGoToPrevious
                                        if @page!=0
                                          [email protected]
                                          while newindex>0
                                            newindex-=1
                                            if @party[newindex] && [email protected][newindex].egg?
                                              @partyindex=newindex
                                              break
                                            end
                                          end
                                        else
                                          [email protected]
                                          while newindex>0
                                            newindex-=1
                                            if @party[newindex]
                                              @partyindex=newindex
                                              break
                                            end
                                          end
                                        end
                                      end
                                    
                                      def pbGoToNext
                                        if @page!=0
                                          [email protected]
                                          while newindex<@party.length-1
                                            newindex+=1
                                            if @party[newindex] && [email protected][newindex].egg?
                                              @partyindex=newindex
                                              break
                                            end
                                          end
                                        else
                                          [email protected]
                                          while newindex<@party.length-1
                                            newindex+=1
                                            if @party[newindex]
                                              @partyindex=newindex
                                              break
                                            end
                                          end
                                        end
                                      end
                                    
                                      def pbScene
                                        pbPlayCry(@pokemon)
                                        loop do
                                          Graphics.update
                                          Input.update
                                          pbUpdate
                                          if Input.trigger?(Input::B)
                                            break
                                          end
                                          dorefresh=false
                                          if Input.trigger?(Input::C)
                                            if @page==0
                                              break
                                            elsif @page==3
                                              pbMoveSelection
                                              dorefresh=true
                                              drawPageFour(@pokemon)
                                            end
                                          end
                                          if Input.trigger?(Input::UP) && @partyindex>0
                                            pbGoToPrevious
                                            @[email protected][@partyindex]
                                            @sprites["pokemon"].setPokemonBitmap(@pokemon)
                                            @sprites["pokemon"].color=Color.new(0,0,0,0)
                                            pbPositionPokemonSprite(@sprites["pokemon"],40,144)
                                            dorefresh=true
                                            pbPlayCry(@pokemon)
                                          end
                                          if Input.trigger?(Input::DOWN) && @partyindex<@party.length-1
                                            pbGoToNext
                                            @[email protected][@partyindex]
                                            @sprites["pokemon"].setPokemonBitmap(@pokemon)
                                            @sprites["pokemon"].color=Color.new(0,0,0,0)
                                            pbPositionPokemonSprite(@sprites["pokemon"],40,144)
                                            dorefresh=true
                                            pbPlayCry(@pokemon)
                                          end
                                          if dorefresh
                                            case @page
                                              when 0
                                                drawPageOne(@pokemon)
                                            end
                                          end
                                        end
                                        return @partyindex
                                      end
                                    end
                                    
                                    
                                    
                                    class PokemonExaminer
                                      def initialize(scene)
                                        @scene=scene
                                      end
                                    
                                      def pbStartScreen(party,partyindex)
                                        @scene.pbStartScene(party,partyindex)
                                        [email protected]
                                        @scene.pbEndScene
                                        return ret
                                      end
                                    end
                                    Reply With Quote
                                      #19    
                                    Old April 13th, 2014 (8:36 AM). Edited April 13th, 2014 by Maruno.
                                    Maruno's Avatar
                                    Maruno Maruno is offline
                                    Lead Dev of Pokémon Essentials
                                       
                                      Join Date: Jan 2008
                                      Location: England
                                      Posts: 5,171
                                      2. If you're going to steal code from someone else, you could at least steal all the code you need. You forgot this line (just before your compat10= line):
                                      Code:
                                      pbDexDataOffset(dexdata,pokemon.species,31)
                                      Oh, and put this line after the compat11= line:
                                      Code:
                                      dexdata.close
                                      3. There are 5 things that a nature could boost or lower. Your code (below) doesn't result in different text for each of them. This code is also comparing the Pokémon's nature to an altered version of itself (either the nature divided by 5 or nature mod 5), which is just daft.

                                      Code:
                                          natureBoost=_INTL("")
                                          natureBoost=_INTL("+10%") if pokemon.nature==natup
                                          natureBoost=_INTL("-10%") if pokemon.nature==natdn
                                      Instead of this, put the following code beneath the large textpos= array:
                                      Code:
                                      if (pokemon.nature/5).floor!=(pokemon.nature%5).floor
                                        statupline=[0,1,4,2,3][(pokemon.nature/5).floor]
                                        statdownline=[0,1,4,2,3][(pokemon.nature%5).floor]
                                        textpos.push([_INTL("+10%"),360,146+32*statupline,1,Color.new(136,96,72),shadow])
                                        textpos.push([_INTL("-10%"),360,146+32*statdownline,1,Color.new(64,120,152),shadow])
                                      end
                                      4. You don't use {1:d} in an _INTL. Just use {1} there.

                                      5. You deleted the following code from the top of the def drawPageOne:
                                      Code:
                                      if pokemon.egg?
                                        drawPageOneEgg(pokemon)
                                        return
                                      end
                                      __________________
                                      Go to the Pokémon Essentials Wiki

                                      | Downloads | Tutorials | Fangames |
                                      | All Animations Project |

                                      Follow me on Twitter: @maruno42


                                      Reply With Quote
                                        #20    
                                      Old April 14th, 2014 (12:01 PM).
                                      Ratty524's Avatar
                                      Ratty524 Ratty524 is offline
                                         
                                        Join Date: Jan 2011
                                        Gender: Male
                                        Nature: Calm
                                        Posts: 303
                                        Thanks for your help, Maruno. I still need to kind of understand just how RGSS works in general, but I can safely say this entire script works.

                                        Since someone asked for this script, I'm going to make a few adjustments so that it's presentable to the public, and then I'll post the final.
                                        Reply With Quote
                                        Reply
                                        Quick Reply

                                        Sponsored Links
                                        Thread Tools

                                        Posting Rules
                                        You may not post new threads
                                        You may not post replies
                                        You may not post attachments
                                        You may not edit your posts

                                        BB code is On
                                        Smilies are On
                                        [IMG] code is On
                                        HTML code is Off

                                        Forum Jump


                                        All times are GMT -8. The time now is 10:50 PM.