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.

Draconius GO
Reply
 
Thread Tools
  #1    
Old July 25th, 2013 (6:15 PM).
Harvey_Create's Avatar
Harvey_Create Harvey_Create is offline
Pokemon Apex Team Member
     
    Join Date: Nov 2012
    Location: Iowa
    Gender: Male
    Nature: Naughty
    Posts: 188
    Why do I seem to get all of the errors? I guess i'll come here again. I made the Guy for my Pokemart. The thing is, when i talk to him in-game, he gives me an error report. Any help? I am not sure what version of Essentials we are using. I should probably upgrade to V12 soon.

    Spoiler:

    ---------------------------
    Apex 0.60a
    ---------------------------
    Exception: RuntimeError

    Message: Script error within event 1, map 6 (PokeCenter):

    Exception: TypeError

    Message: Section141:382:in `[]'Symbol as array index

    ***Full script:

    pbPokemonMart([
    :POKEBALL,
    :POTION,
    :ANTIDOTE,
    :PARLYZHEAL,
    :ESCAPEROPE,
    :REPEL
    ])


    Interpreter:243:in `pbExecuteScript'

    Compiler:382:in `[]'

    PokemonItems:31:in `pbIsImportantItem?'

    PokemonMart:775:in `pbPokemonMart'

    PokemonMart:774:in `each'

    PokemonMart:774:in `pbPokemonMart'

    (eval):8:in `pbExecuteScript'

    Interpreter:1599:in `eval'

    Interpreter:243:in `pbExecuteScript'

    Interpreter:1599:in `command_355'



    Interpreter:276:in `pbExecuteScript'

    Interpreter:1599:in `command_355'

    Interpreter:494:in `execute_command'

    Interpreter:193:in `update'

    Interpreter:106:in `loop'

    Interpreter:198:in `update'

    Scene_Map:103:in `update'

    Scene_Map:101:in `loop'

    Scene_Map:114:in `update'

    Scene_Map:68:in `main'



    This exception was logged in ./errorlog.txt.

    Press Ctrl+C to copy this message to the clipboard.
    ---------------------------
    OK
    ---------------------------
    __________________
    This signature has been disabled.
    Exceeds signature width limit (strictly 600 pixels or less).
    Please review and fix the issues by reading the signature rules.

    You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

    Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
    Reply With Quote

    Relevant Advertising!

      #2    
    Old July 25th, 2013 (8:36 PM).
    BlackWaltz3's Avatar
    BlackWaltz3 BlackWaltz3 is offline
       
      Join Date: Jul 2009
      Gender: Male
      Posts: 188
      You dropped the closing square bracket and parenthesis after :REPEL onto the next line. Lines are only allowed to end on a comma or a parenthesis/bracket.
      Reply With Quote
        #3    
      Old July 25th, 2013 (11:33 PM).
      Harvey_Create's Avatar
      Harvey_Create Harvey_Create is offline
      Pokemon Apex Team Member
         
        Join Date: Nov 2012
        Location: Iowa
        Gender: Male
        Nature: Naughty
        Posts: 188
        Quote:
        Originally Posted by jim42 View Post
        You dropped the closing square bracket and parenthesis after :REPEL onto the next line. Lines are only allowed to end on a comma or a parenthesis/bracket.
        YOu've got to be kidding me. Thats all thats wrong? O_O
        __________________
        This signature has been disabled.
        Exceeds signature width limit (strictly 600 pixels or less).
        Please review and fix the issues by reading the signature rules.

        You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

        Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
        Reply With Quote
          #4    
        Old July 26th, 2013 (5:43 AM).
        BlackWaltz3's Avatar
        BlackWaltz3 BlackWaltz3 is offline
           
          Join Date: Jul 2009
          Gender: Male
          Posts: 188
          Nah, no kidding here. Ruby is a very syntax-pedantic language from my experience. There are a lot of things that are implicit and assumed where in other languages it would be expressly defined. The reason this can work is because it enforces a very strict syntax for its code. Since lines are ended at the physical end of the line, rather than with a defined character (often a semicolon), you have to ensure that any time that you do have to chop a line down, it is done so in one of the few ways that Ruby can see that "hey, this line is actually still going, man"; that is, commas, parenthesis and brackets.
          Reply With Quote
            #5    
          Old July 26th, 2013 (6:21 AM).
          Harvey_Create's Avatar
          Harvey_Create Harvey_Create is offline
          Pokemon Apex Team Member
             
            Join Date: Nov 2012
            Location: Iowa
            Gender: Male
            Nature: Naughty
            Posts: 188
            Quote:
            Originally Posted by jim42 View Post
            Nah, no kidding here. Ruby is a very syntax-pedantic language from my experience. There are a lot of things that are implicit and assumed where in other languages it would be expressly defined. The reason this can work is because it enforces a very strict syntax for its code. Since lines are ended at the physical end of the line, rather than with a defined character (often a semicolon), you have to ensure that any time that you do have to chop a line down, it is done so in one of the few ways that Ruby can see that "hey, this line is actually still going, man"; that is, commas, parenthesis and brackets.
            Okay, then what about this?
            Spoiler:

            ---------------------------
            Apex 0.60a
            ---------------------------
            Exception: RuntimeError

            Message: Script error within event 1, map 6 (PokeCenter):

            Exception: TypeError

            Message: Section141:382:in `[]'Symbol as array index

            ***Full script:

            pbPokemonMart([
            OKEBALL,
            OTION,
            :ANTIDOTE,
            ARLYZHEAL,
            :ESCAPEROPE,
            :REPEL])


            Interpreter:243:in `pbExecuteScript'

            Compiler:382:in `[]'

            PokemonItems:31:in `pbIsImportantItem?'

            PokemonMart:775:in `pbPokemonMart'

            PokemonMart:774:in `each'

            PokemonMart:774:in `pbPokemonMart'

            (eval)in `pbExecuteScript'

            Interpreter:1599:in `eval'

            Interpreter:243:in `pbExecuteScript'

            Interpreter:1599:in `command_355'



            Interpreter:276:in `pbExecuteScript'

            Interpreter:1599:in `command_355'

            Interpreter:494:in `execute_command'

            Interpreter:193:in `update'

            Interpreter:106:in `loop'

            Interpreter:198:in `update'

            Scene_Map:103:in `update'

            Scene_Map:101:in `loop'

            Scene_Map:114:in `update'

            Scene_Map:68:in `main'



            This exception was logged in ./errorlog.txt.

            Press Ctrl+C to copy this message to the clipboard.
            ---------------------------
            OK
            ---------------------------


            From what i see in the error, it's telling me the array is messed up? I might be reading that wrong. I have editted it around and can't seem to fix it. It says something about Pbisimportantitem?
            __________________
            This signature has been disabled.
            Exceeds signature width limit (strictly 600 pixels or less).
            Please review and fix the issues by reading the signature rules.

            You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

            Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
            Reply With Quote
              #6    
            Old July 26th, 2013 (8:57 AM).
            Maruno's Avatar
            Maruno Maruno is offline
            Lead Dev of Pokémon Essentials
               
              Join Date: Jan 2008
              Location: England
              Posts: 5,189
              Have a look at the top of def pbPokemonMart. Does it look like this:

              Code:
              def pbPokemonMart(stock,speech=nil,cantsell=false)
                for i in 0...stock.length
                  stock[i]=getID(PBItems,stock[i]) if !stock[i].is_a?(Integer)
                  if !stock[i] || stock[i]==0 ||
                     (pbIsImportantItem?(stock[i]) && $PokemonBag.pbQuantity(stock[i])>0)
                    stock[i]=nil
                  end
                end
                stock.compact!
                commands=[]
              Because it should.

              :POTION, with the colon in front of it, is what's known as a symbol. It needs to be turned into an integer, which is what the getID method does. That's the really important line, and it needs to happen before you try using it to look up information from an array (which is what pbIsImportantItem? does).
              __________________
              Go to the Pokémon Essentials Wiki

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

              Follow me on Twitter: @maruno42


              Reply With Quote
                #7    
              Old July 26th, 2013 (8:59 AM).
              BlackWaltz3's Avatar
              BlackWaltz3 BlackWaltz3 is offline
                 
                Join Date: Jul 2009
                Gender: Male
                Posts: 188
                Okay, I've looked at the examples in my clean Essentials 12. It seems that closing brackets/parentheses can be on the next line. My bad. Anyway, that's not relevant to the problem.

                That IsImportantItem thing returns true if the item passed to it is a key item, an HM or a TM if Gen V TMs are in effect. It is called by PokemonMart with a bit of code that examine the array of items passed (your list) and discards any value that is either a) not an item, b) equal to 0 or c) a key item that has already been acquired.

                Now, I can't see anything there that should be subject to IsImportantItem, but you're getting an error there nonetheless. The only thing I can think of is that, in an older version of Essentials, OKEBALL was formatted differently. If you're using one of those versions, then the formatting discrepancy may be the root of the solution. Take a look at the raw Essentials for whatever version you're using, and see what the example Mart script says.
                Reply With Quote
                  #8    
                Old July 26th, 2013 (12:04 PM).
                Harvey_Create's Avatar
                Harvey_Create Harvey_Create is offline
                Pokemon Apex Team Member
                   
                  Join Date: Nov 2012
                  Location: Iowa
                  Gender: Male
                  Nature: Naughty
                  Posts: 188
                  Quote:
                  Originally Posted by Maruno View Post
                  Have a look at the top of def pbPokemonMart. Does it look like this:

                  Code:
                  def pbPokemonMart(stock,speech=nil,cantsell=false)
                    for i in 0...stock.length
                      stock[i]=getID(PBItems,stock[i]) if !stock[i].is_a?(Integer)
                      if !stock[i] || stock[i]==0 ||
                         (pbIsImportantItem?(stock[i]) && $PokemonBag.pbQuantity(stock[i])>0)
                        stock[i]=nil
                      end
                    end
                    stock.compact!
                    commands=[]
                  Because it should.

                  OTION, with the colon in front of it, is what's known as a symbol. It needs to be turned into an integer, which is what the getID method does. That's the really important line, and it needs to happen before you try using it to look up information from an array (which is what pbIsImportantItem? does).
                  The PokemonMart script i have is:
                  Spoiler:

                  Code:
                  # Abstraction layer for Pokemon Essentials
                  class PokemonMartAdapter
                    def getMoney
                      return $Trainer.money
                    end
                  
                    def setMoney(value)
                      $Trainer.money=value
                    end
                  
                    def getInventory()
                      return $PokemonBag
                    end
                  
                    def getPrice(item)
                      return $ItemData[item][ITEMPRICE]
                    end
                  
                    def getItemIcon(item)
                      return sprintf("Graphics/Icons/itemBack") if item==0
                      return !item ? nil : sprintf("Graphics/Icons/item%03d",item)
                    end
                  
                    def getItemIconRect(item)
                      return Rect.new(0,0,48,48)
                    end
                  
                    def getDisplayName(item)
                      itemname=PBItems.getName(item)
                      if pbIsMachine?(item)
                        machine=$ItemData[item][ITEMMACHINE]
                        itemname=_INTL("{1} {2}",itemname,PBMoves.getName(machine))
                      end
                      return itemname
                    end
                  
                    def getName(item)
                      return PBItems.getName(item)
                    end
                  
                    def getDisplayPrice(item)
                      price=getPrice(item)
                      return _ISPRINTF("$ {1:d}",price)
                    end
                  
                    def getDescription(item)
                      return pbGetMessage(MessageTypes::ItemDescriptions,item)
                    end
                  
                    def addItem(item)
                      return $PokemonBag.pbStoreItem(item)
                    end
                  
                    def getQuantity(item)
                      return $PokemonBag.pbQuantity(item)
                    end
                  
                    def canSell?(item)
                      return getPrice(item)>0 && !pbIsImportantItem?(item)
                    end
                  
                    def showQuantity?(item)
                      return !pbIsImportantItem?(item)
                    end
                  
                    def removeItem(item)
                      return $PokemonBag.pbDeleteItem(item)
                    end
                  end
                  
                  
                  
                  # Abstraction layer for RPG Maker XP/VX
                  class RpgxpMartAdapter
                    def getMoney
                      return $game_party.gold
                    end
                  
                    def setMoney(value)
                      $game_party.gain_gold(-$game_party.gold)
                      $game_party.gain_gold(value)
                    end
                  
                    def getPrice(item)
                      return item.price
                    end
                  
                    def getItemIcon(item)
                      if !item
                        return nil
                      elsif item==0 
                        return sprintf("Graphics/Icons/itemBack")
                      elsif item.respond_to?("icon_index")
                        return "Graphics/System/IconSet"
                      else
                        return sprintf("Graphics/Icons/%s",item.icon_name)
                      end
                    end
                  
                    def getItemIconRect(item)
                      if item && item.respond_to?("icon_index")
                        ix=item.icon_index % 16 * 24
                        iy=item.icon_index / 16 * 24
                        return Rect.new(ix,iy,24,24)
                      else
                        return Rect.new(0,0,32,32)
                      end
                    end
                  
                    def getInventory()
                      data = []
                      for i in 1...$data_items.size
                        if getQuantity($data_items[i]) > 0
                          data.push($data_items[i])
                        end
                      end
                      for i in 1...$data_weapons.size
                        if getQuantity($data_weapons[i]) > 0
                          data.push($data_weapons[i])
                       end
                      end
                      for i in 1...$data_armors.size
                        if getQuantity($data_armors[i]) > 0
                          data.push($data_armors[i])
                        end
                      end
                      return data
                    end
                  
                    def canSell?(item)
                      return item ? item.price>0 : false
                    end
                  
                    def getName(item)
                      return item ? item.name : ""
                    end
                  
                    def getDisplayName(item)
                      return item ? item.name : ""
                    end
                  
                    def getDisplayPrice(item)
                      price=item.price
                      return _ISPRINTF("{1:d}",price)
                    end
                  
                    def getDescription(item)
                      return item ? item.description : ""
                    end
                  
                    def addItem(item)
                      ret=(getQuantity(item)<99)
                      if $game_party.respond_to?("gain_weapon")
                        case item
                          when RPG::Item
                            $game_party.gain_item(item.id, 1) if ret
                          when RPG::Weapon
                            $game_party.gain_weapon(item.id, 1) if ret
                          when RPG::Armor
                            $game_party.gain_armor(item.id, 1) if ret
                        end
                      else
                        $game_party.gain_item(item,1) if ret
                      end
                      return ret
                    end
                  
                    def getQuantity(item)
                      ret=0
                      if $game_party.respond_to?("weapon_number")
                        case item
                          when RPG::Item
                            ret=$game_party.item_number(item.id)
                          when RPG::Weapon
                            ret=($game_party.weapon_number(item.id))
                          when RPG::Armor
                            ret=($game_party.armor_number(item.id))
                        end
                      else
                        return $game_party.item_number(item)
                      end
                      return ret
                    end
                  
                    def showQuantity?(item)
                      return true
                    end
                  
                    def removeItem(item)
                      ret=(getQuantity(item)>0)
                      if $game_party.respond_to?("lose_weapon")
                        case item
                          when RPG::Item
                            $game_party.lose_item(item.id, 1) if ret
                          when RPG::Weapon
                            $game_party.lose_weapon(item.id, 1) if ret
                          when RPG::Armor
                            $game_party.lose_armor(item.id, 1) if ret
                        end
                      else
                        $game_party.lose_item(item,1) if ret
                      end
                      return ret
                    end
                  end
                  
                  
                  ###################
                  
                  
                  class Window_PokemonMart < Window_DrawableCommand
                    def initialize(stock,adapter,x,y,width,height,viewport=nil)
                      @stock=stock
                      @adapter=adapter
                      super(x,y,width,height,viewport)
                      @selarrow=AnimatedBitmap.new("Graphics/Pictures/martSel")
                      @baseColor=Color.new(88,88,80)
                      @shadowColor=Color.new(168,184,184)
                      self.windowskin=nil
                    end
                  
                    def itemCount
                      return @stock.length+1
                    end
                  
                    def item
                      return self.index>[email protected] ? 0 : @stock[self.index]
                    end
                  
                    def drawItem(index,count,rect)
                      textpos=[]
                      rect=drawCursor(index,rect)
                      ypos=rect.y
                      if index==count-1
                        textpos.push([_INTL("CANCEL"),rect.x,ypos+2,false,
                           self.baseColor,self.shadowColor])
                      else
                        [email protected][index]
                        [email protected](item)
                        [email protected](item)
                        sizeQty=self.contents.text_size(qty).width
                        xQty=rect.x+rect.width-sizeQty-2-16
                        textpos.push([itemname,rect.x,ypos+2,false,self.baseColor,self.shadowColor])
                        textpos.push([qty,xQty,ypos+2,false,self.baseColor,self.shadowColor])
                      end
                      pbDrawTextPositions(self.contents,textpos)
                    end
                  end
                  
                  
                  
                  class BuyAdapter # :nodoc:
                    def initialize(adapter)
                      @adapter=adapter
                    end
                  
                    def getDisplayName(item)
                      @adapter.getDisplayName(item)
                    end
                  
                    def getDisplayPrice(item)
                      @adapter.getDisplayPrice(item)
                    end
                  end
                  
                  
                  
                  class SellAdapter # :nodoc:
                    def initialize(adapter)
                      @adapter=adapter
                    end
                  
                    def getDisplayName(item)
                      @adapter.getDisplayName(item)
                    end
                  
                    def getDisplayPrice(item)
                      if @adapter.showQuantity?(item)
                        return sprintf("x%d",@adapter.getQuantity(item))
                      else
                        return ""
                      end
                    end
                  end
                  
                  
                  
                  class PokemonMartScene
                    def update
                      pbUpdateSpriteHash(@sprites)
                      @subscene.update if @subscene
                    end
                  
                    def pbChooseNumber(helptext,item,maximum)
                      curnumber=1
                      ret=0
                      [email protected]["helpwindow"]
                      [email protected](item)
                      itemprice/=2 if [email protected]
                      pbDisplay(helptext,true)
                      using(numwindow=Window_AdvancedTextPokemon.new("")){ # Showing number of items
                         [email protected](item)
                         using(inbagwindow=Window_AdvancedTextPokemon.new("")){ # Showing quantity in bag
                            pbPrepareWindow(numwindow)
                            pbPrepareWindow(inbagwindow)
                            [email protected]
                            numwindow.width=224
                            numwindow.height=64
                            numwindow.baseColor=Color.new(88,88,80)
                            numwindow.shadowColor=Color.new(168,184,184)
                            [email protected]
                            [email protected]
                            inbagwindow.width=190
                            inbagwindow.height=64
                            inbagwindow.baseColor=Color.new(88,88,80)
                            inbagwindow.shadowColor=Color.new(168,184,184)
                            inbagwindow.text=_ISPRINTF("In Bag:{1:d}  ",qty)
                            numwindow.text=_ISPRINTF("x{1:d}$ {2:d}",curnumber,curnumber*itemprice)
                            pbBottomRight(numwindow)
                            numwindow.y-=helpwindow.height
                            pbBottomLeft(inbagwindow)
                            inbagwindow.y-=helpwindow.height
                            loop do
                              Graphics.update
                              Input.update
                              numwindow.update
                              inbagwindow.update
                              self.update
                              if Input.repeat?(Input::LEFT)
                                pbPlayCursorSE()
                                curnumber-=10
                                curnumber=1 if curnumber<1
                                numwindow.text=_ISPRINTF("x{1:d}$ {2:d}",curnumber,curnumber*itemprice)
                              elsif Input.repeat?(Input::RIGHT)
                                pbPlayCursorSE()
                                curnumber+=10
                                curnumber=maximum if curnumber>maximum
                                numwindow.text=_ISPRINTF("x{1:d}$ {2:d}",curnumber,curnumber*itemprice)
                              elsif Input.repeat?(Input::UP)
                                pbPlayCursorSE()
                                curnumber+=1
                                curnumber=1 if curnumber>maximum
                                numwindow.text=_ISPRINTF("x{1:d}$ {2:d}",curnumber,curnumber*itemprice)
                              elsif Input.repeat?(Input::DOWN)
                                pbPlayCursorSE()
                                curnumber-=1
                                curnumber=maximum if curnumber<1
                                numwindow.text=_ISPRINTF("x{1:d}$ {2:d}",curnumber,curnumber*itemprice)
                              elsif Input.trigger?(Input::C)
                                pbPlayDecisionSE()
                                ret=curnumber
                                break
                              elsif Input.trigger?(Input::B)
                                pbPlayCancelSE()
                                ret=0
                                break
                              end     
                            end
                         }
                      }
                      helpwindow.visible=false
                      return ret
                    end
                  
                    def pbPrepareWindow(window)
                      window.visible=true
                      window.letterbyletter=false
                    end
                  
                    def pbStartBuyOrSellScene(buying,stock,adapter)
                      # Scroll right before showing screen
                      pbScrollMap(6,5,5)
                      @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
                      @viewport.z=99999
                      @stock=stock
                      @adapter=adapter
                      @sprites={}
                      @sprites["background"]=IconSprite.new(0,0,@viewport)
                      @sprites["background"].setBitmap("Graphics/Pictures/martScreen")
                      @sprites["icon"]=IconSprite.new(12,Graphics.height-74,@viewport)
                      winAdapter=buying ? BuyAdapter.new(adapter) : SellAdapter.new(adapter)
                      @sprites["itemwindow"]=Window_PokemonMart.new(stock,winAdapter,
                         Graphics.width-316-16,12,330+16,Graphics.height-126)
                      @sprites["itemwindow"][email protected]
                      @sprites["itemwindow"].index=0
                      @sprites["itemwindow"].refresh
                      @sprites["itemtextwindow"]=Window_UnformattedTextPokemon.new("")
                      pbPrepareWindow(@sprites["itemtextwindow"])
                      @sprites["itemtextwindow"].x=64
                      @sprites["itemtextwindow"].y=Graphics.height-96-16
                      @sprites["itemtextwindow"].width=Graphics.width-64
                      @sprites["itemtextwindow"].height=128
                      @sprites["itemtextwindow"].baseColor=Color.new(248,248,248)
                      @sprites["itemtextwindow"].shadowColor=Color.new(0,0,0)
                      @sprites["itemtextwindow"].visible=true
                      @sprites["itemtextwindow"][email protected]
                      @sprites["itemtextwindow"].windowskin=nil
                      @sprites["helpwindow"]=Window_AdvancedTextPokemon.new("")
                      pbPrepareWindow(@sprites["helpwindow"])
                      @sprites["helpwindow"].visible=false
                      @sprites["helpwindow"][email protected]
                      pbBottomLeftLines(@sprites["helpwindow"],1)
                      @sprites["moneywindow"]=Window_AdvancedTextPokemon.new("")
                      pbPrepareWindow(@sprites["moneywindow"])
                      @sprites["moneywindow"].visible=true
                      @sprites["moneywindow"][email protected]
                      @sprites["moneywindow"].x=0
                      @sprites["moneywindow"].y=0
                      @sprites["moneywindow"].width=190
                      @sprites["moneywindow"].height=96
                      @sprites["moneywindow"].baseColor=Color.new(88,88,80)
                      @sprites["moneywindow"].shadowColor=Color.new(168,184,184)
                      pbDeactivateWindows(@sprites)
                      @buying=buying
                      pbRefresh
                      Graphics.frame_reset
                    end
                  
                    def pbStartBuyScene(stock,adapter)
                      pbStartBuyOrSellScene(true,stock,adapter)
                    end
                    
                    def pbStartSellScene(bag,adapter)
                      if $PokemonBag
                        pbStartSellScene2(bag,adapter)
                      else
                        pbStartBuyOrSellScene(false,bag,adapter)
                      end
                    end
                  
                    def pbStartSellScene2(bag,adapter)
                      @subscene=PokemonBag_Scene.new
                      @adapter=adapter
                      @viewport2=Viewport.new(0,0,Graphics.width,Graphics.height)
                      @viewport2.z=99999
                      for j in 0..17
                        col=Color.new(0,0,0,j*15)
                        @viewport2.color=col
                        Graphics.update
                        Input.update
                      end
                      @subscene.pbStartScene(bag)
                      @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
                      @viewport.z=99999
                      @sprites={}
                      @sprites["helpwindow"]=Window_AdvancedTextPokemon.new("")
                      pbPrepareWindow(@sprites["helpwindow"])
                      @sprites["helpwindow"].visible=false
                      @sprites["helpwindow"][email protected]
                      pbBottomLeftLines(@sprites["helpwindow"],1)
                      @sprites["moneywindow"]=Window_AdvancedTextPokemon.new("")
                      pbPrepareWindow(@sprites["moneywindow"])
                      @sprites["moneywindow"].visible=false
                      @sprites["moneywindow"][email protected]
                      @sprites["moneywindow"].x=0
                      @sprites["moneywindow"].y=0
                      @sprites["moneywindow"].width=186
                      @sprites["moneywindow"].height=96
                      @sprites["moneywindow"].baseColor=Color.new(88,88,80)
                      @sprites["moneywindow"].shadowColor=Color.new(168,184,184)
                      pbDeactivateWindows(@sprites)
                      @buying=false
                      pbRefresh
                    end
                  
                    def pbShowMoney
                      pbRefresh
                      @sprites["moneywindow"].visible=true
                    end
                  
                    def pbHideMoney
                      pbRefresh
                      @sprites["moneywindow"].visible=false
                    end
                  
                    def pbEndBuyScene
                      pbDisposeSpriteHash(@sprites)
                      @viewport.dispose
                      # Scroll left after showing screen
                      pbScrollMap(4,5,5)
                    end
                  
                    def pbEndSellScene
                      if @subscene
                        @subscene.pbEndScene
                      end
                      pbDisposeSpriteHash(@sprites)
                      if @viewport2
                        for j in 0..17
                          col=Color.new(0,0,0,(17-j)*15)
                          @viewport2.color=col
                          Graphics.update
                          Input.update
                        end
                        @viewport2.dispose
                      end
                      @viewport.dispose
                      if [email protected]
                        pbScrollMap(4,5,5)
                      end
                    end
                  
                    def pbDisplay(msg,brief=false)
                      [email protected]["helpwindow"]
                      cw.letterbyletter=true
                      cw.text=msg
                      pbBottomLeftLines(cw,2)
                      cw.visible=true
                      i=0
                      pbPlayDecisionSE()
                      loop do
                        Graphics.update
                        Input.update
                        self.update
                        if brief && !cw.busy?
                          return
                        end
                        if i==0 && !cw.busy?
                          pbRefresh
                        end
                        if Input.trigger?(Input::C) && cw.busy?
                          cw.resume
                        end
                        if i==60
                          return
                        end
                        i+=1 if !cw.busy?
                      end
                    end
                  
                    def pbDisplayPaused(msg)
                      [email protected]["helpwindow"]
                      cw.letterbyletter=true
                      cw.text=msg
                      pbBottomLeftLines(cw,2)
                      cw.visible=true
                      i=0
                      pbPlayDecisionSE()
                      loop do
                        Graphics.update
                        Input.update
                        wasbusy=cw.busy?
                        self.update
                        if !cw.busy? && wasbusy
                          pbRefresh
                        end
                        if Input.trigger?(Input::C) && cw.resume && !cw.busy?
                          @sprites["helpwindow"].visible=false
                          return
                        end
                      end
                    end
                  
                    def pbConfirm(msg)
                      [email protected]["helpwindow"]
                      dw.letterbyletter=true
                      dw.text=msg
                      dw.visible=true
                      pbBottomLeftLines(dw,2)
                      commands=[_INTL("Yes"),_INTL("No")]
                      cw = Window_CommandPokemon.new(commands)
                      [email protected]
                      pbBottomRight(cw)
                      cw.y-=dw.height
                      cw.index=0
                      pbPlayDecisionSE()
                      loop do
                        cw.visible=!dw.busy?
                        Graphics.update
                        Input.update
                        cw.update
                        self.update
                        if Input.trigger?(Input::B) && dw.resume && !dw.busy?
                          cw.dispose
                          @sprites["helpwindow"].visible=false
                          return false
                        end
                        if Input.trigger?(Input::C) && dw.resume && !dw.busy?
                          cw.dispose
                          @sprites["helpwindow"].visible=false
                          return (cw.index==0)?true:false
                        end
                      end
                    end
                  
                    def pbRefresh
                      if [email protected]
                        [email protected]["itemwindow"]
                        [email protected](itemwindow.item)
                        @sprites["icon"].setBitmap(filename)
                        @sprites["icon"][email protected](itemwindow.item)   
                        @sprites["itemtextwindow"].text=(itemwindow.item==0) ? _INTL("Quit shopping.") :
                           @adapter.getDescription(itemwindow.item)
                        itemwindow.refresh
                      end
                      @sprites["moneywindow"].text=_INTL("Money\n$ {1}",@adapter.getMoney())
                    end
                  
                    def pbChooseBuyItem
                      [email protected]["itemwindow"]
                      @sprites["helpwindow"].visible=false
                      pbActivateWindow(@sprites,"itemwindow"){
                         pbRefresh
                         loop do
                           Graphics.update
                           Input.update
                           olditem=itemwindow.item
                           self.update
                           if itemwindow.item!=olditem
                             [email protected](itemwindow.item)
                             @sprites["icon"].setBitmap(filename)
                             @sprites["icon"][email protected](itemwindow.item)   
                             @sprites["itemtextwindow"].text=(itemwindow.item==0) ? _INTL("Quit shopping.") :
                                @adapter.getDescription(itemwindow.item)
                           end
                           if Input.trigger?(Input::B)
                             return 0
                           end
                           if Input.trigger?(Input::C)
                             if itemwindow.index<@stock.length
                               pbRefresh
                               return @stock[itemwindow.index]
                             else
                               return 0
                             end
                           end
                         end
                      }
                    end
                  
                    def pbChooseSellItem
                      if @subscene
                        return @subscene.pbChooseItem
                      else
                        return pbChooseBuyItem
                      end
                    end
                  end
                  
                  
                  #######################################################
                  
                  
                  class PokemonMartScreen
                    def initialize(scene,stock)
                      @scene=scene
                      @stock=stock
                      @adapter=$PokemonBag ? PokemonMartAdapter.new : RpgxpMartAdapter.new
                    end
                  
                    def pbConfirm(msg)
                      return @scene.pbConfirm(msg)
                    end
                  
                    def pbDisplay(msg)
                      return @scene.pbDisplay(msg)
                    end
                  
                    def pbDisplayPaused(msg)
                      return @scene.pbDisplayPaused(msg)
                    end
                  
                    def pbBuyScreen
                      @scene.pbStartBuyScene(@stock,@adapter)
                      item=0
                      loop do
                        [email protected]
                        quantity=0
                        break if item==0
                        [email protected](item)
                        [email protected](item)
                        if @adapter.getMoney()99
                          [email protected](
                             _INTL("{1}?  Certainly.\r\nHow many would you like?",itemname),item,maxafford)
                          if quantity==0
                            next
                          end
                          price*=quantity
                          if !pbConfirm(_INTL("{1}, and you want {2}.\r\nThat will be ${3}.  OK?",itemname,quantity,price))
                            next
                          end
                        end
                        if @adapter.getMoney()0
                              @stock[i]=nil
                            end
                          end
                          @stock.compact!
                          pbDisplayPaused(_INTL("Here you are!\r\nThank you!"))
                          if $PokemonBag
                            if quantity>=10 && isConst?(item,PBItems,:POKEBALL) && 
                               hasConst?(PBItems,:PREMIERBALL)
                              if @adapter.addItem(getConst(PBItems,:PREMIERBALL))
                                pbDisplayPaused(_INTL("I'll throw in a Premier Ball, too.")) 
                              end
                            end
                          end
                        end
                      end
                      @scene.pbEndBuyScene
                    end
                  
                    def pbSellScreen
                      [email protected](@adapter.getInventory,@adapter)
                      loop do
                        [email protected]
                        break if item==0
                        [email protected](item)
                        [email protected](item)
                        if [email protected]?(item)
                          pbDisplayPaused(_INTL("{1}?  Oh, no.\r\nI can't buy that.",itemname))
                          next
                        end
                        [email protected](item)
                        next if qty==0
                        @scene.pbShowMoney
                        if qty>1
                          [email protected](
                             _INTL("{1}?\r\nHow many would you like to sell?",itemname),item,qty)
                        end
                        if qty==0
                          @scene.pbHideMoney
                          next
                        end
                        price/=2
                        price*=qty
                        if pbConfirm(_INTL("I can pay ${1}.\r\nWould that be OK?",price))
                          @adapter.setMoney(@adapter.getMoney()+price)
                          for i in 0...qty
                            @adapter.removeItem(item)
                          end
                          pbDisplayPaused(_INTL("Turned over the {1} and received ${2}.",itemname,price))
                        end
                        @scene.pbHideMoney
                      end
                      @scene.pbEndSellScene
                    end
                  end
                  
                  
                  
                  def pbPokemonMart(stock,speech=nil,cantsell=false)
                    for i in 0...stock.length
                      if pbIsImportantItem?(stock[i]) && $PokemonBag.pbQuantity(stock[i])>0
                        stock[i]=nil
                      end
                    end
                    stock.compact!
                    commands=[]
                    cmdBuy=-1
                    cmdSell=-1
                    cmdQuit=-1
                    commands[cmdBuy=commands.length]=_INTL("Buy")
                    commands[cmdSell=commands.length]=_INTL("Sell") if !cantsell
                    commands[cmdQuit=commands.length]=_INTL("Quit")
                    cmd=Kernel.pbMessage(
                       speech ? speech : _INTL("Welcome!\r\nHow may I serve you?"),
                       commands,cmdQuit+1)
                    loop do
                      if cmdBuy>=0 && cmd==cmdBuy
                        scene=PokemonMartScene.new
                        screen=PokemonMartScreen.new(scene,stock)
                        screen.pbBuyScreen
                      elsif cmdSell>=0 && cmd==cmdSell
                        scene=PokemonMartScene.new
                        screen=PokemonMartScreen.new(scene,stock)
                        screen.pbSellScreen
                      else
                        Kernel.pbMessage(_INTL("Please come again!"))
                        break
                      end
                      cmd=Kernel.pbMessage(
                         _INTL("Is there anything else I can help you with?"),commands,cmdQuit+1)
                    end
                  end
                  
                  
                  
                  class Interpreter
                    def getItem(p)
                      if p[0]==0
                        return $data_items[p[1]]
                      elsif p[0]==1
                        return $data_weapons[p[1]]
                      elsif p[0]==2
                        return $data_armors[p[1]]
                      end
                      return nil
                    end
                  
                    def command_302
                      $game_temp.battle_abort = true
                      shop_goods = [getItem(@parameters)]
                      # Loop
                      loop do
                        # Advance index
                        @index += 1
                        # If next event command has shop on second line or after
                        if @list[@index].code == 605
                          # Add goods list to new item
                          shop_goods.push(getItem(@list[@index].parameters))
                        else
                          # End
                          pbPokemonMart(shop_goods.compact)
                          return true
                        end
                      end
                    end
                  end
                  
                  
                  
                  class Game_Interpreter
                    def getItem(p)
                      if p[0]==0
                        return $data_items[p[1]]
                      elsif p[0]==1
                        return $data_weapons[p[1]]
                      elsif p[0]==2
                        return $data_armors[p[1]]
                      end
                      return nil
                    end
                  
                    def command_302
                      shop_goods = [getItem(@params)]
                      # Loop
                      loop do
                        # Advance index
                        @index += 1
                        # If next event command has shop on second line or after
                        if @list[@index].code == 605
                          # Add goods list to new item
                          shop_goods.push(getItem(@list[@index].parameters))
                        else
                          # End
                          pbPokemonMart(shop_goods.compact,nil,@params[2])
                          return true
                        end
                      end
                    end
                  end
                  __________________
                  This signature has been disabled.
                  Exceeds signature width limit (strictly 600 pixels or less).
                  Please review and fix the issues by reading the signature rules.

                  You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

                  Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
                  Reply With Quote
                    #9    
                  Old July 26th, 2013 (1:32 PM).
                  Maruno's Avatar
                  Maruno Maruno is offline
                  Lead Dev of Pokémon Essentials
                     
                    Join Date: Jan 2008
                    Location: England
                    Posts: 5,189
                    You're using an old version of Essentials which doesn't support this:

                    Code:
                    pbPokemonMart([
                    :POKEBALL,
                    :POTION,
                    :ANTIDOTE,
                    :PARLYZHEAL,
                    :ESCAPEROPE,
                    :REPEL
                    ])
                    You need to use this instead:
                    Code:
                    pbPokemonMart([
                    PBItems::POKEBALL,
                    PBItems::POTION,
                    PBItems::ANTIDOTE,
                    PBItems::PARLYZHEAL,
                    PBItems::ESCAPEROPE,
                    PBItems::REPEL
                    ])
                    Also, you obviously didn't read what I said, even though what I said was the answer.
                    __________________
                    Go to the Pokémon Essentials Wiki

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

                    Follow me on Twitter: @maruno42


                    Reply With Quote
                      #10    
                    Old July 26th, 2013 (2:13 PM).
                    Harvey_Create's Avatar
                    Harvey_Create Harvey_Create is offline
                    Pokemon Apex Team Member
                       
                      Join Date: Nov 2012
                      Location: Iowa
                      Gender: Male
                      Nature: Naughty
                      Posts: 188
                      Quote:
                      Originally Posted by Maruno View Post
                      You're using an old version of Essentials which doesn't support this:

                      Code:
                      pbPokemonMart([
                      :POKEBALL,
                      :POTION,
                      :ANTIDOTE,
                      :PARLYZHEAL,
                      :ESCAPEROPE,
                      :REPEL
                      ])
                      You need to use this instead:
                      Code:
                      pbPokemonMart([
                      PBItems::POKEBALL,
                      PBItems::POTION,
                      PBItems::ANTIDOTE,
                      PBItems::PARLYZHEAL,
                      PBItems::ESCAPEROPE,
                      PBItems::REPEL
                      ])
                      Also, you obviously didn't read what I said, even though what I said was the answer.
                      Well, considering since as short as it was, i thought it was a snippet, not the entire code. Second, I did read your answer, you didnt tell me to add "PBItems:" to the front of all of the things i want to sell.
                      But anyways, Thanks, because it works now.(I REALLY need to learn to script dammit)
                      __________________
                      This signature has been disabled.
                      Exceeds signature width limit (strictly 600 pixels or less).
                      Please review and fix the issues by reading the signature rules.

                      You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

                      Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
                      Reply With Quote
                        #11    
                      Old July 26th, 2013 (2:28 PM).
                      Maruno's Avatar
                      Maruno Maruno is offline
                      Lead Dev of Pokémon Essentials
                         
                        Join Date: Jan 2008
                        Location: England
                        Posts: 5,189
                        Quote:
                        Originally Posted by Maruno View Post
                        Have a look at the top of def pbPokemonMart. Does it look like this:
                        .
                        .
                        .
                        Because it should.
                        In other words: "make this part of your code look like this." I don't think it was that subtle a message.

                        The alternative solution is to put PBItems: everywhere. I said this because I was surprised you didn't pick up on the first solution.
                        __________________
                        Go to the Pokémon Essentials Wiki

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

                        Follow me on Twitter: @maruno42


                        Reply With Quote
                          #12    
                        Old July 26th, 2013 (4:16 PM).
                        Nickalooose Nickalooose is offline
                        --------------------
                           
                          Join Date: Mar 2008
                          Gender: Female
                          Posts: 1,309
                          Harvey, why don't you just upgraded to 12.1... Saves all these unnecessary problems, and we can all help you quicker and more effective, sometimes we don't have time to look up older versions for simple problems as this, just some advice, because all these errors you're posting and things you want doing, you're not telling people you're using an older version which is confusing everyone. Consider it. I would.
                          Reply With Quote
                            #13    
                          Old July 27th, 2013 (12:49 AM).
                          Harvey_Create's Avatar
                          Harvey_Create Harvey_Create is offline
                          Pokemon Apex Team Member
                             
                            Join Date: Nov 2012
                            Location: Iowa
                            Gender: Male
                            Nature: Naughty
                            Posts: 188
                            Quote:
                            Originally Posted by Nickalooose View Post
                            Harvey, why don't you just upgraded to 12.1... Saves all these unnecessary problems, and we can all help you quicker and more effective, sometimes we don't have time to look up older versions for simple problems as this, just some advice, because all these errors you're posting and things you want doing, you're not telling people you're using an older version which is confusing everyone. Consider it. I would.
                            Well, i would upgrade, but I am not the one fully in charge of Apex, so i can't do things like that. I'll take to Dillon later about upgrading to 12.1
                            __________________
                            This signature has been disabled.
                            Exceeds signature width limit (strictly 600 pixels or less).
                            Please review and fix the issues by reading the signature rules.

                            You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

                            Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
                            Reply With Quote
                            Reply

                            Quick Reply

                            Join the conversation!

                            Create an account to post a reply in this thread, participate in other discussions, and more!

                            Create a PokéCommunity Account

                            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 3:09 AM.