• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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.

Random Pokemon Based on vsTrainer

Zeak6464

Zeak #3205 - Discord
1,101
Posts
11
Years
  • This code will allows the player to Randomize Opponent Trainer Pokemon based on TrainerType

    This script is plug&play !

    Credit goes to :
    Zeak6464
    Vendily
    Umbra

    Code:
    EVIL_TEAM_LIST = [
      :TEAMROCKET_Male,
      :TEAMROCKET_Female,
      :TEAMROCKET_f,
      :TEAMROCKET_m,
      :TEAMROCKET_JJ
    ]
    
      def generatePokemon(level)
        species = rand(PBSpecies.maxValue) + 1
        species = pbGetBabySpecies(species) # revert to the first evolution
        item = 0
        loop do
          nl = level + 5
          nl = MAXIMUMLEVEL if nl > MAXIMUMLEVEL
          pkmn = PokeBattle_Pokemon.new(species, nl)
          cevo = Kernel.pbCheckEvolution(pkmn)
          evo = pbGetEvolvedFormData(species)
          if evo
            evo = evo[rand(evo.length - 1)]
            # evolve the species if we can't evolve and there is an evolution
            # and a bit of randomness passes as well as the evolution type cannot
            # be by level
            if evo && cevo < 1 && rand(MAXIMUMLEVEL) <= level
              species = evo[2] if evo[0] != 4 && rand(MAXIMUMLEVEL) <= level
            end
          end
          if cevo == -1 || (rand(MAXIMUMLEVEL) > level && level < 60)
            # ^ Only break the loop if there is no more evolutions or some randomness
            # applies and the level is under 60 
            break
          else
            species = evo[2]
          end
        end
         return species
    end
    
    Events.onTrainerPartyLoad+=proc {|sender,e|
       if e[0] # Trainer data should exist to be loaded, but may not exist somehow
         trainer=e[0][0] # A PokeBattle_Trainer object of the loaded trainer
         items=e[0][1]   # An array of the trainer's items they can use
         party=e[0][2]   # An array of the trainer's Pok?mon
         ids=EVIL_TEAM_LIST
         balance=false
         ids.each{|item|
            balance|=isConst?(trainer.trainertype,PBTrainers,item)
         }
         if balance
           party.each{|poke|
             level=pbBalancedLevel($Trainer.party)- 4
             poke.species=generatePokemon(level)
             poke.level=level
             poke.name=PBSpecies.getName(poke.species)
             poke.calcStats
             poke.resetMoves
           }
         end
       end
    }
     
    Last edited:
    Back
    Top