• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
Overworld move that functions as a move reminder

v20.1 Overworld move that functions as a move reminder 2020-12-22

This resource pertains to version 20.1 of Pokémon Essentials.
Pokémon Essentials Version
v20.1 ➖
I just thought it'd be a fun idea! This is a pretty valuable resource for a player to have, though, so you might want to make this a hard-to-acquire move.

I used Instruct as the move for this, because I thought it was fitting, but you can easily change that by just replacing Instruct with the internal name of any other move!

Code​

Unfortunately, this isn't really suited for a plug-and-play script. Luckily, it's not too much hassle to add.

These changes are in UI_Party. If you’re using a script that modifies the party UI, such as Deep_Blue’s BW UI, you’ll need to edit that script instead.

Find:
Ruby:
Expand Collapse Copy
          next if !HiddenMoveHandlers.hasHandler(move.id) &&
                  ![:MILKDRINK, :SOFTBOILED].include?(move.id)
Add :INSTRUCT to the list of moves, like so-
Ruby:
Expand Collapse Copy
          next if !HiddenMoveHandlers.hasHandler(move.id) &&
                  ![:MILKDRINK, :SOFTBOILED,:INSTRUCT].include?(move.id)


Below that, find the line:-

Ruby:
Expand Collapse Copy
        elsif pbCanUseHiddenMove?(pkmn, move.id)

Right above that line, paste this:
Ruby:
Expand Collapse Copy
        elsif move.id == :INSTRUCT
          if move.pp <= 0
            pbDisplay(_INTL("Not enough PP..."))
            next
          end
          @scene.pbSetHelpText(_INTL("Use on which Pokémon?"))
          old_party_idx = party_idx
          loop do
            @scene.pbPreSelect(old_party_idx)
            party_idx = @scene.pbChoosePokemon(true, party_idx)
            break if party_idx < 0
            newpkmn = @party[party_idx]
            movename = move.name
            if party_idx == old_party_idx
              pbDisplay(_INTL("{1} can't use {2} on itself!", pkmn.name, movename))
            elsif newpkmn.egg?
              pbDisplay(_INTL("{1} can't be used on an Egg!", movename))
            elsif !newpkmn.can_relearn_move?
              pbDisplay(_INTL("{1} has no moves to remember.", movename))
            else
              move.pp -= 1 if pbRelearnMoveScreen(newpkmn)
              pbRefresh
            end
          end
          @scene.pbSelect(old_party_idx)
          pbRefresh

Earlier versions:
In UI_Party, find:
Ruby:
Expand Collapse Copy
          if [:MILKDRINK, :SOFTBOILED].include?(m.id) ||
             HiddenMoveHandlers.hasHandler(m.id)
Add :INSTRUCT to the list of moves, like so-
Ruby:
Expand Collapse Copy
          if [:MILKDRINK, :SOFTBOILED,:INSTRUCT].include?(m.id) ||
             HiddenMoveHandlers.hasHandler(m.id)

Below that, find the line:-

Ruby:
Expand Collapse Copy
        elsif pbCanUseHiddenMove?(pkmn,pkmn.moves[i].id)

Right above that line, paste this:
Ruby:
Expand Collapse Copy
        elsif [:INSTRUCT].include?(pkmn.moves[i].id)
            if pkmn.moves[i].pp==0
              pbDisplay(_INTL("Not enough PP..."))
              break
            end
            @scene.pbSetHelpText(_INTL("Use on which Pokémon?"))
            oldpkmnid = pkmnid
            loop do
              @scene.pbPreSelect(oldpkmnid)
              pkmnid = @scene.pbChoosePokemon(true,pkmnid)
              break if pkmnid<0
              newpkmn = @party[pkmnid]
              movename = pkmn.moves[i].name
              if pkmnid==oldpkmnid
                pbDisplay(_INTL("{1} can't use {2} on itself!",pkmn.name,movename))
              elsif newpkmn.egg?
                pbDisplay(_INTL("{1} can't be used on an Egg!",movename))
              elsif !pbHasRelearnableMove?(newpkmn)
                pbDisplay(_INTL("{1} has no moves to remember.",movename))
              else
                pkmn.moves[i].pp -= 1 if pbRelearnMoveScreen(newpkmn)
                pbRefresh
              end
            end
            @scene.pbSelect(oldpkmnid)
            pbRefresh
            break

In PScreen_Party, find:

Ruby:
Expand Collapse Copy
        if !pkmn.egg? && (isConst?(move.id,PBMoves,:MILKDRINK) ||
                          isConst?(move.id,PBMoves,:SOFTBOILED) ||

Change it to:
Code:
Expand Collapse Copy
        if !pkmn.egg? && (isConst?(move.id,PBMoves,:MILKDRINK) ||
                          isConst?(move.id,PBMoves,:SOFTBOILED) ||
                          isConst?(move.id,PBMoves,:INSTRUCT) ||


Below that, find

Ruby:
Expand Collapse Copy
            end
            @scene.pbSelect(oldpkmnid)
            pbRefresh
            break

Right below "break", add

Ruby:
Expand Collapse Copy
          elsif isConst?(pkmn.moves[i].id,PBMoves,:INSTRUCT)
            if pkmn.moves[i].pp<=1
              pbDisplay(_INTL("Not enough PP..."))
              break
            end
            @scene.pbSetHelpText(_INTL("Use on which Pokémon?"))
            oldpkmnid = pkmnid
            loop do
              @scene.pbPreSelect(oldpkmnid)
              pkmnid = @scene.pbChoosePokemon(true,pkmnid)
              break if pkmnid<0
              newpkmn = @party[pkmnid]
              movename = PBMoves.getName(pkmn.moves[i].id)
              if pkmnid==oldpkmnid
                pbDisplay(_INTL("{1} can't use {2} on itself!",pkmn.name,movename))
              elsif newpkmn.egg?
                pbDisplay(_INTL("{1} can't be used on an Egg!",movename))
              elsif !pbHasRelearnableMove?(newpkmn)
                pbDisplay(_INTL("{1} has no moves to remember.",movename))
              else
                pkmn.moves[i].pp -= 1 if pbRelearnMoveScreen(newpkmn)
                pbRefresh
              end
            end
            @scene.pbSelect(oldpkmnid)
            pbRefresh
            break

This move can't be used on the user (or eggs/Pokémon that have no moves to remember, of course), and deletes 1 PP per use.

Looking for more field moves?​

You may also be interested in Lucidious89's Improved Field Skills.
Credits
Credit to TechSkylander1518, please!
  • Like
Reactions: ThatWelshOne_
Author
TechSkylander1518
Views
2,929
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from TechSkylander1518

Latest updates

  1. v20 Update

    Quick v20 update, also fixed the bug of PP being depleted regardless of if a move was taught...
  2. v19 Update

    Now compatible with v19!
Back
Top