• 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!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • 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.

[Scripting Question] Help with Emergency Exit?

  • 6
    Posts
    8
    Years
    • Seen Dec 1, 2016
    I'm not sure how to code "when hp drops from above 50% to below 50%". It activates whenever they take damage below 50% which isn't how it works,

    I currently have:
    Code:
          if target.hasWorkingAbility(:EMERGENCYEXIT) && target.hp<=(target.totalhp/2).floor && !target.damagestate.substitute
            if !target.isFainted? && @battle.pbCanChooseNonActive?(target.index) &&
             [email protected]?(@battle.pbParty(target.index))
              @battle.pbDisplay(_INTL("Golisopod's Emergency Exit activates!"))    
              @battle.pbDisplay(_INTL("Golisopod went back to {2}!",target.pbThis,@battle.pbGetOwner(target.index).name))
              @battle.pbClearChoices(target.index)
              newpoke=0
              [email protected](target.index,true,false)
              @battle.pbMessagesOnReplace(target.index,newpoke)
              @battle.pbRecallAndReplace(target.index,newpoke,true)
              target.pbResetForm
              @battle.pbOnActiveOne(target)
              target.pbAbilitiesOnSwitchIn(true)
            end
          end
     
    Last edited by a moderator:
    So I'm pretty new to this, but this was the only thing that comes up when I google searching for this so I figured I'd toss my two cents in for anyone else who stumbles into it.

    Also, before I go - I'm on v17.2 I'm working on getting gen 6&7 in my project now so not sure if this will work with v16 or what have you

    After doing some testing I got this working, but I'm not sure if the PBEffects::Uturn is in previous versions, if not use something like he did above?

    Where to put this: Script: PokeBattle_Move in def pbOnDamageLost (edited to handle wild battles too)
    Code:
    #berries -- moved here by Adrenst
        for j in 0...4
          @battle.battlers[j].pbBerryCureCheck(true)
        end
         # Emergency Exit -- Adrenst
        if opponent.hasWorkingAbility(:EMERGENCYEXIT) && opponent.hp<=(opponent.totalhp/2).floor && (opponent.hp+damage)>(opponent.totalhp/2) && !opponent.damagestate.substitute
          if !opponent.isFainted? && @battle.pbCanChooseNonActive?(opponent.index) &&
          [email protected]?(@battle.pbParty(opponent.index))
            if @battle.opponent
               @battle.pbDisplay(_INTL("{1}'s Emergency Exit activates!", opponent.pbThis)) 
              opponent.effects[PBEffects::Uturn]=true
            else
              @battle.pbRun(opponent.index);
            end
          end
        end

    In pbRun in PokeBattle_Battle add this below the run away clause:
    Code:
    if thispkmn.hasWorkingAbility(:EMERGENCYEXIT) && thispkmn.hp<=(thispkmn.totalhp/2).floor && (thispkmn.hp+thispkmn.lastHPLost)>(thispkmn.totalhp/2) && !thispkmn.damagestate.substitute
          pbSEPlay("Battle flee")
          if duringBattle
            pbDisplayPaused(_INTL("{1}'s Emergency Exit triggered!",thispkmn.pbThis))
            pbDisplayPaused(_INTL("Got away safely!"))
          else
            pbDisplayPaused(_INTL("{1} escaped with Emergency Exit!",thispkmn.pbThis))
          end
          @decision=3
          return 1
        end

    It's important to note I added in eating healing berries after taking damage. I'm not sure why that wasn't there to begin with but it needs to happen before the emergency exit code runs.
    The three cases I tested were: falling below half health, falling below half health then eating berry and falling down again after, and under half hp and taking some damage.
     
    Last edited:
    Back
    Top