Alola Pokémon evolution don't change their type

Obermarschall

Novice
Member
Joined
Jan 27, 2018
Posts
21
Hey guys. I created Alolan and Delta Pokémon. When you catch the first forms, they usually have the types I gave them (for instance my Delta Numel is ICE and GROUND) and after catching him he still stays ICE and GROUND. When I evolve him, his form doesn't revert back; he becomes an icy Camerupt (or 323_1 as I have it in my data base), BUT the types revert back into FIRE and GROUND.

Now I also tried to make a seperated entry in RPG Maker in the Forms section and basically copy-pasted the one of Numel and just changed his name, but nope...Delta Camerupt still reverts back into an FIRE GROUND type.

BTW I use Pokemon Essentials 16.2 can't update it as I am already too deep in my project. THX
 

WolfPP

Discord Wolf#1235
Member
Joined
Aug 24, 2018
Posts
101
Age
29
Maybe you just need to check how ARCEUS works, in _Forms script and edit to Delta and Alolan forms:
Code:
MultipleForms.register(:ARCEUS,{
"type1"=>proc{|pokemon|
   types=[:NORMAL,:FIGHTING,:FLYING,:POISON,:GROUND,
          :ROCK,:BUG,:GHOST,:STEEL,:QMARKS,
          :FIRE,:WATER,:GRASS,:ELECTRIC,:PSYCHIC,
          :ICE,:DRAGON,:DARK,:FAIRY]
   next getID(PBTypes,types[pokemon.form])
},
"type2"=>proc{|pokemon|
   types=[:NORMAL,:FIGHTING,:FLYING,:POISON,:GROUND,
          :ROCK,:BUG,:GHOST,:STEEL,:QMARKS,
          :FIRE,:WATER,:GRASS,:ELECTRIC,:PSYCHIC,
          :ICE,:DRAGON,:DARK,:FAIRY]
   next getID(PBTypes,types[pokemon.form])
},
"getForm"=>proc{|pokemon|
     next 1  if isConst?(pokemon.item,PBItems,:FISTPLATE) || isConst?(pokemon.item,PBItems,:FIGHTINIUMZ2)
     next 2  if isConst?(pokemon.item,PBItems,:SKYPLATE) || isConst?(pokemon.item,PBItems,:FLYINIUMZ2)
     next 3  if isConst?(pokemon.item,PBItems,:TOXICPLATE) || isConst?(pokemon.item,PBItems,:POISONIUMZ2)
     next 4  if isConst?(pokemon.item,PBItems,:EARTHPLATE) || isConst?(pokemon.item,PBItems,:GROUNDIUMZ2)
     next 5  if isConst?(pokemon.item,PBItems,:STONEPLATE) || isConst?(pokemon.item,PBItems,:ROCKIUMZ2)
     next 6  if isConst?(pokemon.item,PBItems,:INSECTPLATE) || isConst?(pokemon.item,PBItems,:BUGINIUMZ2)
     next 7  if isConst?(pokemon.item,PBItems,:SPOOKYPLATE) || isConst?(pokemon.item,PBItems,:GHOSTIUMZ2)
     next 8  if isConst?(pokemon.item,PBItems,:IRONPLATE) || isConst?(pokemon.item,PBItems,:STEELIUMZ2)
     next 10 if isConst?(pokemon.item,PBItems,:FLAMEPLATE) || isConst?(pokemon.item,PBItems,:FIRIUMZ2)
     next 11 if isConst?(pokemon.item,PBItems,:SPLASHPLATE) || isConst?(pokemon.item,PBItems,:WATERIUMZ2)
     next 12 if isConst?(pokemon.item,PBItems,:MEADOWPLATE) || isConst?(pokemon.item,PBItems,:GRASSIUMZ2)
     next 13 if isConst?(pokemon.item,PBItems,:ZAPPLATE) || isConst?(pokemon.item,PBItems,:ELECTRIUMZ2)
     next 14 if isConst?(pokemon.item,PBItems,:MINDPLATE) || isConst?(pokemon.item,PBItems,:PSYCHIUMZ2)
     next 15 if isConst?(pokemon.item,PBItems,:ICICLEPLATE) || isConst?(pokemon.item,PBItems,:ICIUMZ2)
     next 16 if isConst?(pokemon.item,PBItems,:DRACOPLATE) || isConst?(pokemon.item,PBItems,:DRAGONNIUMZ2)
     next 17 if isConst?(pokemon.item,PBItems,:DREADPLATE) || isConst?(pokemon.item,PBItems,:DARKINIUMZ2)
     next 18 if isConst?(pokemon.item,PBItems,:PIXIEPLATE) || isConst?(pokemon.item,PBItems,:FAIRIUMZ2)
     next 0
}
})

P.S: Sorry, that script is from v17.2. Idk how its your script to Forms.
 

Vendily

Cooltrainer
Member
Joined
May 16, 2017
Posts
130
Is it possible that you didn't make the form changes for Camerupt?

A simple MultipleForms.copy(:NUMEL,:CAMERUPT) should do it if that's the case.
 

Obermarschall

Novice
Member
Joined
Jan 27, 2018
Posts
21
Hi thanks for your answers:

That's how my script looks like:

Ruby:
MultipleForms.register(:NUMEL,{
"getFormOnCreation"=>proc{|pokemon|
   maps=[91]   # Map IDs for second form
   if $game_map && maps.include?($game_map.map_id)
     next 1
   else
     next 0
   end
},
"type1"=>proc{|pokemon|
   next if pokemon.form==0             
   case pokemon.form
   when 1; next getID(PBTypes,:ICE)
   end
},
"type2"=>proc{|pokemon|
   next if pokemon.form==0
   next getID(PBTypes,:GROUND)
},
"getMoveList"=>proc{|pokemon|
   next if pokemon.form==0
   movelist=[]
   case pokemon.form
   when 1;movelist=[[1,:TACKLE],[1,:GROWL],[1,:AURORABEAM],
              [8,:FOCUSENERGY],[12,:MAGNITUDE],[15,:FROSTBREATH],[19,:AMNESIA],
              [22,:HEADBUTT],[24,:YAWN],[26,:EARTHPOWER],[29,:CURSE],[31,:BODYSLAM],
              [39,:ICEBEAM],[46,:BLIZZARD],[52,:FREEZESHOCK],[59,:FISSURE]]
   end
   for i in movelist
     i[1]=getConst(PBMoves,i[1])
   end
   next movelist
},
"getMoveCompatibility"=>proc{|pokemon|
   next if pokemon.form==0
   movelist=[]
   case pokemon.form
   when 1; movelist=[# TMs
             :WORKUP,:TOXIC,:HAIL,:HIDDENPOWER,:SUNNYDAY,
             :BLIZZARD,:PROTECT,:SAFEGUARD,:FRUSTRATION,:EARTHQUAKE,
             :RETURN,:LEECHLIFE,:BRICKBREAK,:DOUBLETEAM,:AERIALACE,
             :FACADE,:REST,:ATTRACT,:THIEF,:ROUND,
             :FLING,:SHADOWCLAW,:AURORAVEIL,:GYROBALL,:SWORDSDANCE,
             :BULLDOZE,:FROSTBREATH,:ROCKSLIDE,:XSCISSOR,
             :POISONJAB,:SWAGGER,:SLEEPTALK,:SUBSTITUTE,
             :CONFIDE]
   end
   for i in 0...movelist.length
     movelist[i]=getConst(PBMoves,movelist[i])
   end
   next movelist
},
"getAbilityList"=>proc{|pokemon|
   next if pokemon.form==0
    next [[getID(PBAbilities,:OBLIVIOUS),0]] if getID(PBAbilities,:SIMPLE)==nil
    next [[getID(PBAbilities,:OBLIVIOUS),0],
          [getID(PBAbilities,:SIMPLE),2]]
}
})

MultipleForms.copy(:NUMEL,:CAMERUPT)
 
Top