Community

The PokéCommunity

We are still working on a better slogan!

Visit Index



Advertise here

Go Back   The PokéCommunity Forums > Creative Discussions > Game Development > Scripts & Tutorials
Notices

Scripts & Tutorials This forum is for scripts and code, as well as all kinds of tutorials, software, tools and so forth. Remember to give credit!
The thread revival limit does not apply here.

Post Reply
 
Thread Tools
  #1    
Old April 27th, 2013, 03:50 PM
Black Eternity's Avatar
Black Eternity
Lord of Eternity
 
Join Date: Sep 2012
Age: 21
Gender: Male

Advertise here
Alright first thing first.... I did not create this script, I just altered it slightly for some different performances.

Credits to FL.

1. I changed the script to accept minimum/maximum values. This is so you can choose to limit the range of pokemon it can generate, EX: 1,151 will generate only Gen 1 pokemon.
152,251 will generate Gen 2 pokemon.

2. Made it easier to add exceptions/type limits. No longer have to type PBSpecies::POKENAME
Just type :POKENAME. Same for PBTypes::TYPE, just :TYPE.

The main reason I did this was because I needed fewer amount of pokemon to be generated, and needed more space in the event script.

Once again, no need to credit me for the script.
Just replace the old script with this new one, and call it like this:
randomEggGenerator(min,max,[exceptions],[types],incense)

Example for Generation 1 only, Fire type, and no incense:
randomEggGenerator(1,151,[],[:FIRE])

Example for Generation 2 only, No starter pokemon, incense set to true:
randomEggGenerator(152,251,[:CHIKORITA,:CYNDAQUIL,:TOTODILE],[],true)

To use it like the original script:
randomEggGenerator(1,649,[exceptions],[types],false/true)

Final time.... This is just a modified version of FL.'s script.

Code:
#===============================================================================
# * Random Egg Generator - by FL (Credits will be apreciated)
#===============================================================================
#
# This script is for Pokémon Essentials. It random generates an egg with all
# possible pokémon that can hatch from an eggs (excluding some species like
# Ditto, Mewtwo and Unown) with same probability. You can also filter by type.
#
#===============================================================================
#
# To this scripts works, put it above main and use in script command 
# 'randomEggGenerator'. This only gives to player an egg if the player has
# a empty party slot. You can also calls the method with an array with the
# exceptions that cannot be random generated. Example:
# 'randomEggGenerator(1,649,[:DRATINI,:LARVITAR],[])' won't generates
# Dratini or Larvitar.
#
# You can also filter by types calling this method with a type array as
# second parameter. Example: 
# 'randomEggGenerator(1,649[],[:ROCK,:GROUND,:STEEL])' only
# generates pokémon that have the Rock, Ground or Steel types. Please note 
# that pokémon like Swablu doesn't count as a Dragon type.
#
# This script also doesn't generate eggs for pokémon than can incense breed
# like Wynaut, but generate for pokémon than are incense babies like Wobbuffet. 
# If you wish to enable the both cases in eggs, both counting as different
# pokémon call the script using 'randomEggGenerator(1,649,[],[],true)'.
# 
#===============================================================================

def randomEggGenerator(min,max,exceptions=[],type=[],enableIncenseEvos=false)
  for i in 0...type.length
    type[i]=getID(PBTypes,type[i]) if !type[i].is_a?(Integer)
  end
  for i in 0...exceptions.length
    exceptions[i]=getID(PBSpecies,exceptions[i]) if !exceptions[i].is_a?(Integer)
  end
  # Phione and Manaphy are always exceptions 
  exceptions+=[PBSpecies::PHIONE,PBSpecies::MANAPHY] 
  if $Trainer.party.length>=6
    Kernel.pbMessage(_INTL(
        "I'm sorry, but it would seem that you can't carry any more Pokemon."))
  else   
    species=0
    dexdata=pbOpenDexData
    while(species==0)
      species=min+rand(max-min)
      pbDexDataOffset(dexdata,species,8)
      type1=dexdata.fgetb
      type2=dexdata.fgetb
      # Redo the loop if the species can't be in an egg, is an exceptions or
      # is an evolution (only if enableIncenseEvos=false)
      species=0 if (!pbHasEgg?(species) || exceptions.include?(species) || 
          (!type.empty? && !type.include?(type1) && !type.include?(type2)) ||
          (!enableIncenseEvos && pbGetPreviousForm(species)!=species))
    end
    dexdata.close    
    pbGenerateEgg(species)
    Kernel.pbMessage(
        _INTL("{1} received the Egg!\\se[itemlevel]\1",$Trainer.name))
  end
end
  #2    
Old April 30th, 2013, 04:04 PM
FL's Avatar
FL
Pokémon Island Creator
 
Join Date: Sep 2010
Gender: Male
Well done!

I prefer to use a Range object (or its array conversion) rather than a min/max values. Thus, the Exception can be handled directly in this array, making three parameters as one!

Ah! I also prefer to put default values for these parameters.
  #3    
Old February 20th, 2014, 03:50 PM
joeyhugg's Avatar
joeyhugg
 
Join Date: Apr 2013
Gender: Male
This will be most useful. Thanks!
  #4    
Old May 5th, 2014, 05:04 PM
mej71
 
Join Date: Mar 2014
Location: Omnipresence
Gender: Male
I know this was written for v12, but I'm having a problem with it. I call it, and it runs, but then when i go to check my party I get this error

Code:
Exception: RuntimeError
Message: filename is nil
SpriteWindow:218:in `initialize'
PokemonSprite:113:in `new'
PokemonSprite:113:in `pokemon='
PokemonSprite:99:in `initialize'
PokemonParty:341:in `new'
PokemonParty:341:in `initialize'
PokemonParty:614:in `new'
PokemonParty:614:in `pbStartScene'
PokemonParty:612:in `each'
PokemonParty:612:in `pbStartScene'
Using this to call it: randomEggGenerator(1,721,[],[],false)

Last edited by mej71; May 7th, 2014 at 11:25 AM. Reason: I'm using v13 btw, if that wasn't clear
  #5    
Old May 12th, 2014, 12:41 PM
FL's Avatar
FL
Pokémon Island Creator
 
Join Date: Sep 2010
Gender: Male
Quote:
Originally Posted by mej71 View Post
I know this was written for v12, but I'm having a problem with it. I call it, and it runs, but then when i go to check my party I get this error

Code:
Exception: RuntimeError
Message: filename is nil
SpriteWindow:218:in `initialize'
PokemonSprite:113:in `new'
PokemonSprite:113:in `pokemon='
PokemonSprite:99:in `initialize'
PokemonParty:341:in `new'
PokemonParty:341:in `initialize'
PokemonParty:614:in `new'
PokemonParty:614:in `pbStartScene'
PokemonParty:612:in `each'
PokemonParty:612:in `pbStartScene'
Using this to call it: randomEggGenerator(1,721,[],[],false)
'pbGenerateEgg(1)' gives you Bulbasaur? If no, then there is something wrong with your Essentials.
  #6    
Old May 12th, 2014, 01:22 PM
mej71
 
Join Date: Mar 2014
Location: Omnipresence
Gender: Male
Quote:
Originally Posted by FL View Post
'pbGenerateEgg(1)' gives you Bulbasaur? If no, then there is something wrong with your Essentials.
It wound up being me, thanks so much!

For some reason, this line in def pbCheckPokemonIconFiles

Code:
bitmapFileName=sprintf("Graphics/Icons/iconEgg") if !pbResolveBitmap(bitmapFileName)
got changed to

Code:
bitmapFileName=sprintf("Graphics/Pictures/iconEgg") if !pbResolveBitmap(bitmapFileName)
though I have no idea why I would have changed that nor do I remember doing so lol.
  #7    
Old July 13th, 2014, 11:29 AM
StevenStoner
 
Join Date: Jul 2014
Gender: Male
Where do I put it? Like, what section?
  #8    
Old July 13th, 2014, 11:36 AM
Discord.'s Avatar
Discord.
Make sense? Oh, what fun is there in making sense?
 
Join Date: Jan 2013
Location: Ljubljana
Age: 15
Gender:
Nature: Relaxed
Send a message via Skype™ to Discord.
Quote:
Originally Posted by StevenStoner View Post
Where do I put it? Like, what section?
find the Main script in the script editor(the very last one), right click and chose insert, name the new section whatever you want and put the script there
Can't be bothered to find a new sig pic

My personal webpage under construction.
Paired with Polar Spectrum
Essentials forme change with moves script

I support Digimon Your Digital Dream

I support Pokemon The Movie Game


  #9    
Old July 13th, 2014, 03:36 PM
StevenStoner
 
Join Date: Jul 2014
Gender: Male
Quote:
Originally Posted by Roaming Murkrow View Post
find the Main script in the script editor(the very last one), right click and chose insert, name the new section whatever you want and put the script there
Oh... lol thanks, hahahahaha
Post Reply
Quick Reply

Sponsored Links


Advertise here
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 11:34 PM.

About Us
© 2002 - 2014 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.

Copyright
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 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. Header artwork by Jordanice of deviantART.

Social Media
If you would like to stay up-to-date with us on the go, when we're down, or other such things, follow us on social media sites--most notibly Twitter, Facebook, and Google Plus--by clicking on the links provided.

Design presented by Peitharchia. Special thanks to Hiroshi Sotomura and Ausaudriel.