• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Setting Giratina's form through an event encounter

  • 19
    Posts
    9
    Years
    • Seen May 13, 2020
    THIS HAS BEEN SOLVED! PLEASE LOOK BELOW FOR THE ANSWERS IF YOU ARE HAVING THESE ISSUES, TOO!

    So I need to have an Origin Form Giratina for an event Pokémon, which I've gotten to work, but only if I use a switch to give him the Griseous Orb. However, I want to place Giratina in a map that acts like the Distortion World (so he is in Origin form upon encounter w/o needing to hold an item), but I don't know how.

    Another question, can you give Giratina a new ability or do you have to delete his current ones? I'm making a Delta Stream-esque ability, but it's not showing up in Debug > Ability.

    For my first question: Around line 571 or so, at "getForm", you have to put this in:
    Spoiler:

    In the "$game_switches[A SWITCH ID TO TURN ON]" portion, you replace the part in the brackets with a switch ID. This will allow Giratina to be in Origin Form without an item whenever the switch is on.

    For my second question: I made Giratina's ability in Pokemon_MultipleForms set to "SOULDUST" (the internal name of my new ability) around its entry. Its Altered Form was getting the Ability because it read from the pokemon.txt, but in Pokemon_MultipleForms, it sets its possible Abilities to what it would normally have before editing.
     
    Last edited:
    You could add a new Giratina to the Pokemon PBS that acts just like a regular Giratina except with the origin sprite.
     
    So I need to have an Origin Form Giratina for an event Pokémon, which I've gotten to work, but only if I use a switch to give him the Griseous Orb. However, I want to place Giratina in a map that acts like the Distortion World (so he is in Origin form upon encounter w/o needing to hold an item), but I don't know how.

    Another question, can you give Giratina a new ability or do you have to delete his current ones? I'm making a Delta Stream-esque ability, but it's not showing up in Debug > Ability.

    Look at how it's multiple forms are defined
    Code:
    MultipleForms.register(:GIRATINA,{
    "getAbilityList"=>proc{|pokemon|
       next if pokemon.form==0                  # Altered Forme
       next [[getID(PBAbilities,:LEVITATE),0],
             [getID(PBAbilities,:TELEPATHY),2]] # Origin Forme
    },
    "height"=>proc{|pokemon|
       next if pokemon.form==0 # Altered Forme
       next 69                 # Origin Forme
    },
    "weight"=>proc{|pokemon|
       next if pokemon.form==0 # Altered Forme
       next 6500               # Origin Forme
    },
    "getBaseStats"=>proc{|pokemon|
       next if pokemon.form==0       # Altered Forme
       next [150,120,100,90,120,100] # Origin Forme
    },
    "getForm"=>proc{|pokemon|
       [COLOR="Red"]maps=[49,50,51,72,73]   # Map IDs for Origin Forme[/COLOR]
       if isConst?(pokemon.item,PBItems,:GRISEOUSORB) ||
          ($game_map && maps.include?($game_map.map_id))
         next 1
       end
       next 0
    }
    })

    Just have this array contain your desired map ids and it should work without any switches.
    To give a pokemon a different ability, you have to define it as such in pokemon.txt, you can't force an ability like that in Essentials.
     
    Look at how it's multiple forms are defined
    Code:
    MultipleForms.register(:GIRATINA,{
    "getAbilityList"=>proc{|pokemon|
       next if pokemon.form==0                  # Altered Forme
       next [[getID(PBAbilities,:LEVITATE),0],
             [getID(PBAbilities,:TELEPATHY),2]] # Origin Forme
    },
    "height"=>proc{|pokemon|
       next if pokemon.form==0 # Altered Forme
       next 69                 # Origin Forme
    },
    "weight"=>proc{|pokemon|
       next if pokemon.form==0 # Altered Forme
       next 6500               # Origin Forme
    },
    "getBaseStats"=>proc{|pokemon|
       next if pokemon.form==0       # Altered Forme
       next [150,120,100,90,120,100] # Origin Forme
    },
    "getForm"=>proc{|pokemon|
       [COLOR="Red"]maps=[49,50,51,72,73]   # Map IDs for Origin Forme[/COLOR]
       if isConst?(pokemon.item,PBItems,:GRISEOUSORB) ||
          ($game_map && maps.include?($game_map.map_id))
         next 1
       end
       next 0
    }
    })

    Just have this array contain your desired map ids and it should work without any switches.
    To give a pokemon a different ability, you have to define it as such in pokemon.txt, you can't force an ability like that in Essentials.
    Well, I found this out through Relic Castle almost a week ago, but thank you~
    I still have one other error, though. How do I make the title cry match Giratina's? I followed the instructions on the Wiki, but they must be outdated, because all I get when I hit enter is silence.
     
    Last edited:
    If you find the answer to your question on your own or elsewhere, you should edit your post with that answer, for anyone with a similar question in the future.
    I just decided to check Pokécommunity now (busy week), and I simply wasn't thinking. Could you help with the second problem, though? No one's been able to answer it.
     
    I just decided to check Pokécommunity now (busy week), and I simply wasn't thinking. Could you help with the second problem, though? No one's been able to answer it.

    Code:
    pbSEPlay("487Cry.wav",100,100) if cry
    You have to specify the filetype. Incidentally, I've noticed that the current cry doesn't play at all, since pbResolveAudioSE returns the full path, not the relative path.
     
    Code:
    pbSEPlay("487Cry.wav",100,100) if cry
    You have to specify the filetype. Incidentally, I've noticed that the current cry doesn't play at all, since pbResolveAudioSE returns the full path, not the relative path.
    A few minutes later and it's still not working. Here's my code for it...
    Code:
    cry=pbResolveAudioSE(pbCryFile(PBSpecies::GIRATINA))
    pbSEPlay("487Cry.wav",100,100) if cry
     
    Yes. Because when you're having issues with your audio functions, blame the battle system mod. Makes sense.

    Okay, I know where you're coming from, but EBS is the only thing that I've added to this project, other than Gen 6 Project and I doubt that the PBS files screw with audio. I haven't edited ANYTHING involving sound at all. ANYTHING.
     
    Don't be so snarky, Luka. And people say I'm harsh...

    You're just not using the correct code. Use this:

    Code:
        cry=pbCryFile(487)
        pbSEPlay(cry,100,100) if cry
    You didn't say which version of Essentials you were using (big mistake - you should always give us that information if you want our help), but I assume it's v16 or v16.1 because v16 moved where the cry files are kept so your code wouldn't work. I'm assuming that Giratina is still species number 487 in your game; if not, change it.
     
    Don't be so snarky, Luka. And people say I'm harsh...

    You're just not using the correct code. Use this:

    Code:
        cry=pbCryFile(487)
        pbSEPlay(cry,100,100) if cry
    You didn't say which version of Essentials you were using (big mistake - you should always give us that information if you want our help), but I assume it's v16 or v16.1 because v16 moved where the cry files are kept so your code wouldn't work. I'm assuming that Giratina is still species number 487 in your game; if not, change it.

    Thank you, sorry for all the trouble I've caused... I'll keep the version tip in mind for the future.
     
    Back
    Top