Go Back   The PokéCommunity Forums > Creative Discussions > Game Development > Pokémon Essentials

Notices
For all updates, view the main page.

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 January 1st, 2013 (02:51 PM).
p.claydon
 
Join Date: Jan 2011
Gender:
hiya is it possible to have an evolution method that depends on a different pokémon being in the party but after the evolution that pokémon is removed? eg slowpoke needs a shelder but when evolves into slowbro the shelder is removed

if its possible how would you go about coding the evo type
Reply With Quote
  #2    
Old January 1st, 2013 (03:02 PM).
Arma's Avatar
Arma
Actually not mad at all
Community Supporter
 
Join Date: Dec 2009
Location: The Hague
Age: 21
Gender: Male
Nature: Jolly
This shouldn't be that hard to implement... Just look at the current code that allows a Pokemon to evolve by level up, copy that, and add an "if" statement checking whether a specific Pokemon is in your party.
__________________
Reply With Quote
  #3    
Old January 1st, 2013 (03:04 PM).
p.claydon
 
Join Date: Jan 2011
Gender:
i think ive done it in a previous version that checks if a species is in the party but cant seam to get it to remove the required pokémon after the evolution
Reply With Quote
  #4    
Old January 1st, 2013 (04:50 PM).
Maruno's Avatar
Maruno
Lead Dev of Pokémon Essentials
 
Join Date: Jan 2008
Location: England
It's a mixture of Mantyke's evolution (number 21) and a held item-based evolution (numbers 6/18/19).

In def pbMiniCheckEvolution, do a copy of method 21. In def pbEvolution, look for where Shedinja and the held item-based evolutions are mentioned, and add something similar which will look for and delete the first Shellder in the party (if your new method is used, obviously).

This will restrict your new evolution method to just one checked-for species (i.e. Shellder). You couldn't use the same method for both Slowpoke and Beldum, for example, because they would each need to delete a different Pokémon species. You could certainly add more code to allow for a one-method-fits-all, but it's easier to just make another evolution method for Beldum instead. Assuming you're using this method for more than one species, of course.



It strikes me that this method is extremely unfair, though. The player loses a Pokémon without warning, and without indication of which Pokémon is being deleted. There might also be an issue of the deleted Pokémon being your only remaining unfainted Pokémon, but you probably don't have to worry about that.

Personally, I would go for a different method and allow fishing with Slowpoke. If the hooked Pokémon is a Shellder (and optionally if Slowpoke is level 37 or higher), cause an evolution instead of a battle. It's more complicated to do, but much more fair.
__________________
Reply With Quote
  #5    
Old January 2nd, 2013 (02:33 AM).
p.claydon
 
Join Date: Jan 2011
Gender:
that sounds more acceptable to be honest but also sounds much harder may look into it
Reply With Quote
  #6    
Old January 14th, 2013 (07:32 AM).
p.claydon
 
Join Date: Jan 2011
Gender:
ok having no luck getting this working any suggestions?
Reply With Quote
  #7    
Old October 12th, 2014 (06:51 AM). Edited October 14th, 2014 by eboxiv.
eboxiv's Avatar
eboxiv
 
Join Date: Jul 2014
Quote originally posted by Maruno:

It strikes me that this method is extremely unfair, though. The player loses a Pokémon without warning, and without indication of which Pokémon is being deleted. There might also be an issue of the deleted Pokémon being your only remaining unfainted Pokémon, but you probably don't have to worry about that.

Personally, I would go for a different method and allow fishing with Slowpoke. If the hooked Pokémon is a Shellder (and optionally if Slowpoke is level 37 or higher), cause an evolution instead of a battle. It's more complicated to do, but much more fair.

i wanted to trigger this evolution by letting shellder use CLAMP on slowpoke from the party screen (like softboiled or milk drink), so the user could expect that the shellder will be deleted afterwards. but whatever i try, i can't successfully call the evolution. that's what i got so far in the party script:

EDIT: got it to work, see next post...
Reply With Quote
  #8    
Old October 12th, 2014 (08:30 AM).
Lexxilion's Avatar
Lexxilion
 
Join Date: Jul 2014
Gender: Male
Nature: Careful
Quote originally posted by Maruno:
It's a mixture of Mantyke's evolution (number 21) and a held item-based evolution (numbers 6/18/19).

In def pbMiniCheckEvolution, do a copy of method 21. In def pbEvolution, look for where Shedinja and the held item-based evolutions are mentioned, and add something similar which will look for and delete the first Shellder in the party (if your new method is used, obviously).

This will restrict your new evolution method to just one checked-for species (i.e. Shellder). You couldn't use the same method for both Slowpoke and Beldum, for example, because they would each need to delete a different Pokémon species. You could certainly add more code to allow for a one-method-fits-all, but it's easier to just make another evolution method for Beldum instead. Assuming you're using this method for more than one species, of course.

It strikes me that this method is extremely unfair, though. The player loses a Pokémon without warning, and without indication of which Pokémon is being deleted. There might also be an issue of the deleted Pokémon being your only remaining unfainted Pokémon, but you probably don't have to worry about that.

Personally, I would go for a different method and allow fishing with Slowpoke. If the hooked Pokémon is a Shellder (and optionally if Slowpoke is level 37 or higher), cause an evolution instead of a battle. It's more complicated to do, but much more fair.
Are there any pre-existent tutorials for this method, Maruno? It seems like a great way to tackle the issue and I've been wondering if there was any way to achieve it myself. I'll be the first to admit that a lot of this coding is too complex for me at the moment, but I'm slowly getting there =] So it would be helpful if there were some guidelines for it at least, rather than a complete solution provided by somebody =]
Reply With Quote
  #9    
Old October 14th, 2014 (05:56 AM). Edited October 14th, 2014 by eboxiv.
eboxiv's Avatar
eboxiv
 
Join Date: Jul 2014
Quote originally posted by eboxiv:
EDIT: got it to work, see next post...
first i created new evolution methods for slowpoke to evolve and changed them in the pokemon pbs:

Evolutions=SLOWKING,Custom6,KINGSROCK,SLOWBRO,Custom7,

Code:
1,1,1,1,1,2,0 # Custom 1-7
Code:
# Add code for custom evolution type 5
    when PBEvolution::Custom6
      return poke if pokemon.smart==255 && pokemon.markings==8 && pokemon.item==level
    when PBEvolution::Custom7
      return poke if pokemon.smart==255 && pokemon.markings==8
after that i made CLAMP selectable from the party screen:

Code:
# Check for hidden moves and add any that were found
        if !pkmn.egg? && (
           isConst?(move.id,PBMoves,:MILKDRINK) ||
           isConst?(move.id,PBMoves,:SOFTBOILED) ||
           isConst?(move.id,PBMoves,:CLAMP) ||
           HiddenMoveHandlers.hasHandler(move.id)
and then set its effect below the milk drink script:

Code:
elsif isConst?(pkmn.moves[i].id,PBMoves,:CLAMP)
          @scene.pbSetHelpText(_INTL("Use on which Pokémon?"))
            oldpkmnid=pkmnid
            loop do
              @scene.pbPreSelect(pkmnid)
              pkmnid=@scene.pbChoosePokemon(true)
              break if pkmnid<0
              newpkmn=@party[pkmnid]
              oldlvl=newpkmn.level
              oldsmart=newpkmn.smart
              oldmark=newpkmn.markings
if newpkmn.species==PBSpecies::GENESECT
  if newpkmn.item==PBItems::KINGSROCK || newpkmn.level>=37
                newpkmn.smart=255
                newpkmn.markings=8
                newspecies=pbCheckEvolution(newpkmn)
    if newspecies>0
      pbFadeOutInWithMusic(99999){
         evo=PokemonEvolutionScene.new
         evo.pbStartScreen(newpkmn,newspecies)
         evo.pbEvolution
         evo.pbEndScreen
      }
    end
    newpkmn.level=oldlvl
    newpkmn.smart=oldsmart
    newpkmn.markings=oldmark
    pbDisplay(_INTL("SHELLDER fused with SLOWPOKE."))
            @party[oldpkmnid]=nil
            @party.compact!
            pbHardRefresh
                pbRefresh
                break
  else
                pbDisplay(_INTL("it won't work"))
  end
else 
                pbDisplay(_INTL("Why would you do that?"))
              end
            end
    break
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
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 01:17 AM.