View Single Post
Old July 4th, 2009 (8:12 PM).
ckret2's Avatar
ckret2 ckret2 is offline
usually pronounced "secret 2"
    Join Date: Dec 2008
    Location: You Are Here
    Age: 26
    Nature: Rash
    Posts: 518
    I've been trying for weeks now to make a script that makes it impossible to progress in the game until you battle and defeat a wild Pokémon. The good news is that I succeeded. Yay. The bad news is that it's still possible to catch the Pokémon in battle. So, hypothetically, you could come up to the Pokémon with ten Poké Balls, battle it, catch it, rebattle and recatch it, until you've caught it ten times, and then make it faint and then you'd progress in the game. Which is silly. However, aside from making it impossible to bring any Poké Balls into the battle (which I am more than willing to do, but I'd like a "cleaner" solution if possible), I can't find a way to make it impossible to catch the Pokémon. Any ideas?

    It's in a FireRed hack, and made with XSE. Here's the script as it is so far. Well, with extraneous scripting irrelevant to the issue removed and with the dialogue changed, but this is the gist of it:

    #dynamic 0xOFFSET
    #org @start
    wildbattle 0x69 0xB 0x0
    special2 0x800D 0xB4
    compare 0x800D 0x1
    if 0x1 goto @beat
    compare 0x800D 0x4
    if 0x1 goto @ranaway
    msgbox @caughtit 0x6

    #org @ranaway
    msgbox @tryagainlater 0x6

    #org @beat
    msgbox @youwon 0x6
    setflag 0x100

    #org @tryagainlater
    = Maybe I'll come back later.

    #org @youwon
    = Yeah! I beat it!

    #org @caughtit
    = Well, I guess I caught it, huh?
    So far as I can tell, I'm the first person to dissect and make use of special2 0xB4 in a script, so here's a mini-tutorial on how it functions and why I set it up like I did. (And if someone HAS figured out special2 0xB4 before me, I apologize for presuming to be the first, although I must mention that I've been all over this site trying to figure out how the heck it works and must humbly ask why the wisdom wasn't shared, as it would have saved me a lot of time.)

    Given the above, is there any way to make it impossible to throw a Poké Ball at the Pokémon in battle, apart from a) making Poké Balls unavailable until after the battle, b) inserting a script that throws all your Poké Balls away and/or sends them to the PC, c) making the Pokémon a ghost, or d) making the Pokémon's catch rate 0 and making sure Master Balls aren't available yet? (Speaking of which, I don't actually know if Master Balls work on Pokémon with a catch rate of 0.) Is there some special, some form of wildbattle, something? (I know the original Ghost Marowak script uses wildbattle2 but don't know what that does. I'm afraid it'll just turn the Pokémon into a ghost.)

    This one is my hack.

    This one is the hack I part-time map for.

    I got an Illumise?
    Pretty awesome.
    Glad I grabbed an egg I didn't recognize.