• 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!
  • Dawn, Gloria, Juliana, or Summer - which Pokémon protagonist is your favorite? Let us know by voting in our poll!
  • 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.

[Other✓] 386 Patching: Legendary Encounters

  • 7
    Posts
    11
    Years
    Posted this on Script Help Thread, didn't get a response, will try here.

    Game: Pokemon FireRed
    Type: Person event (Scripted Legendary Encounter)
    Editor: PKSV-UI by Score_Under (via AdvanceMap 1.95)
    Script:
    Spoiler:


    The goal for this script: I have all three legendary dogs in a spot. What I want them to do is act like all the other legendary encounters here. I examined other legendary scripts to try to determine how they differed, and then could make my own to do this. Eventually I want to make all of the Gen II legendaries available somewhere. Ultimately I want the game to be a 386 patch (I'll do more stuff beyond this to start making a new game, but I wanted to start simple ) -- and will need to do this for all the legendaries (or at least, the ones with sprites) so figuring out how to make this work is important.

    What's actually happening:Catching the Pokemon does nothing. That is, it's still there, available for capture as many times as I want. If I run, the flee message displays, then if I walk away, any of the three that I've already ran from comes back after I take a step. If I make the legendary faint, the message doesn't display, but the pokemon still comes back after the next encounter. From the code examination (I have Entei's in the script, Suicune and Raikou's are similar, just with their own flags and coding) they look to be coded the same way as all the legendaries that work fine (ie: Mewtwo, Zapdos, etc.) but... they don't. So... what am I missing here?

    Screenshots and/or videos:
    Since I can't post links, apparently, since I'm new here (and this is also my first attempt at hacking), the screencaps aren't available right here... www dot mainstreet52 dot info slash images slash FRIPH slash Dogs1.png is the first image (the others are Dogs2.png and Dogs3.png, and they were taken in numerical order.) I'm not sure how helpful they'll be... this is on fleeing twice. I've fixed the issue where it says ZAPDOS is the one that flees, that was simply fixing the hex var which I hadn't figured out at first.
     
    You need to give each of the Legendary Beasts' overworlds an individual Person ID, and make it so that the script sets the flag that matches that Person ID after the Beast is defeated / captured / flees. For example, if Raikou has the Person ID of 2F0, you should include setflag 0x2F0 somewhere in the script.
     
    You need to give each of the Legendary Beasts' overworlds an individual Person ID, and make it so that the script sets the flag that matches that Person ID after the Beast is defeated / captured / flees. For example, if Raikou has the Person ID of 2F0, you should include setflag 0x2F0 somewhere in the script.

    Ahhh, okay. I'd set flags 227/228/229 sort of arbitrarily -- I'd read the big post on flags and figured those were the safest flags to use... had not noticed that the flags matched the person IDs there... that said, I'd been filling the Person IDs in from FFFF and working down because I had no idea what person IDs were already used by something.

    So, I'll have to ask which person IDs are safe to use, so I can go ahead and use those for these, to match up with the flags correctly. That said, even if the 2xx person IDs aren't "safe", if I just know where they are, if they aren't going to be a problem, I can always just move the person that has that ID to something else as well...
     
    Ahhh, okay. I'd set flags 227/228/229 sort of arbitrarily -- I'd read the big post on flags and figured those were the safest flags to use... had not noticed that the flags matched the person IDs there... that said, I'd been filling the Person IDs in from FFFF and working down because I had no idea what person IDs were already used by something.

    So, I'll have to ask which person IDs are safe to use, so I can go ahead and use those for these, to match up with the flags correctly. That said, even if the 2xx person IDs aren't "safe", if I just know where they are, if they aren't going to be a problem, I can always just move the person that has that ID to something else as well...

    Person IDs are literally flags, so safe flags are safe Person IDs. You only need to assign flags to overworlds that are going to be hidden, though, so you shouldn't need to use up too many flags. But yes, safe flags are safe Person IDs, so keeping it within the 2xx range would be wise.
     
    Person IDs are literally flags, so safe flags are safe Person IDs. You only need to assign flags to overworlds that are going to be hidden, though, so you shouldn't need to use up too many flags. But yes, safe flags are safe Person IDs, so keeping it within the 2xx range would be wise.

    It's more all the items that I was adding that are a concern, because if I don't set them properly they come back for infinite collection really easily... I guess I need to cut back on the item addition or something...

    Okay, so, it works fine now when I flee from the legendary. It also works fine when I cause it to faint. (That is, the sprite becomes hidden as it should.)

    When I catch it, it still stands there though. (I'm using a Master Ball to do it as I gave myself a bunch to test this easier; I wouldn't think that would be a/the problem, but could it?) (Or maybe it's not actually having the national Pokedex? I'm scared to touch the Oak script with how complicated it is, which is what I'd need to do to get the National Pokedex right off the bat.)

    (The script up there is exactly what I have still, and Entei's person ID is 0228 now. Similarly for Suicune at 0229 and Raikou at 0227 with their own flags.)
     
    Last edited:
    It's more all the items that I was adding that are a concern, because if I don't set them properly they come back for infinite collection really easily... I guess I need to cut back on the item addition or something...

    Okay, so, it works fine now when I flee from the legendary. It also works fine when I cause it to faint. (That is, the sprite becomes hidden as it should.)

    When I catch it, it still stands there though. (I'm using a Master Ball to do it as I gave myself a bunch to test this easier; I wouldn't think that would be a/the problem, but could it?) (Or maybe it's not actually having the national Pokedex? I'm scared to touch the Oak script with how complicated it is, which is what I'd need to do to get the National Pokedex right off the bat.)

    (The script up there is exactly what I have still, and Entei's person ID is 0228 now. Similarly for Suicune at 0229 and Raikou at 0227 with their own flags.)
    FireRed seems to use the Person IDs of 100 upwards for items, so I'd assume they are safe to use with MSG_FIND items. Using FFFF and working downwards certainly isn't a good idea though.

    As for the issue of them not disappearing upon capture, the variable for special 0xb4 returns 0x7 if it is captured, but you don't seem to check for that n the script. That may be the issue.
     
    FireRed seems to use the Person IDs of 100 upwards for items, so I'd assume they are safe to use with MSG_FIND items. Using FFFF and working downwards certainly isn't a good idea though.

    As for the issue of them not disappearing upon capture, the variable for special 0xb4 returns 0x7 if it is captured, but you don't seem to check for that n the script. That may be the issue.

    For the items: Right, I just have to be careful not to conflict with another item handout. Maybe I should count down from 1FF? Or maybe there's a list of items somewhere... might run a quick search after this, but not sure I'll find one. The alternative might be to just make more of the items be hidden, because it seems that hidden items don't require person IDs...

    As to the other: Hmmm. The other legends don't seem to check for that, so I don't have a comparison to figure out how to actually do this. I basically compared the Mewtwo and Zapdos scripts, figured out what was different for each, and made mine different for the new ones, to generate these scripts in the first place.

    Also I note that Mewtwo's person ID is 0081 and his flag is 2BC... so they don't seem to have to be the same... but, it does work that way (for it and for mine), so I'll leave it that way (whichever way it is now).
     
    Back
    Top