• 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.
  • Our friends from the Johto Times are hosting a favorite Pokémon poll - and we'd love for you to participate! Click here for information on how to vote for your favorites!
  • Cyndy, May, Hero (Conquest), or Wes - 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.

Extreme Delta Pokemon

Zeak6464

Zeak #3205 - Discord
  • 1,099
    Posts
    12
    Years
    This script is an add-on that allows you to change any pokemon types / ability / moves

    Code:
    class PokeBattle_FakeBattler
      def isDeltap?; return @pokemon.isDeltap?; end
     end
    
    class PokeBattle_Pokemon
      attr_accessor(:deltap)
      attr_accessor(:typeOverride1)  # Type Override
      attr_accessor(:typeOverride2)  # Type Override2
      attr_accessor(:abilityOverride) # Ability Override
       
      # Returns a random Move but replaces current moves 
      def pbRandomMoves
            for i in 0...4
          @moves[i]=PBMove.new(rand(PBMoves.maxValue))
        end
      end
      
      # Returns whether this Pokemon is @delta  
      def isDeltap?
        return @deltap
      end
      
      # Makes this Pokemon @delta.
      def makeDeltap
        @deltap=true
      end
    
    # Makes this Pokemon not @delta.
      def makeNotDeltap
        @deltap=false
      end
       
      alias _deltap_type1 type1
      alias _deltap_type2 type2
      alias _deltap_ability ability
      
      
    
       def type1
        if self.form>=0 && @typeOverride1==nil
          v=MultipleForms.call("type1",self)
          return v if v!=nil
          return self.__mf_type1
        elsif @typeOverride1==nil
          dexdata=pbOpenDexData
          pbDexDataOffset(dexdata,@species,8)
          ret=dexdata.fgetb
          dexdata.close
          return ret
        else
          return getConst(PBTypes,@typeOverride1)
        end
      end
    
        def type2
        if self.form>=0 && @typeOverride2==nil
          v=MultipleForms.call("type2",self)
          return v if v!=nil
          return self.__mf_type2
        elsif @typeOverride2==nil
          dexdata=pbOpenDexData
          pbDexDataOffset(dexdata,@species,9)
          ret=dexdata.fgetb
          dexdata.close
          return ret
        else
          return getConst(PBTypes,@typeOverride2)
        end
      end
    
      
      # typeOverride1. When == 0:Normal 1:Fighting 2:Flying 3:Poison 4:Ground 5:Rock
    # 6:Bug 7:Ghost 8:Steel 9:??? 10:Fire 11:Water 12:Grass 13:Electric 14:Psychic
    # 15:Ice 16:Dragon 17:Dark 18:Shadow 19:Fairy
      def typeOverride1=(value)
        case value
        when 0
          @typeOverride1=:NORMAL
        when 1
          @typeOverride1=:FIGHTING
        when 2
          @typeOverride1=:FLYING
        when 3
          @typeOverride1=:POISON
        when 4
          @typeOverride1=:GROUND
        when 5
          @typeOverride1=:ROCK
        when 6
          @typeOverride1=:BUG
        when 7
          @typeOverride1=:GHOST
        when 8
          @typeOverride1=:STEEL
        when 9
          @typeOverride1=:QMARKS
        when 10
          @typeOverride1=:FIRE
        when 11
          @typeOverride1=:WATER
        when 12
          @typeOverride1=:GRASS
        when 13
          @typeOverride1=:ELECTRIC
        when 14
          @typeOverride1=:PSYCHIC
        when 15
          @typeOverride1=:ICE
        when 16
          @typeOverride1=:DRAGON
        when 17
          @typeOverride1=:DARK
        when 18
          @typeOverride1=:SHADOW
        when 19
          @typeOverride1=:FAIRY
        else @typeOverride1=nil
        end
      end
    
    # typeOverride2.
       def typeOverride2=(value)
        case value
        when 0
          @typeOverride2=:NORMAL
        when 1
          @typeOverride2=:FIGHTING
        when 2
          @typeOverride2=:FLYING
        when 3
          @typeOverride2=:POISON
        when 4
          @typeOverride2=:GROUND
        when 5
          @typeOverride2=:ROCK
        when 6
          @typeOverride2=:BUG
        when 7
          @typeOverride2=:GHOST
        when 8
          @typeOverride2=:STEEL
        when 9
          @typeOverride2=:QMARKS
        when 10
          @typeOverride2=:FIRE
        when 11
          @typeOverride2=:WATER
        when 12
          @typeOverride2=:GRASS
        when 13
          @typeOverride2=:ELECTRIC
        when 14
          @typeOverride2=:PSYCHIC
        when 15
          @typeOverride2=:ICE
        when 16
          @typeOverride2=:DRAGON
        when 17
          @typeOverride2=:DARK
        when 18
          @typeOverride2=:SHADOW
        when 19
          @typeOverride2=:FAIRY
        else @typeOverride1=nil
        end
      end
        
      # Returns the ID of this Pokemon's ability.
      def ability
        if @abilityOverride==nil
        abil=abilityIndex
        abils=getAbilityList
        ret1=0; ret2=0
        for i in 0...abils.length
          next if !abils[i][0] || abils[i][0]<=0
          return abils[i][0] if abils[i][1]==abil
          ret1=abils[i][0] if abils[i][1]==0
          ret2=abils[i][0] if abils[i][1]==1
        end
        abil=(@personalID&1) if abil>=2
        return ret2 if abil==1 && ret2>0
        return ret1
      else
        return(@abilityOverride)
      end
      
        def abilityOverride=(value)
        if value==0
          return self.ability>0
        else
            value=getID(PBAbilities,value)
          end
          return self.ability==value
        end
        return false
      end
    end

    Example of this code in action :

    Code:
    ItemHandlers::UseOnPokemon.add(:DELTASTONE,proc{|item,pokemon,scene|
    if scene.pbConfirm(_INTL("Are you sure you want to make this Pokémon Delta?"))
       if (pokemon.isDeltap? rescue false)
         scene.pbDisplay(_INTL("It won't make this pokemon delta."))
         next false
       end
          pokemon.makeDeltap
          pokemon.pbRandomMoves
          pokemon.abilityOverride = rand(PBAbilities.maxValue)
          pokemon.typeOverride1 = rand(PBTypes.maxValue)
          pokemon.typeOverride2 = rand(PBTypes.maxValue)
          scene.pbRefresh
          scene.pbDisplay(_INTL("{1} is different now!",pokemon.name))
        next true
      end
    })

    Code:
    ItemHandlers::UseOnPokemon.add(:TYPESTONE,proc{|item,pokemon,scene|
       if (pokemon.hp<=0 rescue false)
         scene.pbDisplay(_INTL("{1}'s HP is too low.",pokemon.name))
         next false
       end
          pokemon.typeOverride1=rand(PBTypes.maxValue)
          pokemon.typeOverride2=rand(PBTypes.maxValue)
          scene.pbRefresh
          scene.pbDisplay(_INTL("{1}'s Type was altered to {2},{3}.",pokemon.name,PBTypes.getName(pokemon.type1),PBTypes.getName(pokemon.type2)))
        next true
    })

    Code:
    ItemHandlers::UseOnPokemon.add(:ABILITYSTONE,proc{|item,pokemon,scene|
          pokemon.abilityOverride=rand(PBAbilities.maxValue)
          scene.pbRefresh
          scene.pbDisplay(_INTL("{1} has {2} now!",pokemon.name,PBAbilities.getName(pokemon.ability)))
    })
     
    Last edited:
    Back
    Top