• 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.

[Scripting Question] Mega Evolving into a different Species?

25
Posts
8
Years
    • Seen May 30, 2018
    Is it possible to Mega Evolve a Pokemon into a completely different species? If so how?

    Thank you
     

    Ego13

    hollow_ego
    311
    Posts
    6
    Years
  • It is possible. Let's say you want Gengar to Mega Evolve into Giratina. You define Giratina as a Mega Form either in the script section or the pokemonforms.txt (depending on what version of essentials you are using). In that you define it to have the base stats and everything of Giratina, define the Mega Stone or Mega Move. Since Gengar already has a Mega Form the new one would be his second form, so in the graphics folder you just copy all of Giratinas sprites and rename like "094_2" and so on. Detailed information about how to set up multiple forms for a Pokemon can be found here: http://pokemonessentials.wikia.com/wiki/Multiple_forms
     
    25
    Posts
    8
    Years
    • Seen May 30, 2018
    I have now done that, but the only thing is the name doesn't change above the HP bar. Is there a way to have it temporarily change the name during the battle?
     
    Last edited:
    25
    Posts
    8
    Years
    • Seen May 30, 2018
    I am using 16.2 Essentials, so I think that means I don't have the PokemonForms.txt (if that's what's needed).
     

    Ego13

    hollow_ego
    311
    Posts
    6
    Years
  • I am using 16.2 Essentials, so I think that means I don't have the PokemonForms.txt (if that's what's needed).

    In the script section Pokemon_MultipleForms, between
    Code:
      def forceForm(value)   # Used by the Pok?dex only
        @forcedform=value
      end
    and
    Code:
      alias __mf_baseStats baseStats
    add
    Code:
      def formName
        formname = MultipleForms.call("getFormName",self)
        return formname
      end

    Then in the script section PokeBattle_Scene, find and add the following right behind it, on the same line
    Code:
    if @battler.form==0

    right under that line you add this
    Code:
    [email protected] if @battler.form > 0 
    [email protected] if @battler.pokemon.isMega?
    if pokename==nil
       [email protected]
    end

    The result should look like this
    Code:
       [email protected] if @battler.form==0
       [email protected] if @battler.form > 0 
       [email protected] if @battler.pokemon.isMega?
    if pokename==nil
       [email protected]
    end

    That should do the trick. It will replace the regular name with either the form name or the mega name, if there is one. On some Mega Evolutions you might get short on space (e.g. the gender symbol and/or the name go over the level). I haven't done any scripting for that case, but i could be solved by changing the font size for example.
     
    Last edited:
    25
    Posts
    8
    Years
    • Seen May 30, 2018
    I?ve just tested it and it works 100%. Thanks A LOT ! ! !

    However, there is somethings to note. The name change doesn?t reflect in the party screen nor summary screen. The cry also remains the same.

    I guess this means it isn?t really a Species change in the strictest sense.

    You see, the reason I?m so interested is I?ve been wondering if one could STACK Mega Evolutions on each other. You know, like have a Pokemon Mega Evolve and then Mega Evolve AGAIN.

    Originally, I had thought it would only need some script for that Pokemon in the PokemonMegaEvolution script section. . . . (I?ve very new to scripting, btw).

    Now, the only other custom script I?ve seen where a legitimate species change is one created by ?Zeak6464? located here:
    https://www.pokecommunity.com/showthread.php?t=398249

    In that custom script, a legitimate species change (Evolution) occurs DURING battle and continues with the new species.

    Thus, if there was a way one could do a full Species change for Mega Evolution, one could theoretically Mega Evolve AGAIN using the same method.

    However, I?m not sure if this is possible by only changing one script section since this name change one has already crossed between 2 script sections. . . . .

    But again, thanks a lot for the on-screen name change script !
     

    Ego13

    hollow_ego
    311
    Posts
    6
    Years
  • I?ve just tested it and it works 100%. Thanks A LOT ! ! !

    However, there is somethings to note. The name change doesn?t reflect in the party screen nor summary screen. The cry also remains the same.

    I guess this means it isn?t really a Species change in the strictest sense.

    You see, the reason I?m so interested is I?ve been wondering if one could STACK Mega Evolutions on each other. You know, like have a Pokemon Mega Evolve and then Mega Evolve AGAIN.

    Originally, I had thought it would only need some script for that Pokemon in the PokemonMegaEvolution script section. . . . (I?ve very new to scripting, btw).

    Now, the only other custom script I?ve seen where a legitimate species change is one created by ?Zeak6464? located here:
    https://www.pokecommunity.com/showthread.php?t=398249

    In that custom script, a legitimate species change (Evolution) occurs DURING battle and continues with the new species.

    Thus, if there was a way one could do a full Species change for Mega Evolution, one could theoretically Mega Evolve AGAIN using the same method.

    However, I?m not sure if this is possible by only changing one script section since this name change one has already crossed between 2 script sections. . . . .

    But again, thanks a lot for the on-screen name change script !

    Hm... since I didn't really know what you wanted to, I thought that'd be enough. But that caught my interested and I will work on it. Obviously this will take some time until I get soe results and I can't promise anything.
    It'd be helpful if you could give a specific example of which Pokemon you want to Mega Evolve into what species and also if it should stay evolved after battle or should reset to it's original, even if Mega Evolved multiple times
     
    25
    Posts
    8
    Years
    • Seen May 30, 2018
    I do suppose explaining more in detail on what I've been working on may be helpful.
    So here I go, I'm trying to make an Eevee that can "Mega Evolve" or rather "Transform" into ANY Eeveelution in battle (depending on what item it's holding). So for example, the script I made for Eevee is this:
    MultipleForms.register(:EEVEE,{
    "getMegaForm"=>proc{|pokemon|
    next 1 isConst?(pokemon.item,PBItems,(:WATERSTONE)
    next 2 isConst?(pokemon.item,PBItems,(:THUNDERSTONE)
    next 3 isConst?(pokemon.item,PBItems,(:FIRESTONE)
    next
    },
    "getMegaName"=>proc{|pokemon|
    next _INTL("Vaporeon") if pokemon.form==1
    next _INTL("Jolteon") if pokemon.form==2
    next _INTL("Flareon") if pokemon.form==3
    next
    },
    "megaMessage"=>proc{|pokemon|
    next 1
    },
    "getBaseStats"=>proc{|pokemon|
    next [130,65,60,65,110,95] if pokemon.form==1
    next [65,65,60,130,110,95] if pokemon.form==2
    next [65,130,60,95,65,95,110] if pokemon.form==3
    next
    },
    "getAbilityList"=>proc{|pokemon|
    next [[getID(PBAbilities,:HYDRATION),0]] if pokemon.form==1
    next [[getID(PBAbilities,:VOLTABSORB),0]] if pokemon.form==2
    next [[getID(PBAbilities,:FLASHFIRE),0]] if pokemon.form==3
    next
    So now it's Eeveelutions are alternate forms for it.

    However, I ALSO want the Eeveelutions to be able to "Mega Evolve" or rather "Transform" into ANY OTHER Eeveelution as well.

    So for Vaporeon:
    MultipleForms.register(:EEVEE,{
    "getMegaForm"=>proc{|pokemon|
    next 1 isConst?(pokemon.item,PBItems,(:THUNDERSTONE)
    next 2 isConst?(pokemon.item,PBItems,(:FIRESTONE)
    next
    },
    "getMegaName"=>proc{|pokemon|
    next _INTL("Jolteon") if pokemon.form==1
    next _INTL("Flareon") if pokemon.form==2
    next
    },
    "megaMessage"=>proc{|pokemon|
    next 1
    },
    "getBaseStats"=>proc{|pokemon|
    next [65,65,60,130,110,95] if pokemon.form==1
    next [65,130,60,95,65,95,110] if pokemon.form==2
    next
    },
    "getAbilityList"=>proc{|pokemon|
    next [[getID(PBAbilities,:VOLTABSORB),0]] if pokemon.form==1
    next [[getID(PBAbilities,:FLAREON),0]] if pokemon.form==2
    next
    So as you can see, I'll have to do A LOT of somewhat repetitive work to integrate ALL EEVEELUTIONS. Not only that, but I have some FAKEMON Eeveelutions to add into the mix, lol !

    Thus, instead of making Multiple Forms (AND their sprites) for EACH Eeveelution, if there was a way to cross or rather script a connection between Pokemon Species, it would save a lot of time and open up a lot of possibilities as well {XD}
     
    Back
    Top