The PokéCommunity Forums Fan Games Game Development Scripts & Tutorials
Essentials Tutorial Pokemon-Amie in Essentials, plus the Affection, Fullness, and Enjoyment stats

Scripts & Tutorials This forum is for scripts and code, as well as all kinds of tutorials, software, tools and so forth. Remember to give credit!
The thread revival limit does not apply here.

Reply
 
Thread Tools
  #1    
Old February 22nd, 2017 (6:09 AM). Edited February 25th, 2017 by rigbycwts.
rigbycwts's Avatar
rigbycwts rigbycwts is offline
Hmm, hmm.
     
    Join Date: Mar 2013
    Gender: Male
    Nature: Timid
    Posts: 98
    This tutorial implements the Affection, Fullness, and Enjoyment stats. Also includes a toned-down version of Pokemon-Amie.

    You know this drill: to avoid breaking codes, set the thread to Printable.

    1. Modify PokeBattle_Pokemon:
    Spoiler:


    1.1. In the row where the attr_accessors are located, add these lines:
    Code:
      attr_accessor(:amie_affection)
      attr_accessor(:amie_fullness)
      attr_accessor(:amie_enjoyment) # Pokemon-Amie stats
      
      MAXAMIEPOINTS = 255 # Max points that a single Amie/Refresh stat can have
    1.2. Below the changeHappiness(method) function, add the following lines:
    Code:
    ################################################################################
    # Pokemon-Amie/Pokemon Refresh stats.
    ################################################################################
    
      # Getters - return each stat values in points
      def amie_affection
        @amie_affection=0 if [email protected]_affection
        return @amie_affection
      end
      
      def amie_fullness
        @amie_fullness=0 if [email protected]_fullness
        return @amie_fullness
      end
      
      def amie_enjoyment
        @amie_enjoyment=0 if [email protected]_enjoyment
        return @amie_enjoyment
      end
      
      # Setters - sets each stat values in points
      def amie_affection=(value)
        # Failsafes.
        if value > MAXAMIEPOINTS
          @amie_affection = MAXAMIEPOINTS
        elsif value < 0
          @amie_affection = 0
        else
          @amie_affection = value
        end
      end
      
      def amie_fullness=(value)
        # Failsafes.
        if value > MAXAMIEPOINTS
          @amie_fullness = MAXAMIEPOINTS
        elsif value < 0
          @amie_fullness = 0
        else
          @amie_fullness = value
        end
      end
      
      def amie_enjoyment=(value)
        # Failsafes.
        if value > MAXAMIEPOINTS
          @amie_enjoyment = MAXAMIEPOINTS
        elsif value < 0
          @amie_enjoyment = 0
        else
          @amie_enjoyment = value
        end
      end
      
      # Converts the points for every Amie stat into an abstracted level.
      def getAmieStatLevel(points)
        case points
        when 0
          return 0
        when 1...50
          return 1
        when 50...100
          return 2
        when 100...150
          return 3
        when 150...255
          return 4
        when 255
          return 5
        end
      end
      
      # Returns the Affection level. Needed for other scripts, e.g. evolution methods
      def getAffectionLevel
        return getAmieStatLevel(@amie_affection)
      end
    
      # Changes the happiness of this Pokémon depending on what happened to change it.
      # Feel free to add your own methods.
      def changeAmieStats(method)
        affGain=0
        fullGain=0
        enjoyGain=0
        case method
        when "walking" # Walk approx. 50 steps
          fullGain=-1
          enjoyGain=-1
        when "sendInBattle" # Send Pokemon in to a battle
          fullGain=-25
          enjoyGain=-25
        when "feedPlainBean" # Feed Pokémon a whole Plain Bean
          affGain=3
          fullGain=rand(2)+100
        when "feedPatternBean" # Feed Pokémon a whole Pattern Bean
          affGain=5
          fullGain=rand(2)+100
        when "feedRainbowBean" # Feed Pokémon a whole Rainbow Bean
          affGain=125
          fullGain=rand(2)+100
        when "feedMalasada" # Feed Pokemon a malasada (SunMoon) or a Shirogi bread (ColMerc)
          fullGain=255
          affGain=5
        when "feedMalasadaDisliked"
          fullGain=255
          affGain=3
        when "feedMalasadaLiked"
          fullGain=255
          affGain=10
        when "pet" # Pet Pokemon. No spots implemented due to engine limitations.
          affGain=rand(2)+2
          enjoyGain=rand(20)+20
        else
          Kernel.pbMessage(_INTL("Unknown stat-changing method."))
        end
        @amie_affection+=affGain
        @amie_affection=[[MAXAMIEPOINTS,@amie_affection].min,0].max
        @amie_fullness+=fullGain
        @amie_fullness=[[MAXAMIEPOINTS,@amie_fullness].min,0].max
        @amie_enjoyment+=enjoyGain
        @amie_enjoyment=[[MAXAMIEPOINTS,@amie_enjoyment].min,0].max
      end
      
      # Sets the Pokemon's Affection to 0.
      # Usually used when traded.
      def resetAffection
        @amie_affection = 0
      end
    1.3. Inside def initialize, below calcStats, add these lines:
    Code:
        @amie_affection=0
        @amie_fullness=0
        @amie_enjoyment=0


    2. Modify PokeBattle_Battler:
    Spoiler:


    2.1. Above this line:
    Code:
    def inHyperMode?; return false; end
    add these lines:
    Code:
      attr_accessor :amie_affection
      attr_accessor :amie_fullness
      attr_accessor :amie_enjoyment
    2.2. Above the initialize method, add all of these methods:
    Code:
    # Getters - return each stat values in points
      def amie_affection
        return (@pokemon) ? @pokemon.amie_affection : 0
      end
      
      def amie_fullness
        return (@pokemon) ? @pokemon.amie_fullness : 0
      end
      
      def amie_enjoyment
        return (@pokemon) ? @pokemon.amie_enjoyment : 0
      end
      
      def getAffectionLevel
        return (@pokemon) ? @pokemon.getAmieStatLevel(@pokemon.amie_affection) : 0
      end


    3. Modify PokeBattle_Battle:
    Spoiler:


    3.1. Find this line inside pbSwitch:
    Code:
    pbDisplayBrief(_INTL("{1}, that's enough! Come back!",@battlers[0].name))
    Then replace it with these two lines:
    Code:
                    pbDisplayBrief(_INTL("{1}, that's enough! Come back!",@battlers[0].name)) if @battlers[0].getAffectionLevel < 3
                    pbDisplayBrief(_INTL("Come on back, {1}! You did great out there!",@battlers[0].name)) if @battlers[0].getAffectionLevel >= 3
    3.2. Find this line inside pbAttackPhase:
    Code:
    pbDisplayBrief(_INTL("{1}, that's enough!\r\nCome back!",i.name))
    Replace it with these two lines:
    Code:
              pbDisplayBrief(_INTL("{1}, that's enough!\r\nCome back!",i.name)) if i.getAffectionLevel < 3
              pbDisplayBrief(_INTL("Come on back, {1}!\r\nYou did great out there!",i.name)) if i.getAffectionLevel >= 3


    4. Add the following script below the EBS scripts if you have them, but put it above Main.
    Spoiler:

    Code:
    class PokeAmieButton < 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.isFemale? && 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
        refresh
        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/2,10,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,18,10,0,0,-1,-1],
           [icon,18,62,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
        super
      end
    end
    
    #===============================================================================
    #  This class performs menu screen processing.
    #-------------------------------------------------------------------------------
    #  Adapted by rigbycwts for use with Pokemon-Amie for Essentials.
    #===============================================================================
    class PokeAmie_Essentials
      #-----------------------------------------------------------------------------
      # * Object Initialization
      #     menu_index : command cursor's initial position
      #-----------------------------------------------------------------------------
      def initialize(pokemon, partyIndex, menu_index = 0)
        @pokemon = pokemon
        @partyIndex = partyIndex
        @menu_index = menu_index
      end
      #-----------------------------------------------------------------------------
      # * Main Processing
      #-----------------------------------------------------------------------------
      def main
        # Make command window
        fadein = true
        # Makes the text window
        @sprites={}
        @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
        @viewport.z=99999
        @sprites["bgmap"] = IconSprite.new(-90,-90)
        @sprites["bgmap"].setBitmap(self.pbBackdrop)
        @sprites["bgmap"].z=200
        @sprites["background"] = IconSprite.new(0,0)
        @sprites["background"].setBitmap("Graphics/Pictures/PokeAmie/Choices")
        @sprites["background"].z=255
        @sprites["pokemon"]=PokemonSprite.new(@viewport)
        @sprites["pokemon"].setPokemonBitmap(@pokemon)
        @sprites["pokemon"].mirror=false
        @sprites["pokemon"].color=Color.new(0,0,0,0)
        pbPositionPokemonSprite(@sprites["pokemon"],40,144)
        @choices=[
           _INTL("Pet"),
           _INTL("Feed"),
           _INTL("Exit")
        ]
        @sprites["header"]=Window_UnformattedTextPokemon.newWithSize(_INTL("Pokemon-Amie for Essentials"),
           2,-18,640,64,@viewport)
        @sprites["header"].baseColor=Color.new(248,248,248)
        @sprites["header"].shadowColor=Color.new(0,0,0)
        @sprites["header"].windowskin=nil
        @sprites["command_window"] = Window_CommandPokemon.new(@choices,324)
        @sprites["command_window"].windowskin=nil
        @sprites["command_window"].index = @menu_index
        @sprites["command_window"].height = 224
        @sprites["command_window"].width = 124
        @sprites["command_window"].x = 320
        @sprites["command_window"].y = 92
        @sprites["command_window"].z = 256
        @custom = false
        # Execute transition
        Graphics.transition
        # Main loop
        loop do
          # Update game screen
          Graphics.update
          # Update input information
          Input.update
          # Frame update
          update
          # Abort loop if screen is changed
          if $scene != self
            break
          end
        end
        # Prepares for transition
        Graphics.freeze
        # Disposes the windows
        pbDisposeSpriteHash(@sprites)
        @viewport.dispose
      end
      
      def pbBackdrop
        environ=pbGetEnvironment
        # Choose backdrop
        backdrop="Field"
        if environ==PBEnvironment::Cave
          backdrop="Cave"
        elsif environ==PBEnvironment::MovingWater || environ==PBEnvironment::StillWater
          backdrop="Water"
        elsif environ==PBEnvironment::Underwater
          backdrop="Underwater"
        elsif environ==PBEnvironment::Rock
          backdrop="Mountain"
        else
          if !$game_map || !pbGetMetadata($game_map.map_id,MetadataOutdoor)
            backdrop="IndoorA"
          end
        end
        if $game_map
          back=pbGetMetadata($game_map.map_id,MetadataBattleBack)
          if back && back!=""
            backdrop=back
          end
        end
        if $PokemonGlobal && $PokemonGlobal.nextBattleBack
          backdrop=$PokemonGlobal.nextBattleBack
        end
        # Apply graphics
        battlebg="Graphics/Battlebacks/battlebg"+backdrop
        return battlebg
        
        #pbDayNightTint(@sprites["battlebg"])
      end
      
      #-----------------------------------------------------------------------------
      # * Frame Update
      #-----------------------------------------------------------------------------
      def update
        # Update windows
        pbUpdateSpriteHash(@sprites)
        if @custom
          updateCustom
        else
          update_command
        end
        return
      end
      #-----------------------------------------------------------------------------
      # * Frame Update (when command window is active)
      #-----------------------------------------------------------------------------
      def updateCustom
        if Input.trigger?(Input::B)
          @sprites["command_window"][email protected]
          @sprites["command_window"].index=2
          @custom = false
          return
        end
        if Input.trigger?(Input::C)
          # if (self.nature%5)==flavor && (self.nature/5).floor!=(self.nature%5)
          Kernel.pbMessage(_INTL("This feature is coming soon."))
        end
      end
    
      def update_command
        # If B button was pressed
        if Input.trigger?(Input::B)
          pbPlayCancelSE()
          # Switch to map screen
          $scene = Scene_Pokegear.new
          return
        end
        # If C button was pressed
        if Input.trigger?(Input::C)
          # Branch by command window cursor position
          case @sprites["command_window"].index
          when 0 # Pet
            $Trainer.party[@partyIndex].changeAmieStats("pet")
            Kernel.pbMessage(_INTL("Affection and Enjoyment increased."))
          when 1 # Feed
            Kernel.pbMessage(_INTL("This feature is coming soon."))
          when 2 # Exit
            pbPlayDecisionSE()
            $scene = Scene_Pokegear.new
          end
          return
        end
      end
    end


    5. Modify PScreen_Pokegear to enable Pokemon-Amie.
    Spoiler:

    5.1. Replace the contents of PScreen_Pokegear with this:
    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.isFemale? && 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
        refresh
        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/2,10,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,18,10,0,0,-1,-1],
           [icon,18,62,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
        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
        @cmdAmie=-1
        @cmdJukebox=-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[@cmdAmie=commands.length]=_INTL("Pokemon-Amie") if $Trainer.party.length>0
    
        @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.isFemale? && 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"].visible = false
        @sprites["command_window"].index = @menu_index
        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
        for i in [email protected]["command_window"].commands.length
          [email protected]["button#{i}"]
          sprite.selected=([email protected]["command_window"].index) ? true : false
        end
        pbUpdateSpriteHash(@sprites)
        #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 @cmdAmie>=0 && @sprites["command_window"][email protected]
            pbPlayDecisionSE()
            pbFadeOutIn(99999) {
               pbChooseNonEggPokemon(1,3)
               $scene = PokeAmie_Essentials.new($Trainer.party[pbGet(1)],pbGet(1))
            }
          end
          if @cmdJukebox>=0 && @sprites["command_window"][email protected]
            pbPlayDecisionSE()
            $scene = Scene_Jukebox.new
          end
          return
        end
      end
    end


    Screenshot:
    __________________
    Coming soon: Pokemon Collective and Mercantile Versions.

    My college-life-advice blog.
    Reply With Quote
      #2    
    Old February 22nd, 2017 (9:44 PM).
    Rot8er_ConeX's Avatar
    Rot8er_ConeX Rot8er_ConeX is offline
       
      Join Date: May 2015
      Location: The Dissa Region
      Gender: Male
      Posts: 822
      A few criticisms:

      1.) When a player trades a Pokemon, the Pokemon's affection resets to zero. As far as I noticed, there is no mention of this in the code.

      2.) I see you initialize a MAXAMIESTATVALUE as if letting developers choose their own maximum, but in other places you act as if the max is a hardcoded 255. Minor inconsistency.



      That being said, this script looks awesome and shows a lot of promise.
      __________________
      Features of Pokemon Entropy

      The black circular "doodles" in the lower right corner of my avatar are actually my username written in Gallifreyan. Yes I'm a Whovian.
      Reply With Quote
        #3    
      Old February 25th, 2017 (5:46 AM).
      rigbycwts's Avatar
      rigbycwts rigbycwts is offline
      Hmm, hmm.
         
        Join Date: Mar 2013
        Gender: Male
        Nature: Timid
        Posts: 98
        Quote:
        Originally Posted by Rot8er_ConeX View Post
        A few criticisms:

        1.) When a player trades a Pokemon, the Pokemon's affection resets to zero. As far as I noticed, there is no mention of this in the code.

        2.) I see you initialize a MAXAMIESTATVALUE as if letting developers choose their own maximum, but in other places you act as if the max is a hardcoded 255. Minor inconsistency.

        That being said, this script looks awesome and shows a lot of promise.
        For #1, I added a function called resetAffection which resets the Affection to 0.
        For #2, the hardcoded 255 values are replaced with MAXAMIESTATVALUE.

        Changes are already in the first post.
        __________________
        Coming soon: Pokemon Collective and Mercantile Versions.

        My college-life-advice blog.
        Reply With Quote
          #4    
        Old February 25th, 2017 (7:19 AM).
        khkramer's Avatar
        khkramer khkramer is offline
           
          Join Date: Apr 2010
          Gender: Male
          Posts: 317
          One (minor) nitpick, why have people replace parts of vanilla scripts manually.
          From my experience this leads to mistakes on the users part and more potential questions for you to deal with.
          I would advice to just alias the edited methods and add the necessary properties etc and put it all in one 'script'.

          I don't have any interest in Amie myself, but thanks for sharing this with the community.
          __________________


          Lurking for 8 years..
          Reply With Quote
            #5    
          Old February 25th, 2017 (7:46 AM).
          rigbycwts's Avatar
          rigbycwts rigbycwts is offline
          Hmm, hmm.
             
            Join Date: Mar 2013
            Gender: Male
            Nature: Timid
            Posts: 98
            Quote:
            Originally Posted by khkramer View Post
            One (minor) nitpick, why have people replace parts of vanilla scripts manually.
            From my experience this leads to mistakes on the users part and more potential questions for you to deal with.
            I would advice to just alias the edited methods and add the necessary properties etc and put it all in one 'script'.

            I don't have any interest in Amie myself, but thanks for sharing this with the community.
            It is intentional since when someone wanted to implement something like an evolution script that uses these attributes (e.g. the Eevee to Sylveon method), and/or a move that the power or effect is based on the Affection stat, for example, it looks convenient in my point of view to edit vanilla scripts instead of going for plug-and-play.

            EDIT: Step 3 of this tutorial is also my reason for editing vanilla scripts. I want to make it similar to the actual games when it comes to the text being displayed.
            __________________
            Coming soon: Pokemon Collective and Mercantile Versions.

            My college-life-advice blog.
            Reply With Quote
              #6    
            Old February 25th, 2017 (3:05 PM).
            Rot8er_ConeX's Avatar
            Rot8er_ConeX Rot8er_ConeX is offline
               
              Join Date: May 2015
              Location: The Dissa Region
              Gender: Male
              Posts: 822
              Yeah. Step 3 is the main reason not to make this plug-and-play. Most of the edits people make to games is to the battle system.
              __________________
              Features of Pokemon Entropy

              The black circular "doodles" in the lower right corner of my avatar are actually my username written in Gallifreyan. Yes I'm a Whovian.
              Reply With Quote
                #7    
              Old February 25th, 2017 (4:33 PM).
              rigbycwts's Avatar
              rigbycwts rigbycwts is offline
              Hmm, hmm.
                 
                Join Date: Mar 2013
                Gender: Male
                Nature: Timid
                Posts: 98
                Quote:
                Originally Posted by Rot8er_ConeX View Post
                Yeah. Step 3 is the main reason not to make this plug-and-play. Most of the edits people make to games is to the battle system.
                I agree. It's because I wanted to add something like this, regardless of the battle system being used (whether EBS or the default Essentials battle UI):
                __________________
                Coming soon: Pokemon Collective and Mercantile Versions.

                My college-life-advice blog.
                Reply With Quote
                  #8    
                Old February 26th, 2017 (7:08 AM).
                Pokébook's Avatar
                Pokébook Pokébook is offline
                Marene
                   
                  Join Date: Oct 2015
                  Location: who knows?
                  Posts: 117
                  Your doing really great! I need this for my game project! Thank you, I'll credit you and use it!
                  __________________
                  Infinite last forever. Be loyal, be together.
                  Reply With Quote
                    #9    
                  Old April 24th, 2017 (5:01 AM).
                  Ice Cream Sand Witch's Avatar
                  Ice Cream Sand Witch Ice Cream Sand Witch is offline
                     
                    Join Date: Aug 2008
                    Gender: Female
                    Posts: 185
                    I did everything according to directions in printable version but I get this error when going into Pokemon Amie through the Pokegear:

                    Exception: NameError
                    Message: uninitialized constant Scene_Pokegear::PokeAmie_Essentials
                    PScreen_Pokegear:161:in `update_command'
                    PScreen_Pokegear:159:in `pbFadeOutIn'
                    PScreen_Pokegear:159:in `update_command'
                    PScreen_Pokegear:133:in `update'
                    PScreen_Pokegear:114:in `main'
                    PScreen_Pokegear:111:in `loop'
                    PScreen_Pokegear:118:in `main'
                    PSystem_Utilities:995:in `pbLoadRpgxpScene'
                    PScreen_PauseMenu:168:in `pbStartPokemonMenu'
                    PScreen_PauseMenu:143:in `loop'

                    If it matters, I don't use EBS so I skipped part 4 (I assume that part is only for EBS users)
                    Reply With Quote
                      #10    
                    Old August 31st, 2017 (1:59 AM).
                    Damien.aspiring.fandev's Avatar
                    Damien.aspiring.fandev Damien.aspiring.fandev is offline
                    🎺🎺🎺🎺🎺🎺 📯📯📯📯
                       
                      Join Date: Apr 2017
                      Location: Here : http://i.imgur.com/icQr63J.png
                      Age: 19
                      Gender: Male
                      Nature: Jolly
                      Posts: 950
                      Oh boy! Someone actually made an option-based amie/refresh system! ^^
                      ...
                      Uhm... I'm looking forward to the update!
                      ~_~
                      __________________
                      I am but a tearful clown. Though I smile, I cry inside.
                      -Clown Lee. Jubilife TV station(Diamond&Pearl)/various pokémon centers through Sinnoh(Platinum)
                      Want some gen5 apricorn balls?
                      Reply With Quote
                        #11    
                      Old September 27th, 2017 (10:24 AM).
                      rigbycwts's Avatar
                      rigbycwts rigbycwts is offline
                      Hmm, hmm.
                         
                        Join Date: Mar 2013
                        Gender: Male
                        Nature: Timid
                        Posts: 98
                        Quote:
                        Originally Posted by Ice Cream Sand Witch View Post
                        I did everything according to directions in printable version but I get this error when going into Pokemon Amie through the Pokegear:

                        Exception: NameError
                        Message: uninitialized constant Scene_Pokegear::PokeAmie_Essentials
                        PScreen_Pokegear:161:in `update_command'
                        PScreen_Pokegear:159:in `pbFadeOutIn'
                        PScreen_Pokegear:159:in `update_command'
                        PScreen_Pokegear:133:in `update'
                        PScreen_Pokegear:114:in `main'
                        PScreen_Pokegear:111:in `loop'
                        PScreen_Pokegear:118:in `main'
                        PSystem_Utilities:995:in `pbLoadRpgxpScene'
                        PScreen_PauseMenu:168:in `pbStartPokemonMenu'
                        PScreen_PauseMenu:143:in `loop'

                        If it matters, I don't use EBS so I skipped part 4 (I assume that part is only for EBS users)
                        My bad. Step 4 uses EBS's Animated Bitmap Wrapper.
                        __________________
                        Coming soon: Pokemon Collective and Mercantile Versions.

                        My college-life-advice blog.
                        Reply With Quote
                          #12    
                        Old September 28th, 2017 (1:01 PM).
                        Gelatina Gelatina is offline
                           
                          Join Date: Sep 2017
                          Posts: 2
                          So I got this:

                          [Pokémon Essentials version 17]
                          Exception: NameError
                          Message: uninitialized constant PokemonPauseMenu::PokemonPokegear_Scene
                          PScreen_PauseMenu:198:in `pbStartPokemonMenu'
                          PScreen_PauseMenu:197:in `pbFadeOutIn'
                          PScreen_PauseMenu:197:in `pbStartPokemonMenu'
                          PScreen_PauseMenu:142:in `loop'
                          PScreen_PauseMenu:271:in `pbStartPokemonMenu'
                          Scene_Map:125:in `call_menu'
                          Scene_Map:211:in `update'
                          Scene_Map:232:in `main'
                          Scene_Map:229:in `loop'
                          Scene_Map:234:in `main'
                          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
                          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 7:03 AM.