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

Lavender Town Ghosts (v18.1)

295
Posts
6
Years
    • Seen Aug 15, 2022
    Lavender Town Ghosts (v18.1)
    This script will create Ghost like image but it doesn't have "icon_own".

    How to use
    Choose version and read 'readme' to use.
    Find in this link -> Link

    Credit
    PE v.19
    zerokid (original)
    bo4p5687 (update)

    PE v.18
    zerokid (original)
    bo4p5687 (update)
    Richard PT (key item section)

    Lavender Town Ghosts For PE V17.2
    Link
     
    Last edited:

    AskipLudo

    The Masked Guy
    159
    Posts
    7
    Years
  • Hey, I had a compatibility issue with your script and the Dynamax one, that sad because I wish to use both for my future game, so I don't know if you can do something or not.
     
    295
    Posts
    6
    Years
    • Seen Aug 15, 2022
    So, moves where used infinitely with error after each attack (ennemy side or our side)

    Maybe, you try to do this.
    First, in my script, delete def pbInitSprites. Next, find def pbInitSprites (in class PokeBattle_Scene), change pbChangePokemon(index,pkmn) into
    Code:
            if isGhostEncountersActive? # Ghost event
              pbChangeGhostPokemon(index,pkmn)
            else
              pbChangePokemon(index,pkmn)
            end

    Second, in my script, delete class PokeBattle_Battle (delete all).
    Next, in class PokeBattle_Battle, find def pbRun(idxBattler,duringBattle=false), above
    Code:
    if battler.pbHasType?(:GHOST) && NEWEST_BATTLE_MECHANICS
    add
    Code:
          if isGhostEncountersActive?
            pbDisplayPaused(_INTL("Got away safely!"))
            @decision=3
            return 1
          end
    find def pbStartBattleSendOut(sendOuts), change
    Code:
        if wildBattle?
          foeParty = pbParty(1)
          case foeParty.length
          when 1
            pbDisplayPaused(_INTL("Oh! A wild {1} appeared!",foeParty[0].name))
          when 2
            pbDisplayPaused(_INTL("Oh! A wild {1} and {2} appeared!",foeParty[0].name,
               foeParty[1].name))
          when 3
            pbDisplayPaused(_INTL("Oh! A wild {1}, {2} and {3} appeared!",foeParty[0].name,
               foeParty[1].name,foeParty[2].name))
          end
    into
    Code:
        if wildBattle?
          foeParty = pbParty(1)
          if isGhostEncountersActive?
            pbDisplayPaused(_INTL("Ghostttt!"))
          else
            case foeParty.length
            when 1
              pbDisplayPaused(_INTL("Oh! A wild {1} appeared!",foeParty[0].name))
            when 2
              pbDisplayPaused(_INTL("Oh! A wild {1} and {2} appeared!",foeParty[0].name,
                 foeParty[1].name))
            when 3
              pbDisplayPaused(_INTL("Oh! A wild {1}, {2} and {3} appeared!",foeParty[0].name,
                 foeParty[1].name,foeParty[2].name))
           end
         end
    find def pbFightMenu(idxBattler), change
    Code:
            next false if cmd<0 || !@battlers[idxBattler].moves[cmd] ||
                                    @battlers[idxBattler].moves[cmd].id<=0
            next false if !pbRegisterMove(idxBattler,cmd)
            next false if !singleBattle? &&
               !pbChooseTarget(@battlers[idxBattler],@battlers[idxBattler].moves[cmd])
            ret = true
    into
    Code:
            if isGhostEncountersActive? && wildBattle?
              pbDisplayPaused(_INTL("{1} is too scared to moveeee!",@battlers[idxBattler].name))
            else
              next false if cmd<0 || !@battlers[idxBattler].moves[cmd] ||
                                      @battlers[idxBattler].moves[cmd].id<=0
              next false if !pbRegisterMove(idxBattler,cmd)
              next false if !singleBattle? &&
                 !pbChooseTarget(@battlers[idxBattler],@battlers[idxBattler].moves[cmd])
              ret = true
            end

    Third, in my script, delete class PokeBattle_Battler (delete all). Next, class PokeBattle_Battler, find def pbInitPokemon(pkmn,idxParty), change
    Code:
        @name         = pkmn.name
    into
    Code:
        if opposes? && [email protected]? && isGhostEncountersActive?
          @name         = "Ghost"
        else
          @name         = pkmn.name
        end
    change
    Code:
        @gender       = pkmn.gender
    into
    Code:
        if opposes? && [email protected]? && isGhostEncountersActive?
          @gender       = 2
        else
          @gender       = pkmn.gender
        end

    Fourth, in my script, delete class PokemonDataBox (delete all). Next, in class PokemonDataBox, find def refresh, change
    Code:
    imagePos.push(["Graphics/Pictures/Battle/icon_own",@spriteBaseX+8,36])
    into
    Code:
    imagePos.push(["Graphics/Pictures/Battle/icon_own",@spriteBaseX+8,36]) if !isGhostEncountersActive?
    #----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    You need to do this, too if in Dynamax script, there are the def in the class. Example: in Dynamax script, there are class PokeBattle_Scene, def pbFightMenu(...), you need to change like this.
    If there are minor differences, you can ask me
     
    Last edited:

    AskipLudo

    The Masked Guy
    159
    Posts
    7
    Years
  • ...

    #----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    You need to do this, too if in Dynamax script, there are the def in the class. Example: in Dynamax script, there are class PokeBattle_Scene, def pbFightMenu(...), you need to change like this.
    If there are minor differences, you can ask me

    Hello, so tried but got a new error well its from the Dynamax :

    Spoiler:
     
    1,408
    Posts
    10
    Years
    • Online now
    Hello, so tried but got a new error well its from the Dynamax :

    Spoiler:

    Here, I got it working. Do this instead.

    All you need of the original script is this (to be installed above any Dynamax scripts):
    Spoiler:

    In the Mechanic_Compatibility script included with the Dynamax installation, make the following changes:
    Spoiler:


    Now, in the base Essential script, make the following changes:
    Spoiler:

    Then make the changes to def pbInitSprites and def pbRun that the OP suggested.
     
    Last edited:
    Back
    Top