• 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.

[Other] Disable teleport,dig,escape-rope etc

Scarlet D.

The Eternal
  • 66
    Posts
    9
    Years
    Hello there.

    So this a part of the plot:

    The hero is held captive in a jail, while in the jail building he has to be unable to leave the building with escape rope, teleport, dig or any other way. When he loses a fight inside the jail i want him to get teleported with all pokemons healed in his jail cell, how is it possible for such a thing to happen?
     
    Last edited:
    Are you using JPANS rombase by any chance? If not, the ASM for one of his routines can always be inserted. I am thinking for the teleportation you can use the ASM to set the healing place to inside the jail, say by a guard, and change the message nurse joy say to whatever he says. As for using ropes, etc, you could use a script to check for items and remove the escape ropes, but it's more difficult then you may think. If there is a script to check for items, you can use that + a variable for storing escape ropes, etc. A far easier workaround is making a flag for any Pokemarts that contain escape rope. If the flag is set, they would carry them, otherwise they would use a different set of items. As for dig and teleport, just don't put Pokemon with those move in the game, up until the jail part.
     
    Last edited:
    In case you're not familiar with asm hacking (not just inserting asm, but really modifying how existing routines work), you won't be able to do this at least yet. But the thing is that for example Dig and Escape Rope cannot be used in every area (for example, inside houses or on routes). What you could do would be to try using them inside a house for instance, see what the message is that is displayed then, and by "using" the offset of that message as help, track down part of the asm routine that makes it impossible to use Dig and Escape Rope (because then, they don't do anything apart from printing that message).

    You would next have to backtrack the code a bit further up to the point when the game checks, whether or not you are in an area where Dig/Escape Rope could be used. If they cannot be used, the code to be executed next is that part I explained in the previous paragraph. What you need to do here is to modify this "check" to include information about the jail area to make it so that the game starts also executing that "not able to use them" routine if you're in jail (or a certain flag is set when you're in the jail and otherwise the flag is unset).

    It's a bit complicated task to do, but not impossible. I take it you're hacking a game of gen III ? If you happen to be hacking a gen II game instead, I could help you out with that since I have implemented a similar feature myself for disabling Fly, Dig, Escape Rope and Teleport during "Game over sequence".
     
    In case you're not familiar with asm hacking (not just inserting asm, but really modifying how existing routines work), you won't be able to do this at least yet. But the thing is that for example Dig and Escape Rope cannot be used in every area (for example, inside houses or on routes). What you could do would be to try using them inside a house for instance, see what the message is that is displayed then, and by "using" the offset of that message as help, track down part of the asm routine that makes it impossible to use Dig and Escape Rope (because then, they don't do anything apart from printing that message).

    You would next have to backtrack the code a bit further up to the point when the game checks, whether or not you are in an area where Dig/Escape Rope could be used. If they cannot be used, the code to be executed next is that part I explained in the previous paragraph. What you need to do here is to modify this "check" to include information about the jail area to make it so that the game starts also executing that "not able to use them" routine if you're in jail (or a certain flag is set when you're in the jail and otherwise the flag is unset).

    It's a bit complicated task to do, but not impossible. I take it you're hacking a game of gen III ? If you happen to be hacking a gen II game instead, I could help you out with that since I have implemented a similar feature myself for disabling Fly, Dig, Escape Rope and Teleport during "Game over sequence".

    weeeeeeell I kinda tried to learn assembly from this guy https://www.pokecommunity.com/showthread.php?t=233645 but i didn't understand anything good, do you maybe know any other guide?
     
    Woah! Don't overcomplicate things. Just change the map type to inside and you won't be able to use dig/escape rope etc.

    As for the healing read about sethealingplace, place an unused flight event on that map and when the player enters the jail, have a level script with sethealingplace to that flight spot.
    If you have JPANs hack then you can set the xy coordinates directly.

    A clunkier way would be to sethealplace to the nearest city to the jail and then wehn you leave the pc, a policeman or something appears and warps you back to jail again. Something like 'ok now you're pokemon are better it's back to jail for you!'
     
    Oh yeah... just like C me pointed out here, just change the map type to that of houses and you won't be able to use Dig, Fly or Escape Rope there. I'm not sure about Teleport though. You could just make it so you won't be able to get a pokemon that can use Teleport until that point in the game, or if you for some reason want to have a pokemon like that around, you might have to change when Teleport can be used.

    But in case you for some reason need to make it so that you can return to the jail area later on, and you should be able to get out of there with for instance Dig or Escape Rope then, you would have to do some asm hacking.

    You could also indeed work out that "healing place" issue in plenty of ways, but the cleanest solution would be simply putting a healing place inside the jail.
     
    Woah! Don't overcomplicate things. Just change the map type to inside and you won't be able to use dig/escape rope etc.

    As for the healing read about sethealingplace, place an unused flight event on that map and when the player enters the jail, have a level script with sethealingplace to that flight spot.
    If you have JPANs hack then you can set the xy coordinates directly.

    A clunkier way would be to sethealplace to the nearest city to the jail and then wehn you leave the pc, a policeman or something appears and warps you back to jail again. Something like 'ok now you're pokemon are better it's back to jail for you!'
    Now that's just more like it! Ok I will try it and tell you if a have a problem :D
     
    Woah! Don't overcomplicate things. Just change the map type to inside and you won't be able to use dig/escape rope etc.

    As for the healing read about sethealingplace, place an unused flight event on that map and when the player enters the jail, have a level script with sethealingplace to that flight spot.
    If you have JPANs hack then you can set the xy coordinates directly.

    A clunkier way would be to sethealplace to the nearest city to the jail and then wehn you leave the pc, a policeman or something appears and warps you back to jail again. Something like 'ok now you're pokemon are better it's back to jail for you!'

    ok so I am compiling all the scripts i did now and have a problem. I have set my map to inside and it indeed disabled teleport, but when i use dig and escape rope it teleports me to 0.0 for some reason... do you, or anyone else, have any idea about what happens?
     
    Back
    Top