Help Alola Pokémon evolution don't change their type

Obermarschall

Novice
Member
Posts
21
#1
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
Posts
55
#2
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

Trainer
Member
Posts
72
#3
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
Posts
21
#4
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