• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Dawn, Gloria, Juliana, or Summer - which Pokémon protagonist is your favorite? Let us know by voting in our poll!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Changing Trainer Party order.

  • 12
    Posts
    9
    Years
    • Seen Aug 2, 2023
    Hi all,
    I was wondering if there was a way to set which pokemon a trainer sends out, as when I test the battle, they send out the pokemon I placed to be last as their second pokemon, how Do I go about fixing this?
     
    Yeah, just go to the script section PokeBattle_AI. Then find "def pbChooseBestNewEnemy(index,party,enemies)"
    And change
    Code:
    def pbChooseBestNewEnemy(index,party,enemies)
        return -1 if !enemies || enemies.length==0
        $PokemonTemp=PokemonTemp.new if !$PokemonTemp
        o1=@battlers[index].pbOpposing1
        o2=@battlers[index].pbOpposing2
        o1=nil if o1 && o1.fainted?
        o2=nil if o2 && o2.fainted?
        best=-1
        bestSum=0
        for e in enemies
          pkmn=party[e]
          sum=0
          for move in pkmn.moves
            next if move.id==0
            md=PBMoveData.new(move.id)
            next if md.basedamage==0
            if o1
              sum+=PBTypes.getCombinedEffectiveness(md.type,o1.type1,o1.type2,o1.effects[PBEffects::Type3])
            end
            if o2
              sum+=PBTypes.getCombinedEffectiveness(md.type,o2.type1,o2.type2,o2.effects[PBEffects::Type3])
            end
          end
          if best==-1 || sum>bestSum
            best=e
            bestSum=sum
          end
        end
        return best
      end
    To this:
    Code:
    def pbChooseBestNewEnemy(index,party,enemies)
        return -1 if !enemies || enemies.length==0
        $PokemonTemp=PokemonTemp.new if !$PokemonTemp
        o1=@battlers[index].pbOpposing1
        o2=@battlers[index].pbOpposing2
        o1=nil if o1 && o1.fainted?
        o2=nil if o2 && o2.fainted?
        best=-1
        bestSum=0
        for e in enemies
          pkmn=party[e]
          sum=0
          for move in pkmn.moves
            next
          end
          if best==-1 || sum>bestSum
            best=e
            bestSum=sum
          end
        end
        return best
      end

    Basically that just removes the few lines of code that tell the AI to use their best Pokemon rather than their next one.
    And... that should work. I tested this in the latest version of Essentials and it worked fine.
     
    Back
    Top