The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > Create & Discover > Game Development > Pokémon Essentials
Reload this Page Essentials Question Questions Related to Mega Evolution - Restrictions
Sign Up Rules/FAQ Daily Battle Blogs Mark Forums Read


Pokémon Essentials All questions and discussion about Pokémon Essentials, the Pokémon game kit for RPG Maker XP, go in here. Also contains links to the latest downloads and the Essentials Wiki.

Reply
 
Thread Tools
  #1    
Old 3 Weeks Ago (10:59 AM).
tloriato tloriato is offline
 
Join Date: Sep 2013
Posts: 19
Greetings, community!

I've been researching the Mega Evolution Scripts and tutorials to insert this new type of Evolution into Pokémon Essentials. I do, however, have a few questions:

As far I could learn, the Mega Evolution only depends of the user holding a certain item in the Game and the Pokémon holding another, so:

- Is there a way to restrict this by level? I tried to search a way to only let the Pokémon holds the item after a certain level, but couldn't.

- Can I make a condition in Mega Evolution? For example:
Charizard Mega evolves using Item X and becomes Ultra Charizard
against
Unhappy Charizard tries to Mega Evolving holding the Item X and becomes Black Ultra Charizard

If anyone could help me, please, comment or send me a PM so we can get in touch
Reply With Quote

Relevant Advertising!

  #2    
Old 3 Weeks Ago (8:41 PM).
Vendily's Avatar
Vendily Vendily is offline
Making BW-style OWs for RMXP
 
Join Date: Aug 2015
Gender: Female
Nature: Calm
Posts: 561
Yes, both of these are entirely possible.

For the first, I would place a condition on the Mega evolution itself. For example, Mega Venasaur (Clean v16.2, Pokemon_MegaEvolution, line 63).
Code:
MultipleForms.register(:VENUSAUR,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:VENUSAURITE)
   next
},
"getBaseStats"=>proc{|pokemon|
   next [80,100,123,80,122,120] if pokemon.form==1
   next
},
"getAbilityList"=>proc{|pokemon|
   next [[getID(PBAbilities,:THICKFAT),0]] if pokemon.form==1
   next
},
"height"=>proc{|pokemon|
   next 24 if pokemon.form==1
   next
},
"weight"=>proc{|pokemon|
   next 1555 if pokemon.form==1
   next
}
})
I would add a condition on the form change here. With your example on level, let's say, It can only mega evolve if it's Level 40+ and has the stone.
Code:
MultipleForms.register(:VENUSAUR,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:VENUSAURITE) and pokemon.level >= 40
   next
},
As for your other condition, you already have part of an example, a pokemon with two mega forms Charizard (line 83).
Code:
MultipleForms.register(:CHARIZARD,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:CHARIZARDITEX)
   next 2 if isConst?(pokemon.item,PBItems,:CHARIZARDITEY)
   next
},
"getMegaName"=>proc{|pokemon|
   next _INTL("Mega Charizard X") if pokemon.form==1
   next _INTL("Mega Charizard Y") if pokemon.form==2
   next
},
"getBaseStats"=>proc{|pokemon|
   next [78,130,111,100,130,85] if pokemon.form==1
   next [78,104,78,100,159,115] if pokemon.form==2
   next
},
"type2"=>proc{|pokemon|
   next getID(PBTypes,:DRAGON) if pokemon.form==1
   next
},
"getAbilityList"=>proc{|pokemon|
   next [[getID(PBAbilities,:TOUGHCLAWS),0]] if pokemon.form==1
   next [[getID(PBAbilities,:DROUGHT),0]] if pokemon.form==2
   next
},
"weight"=>proc{|pokemon|
   next 1105 if pokemon.form==1
   next 1005 if pokemon.form==2
   next
}
})
If you don't mind, I'll set up the form change condition for you, but you will have to do the specific data entry yourself (since I don't know it).

Code:
MultipleForms.register(:CHARIZARD,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:CHARIZARDITEX)
   next 2 if isConst?(pokemon.item,PBItems,:CHARIZARDITEY)
   next 3 if isConst?(pokemon.item,PBItems,:ITEMX) and pokemon.happiness <= 40 #change this to your unhappiness threshold
   next 4 if isConst?(pokemon.item,PBItems,:ITEMX)
   next
},
"getMegaName"=>proc{|pokemon|
   next _INTL("Mega Charizard X") if pokemon.form==1
   next _INTL("Mega Charizard Y") if pokemon.form==2
   next _INTL("Black Ultra Charizard") if pokemon.form==3
   next _INTL("Ultra Charizard") if pokemon.form==4
   next
},
"getBaseStats"=>proc{|pokemon|
   next [78,130,111,100,130,85] if pokemon.form==1
   next [78,104,78,100,159,115] if pokemon.form==2 # add stats yourself
   next
},
"type2"=>proc{|pokemon|
   next getID(PBTypes,:DRAGON) if pokemon.form==1 #add type changes yourself
   next
},
"getAbilityList"=>proc{|pokemon|
   next [[getID(PBAbilities,:TOUGHCLAWS),0]] if pokemon.form==1
   next [[getID(PBAbilities,:DROUGHT),0]] if pokemon.form==2 #add ability changes yourself
   next
},
"weight"=>proc{|pokemon|
   next 1105 if pokemon.form==1
   next 1005 if pokemon.form==2 #add weight change yourself
   next
}
})
Form 3 is Black ultra Charizard and form 4 is Ultra Charizard. It's necessary to do the happiness check before the default mega form or else the default would always activate first. But, I haven't tested this code, so use at your own risk.
__________________
Resources for ROM hackers has moved.

Reply With Quote
  #3    
Old 3 Weeks Ago (6:40 AM). Edited 3 Weeks Ago by mej71.
tloriato tloriato is offline
 
Join Date: Sep 2013
Posts: 19
Quote:
Originally Posted by Vendily View Post
Spoiler:
Yes, both of these are entirely possible.

For the first, I would place a condition on the Mega evolution itself. For example, Mega Venasaur (Clean v16.2, Pokemon_MegaEvolution, line 63).
Code:
MultipleForms.register(:VENUSAUR,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:VENUSAURITE)
   next
},
"getBaseStats"=>proc{|pokemon|
   next [80,100,123,80,122,120] if pokemon.form==1
   next
},
"getAbilityList"=>proc{|pokemon|
   next [[getID(PBAbilities,:THICKFAT),0]] if pokemon.form==1
   next
},
"height"=>proc{|pokemon|
   next 24 if pokemon.form==1
   next
},
"weight"=>proc{|pokemon|
   next 1555 if pokemon.form==1
   next
}
})
I would add a condition on the form change here. With your example on level, let's say, It can only mega evolve if it's Level 40+ and has the stone.
Code:
MultipleForms.register(:VENUSAUR,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:VENUSAURITE) and pokemon.level >= 40
   next
},
As for your other condition, you already have part of an example, a pokemon with two mega forms Charizard (line 83).
Code:
MultipleForms.register(:CHARIZARD,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:CHARIZARDITEX)
   next 2 if isConst?(pokemon.item,PBItems,:CHARIZARDITEY)
   next
},
"getMegaName"=>proc{|pokemon|
   next _INTL("Mega Charizard X") if pokemon.form==1
   next _INTL("Mega Charizard Y") if pokemon.form==2
   next
},
"getBaseStats"=>proc{|pokemon|
   next [78,130,111,100,130,85] if pokemon.form==1
   next [78,104,78,100,159,115] if pokemon.form==2
   next
},
"type2"=>proc{|pokemon|
   next getID(PBTypes,:DRAGON) if pokemon.form==1
   next
},
"getAbilityList"=>proc{|pokemon|
   next [[getID(PBAbilities,:TOUGHCLAWS),0]] if pokemon.form==1
   next [[getID(PBAbilities,:DROUGHT),0]] if pokemon.form==2
   next
},
"weight"=>proc{|pokemon|
   next 1105 if pokemon.form==1
   next 1005 if pokemon.form==2
   next
}
})
If you don't mind, I'll set up the form change condition for you, but you will have to do the specific data entry yourself (since I don't know it).

Code:
MultipleForms.register(:CHARIZARD,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:CHARIZARDITEX)
   next 2 if isConst?(pokemon.item,PBItems,:CHARIZARDITEY)
   next 3 if isConst?(pokemon.item,PBItems,:ITEMX) and pokemon.happiness <= 40 #change this to your unhappiness threshold
   next 4 if isConst?(pokemon.item,PBItems,:ITEMX)
   next
},
"getMegaName"=>proc{|pokemon|
   next _INTL("Mega Charizard X") if pokemon.form==1
   next _INTL("Mega Charizard Y") if pokemon.form==2
   next _INTL("Black Ultra Charizard") if pokemon.form==3
   next _INTL("Ultra Charizard") if pokemon.form==4
   next
},
"getBaseStats"=>proc{|pokemon|
   next [78,130,111,100,130,85] if pokemon.form==1
   next [78,104,78,100,159,115] if pokemon.form==2 # add stats yourself
   next
},
"type2"=>proc{|pokemon|
   next getID(PBTypes,:DRAGON) if pokemon.form==1 #add type changes yourself
   next
},
"getAbilityList"=>proc{|pokemon|
   next [[getID(PBAbilities,:TOUGHCLAWS),0]] if pokemon.form==1
   next [[getID(PBAbilities,:DROUGHT),0]] if pokemon.form==2 #add ability changes yourself
   next
},
"weight"=>proc{|pokemon|
   next 1105 if pokemon.form==1
   next 1005 if pokemon.form==2 #add weight change yourself
   next
}
})
Form 3 is Black ultra Charizard and form 4 is Ultra Charizard. It's necessary to do the happiness check before the default mega form or else the default would always activate first. But, I haven't tested this code, so use at your own risk.
@Vendily, thank you for the answer! I'm currently travelling but I read carefully and will try to make it work and I get back to the platform! Thanks!
Reply With Quote
  #4    
Old 2 Weeks Ago (11:52 PM).
tloriato tloriato is offline
 
Join Date: Sep 2013
Posts: 19
Quote:
Originally Posted by Vendily View Post
Yes, both of these are entirely possible.

For the first, I would place a condition on the Mega evolution itself. For example, Mega Venasaur (Clean v16.2, Pokemon_MegaEvolution, line 63).
Code:
MultipleForms.register(:VENUSAUR,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:VENUSAURITE)
   next
},
"getBaseStats"=>proc{|pokemon|
   next [80,100,123,80,122,120] if pokemon.form==1
   next
},
"getAbilityList"=>proc{|pokemon|
   next [[getID(PBAbilities,:THICKFAT),0]] if pokemon.form==1
   next
},
"height"=>proc{|pokemon|
   next 24 if pokemon.form==1
   next
},
"weight"=>proc{|pokemon|
   next 1555 if pokemon.form==1
   next
}
})
I would add a condition on the form change here. With your example on level, let's say, It can only mega evolve if it's Level 40+ and has the stone.
Code:
MultipleForms.register(:VENUSAUR,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:VENUSAURITE) and pokemon.level >= 40
   next
},
As for your other condition, you already have part of an example, a pokemon with two mega forms Charizard (line 83).
Code:
MultipleForms.register(:CHARIZARD,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:CHARIZARDITEX)
   next 2 if isConst?(pokemon.item,PBItems,:CHARIZARDITEY)
   next
},
"getMegaName"=>proc{|pokemon|
   next _INTL("Mega Charizard X") if pokemon.form==1
   next _INTL("Mega Charizard Y") if pokemon.form==2
   next
},
"getBaseStats"=>proc{|pokemon|
   next [78,130,111,100,130,85] if pokemon.form==1
   next [78,104,78,100,159,115] if pokemon.form==2
   next
},
"type2"=>proc{|pokemon|
   next getID(PBTypes,:DRAGON) if pokemon.form==1
   next
},
"getAbilityList"=>proc{|pokemon|
   next [[getID(PBAbilities,:TOUGHCLAWS),0]] if pokemon.form==1
   next [[getID(PBAbilities,:DROUGHT),0]] if pokemon.form==2
   next
},
"weight"=>proc{|pokemon|
   next 1105 if pokemon.form==1
   next 1005 if pokemon.form==2
   next
}
})
If you don't mind, I'll set up the form change condition for you, but you will have to do the specific data entry yourself (since I don't know it).

Code:
MultipleForms.register(:CHARIZARD,{
"getMegaForm"=>proc{|pokemon|
   next 1 if isConst?(pokemon.item,PBItems,:CHARIZARDITEX)
   next 2 if isConst?(pokemon.item,PBItems,:CHARIZARDITEY)
   next 3 if isConst?(pokemon.item,PBItems,:ITEMX) and pokemon.happiness <= 40 #change this to your unhappiness threshold
   next 4 if isConst?(pokemon.item,PBItems,:ITEMX)
   next
},
"getMegaName"=>proc{|pokemon|
   next _INTL("Mega Charizard X") if pokemon.form==1
   next _INTL("Mega Charizard Y") if pokemon.form==2
   next _INTL("Black Ultra Charizard") if pokemon.form==3
   next _INTL("Ultra Charizard") if pokemon.form==4
   next
},
"getBaseStats"=>proc{|pokemon|
   next [78,130,111,100,130,85] if pokemon.form==1
   next [78,104,78,100,159,115] if pokemon.form==2 # add stats yourself
   next
},
"type2"=>proc{|pokemon|
   next getID(PBTypes,:DRAGON) if pokemon.form==1 #add type changes yourself
   next
},
"getAbilityList"=>proc{|pokemon|
   next [[getID(PBAbilities,:TOUGHCLAWS),0]] if pokemon.form==1
   next [[getID(PBAbilities,:DROUGHT),0]] if pokemon.form==2 #add ability changes yourself
   next
},
"weight"=>proc{|pokemon|
   next 1105 if pokemon.form==1
   next 1005 if pokemon.form==2 #add weight change yourself
   next
}
})
Form 3 is Black ultra Charizard and form 4 is Ultra Charizard. It's necessary to do the happiness check before the default mega form or else the default would always activate first. But, I haven't tested this code, so use at your own risk.
I have a certain doubt: Does MEGA forms acts like a normal pokemon in the sense of learning new moves, the XP gain, and the usual?

Thank you
Reply With Quote
  #5    
Old 2 Weeks Ago (9:50 AM).
Vendily's Avatar
Vendily Vendily is offline
Making BW-style OWs for RMXP
 
Join Date: Aug 2015
Gender: Female
Nature: Calm
Posts: 561
As far as Essentials is concerned, Megas are just specialized form changes, so they should receive XP and new moves and what not.

I would read the wiki on both Megas and Multiple forms.
__________________
Resources for ROM hackers has moved.

Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 12:18 AM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2016 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.

Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2016.