• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Staff applications for our PokéCommunity Daily and Social Media team are now open! Interested in joining staff? Then click here for more info!
  • 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.

Making a Poké Ball that can catch both wild and Shaow Pokémon

  • 40
    Posts
    9
    Years
    • She/Her
    • Seen Nov 25, 2024
    Ok so, I was wondering if is possible to add a Pokeball that catches ALL Pokemon. Shadows AND Normal ones.

    I followed the tutorial on how to create a Pokeball that acts as a snag ball.
    This means I have a ball almost identicle to the Master Ball except it catches Shadows and Wilds.

    I want to know if an extra set of code could be created to force ONLY the "Snag Ball" to catch ALL Pokemon. Owned ones included.

    The reason I'm asking is because in the game I'm working on, the player has to pull a "Rocket type move", whereby using the Snag Ball to steal an OWNED Pokemon from the evil team leader.
    I want this option open to any trainer and also leave untouched the ball that only does shadow pokemon.
     
    I'm just guessing because I have never ever fiddled with Shadow mons, but perhaps something like

    Code:
    BallHandlers::ModifyCatchRate.add(:SNAGBALL,proc{|ball,catchRate,battle,battler|
       if battler.shadow
         catchRate*=whatever
       end
       next catchRate
    })

    Maybe instead of battle.shadow try pokemon.shadow (although I guess that would account for YOUR own Shadow Pokémon as well).
     
    Code:
        if @opponent && !(battler.isShadow? && [COLOR="Red"]#something about snag balls[/COLOR])
          @scene.pbThrowAndDeflect(ball,1)
          pbDisplay(_INTL("The Trainer blocked the Ball!\nDon't be a thief!"))

    I ended up editing the relevant bit of code in my own game, so I don't remember what it originally said.

    It's found in PokeBattle_Battle, around line 168.
     
    Code:
        if @opponent && !(battler.isShadow? && [COLOR="Red"]#something about snag balls[/COLOR])
          @scene.pbThrowAndDeflect(ball,1)
          pbDisplay(_INTL("The Trainer blocked the Ball!\nDon't be a thief!"))

    I ended up editing the relevant bit of code in my own game, so I don't remember what it originally said.

    It's found in PokeBattle_Battle, around line 168.

    For me it's around line 138.
    Code:
        if @opponent && (!pbIsSnagBall?(ball) || !battler.isShadow?)
          @scene.pbThrowAndDeflect(ball,1)
          pbDisplay(_INTL("The Trainer blocked the Ball!\nDon't be a thief!"))
    From what I understand here, this identifies if it's a shadow pokemon or not and if the snagball was used or not.

    It only allows the capture of shadows. I want a ball able to catch owned Pokemon as well.
     
    Code:
        if [COLOR="Red"]@opponent[/COLOR] && [COLOR="DarkOrchid"]!(pbIsSnagBall?(ball) && battler.isShadow?)[/COLOR] && [COLOR="blue"]!isConst?(ball,PBItems,:ROCKETBALL)[/COLOR]
          @scene.pbThrowAndDeflect(ball,1)
          pbDisplay(_INTL("The Trainer blocked the Ball!\nDon't be a thief!"))

    Change the top line. Then, go into your game's files, in the PBS folder, and find items.txt

    Add to the very bottom:
    Code:
    597,ROCKETBALL,Rocket Ball,3,2000,"A modified Poke Ball that other Trainers can't see.  It enables you to snag their Pokemon.",0,2,4,

    You can change that 597 to some other number if you've already added other items, and you can change the name of the item. Just be sure that the all-capitolized version of the name is the same as what is in the code.

    If this works right, any Pokeball can catch wild Pokemon, Snag Balls can catch Shadow Pokemon, and Rocket Balls can catch any Pokemon.
     
    Ok so, I was wondering if is possible to add a Pokeball that catches ALL Pokemon. Shadows AND Normal ones.
    By default, Snag Balls in Essentials already work on both trainer-owned Shadow Pokémon and wild Pokémon.

    Note that if $PokemonGlobal.snagMachine is set to true, all Poké Balls will also act as Snag Balls.

    I want this option open to any trainer and also leave untouched the ball that only does shadow pokemon.
    There is nothing in the unmodified Essentials that will make a Poké Ball work only on trainer-owned Shadow Pokémon. I don't know if you've done anything yourself about this, but if you have, you surely know enough that you didn't need to ask this question.
     
    Code:
    Omitted for space.

    Change the top line. Then, go into your game's files, in the PBS folder, and find items.txt

    Add to the very bottom:
    Code:
    597,ROCKETBALL,Rocket Ball,3,2000,"A modified Poke Ball that other Trainers can't see.  It enables you to snag their Pokemon.",0,2,4,

    You can change that 597 to some other number if you've already added other items, and you can change the name of the item. Just be sure that the all-capitolized version of the name is the same as what is in the code.

    If this works right, any Pokeball can catch wild Pokemon, Snag Balls can catch Shadow Pokemon, and Rocket Balls can catch any Pokemon.

    I love this so much! It still acts like a crap Pokeball so it still fails. I don't want it to be a master ball of course. Too easy even for Team Rocket.

    This does indeed work wonderfully aside from it ends the battle if you steal a NORMAL pokemon from a trainer with 2 or more in their original party. It doesn't give them a defeated trigger unless you caused their last pokemon to faint.
    That leads to a glitched form of encounter where the game acts as though you never even met them yet still have the pokemon you stole the first time.

    Useful if you missed the one you wanted I suppose.
    I recommend single Pokemon trainers but still the lack of defeat trigger is an issue.

    By default, Snag Balls in Essentials already work on both trainer-owned Shadow Pokémon and wild Pokémon.

    There is nothing in the unmodified Essentials that will make a Poké Ball work only on trainer-owned Shadow Pokémon. I don't know if you've done anything yourself about this, but if you have, you surely know enough that you didn't need to ask this question.

    Oh I know it'll catch any shadows. It would be silly if it didn't.

    I definitely don't have any coding knowledge. Not for this form of code at least but I'm learning through reading and implementing.

    My intent was to have a separate ball to catch owned pokemon as a sort of thief ball.

    I always thought Team Rocket must have had something like it because as Jessie and James are so incompetent and the rest of the team tends to be defeated on their occasional appearence, they must have come up with a thief ball.
     
    Back
    Top