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

Follow Script addition

korjamer

Pixel Artist
19
Posts
13
Years
    • Seen Jun 3, 2016
    Every once in a while I get this error after talking to the following Pokemon.
    It's doesn't happen enough to make the script unplayable but it sure is annoying. :(
    Any ideas on how to fix it?

    By the way, bravo for getting this awesome script to work this is pretty much the only error I found. I even Fixed the sprite not updating after the first pokemon in your party evolved. But that was an easy fix.

    ---------------------------
    Pokemon Essentials
    ---------------------------
    Exception: NoMethodError

    Message: undefined method `unlock' for nil:NilClass

    Interpreter:512:in `command_end'

    Interpreter:295:in `execute_command'

    Interpreter:193:in `update'

    Interpreter:106:in `loop'

    Interpreter:198:in `update'

    Scene_Map:103:in `update'

    Scene_Map:101:in `loop'

    Scene_Map:114:in `update'

    Scene_Map:68:in `main'

    Scene_Map:65:in `loop'
     
    49
    Posts
    16
    Years
    • Seen Apr 28, 2013
    Every once in a while I get this error after talking to the following Pokemon.
    It's doesn't happen enough to make the script unplayable but it sure is annoying. :(
    Any ideas on how to fix it?

    By the way, bravo for getting this awesome script to work this is pretty much the only error I found. I even Fixed the sprite not updating after the first pokemon in your party evolved. But that was an easy fix.

    ---------------------------
    Pokemon Essentials
    ---------------------------
    Exception: NoMethodError

    Message: undefined method `unlock' for nil:NilClass

    Interpreter:512:in `command_end'

    Interpreter:295:in `execute_command'

    Interpreter:193:in `update'

    Interpreter:106:in `loop'

    Interpreter:198:in `update'

    Scene_Map:103:in `update'

    Scene_Map:101:in `loop'

    Scene_Map:114:in `update'

    Scene_Map:68:in `main'

    Scene_Map:65:in `loop'



    in Interperter line 512:

    Code:
    $game_map.events[@event_id].unlock

    change to

    Code:
    #$game_map.events[@event_id].unlock

    in witch script and line do you update to fix the evolution thing,
     

    korjamer

    Pixel Artist
    19
    Posts
    13
    Years
    • Seen Jun 3, 2016
    To update the sprite after an evolution,

    In PokemonEvolution

    Change this:
    def pbEndScreen
    Kernel.pbDisposeMessageWindow(@sprites["msgwindow"])
    pbFadeOutAndHide(@sprites)
    pbDisposeSpriteHash(@sprites)
    @viewport.dispose
    end

    To this:
    def pbEndScreen
    Kernel.pbDisposeMessageWindow(@sprites["msgwindow"])
    pbFadeOutAndHide(@sprites)
    pbDisposeSpriteHash(@sprites)
    @viewport.dispose
    $PokemonTemp.dependentEvents.refresh_sprite
    end

    See? Told ya it was easy. :3
    I'm not sure if this is the best way to do this, but it does the job.

    Yay! I'm pretty sure the previous error I posted about is completely fixed now! Thank you! :D
     
    Last edited:

    zingzags

    PokemonGDX creator
    536
    Posts
    15
    Years
  • To update the sprite after an evolution,

    In PokemonEvolution

    Change this:
    def pbEndScreen
    Kernel.pbDisposeMessageWindow(@sprites["msgwindow"])
    pbFadeOutAndHide(@sprites)
    pbDisposeSpriteHash(@sprites)
    @viewport.dispose
    end

    To this:
    def pbEndScreen
    Kernel.pbDisposeMessageWindow(@sprites["msgwindow"])
    pbFadeOutAndHide(@sprites)
    pbDisposeSpriteHash(@sprites)
    @viewport.dispose
    $PokemonTemp.dependentEvents.refresh_sprite
    end

    See? Told ya it was easy. :3
    I'm not sure if this is the best way to do this, but it does the job.

    Yay! I'm pretty sure the previous error I posted about is completely fixed now! Thank you! :D

    It is the way to do it, I forgot to list it in the guide lol.
     
    49
    Posts
    16
    Years
    • Seen Apr 28, 2013
    Well then. Lol :D Hey I still can't get B/W pokemon to follow maybe it's just to many for the script/RMXP maker to hold. I finished the sprites and what not but they don't show.

    They all work for me including the shiny ones, how have you got them named in your graphics folder.if its 495 and 495s it should work.
    also are you adding the b/w first or changing to them in the debug menu
    if your going to them in the debug menu you need to refrsh the dependint event for them to show.

    sorry if you already know this just trying to figger it out myself.
     

    zingzags

    PokemonGDX creator
    536
    Posts
    15
    Years
  • Well I got some free time on my hands I am going to see if I can get alternate forms to work.
    @Rick, its because you are naming them wrong, which is the same thing that happened last time.
    EDIT: seems like my trail mode has expired, and I do not really feel like spending money to buy the program, I guess I cant work on it for now.

    EDIT AGAIN: NVM found the old 1.02a version of RPG MAKER XP, and just used a keygen.

    Well I made alternate forms, but for now you cannot make a shiny alternate, just regular at the moment, I know how to fix it, but I will repost the fix later.
    But for those who cannot wait here you go.
    Code:
     def refresh_sprite
        if $Trainer.party.length!=$game_variables[Current_Following_Variable]
          if $Trainer.party[0].isShiny?
            shiny=true
          else
            shiny=false
          end
          if $Trainer.party[0].form>0
             altform=true
          else
             altform=false
          end
          if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
          change_sprite($Trainer.party[0].species, shiny, altform, false)
        elsif $Trainer.party[0].hp<=0 
          remove_sprite
          end
         end
        end
    
      #----------------------------------------------------------------------------
      # - change_sprite(id, shiny, animation)
      # - Example, to change sprite to shiny lugia with animation:
      #     change_sprite(249, true, true)
      # - If just change sprite:
      #     change_sprite(249)
      #----------------------------------------------------------------------------
      def change_sprite(id, shiny=nil, altform=nil, animation=nil)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
            if shiny==true
               events[i][6]=sprintf("%03ds",id)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds",id)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
           else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
            if altform==true
               events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
          end  
           if animation==true
              $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y)
            end
            $game_variables[Walking_Time_Variable]=0
        end
      end

    Here is the actual 100% fix
    Code:
    #==============================================================================
    # ¡Ü Credits to Help - 14 for both the scripts and Sprites
    # ¡Ü Edited by Zingzags 
    # -Fixed bugs
    # -Clean ups
    # -Fixed Surf Bug (After Surf is done)
    # -Fixed def talk_to_pokemon while in surf
    # -Fixed Surf Check
    # -Fixed Type Check
    # -Added Door Support
    # -Fixed Hp Bug
    # -Added Pokemon Center Support
    # -Animation problems
    # -Fixed Walk_time_variable problem
    # -Added random item loot
    # -Added egg check
    # -Added Multiple Forms fix
    #==============================================================================
    # Zingzags comments
    #==============================================================================
    # Special thanks to Maruno, and Venom - 13, as they helped me a bit!
    # 
    #==============================================================================
    
    #==============================================================================
    #   ¡Ü Control the following Pokemon
    #==============================================================================
    
    def FollowingMoveRoute(commands,waitComplete=false)
        $PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete)
    end
    
    #==============================================================================
    #   ¡Ü Pokemon Following Character v3 By Help-14
    #==============================================================================
    
    class DependentEvents
    #==============================================================================
    # Raises The Current Pokemon's Happiness levels +1 per each time the 
    # Walk_time_Variable reachs 5000 then resets to 0
    # ItemWalk, is when the variable reaches a certain amount, that you are able to talk to your pokemon to recieve an item
    #==============================================================================
        def add_following_time
          if $game_switches[2]==true && $Trainer.party.length>=1
            $game_variables[Walking_Time_Variable]+=1 if $game_variables[Current_Following_Variable]!=$Trainer.party.length
            if $game_variables[Walking_Time_Variable]==5000
              $Trainer.party[0].happiness+=1
              $game_variables[Walking_Time_Variable]=0
            if $game_variables[ItemWalk]==5
               else
               $game_variables[ItemWalk]+=1
              end
            end
          end
        end
      #----------------------------------------------------------------------------
      # -  refresh_sprite
      # -  Change sprite without animation
      #----------------------------------------------------------------------------
      
      def refresh_sprite
        if $Trainer.party.length!=$game_variables[Current_Following_Variable]
          if $Trainer.party[0].isShiny?
            shiny=true
          else
            shiny=false
          end
          if $Trainer.party[0].form>0
             altform=true
          else
             altform=false
          end
          if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
          change_sprite($Trainer.party[0].species, shiny, altform, false)
        elsif $Trainer.party[0].hp<=0 
          remove_sprite
          end
         end
        end
    
      #----------------------------------------------------------------------------
      # - change_sprite(id, shiny, animation)
      # - Example, to change sprite to shiny lugia with animation:
      #     change_sprite(249, true, true)
      # - If just change sprite:
      #     change_sprite(249)
      #----------------------------------------------------------------------------
      def change_sprite(id, shiny=nil, altform=nil, animation=nil)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
            if shiny==true && altform==false
               events[i][6]=sprintf("%03ds",id)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds",id)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
           elsif altform==true && shiny==false
               events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
            elsif altform==true && shiny==true
               events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
          end 
        end  
           if animation==true
              $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y)
            end
            $game_variables[Walking_Time_Variable]=0
        end
      end
      
      #----------------------------------------------------------------------------
      # - remove_sprite(animation)
      # - Example, to remove sprite with animation:
      #     remove_sprite(true)
      # - If just remove sprite:
      #     remove_sprite
      #----------------------------------------------------------------------------
      
      def remove_sprite(animation=nil)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
              events[i][6]=sprintf("nil")
              @realEvents[i].character_name=sprintf("nil")
             if animation==true
              $scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents[i].x,@realEvents[i].y)
              pbWait(10)
              end
            $game_variables[Current_Following_Variable]=$Trainer.party[0]
            $game_variables[Walking_Time_Variable]=0
          end
        end
      end
    
      #----------------------------------------------------------------------------
      # - check_surf(animation)
      # - If current Pokemon is a water Pokemon, it is still following.
      # - If current Pokemon is not a water Pokemon, remove sprite.
      # - Require Water_Pokemon_Can_Surf = true to enable
      #----------------------------------------------------------------------------
    def check_surf(animation=nil)
      events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
             events[i][6]=sprintf("nil")
             @realEvents[i].character_name=sprintf("nil")
           else
           if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
            if $Trainer.party[0].hasType?(:WATER)
            remove_sprite
          else
            remove_sprite
            pbWait(20)
          end
        elsif $Trainer.party[0].hp<=0 
          end
        end
      end
    end  
      
      #----------------------------------------------------------------------------
      # -  talk_to_pokemon
      # -  It will run when you talk to Pokemon following
      #----------------------------------------------------------------------------
    
      def talk_to_pokemon
        e=$Trainer.party[0]
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
              pos_x=@realEvents[i].x
              pos_y=@realEvents[i].y
          end
        end
        if e==0
        else
        if e.hp>0 && !$Trainer.party[0].egg?
        if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true
        else
          if e!=6
           pbPlayCry(e.species)
           random1=rand(5)
    if $game_variables[ItemWalk]==5 
          items=[:POTION,:SUPERPOTION,:FULLRESTORE,:REVIVE,:PPUP,
           :PPMAX,:RARECANDY,:REPEL,:MAXREPEL,:ESCAPEROPE,
           :HONEY,:TINYMUSHROOM,:PEARL,:NUGGET,:GREATBALL,
           :ULTRABALL,:THUNDERSTONE,:MOONSTONE,:SUNSTONE,:DUSKSTONE,
           :REDAPRICORN,:BLUAPRICORN,:YLWAPRICORN,:GRNAPRICORN,:PNKAPRICORN,
           :BLKAPRICORN,:WHTAPRICORN
          ]
    random2=0
    loop do
      random2=rand(items.length)
      break if hasConst?(PBItems,items[random2])
     end
    
    Kernel.pbMessage(_INTL("{1} seems to be holding something, it looks like {1} wants to give it to me.",e.name))
    Kernel.pbPokemonFound(getConst(PBItems,items[random2]))
    $game_variables[ItemWalk]=0
          end
          
           if random1==0
            $scene.spriteset.addUserAnimation(Emo_sing, pos_x, pos_y-2)
            pbWait(50)
            Kernel.pbMessage(_INTL("{1} loves this tune so much that {1} is singing it.",e.name)) 
          elsif e.happiness>0 && e.happiness<=50
            $scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2)
            pbWAit(70)
            Kernel.pbMessage(_INTL("{1} hate to travel with {2}.",e.name,$Trainer.name))
          elsif e.status==PBStatuses::POISON && e.hp>0 && !e.egg?
            $scene.spriteset.addUserAnimation(Emo_Poison, pos_x, pos_y-2)
            pbWait(120)
            Kernel.pbMessage(_INTL("{1} is badly poisoned, {1} needs help quick.",e.name))
          elsif e.happiness>50 && e.happiness<=100
            $scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2)
            pbWait(100)
            Kernel.pbMessage(_INTL("{1} is still undecided for whether traveling with {2} is a good thing or not.",e.name,$Trainer.name))
          elsif e.happiness>100 && e.happiness<150
            $scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2)
            Kernel.pbMessage(_INTL("{1} is happy traveling with {2}.",e.name,$Trainer.name))
          elsif e.happiness>=150
            $scene.spriteset.addUserAnimation(Emo_love, pos_x, pos_y-2)
            pbWait(70)
            Kernel.pbMessage(_INTL("{1} loves traveling with {2}.",e.name,$Trainer.name))
          end
          
        else
        
         
         end
        end
       end
      end
     end
    
    
    def Come_back(shiny=nil, animation=nil)
      events=$PokemonGlobal.dependentEvents
      if $game_variables[Current_Following_Variable]==$Trainer.party.length
          $game_variables[Current_Following_Variable]
        else
          $game_variables[Current_Following_Variable]
        end
        if $game_variables[Current_Following_Variable]==$Trainer.party.length
          remove_sprite(false)
          for i in 0...events.length 
          $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y)
       end
         else
          if $Trainer.party[0].isShiny?
            shiny=true
          else
            shiny=false
          end
          change_sprite($Trainer.party[0].species, shiny, false)
        end
        for i in 0..$Trainer.party.length-1
            if $Trainer.party[i].hp>0 && !$Trainer.party[0].egg?
              $game_variables[Current_Following_Variable]=i
              refresh_sprite
              break
            end
          end
        for i in 0...events.length 
           for i in 0..$Trainer.party.length-1
         if $Trainer.party[i].hp<=0 
           id = $Trainer.party[i].species
         else
           id = $Trainer.party[i].species
          end
         end
      if events[i] && events[i][8]=="Dependent"
            if shiny==true
               events[i][6]=sprintf("%03ds",id)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds",id)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
              end
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
          if animation==true
          else
          end
        end 
      end 
    end
    
      #----------------------------------------------------------------------------
      # - check_faint
      # - If current Pokemon is fainted, change other Pokemon.
      #----------------------------------------------------------------------------
    
    def check_faint
      if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true
      else
    
      if $Trainer.party[0].hp<=0 
        $game_variables[Current_Following_Variable]=0  
        remove_sprite
       elsif $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
    
      end 
     end
    end
    
    def SetMoveRoute(commands,waitComplete=false)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
            pbMoveRoute(@realEvents[i],commands,waitComplete)
          end
        end
      end
    end
    
      #----------------------------------------------------------------------------
      # -  Auto add Script to Kernel.pbSurf, It'll check curent Pokemon when surf
      #----------------------------------------------------------------------------  
    
      def Kernel.pbSurf
    #  if $game_player.pbHasDependentEvents?
    #    return false
    #  end
      if $DEBUG ||
        (HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF])
        movefinder=Kernel.pbCheckMove(:SURF)
        if $DEBUG || movefinder
          if Kernel.pbConfirmMessage(_INTL("The water is dyed a deep blue...  Would you like to surf?"))
            speciesname=!movefinder ? $Trainer.name : movefinder.name
            Kernel.pbMessage(_INTL("{1} used Surf!",speciesname))
            pbHiddenMoveAnimation(movefinder)
    #        $PokemonTemp.dependentEvents.check_surf
            surfbgm=pbGetMetadata(0,MetadataSurfBGM)
            $PokemonTemp.dependentEvents.check_surf
            if surfbgm
              pbCueBGM(surfbgm,0.5)
            end
            pbStartSurfing()
            return true
          end
        end
      end
      return false
    end
    
    
    
      #----------------------------------------------------------------------------
      # -  Auto add Script to pbEndSurf, It'll show sprite after surf
      #----------------------------------------------------------------------------  
    
      def pbEndSurf(xOffset,yOffset)
          return false if !$PokemonGlobal.surfing
      x=$game_player.x
      y=$game_player.y
      currentTag=$game_map.terrain_tag(x,y)
      facingTag=Kernel.pbFacingTerrainTag
      if pbIsSurfableTag?(currentTag)&&!pbIsSurfableTag?(facingTag)
        if Kernel.pbJumpToward
          Kernel.pbCancelVehicles
          $game_map.autoplayAsCue
          $game_player.increase_steps
          result=$game_player.check_event_trigger_here([1,2])
          Kernel.pbOnStepTaken(result)
          $PokemonTemp.dependentEvents.Come_back(true)
        end
        return true
      end
      return false
    end
      #----------------------------------------------------------------------------
      # -  Auto add Script to Kernel.pbCanUseHiddenMove, fix HM bug
      #----------------------------------------------------------------------------  
    def Kernel.pbCanUseHiddenMove?(pkmn,move)
     case move
      when PBMoves::FLY
       if !$DEBUG && !$Trainer.badges[BADGEFORFLY]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::CUT
       if !$DEBUG && !$Trainer.badges[BADGEFORCUT]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Tree"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::HEADBUTT
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="HeadbuttTree"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::SURF
       terrain=Kernel.pbFacingTerrainTag
       if !$DEBUG && !$Trainer.badges[BADGEFORCUT]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if $PokemonGlobal.surfing
        Kernel.pbMessage(_INTL("You're already surfing."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       terrain=Kernel.pbFacingTerrainTag
       if pbGetMetadata($game_map.map_id,MetadataBicycleAlways)
        Kernel.pbMessage(_INTL("Let's enjoy cycling!"))
        return false
       end
       if !pbIsWaterTag?(terrain)
        Kernel.pbMessage(_INTL("No surfing here!"))
        return false
       end
       return true
      when PBMoves::STRENGTH
       if !$DEBUG && !$Trainer.badges[BADGEFORSTRENGTH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Boulder"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true  
      when PBMoves::ROCKSMASH
       terrain=Kernel.pbFacingTerrainTag
       if !$DEBUG && !$Trainer.badges[BADGEFORROCKSMASH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Rock"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true  
      when PBMoves::FLASH
       if !$DEBUG && !$Trainer.badges[BADGEFORFLASH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if !pbGetMetadata($game_map.map_id,MetadataDarkMap)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if $PokemonGlobal.flashUsed
        Kernel.pbMessage(_INTL("This is in use already."))
        return false
       end
       return true
      when PBMoves::WATERFALL
       if !$DEBUG && !$Trainer.badges[BADGEFORWATERFALL]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       terrain=Kernel.pbFacingTerrainTag
       if terrain!=PBTerrain::Waterfall
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::DIVE
       if !$DEBUG && !$Trainer.badges[BADGEFORDIVE]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if $PokemonGlobal.diving
        return true
       end
       if $game_player.terrain_tag!=PBTerrain::DeepWater
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if !pbGetMetadata($game_map.map_id,MetadataDiveMap)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::TELEPORT
       if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       healing=$PokemonGlobal.healingSpot
       if !healing
        healing=pbGetMetadata(0,MetadataHome) # Home
       end
       if healing
        mapname=pbGetMapNameFromId(healing[0])
        if Kernel.pbConfirmMessage(_INTL("Want to return to the healing spot used last in {1}?",mapname))
         return true
        end
        return false
       else
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
      when PBMoves::DIG
       escape=pbGetMetadata($game_map.map_id,MetadataEscapePoint)
       if !escape
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if $game_player.pbHasDependentEvents?
        Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
        return false
       end
       mapname=pbGetMapNameFromId(escape[0])
       if Kernel.pbConfirmMessage(_INTL("Want to escape from here and return to {1}?",mapname))
        return true
       end
       return false
      when PBMoves::SWEETSCENT
       return true
      else
       return HiddenMoveHandlers.triggerCanUseMove(move,pkmn)
     end
     return false
    end
    
    def pbPokemonFollow(x)
    Kernel.pbAddDependency2(x, "Dependent", CommonEvent)
    $PokemonTemp.dependentEvents.refresh_sprite
    end
     
    Last edited:

    ~Angel~

    Lead developer for Pokémon Millennium
    281
    Posts
    14
    Years
  • Well I got some free time on my hands I am going to see if I can get alternate forms to work.
    @Rick, its because you are naming them wrong, which is the same thing that happened last time.
    EDIT: seems like my trail mode has expired, and I do not really feel like spending money to buy the program, I guess I cant work on it for now.

    EDIT AGAIN: NVM found the old 1.02a version of RPG MAKER XP, and just used a keygen.

    Well I made alternate forms, but for now you cannot make a shiny alternate, just regular at the moment, I know how to fix it, but I will repost the fix later.
    But for those who cannot wait here you go.
    Code:
     def refresh_sprite
        if $Trainer.party.length!=$game_variables[Current_Following_Variable]
          if $Trainer.party[0].isShiny?
            shiny=true
          else
            shiny=false
          end
          if $Trainer.party[0].form>0
             altform=true
          else
             altform=false
          end
          if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
          change_sprite($Trainer.party[0].species, shiny, altform, false)
        elsif $Trainer.party[0].hp<=0 
          remove_sprite
          end
         end
        end
    
      #----------------------------------------------------------------------------
      # - change_sprite(id, shiny, animation)
      # - Example, to change sprite to shiny lugia with animation:
      #     change_sprite(249, true, true)
      # - If just change sprite:
      #     change_sprite(249)
      #----------------------------------------------------------------------------
      def change_sprite(id, shiny=nil, altform=nil, animation=nil)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
            if shiny==true
               events[i][6]=sprintf("%03ds",id)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds",id)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
           else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
            if altform==true
               events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
          end  
           if animation==true
              $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y)
            end
            $game_variables[Walking_Time_Variable]=0
        end
      end

    Here is the actual 100% fix
    Code:
    #==============================================================================
    # ¡Ü Credits to Help - 14 for both the scripts and Sprites
    # ¡Ü Edited by Zingzags 
    # -Fixed bugs
    # -Clean ups
    # -Fixed Surf Bug (After Surf is done)
    # -Fixed def talk_to_pokemon while in surf
    # -Fixed Surf Check
    # -Fixed Type Check
    # -Added Door Support
    # -Fixed Hp Bug
    # -Added Pokemon Center Support
    # -Animation problems
    # -Fixed Walk_time_variable problem
    # -Added random item loot
    # -Added egg check
    # -Added Multiple Forms fix
    #==============================================================================
    # Zingzags comments
    #==============================================================================
    # Special thanks to Maruno, and Venom - 13, as they helped me a bit!
    # 
    #==============================================================================
    
    #==============================================================================
    #   ¡Ü Control the following Pokemon
    #==============================================================================
    
    def FollowingMoveRoute(commands,waitComplete=false)
        $PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete)
    end
    
    #==============================================================================
    #   ¡Ü Pokemon Following Character v3 By Help-14
    #==============================================================================
    
    class DependentEvents
    #==============================================================================
    # Raises The Current Pokemon's Happiness levels +1 per each time the 
    # Walk_time_Variable reachs 5000 then resets to 0
    # ItemWalk, is when the variable reaches a certain amount, that you are able to talk to your pokemon to recieve an item
    #==============================================================================
        def add_following_time
          if $game_switches[2]==true && $Trainer.party.length>=1
            $game_variables[Walking_Time_Variable]+=1 if $game_variables[Current_Following_Variable]!=$Trainer.party.length
            if $game_variables[Walking_Time_Variable]==5000
              $Trainer.party[0].happiness+=1
              $game_variables[Walking_Time_Variable]=0
            if $game_variables[ItemWalk]==5
               else
               $game_variables[ItemWalk]+=1
              end
            end
          end
        end
      #----------------------------------------------------------------------------
      # -  refresh_sprite
      # -  Change sprite without animation
      #----------------------------------------------------------------------------
      
      def refresh_sprite
        if $Trainer.party.length!=$game_variables[Current_Following_Variable]
          if $Trainer.party[0].isShiny?
            shiny=true
          else
            shiny=false
          end
          if $Trainer.party[0].form>0
             altform=true
          else
             altform=false
          end
          if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
          change_sprite($Trainer.party[0].species, shiny, altform, false)
        elsif $Trainer.party[0].hp<=0 
          remove_sprite
          end
         end
        end
    
      #----------------------------------------------------------------------------
      # - change_sprite(id, shiny, animation)
      # - Example, to change sprite to shiny lugia with animation:
      #     change_sprite(249, true, true)
      # - If just change sprite:
      #     change_sprite(249)
      #----------------------------------------------------------------------------
      def change_sprite(id, shiny=nil, altform=nil, animation=nil)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
            if shiny==true && altform==false
               events[i][6]=sprintf("%03ds",id)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds",id)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
           elsif altform==true && shiny==false
               events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
            elsif altform==true && shiny==true
               events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
          end 
        end  
           if animation==true
              $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y)
            end
            $game_variables[Walking_Time_Variable]=0
        end
      end
      
      #----------------------------------------------------------------------------
      # - remove_sprite(animation)
      # - Example, to remove sprite with animation:
      #     remove_sprite(true)
      # - If just remove sprite:
      #     remove_sprite
      #----------------------------------------------------------------------------
      
      def remove_sprite(animation=nil)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
              events[i][6]=sprintf("nil")
              @realEvents[i].character_name=sprintf("nil")
             if animation==true
              $scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents[i].x,@realEvents[i].y)
              pbWait(10)
              end
            $game_variables[Current_Following_Variable]=$Trainer.party[0]
            $game_variables[Walking_Time_Variable]=0
          end
        end
      end
    
      #----------------------------------------------------------------------------
      # - check_surf(animation)
      # - If current Pokemon is a water Pokemon, it is still following.
      # - If current Pokemon is not a water Pokemon, remove sprite.
      # - Require Water_Pokemon_Can_Surf = true to enable
      #----------------------------------------------------------------------------
    def check_surf(animation=nil)
      events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
             events[i][6]=sprintf("nil")
             @realEvents[i].character_name=sprintf("nil")
           else
           if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
            if $Trainer.party[0].hasType?(:WATER)
            remove_sprite
          else
            remove_sprite
            pbWait(20)
          end
        elsif $Trainer.party[0].hp<=0 
          end
        end
      end
    end  
      
      #----------------------------------------------------------------------------
      # -  talk_to_pokemon
      # -  It will run when you talk to Pokemon following
      #----------------------------------------------------------------------------
    
      def talk_to_pokemon
        e=$Trainer.party[0]
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
              pos_x=@realEvents[i].x
              pos_y=@realEvents[i].y
          end
        end
        if e==0
        else
        if e.hp>0 && !$Trainer.party[0].egg?
        if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true
        else
          if e!=6
           pbPlayCry(e.species)
           random1=rand(5)
    if $game_variables[ItemWalk]==5 
          items=[:POTION,:SUPERPOTION,:FULLRESTORE,:REVIVE,:PPUP,
           :PPMAX,:RARECANDY,:REPEL,:MAXREPEL,:ESCAPEROPE,
           :HONEY,:TINYMUSHROOM,:PEARL,:NUGGET,:GREATBALL,
           :ULTRABALL,:THUNDERSTONE,:MOONSTONE,:SUNSTONE,:DUSKSTONE,
           :REDAPRICORN,:BLUAPRICORN,:YLWAPRICORN,:GRNAPRICORN,:PNKAPRICORN,
           :BLKAPRICORN,:WHTAPRICORN
          ]
    random2=0
    loop do
      random2=rand(items.length)
      break if hasConst?(PBItems,items[random2])
     end
    
    Kernel.pbMessage(_INTL("{1} seems to be holding something, it looks like {1} wants to give it to me.",e.name))
    Kernel.pbPokemonFound(getConst(PBItems,items[random2]))
    $game_variables[ItemWalk]=0
          end
          
           if random1==0
            $scene.spriteset.addUserAnimation(Emo_sing, pos_x, pos_y-2)
            pbWait(50)
            Kernel.pbMessage(_INTL("{1} loves this tune so much that {1} is singing it.",e.name)) 
          elsif e.happiness>0 && e.happiness<=50
            $scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2)
            pbWAit(70)
            Kernel.pbMessage(_INTL("{1} hate to travel with {2}.",e.name,$Trainer.name))
          elsif e.status==PBStatuses::POISON && e.hp>0 && !e.egg?
            $scene.spriteset.addUserAnimation(Emo_Poison, pos_x, pos_y-2)
            pbWait(120)
            Kernel.pbMessage(_INTL("{1} is badly poisoned, {1} needs help quick.",e.name))
          elsif e.happiness>50 && e.happiness<=100
            $scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2)
            pbWait(100)
            Kernel.pbMessage(_INTL("{1} is still undecided for whether traveling with {2} is a good thing or not.",e.name,$Trainer.name))
          elsif e.happiness>100 && e.happiness<150
            $scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2)
            Kernel.pbMessage(_INTL("{1} is happy traveling with {2}.",e.name,$Trainer.name))
          elsif e.happiness>=150
            $scene.spriteset.addUserAnimation(Emo_love, pos_x, pos_y-2)
            pbWait(70)
            Kernel.pbMessage(_INTL("{1} loves traveling with {2}.",e.name,$Trainer.name))
          end
          
        else
        
         
         end
        end
       end
      end
     end
    
    
    def Come_back(shiny=nil, animation=nil)
      events=$PokemonGlobal.dependentEvents
      if $game_variables[Current_Following_Variable]==$Trainer.party.length
          $game_variables[Current_Following_Variable]
        else
          $game_variables[Current_Following_Variable]
        end
        if $game_variables[Current_Following_Variable]==$Trainer.party.length
          remove_sprite(false)
          for i in 0...events.length 
          $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y)
       end
         else
          if $Trainer.party[0].isShiny?
            shiny=true
          else
            shiny=false
          end
          change_sprite($Trainer.party[0].species, shiny, false)
        end
        for i in 0..$Trainer.party.length-1
            if $Trainer.party[i].hp>0 && !$Trainer.party[0].egg?
              $game_variables[Current_Following_Variable]=i
              refresh_sprite
              break
            end
          end
        for i in 0...events.length 
           for i in 0..$Trainer.party.length-1
         if $Trainer.party[i].hp<=0 
           id = $Trainer.party[i].species
         else
           id = $Trainer.party[i].species
          end
         end
      if events[i] && events[i][8]=="Dependent"
            if shiny==true
               events[i][6]=sprintf("%03ds",id)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds",id)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
              end
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
          if animation==true
          else
          end
        end 
      end 
    end
    
      #----------------------------------------------------------------------------
      # - check_faint
      # - If current Pokemon is fainted, change other Pokemon.
      #----------------------------------------------------------------------------
    
    def check_faint
      if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true
      else
    
      if $Trainer.party[0].hp<=0 
        $game_variables[Current_Following_Variable]=0  
        remove_sprite
       elsif $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
    
      end 
     end
    end
    
    def SetMoveRoute(commands,waitComplete=false)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
            pbMoveRoute(@realEvents[i],commands,waitComplete)
          end
        end
      end
    end
    
      #----------------------------------------------------------------------------
      # -  Auto add Script to Kernel.pbSurf, It'll check curent Pokemon when surf
      #----------------------------------------------------------------------------  
    
      def Kernel.pbSurf
    #  if $game_player.pbHasDependentEvents?
    #    return false
    #  end
      if $DEBUG ||
        (HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF])
        movefinder=Kernel.pbCheckMove(:SURF)
        if $DEBUG || movefinder
          if Kernel.pbConfirmMessage(_INTL("The water is dyed a deep blue...  Would you like to surf?"))
            speciesname=!movefinder ? $Trainer.name : movefinder.name
            Kernel.pbMessage(_INTL("{1} used Surf!",speciesname))
            pbHiddenMoveAnimation(movefinder)
    #        $PokemonTemp.dependentEvents.check_surf
            surfbgm=pbGetMetadata(0,MetadataSurfBGM)
            $PokemonTemp.dependentEvents.check_surf
            if surfbgm
              pbCueBGM(surfbgm,0.5)
            end
            pbStartSurfing()
            return true
          end
        end
      end
      return false
    end
    
    
    
      #----------------------------------------------------------------------------
      # -  Auto add Script to pbEndSurf, It'll show sprite after surf
      #----------------------------------------------------------------------------  
    
      def pbEndSurf(xOffset,yOffset)
          return false if !$PokemonGlobal.surfing
      x=$game_player.x
      y=$game_player.y
      currentTag=$game_map.terrain_tag(x,y)
      facingTag=Kernel.pbFacingTerrainTag
      if pbIsSurfableTag?(currentTag)&&!pbIsSurfableTag?(facingTag)
        if Kernel.pbJumpToward
          Kernel.pbCancelVehicles
          $game_map.autoplayAsCue
          $game_player.increase_steps
          result=$game_player.check_event_trigger_here([1,2])
          Kernel.pbOnStepTaken(result)
          $PokemonTemp.dependentEvents.Come_back(true)
        end
        return true
      end
      return false
    end
      #----------------------------------------------------------------------------
      # -  Auto add Script to Kernel.pbCanUseHiddenMove, fix HM bug
      #----------------------------------------------------------------------------  
    def Kernel.pbCanUseHiddenMove?(pkmn,move)
     case move
      when PBMoves::FLY
       if !$DEBUG && !$Trainer.badges[BADGEFORFLY]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::CUT
       if !$DEBUG && !$Trainer.badges[BADGEFORCUT]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Tree"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::HEADBUTT
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="HeadbuttTree"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::SURF
       terrain=Kernel.pbFacingTerrainTag
       if !$DEBUG && !$Trainer.badges[BADGEFORCUT]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if $PokemonGlobal.surfing
        Kernel.pbMessage(_INTL("You're already surfing."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       terrain=Kernel.pbFacingTerrainTag
       if pbGetMetadata($game_map.map_id,MetadataBicycleAlways)
        Kernel.pbMessage(_INTL("Let's enjoy cycling!"))
        return false
       end
       if !pbIsWaterTag?(terrain)
        Kernel.pbMessage(_INTL("No surfing here!"))
        return false
       end
       return true
      when PBMoves::STRENGTH
       if !$DEBUG && !$Trainer.badges[BADGEFORSTRENGTH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Boulder"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true  
      when PBMoves::ROCKSMASH
       terrain=Kernel.pbFacingTerrainTag
       if !$DEBUG && !$Trainer.badges[BADGEFORROCKSMASH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Rock"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true  
      when PBMoves::FLASH
       if !$DEBUG && !$Trainer.badges[BADGEFORFLASH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if !pbGetMetadata($game_map.map_id,MetadataDarkMap)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if $PokemonGlobal.flashUsed
        Kernel.pbMessage(_INTL("This is in use already."))
        return false
       end
       return true
      when PBMoves::WATERFALL
       if !$DEBUG && !$Trainer.badges[BADGEFORWATERFALL]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       terrain=Kernel.pbFacingTerrainTag
       if terrain!=PBTerrain::Waterfall
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::DIVE
       if !$DEBUG && !$Trainer.badges[BADGEFORDIVE]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if $PokemonGlobal.diving
        return true
       end
       if $game_player.terrain_tag!=PBTerrain::DeepWater
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if !pbGetMetadata($game_map.map_id,MetadataDiveMap)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::TELEPORT
       if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       healing=$PokemonGlobal.healingSpot
       if !healing
        healing=pbGetMetadata(0,MetadataHome) # Home
       end
       if healing
        mapname=pbGetMapNameFromId(healing[0])
        if Kernel.pbConfirmMessage(_INTL("Want to return to the healing spot used last in {1}?",mapname))
         return true
        end
        return false
       else
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
      when PBMoves::DIG
       escape=pbGetMetadata($game_map.map_id,MetadataEscapePoint)
       if !escape
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if $game_player.pbHasDependentEvents?
        Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
        return false
       end
       mapname=pbGetMapNameFromId(escape[0])
       if Kernel.pbConfirmMessage(_INTL("Want to escape from here and return to {1}?",mapname))
        return true
       end
       return false
      when PBMoves::SWEETSCENT
       return true
      else
       return HiddenMoveHandlers.triggerCanUseMove(move,pkmn)
     end
     return false
    end
    
    def pbPokemonFollow(x)
    Kernel.pbAddDependency2(x, "Dependent", CommonEvent)
    $PokemonTemp.dependentEvents.refresh_sprite
    end

    They are not named wrong now. I named them like the number of the pokemon and it's shiny form. Such as 493 and 493s those should be named correctly. That or it's the file I am using o3o
     

    zingzags

    PokemonGDX creator
    536
    Posts
    15
    Years
  • They are not named wrong now. I named them like the number of the pokemon and it's shiny form. Such as 493 and 493s those should be named correctly. That or it's the file I am using o3o

    Then I hope this explanation helps.

    You see this here:
    Code:
    events[i][6]=sprintf("%03d",id)
    %03d is what I define 3 digit numbers, so numbers that are under 3 digits like
    25 (Pikachu) would be, 025 which is how the images are named in battlers. But I remember when you sent me your project I had to change the script to make it easier for both me and you, so we wouldn't have to rename 400+ pokemon.

    What I did to your script was I made it to %03d_0 because your pokemon overworlds in your folder were 001_0, 002_0... 493_0. the _0 in the script I edited for you was what made the pokemon overworlds show.

    So what you are going to have to do for each release that comes out, you are going to have to go into the script and change each

    %03d, %03ds, %03d_%d, %03ds_%d
    to
    %03d_0, %03ds_0, %03d_%d, %03ds_%d

    EDIT: I forgot to edit one thing
    Code:
    #==============================================================================
    # ¡Ü Credits to Help - 14 for both the scripts and Sprites
    # ¡Ü Edited by Zingzags 
    # -Fixed bugs
    # -Clean ups
    # -Fixed Surf Bug (After Surf is done)
    # -Fixed def talk_to_pokemon while in surf
    # -Fixed Surf Check
    # -Fixed Type Check
    # -Added Door Support
    # -Fixed Hp Bug
    # -Added Pokemon Center Support
    # -Animation problems
    # -Fixed Walk_time_variable problem
    # -Added random item loot
    # -Added egg check
    # -Added Multiple Forms fix
    #==============================================================================
    # Zingzags comments
    #==============================================================================
    # Special thanks to Maruno, and Venom - 13, as they helped me a bit!
    # 
    #==============================================================================
    
    #==============================================================================
    #   ¡Ü Control the following Pokemon
    #==============================================================================
    
    def FollowingMoveRoute(commands,waitComplete=false)
        $PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete)
    end
    
    #==============================================================================
    #   ¡Ü Pokemon Following Character v3 By Help-14
    #==============================================================================
    
    class DependentEvents
    #==============================================================================
    # Raises The Current Pokemon's Happiness levels +1 per each time the 
    # Walk_time_Variable reachs 5000 then resets to 0
    # ItemWalk, is when the variable reaches a certain amount, that you are able to talk to your pokemon to recieve an item
    #==============================================================================
        def add_following_time
          if $game_switches[2]==true && $Trainer.party.length>=1
            $game_variables[Walking_Time_Variable]+=1 if $game_variables[Current_Following_Variable]!=$Trainer.party.length
            if $game_variables[Walking_Time_Variable]==5000
              $Trainer.party[0].happiness+=1
              $game_variables[Walking_Time_Variable]=0
            if $game_variables[ItemWalk]==5
               else
               $game_variables[ItemWalk]+=1
              end
            end
          end
        end
      #----------------------------------------------------------------------------
      # -  refresh_sprite
      # -  Change sprite without animation
      #----------------------------------------------------------------------------
      
      def refresh_sprite
        if $Trainer.party.length!=$game_variables[Current_Following_Variable]
          if $Trainer.party[0].isShiny?
            shiny=true
          else
            shiny=false
          end
          if $Trainer.party[0].form>0
             altform=true
          else
             altform=false
          end
          if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
          change_sprite($Trainer.party[0].species, shiny, altform, false)
        elsif $Trainer.party[0].hp<=0 
          remove_sprite
          end
         end
        end
    
      #----------------------------------------------------------------------------
      # - change_sprite(id, shiny, animation)
      # - Example, to change sprite to shiny lugia with animation:
      #     change_sprite(249, true, true)
      # - If just change sprite:
      #     change_sprite(249)
      #----------------------------------------------------------------------------
      def change_sprite(id, shiny=nil, altform=nil, animation=nil)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
            if shiny==true && altform==false
               events[i][6]=sprintf("%03ds",id)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds",id)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
           elsif altform==true && shiny==false
               events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
            elsif altform==true && shiny==true
               events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
          end 
        end  
           if animation==true
              $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y)
            end
            $game_variables[Walking_Time_Variable]=0
        end
      end
      
      #----------------------------------------------------------------------------
      # - remove_sprite(animation)
      # - Example, to remove sprite with animation:
      #     remove_sprite(true)
      # - If just remove sprite:
      #     remove_sprite
      #----------------------------------------------------------------------------
      
      def remove_sprite(animation=nil)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
              events[i][6]=sprintf("nil")
              @realEvents[i].character_name=sprintf("nil")
             if animation==true
              $scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents[i].x,@realEvents[i].y)
              pbWait(10)
              end
            $game_variables[Current_Following_Variable]=$Trainer.party[0]
            $game_variables[Walking_Time_Variable]=0
          end
        end
      end
    
      #----------------------------------------------------------------------------
      # - check_surf(animation)
      # - If current Pokemon is a water Pokemon, it is still following.
      # - If current Pokemon is not a water Pokemon, remove sprite.
      # - Require Water_Pokemon_Can_Surf = true to enable
      #----------------------------------------------------------------------------
    def check_surf(animation=nil)
      events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
             events[i][6]=sprintf("nil")
             @realEvents[i].character_name=sprintf("nil")
           else
           if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
            if $Trainer.party[0].hasType?(:WATER)
            remove_sprite
          else
            remove_sprite
            pbWait(20)
          end
        elsif $Trainer.party[0].hp<=0 
          end
        end
      end
    end  
      
      #----------------------------------------------------------------------------
      # -  talk_to_pokemon
      # -  It will run when you talk to Pokemon following
      #----------------------------------------------------------------------------
    
      def talk_to_pokemon
        e=$Trainer.party[0]
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
              pos_x=@realEvents[i].x
              pos_y=@realEvents[i].y
          end
        end
        if e==0
        else
        if e.hp>0 && !$Trainer.party[0].egg?
        if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true
        else
          if e!=6
           pbPlayCry(e.species)
           random1=rand(5)
    if $game_variables[ItemWalk]==5 
          items=[:POTION,:SUPERPOTION,:FULLRESTORE,:REVIVE,:PPUP,
           :PPMAX,:RARECANDY,:REPEL,:MAXREPEL,:ESCAPEROPE,
           :HONEY,:TINYMUSHROOM,:PEARL,:NUGGET,:GREATBALL,
           :ULTRABALL,:THUNDERSTONE,:MOONSTONE,:SUNSTONE,:DUSKSTONE,
           :REDAPRICORN,:BLUAPRICORN,:YLWAPRICORN,:GRNAPRICORN,:PNKAPRICORN,
           :BLKAPRICORN,:WHTAPRICORN
          ]
    random2=0
    loop do
      random2=rand(items.length)
      break if hasConst?(PBItems,items[random2])
     end
    
    Kernel.pbMessage(_INTL("{1} seems to be holding something, it looks like {1} wants to give it to me.",e.name))
    Kernel.pbPokemonFound(getConst(PBItems,items[random2]))
    $game_variables[ItemWalk]=0
          end
          
           if random1==0
            $scene.spriteset.addUserAnimation(Emo_sing, pos_x, pos_y-2)
            pbWait(50)
            Kernel.pbMessage(_INTL("{1} loves this tune so much that {1} is singing it.",e.name)) 
          elsif e.happiness>0 && e.happiness<=50
            $scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2)
            pbWAit(70)
            Kernel.pbMessage(_INTL("{1} hate to travel with {2}.",e.name,$Trainer.name))
          elsif e.status==PBStatuses::POISON && e.hp>0 && !e.egg?
            $scene.spriteset.addUserAnimation(Emo_Poison, pos_x, pos_y-2)
            pbWait(120)
            Kernel.pbMessage(_INTL("{1} is badly poisoned, {1} needs help quick.",e.name))
          elsif e.happiness>50 && e.happiness<=100
            $scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2)
            pbWait(100)
            Kernel.pbMessage(_INTL("{1} is still undecided for whether traveling with {2} is a good thing or not.",e.name,$Trainer.name))
          elsif e.happiness>100 && e.happiness<150
            $scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2)
            Kernel.pbMessage(_INTL("{1} is happy traveling with {2}.",e.name,$Trainer.name))
          elsif e.happiness>=150
            $scene.spriteset.addUserAnimation(Emo_love, pos_x, pos_y-2)
            pbWait(70)
            Kernel.pbMessage(_INTL("{1} loves traveling with {2}.",e.name,$Trainer.name))
          end
          
        else
        
         
         end
        end
       end
      end
     end
    
    
    def Come_back(shiny=nil, altform=nil, animation=nil)
      events=$PokemonGlobal.dependentEvents
      if $game_variables[Current_Following_Variable]==$Trainer.party.length
          $game_variables[Current_Following_Variable]
        else
          $game_variables[Current_Following_Variable]
        end
        if $game_variables[Current_Following_Variable]==$Trainer.party.length
          remove_sprite(false)
          for i in 0...events.length 
          $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y)
       end
         else
          if $Trainer.party[0].isShiny?
            shiny=true
          else
            shiny=false
          end
           if $Trainer.party[0].form>0
             altform=true
          else
             altform=false
          end
          change_sprite($Trainer.party[0].species, shiny, altform, false)
        end
        for i in 0..$Trainer.party.length-1
            if $Trainer.party[i].hp>0 && !$Trainer.party[0].egg?
              $game_variables[Current_Following_Variable]=i
              refresh_sprite
              break
            end
          end
        for i in 0...events.length 
           for i in 0..$Trainer.party.length-1
         if $Trainer.party[i].hp<=0 
           id = $Trainer.party[i].species
         else
           id = $Trainer.party[i].species
          end
        end
        
         if events[i] && events[i][8]=="Dependent"
            if shiny==true && altform==false
               events[i][6]=sprintf("%03ds",id)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds",id)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
           elsif altform==true && shiny==false
               events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
            elsif altform==true && shiny==true
               events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
          end 
     
        
          if animation==true
          else
          end
        end 
      end 
    end
    
      #----------------------------------------------------------------------------
      # - check_faint
      # - If current Pokemon is fainted, change other Pokemon.
      #----------------------------------------------------------------------------
    
    def check_faint
      if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true
      else
    
      if $Trainer.party[0].hp<=0 
        $game_variables[Current_Following_Variable]=0  
        remove_sprite
       elsif $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
    
      end 
     end
    end
    
    def SetMoveRoute(commands,waitComplete=false)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
            pbMoveRoute(@realEvents[i],commands,waitComplete)
          end
        end
      end
    end
    
      #----------------------------------------------------------------------------
      # -  Auto add Script to Kernel.pbSurf, It'll check curent Pokemon when surf
      #----------------------------------------------------------------------------  
    
      def Kernel.pbSurf
    #  if $game_player.pbHasDependentEvents?
    #    return false
    #  end
      if $DEBUG ||
        (HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF])
        movefinder=Kernel.pbCheckMove(:SURF)
        if $DEBUG || movefinder
          if Kernel.pbConfirmMessage(_INTL("The water is dyed a deep blue...  Would you like to surf?"))
            speciesname=!movefinder ? $Trainer.name : movefinder.name
            Kernel.pbMessage(_INTL("{1} used Surf!",speciesname))
            pbHiddenMoveAnimation(movefinder)
    #        $PokemonTemp.dependentEvents.check_surf
            surfbgm=pbGetMetadata(0,MetadataSurfBGM)
            $PokemonTemp.dependentEvents.check_surf
            if surfbgm
              pbCueBGM(surfbgm,0.5)
            end
            pbStartSurfing()
            return true
          end
        end
      end
      return false
    end
    
    
    
      #----------------------------------------------------------------------------
      # -  Auto add Script to pbEndSurf, It'll show sprite after surf
      #----------------------------------------------------------------------------  
    
      def pbEndSurf(xOffset,yOffset)
          return false if !$PokemonGlobal.surfing
      x=$game_player.x
      y=$game_player.y
      currentTag=$game_map.terrain_tag(x,y)
      facingTag=Kernel.pbFacingTerrainTag
      if pbIsSurfableTag?(currentTag)&&!pbIsSurfableTag?(facingTag)
        if Kernel.pbJumpToward
          Kernel.pbCancelVehicles
          $game_map.autoplayAsCue
          $game_player.increase_steps
          result=$game_player.check_event_trigger_here([1,2])
          Kernel.pbOnStepTaken(result)
          $PokemonTemp.dependentEvents.Come_back(true)
        end
        return true
      end
      return false
    end
      #----------------------------------------------------------------------------
      # -  Auto add Script to Kernel.pbCanUseHiddenMove, fix HM bug
      #----------------------------------------------------------------------------  
    def Kernel.pbCanUseHiddenMove?(pkmn,move)
     case move
      when PBMoves::FLY
       if !$DEBUG && !$Trainer.badges[BADGEFORFLY]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::CUT
       if !$DEBUG && !$Trainer.badges[BADGEFORCUT]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Tree"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::HEADBUTT
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="HeadbuttTree"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::SURF
       terrain=Kernel.pbFacingTerrainTag
       if !$DEBUG && !$Trainer.badges[BADGEFORCUT]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if $PokemonGlobal.surfing
        Kernel.pbMessage(_INTL("You're already surfing."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       terrain=Kernel.pbFacingTerrainTag
       if pbGetMetadata($game_map.map_id,MetadataBicycleAlways)
        Kernel.pbMessage(_INTL("Let's enjoy cycling!"))
        return false
       end
       if !pbIsWaterTag?(terrain)
        Kernel.pbMessage(_INTL("No surfing here!"))
        return false
       end
       return true
      when PBMoves::STRENGTH
       if !$DEBUG && !$Trainer.badges[BADGEFORSTRENGTH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Boulder"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true  
      when PBMoves::ROCKSMASH
       terrain=Kernel.pbFacingTerrainTag
       if !$DEBUG && !$Trainer.badges[BADGEFORROCKSMASH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Rock"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true  
      when PBMoves::FLASH
       if !$DEBUG && !$Trainer.badges[BADGEFORFLASH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if !pbGetMetadata($game_map.map_id,MetadataDarkMap)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if $PokemonGlobal.flashUsed
        Kernel.pbMessage(_INTL("This is in use already."))
        return false
       end
       return true
      when PBMoves::WATERFALL
       if !$DEBUG && !$Trainer.badges[BADGEFORWATERFALL]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       terrain=Kernel.pbFacingTerrainTag
       if terrain!=PBTerrain::Waterfall
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::DIVE
       if !$DEBUG && !$Trainer.badges[BADGEFORDIVE]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if $PokemonGlobal.diving
        return true
       end
       if $game_player.terrain_tag!=PBTerrain::DeepWater
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if !pbGetMetadata($game_map.map_id,MetadataDiveMap)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::TELEPORT
       if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       healing=$PokemonGlobal.healingSpot
       if !healing
        healing=pbGetMetadata(0,MetadataHome) # Home
       end
       if healing
        mapname=pbGetMapNameFromId(healing[0])
        if Kernel.pbConfirmMessage(_INTL("Want to return to the healing spot used last in {1}?",mapname))
         return true
        end
        return false
       else
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
      when PBMoves::DIG
       escape=pbGetMetadata($game_map.map_id,MetadataEscapePoint)
       if !escape
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if $game_player.pbHasDependentEvents?
        Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
        return false
       end
       mapname=pbGetMapNameFromId(escape[0])
       if Kernel.pbConfirmMessage(_INTL("Want to escape from here and return to {1}?",mapname))
        return true
       end
       return false
      when PBMoves::SWEETSCENT
       return true
      else
       return HiddenMoveHandlers.triggerCanUseMove(move,pkmn)
     end
     return false
    end
    
    def pbPokemonFollow(x)
    Kernel.pbAddDependency2(x, "Dependent", CommonEvent)
    $PokemonTemp.dependentEvents.refresh_sprite
    end
     
    Last edited:

    Rayd12smitty

    Shadow Maker
    645
    Posts
    12
    Years
    • Seen Feb 21, 2016
    very nice update. I missed the alternate forms thing. I don't know whats up with Rick's because i have them numbered 495, 495s, 496, 496s... etc and it works fine.
     

    ~Angel~

    Lead developer for Pokémon Millennium
    281
    Posts
    14
    Years
  • very nice update. I missed the alternate forms thing. I don't know whats up with Rick's because i have them numbered 495, 495s, 496, 496s... etc and it works fine.

    I changed it to the same script everyone else is using o3o and still nothing works. I will have to look back. It may have gotten changed when I moved my scripts.
    Wait. Just remembered. I am using Venom12's scripts o3o it has the same thing just in a new folder. Yet I can't figure it out >_< I put everything where it is men't to be. And nothing.

    Then I hope this explanation helps.

    You see this here:
    Code:
    events[i][6]=sprintf("%03d",id)
    %03d is what I define 3 digit numbers, so numbers that are under 3 digits like
    25 (Pikachu) would be, 025 which is how the images are named in battlers. But I remember when you sent me your project I had to change the script to make it easier for both me and you, so we wouldn't have to rename 400+ pokemon.

    What I did to your script was I made it to %03d_0 because your pokemon overworlds in your folder were 001_0, 002_0... 493_0. the _0 in the script I edited for you was what made the pokemon overworlds show.

    So what you are going to have to do for each release that comes out, you are going to have to go into the script and change each

    %03d, %03ds, %03d_%d, %03ds_%d
    to
    %03d_0, %03ds_0, %03d_%d, %03ds_%d

    EDIT: I forgot to edit one thing
    Code:
    #==============================================================================
    # ¡Ü Credits to Help - 14 for both the scripts and Sprites
    # ¡Ü Edited by Zingzags 
    # -Fixed bugs
    # -Clean ups
    # -Fixed Surf Bug (After Surf is done)
    # -Fixed def talk_to_pokemon while in surf
    # -Fixed Surf Check
    # -Fixed Type Check
    # -Added Door Support
    # -Fixed Hp Bug
    # -Added Pokemon Center Support
    # -Animation problems
    # -Fixed Walk_time_variable problem
    # -Added random item loot
    # -Added egg check
    # -Added Multiple Forms fix
    #==============================================================================
    # Zingzags comments
    #==============================================================================
    # Special thanks to Maruno, and Venom - 13, as they helped me a bit!
    # 
    #==============================================================================
    
    #==============================================================================
    #   ¡Ü Control the following Pokemon
    #==============================================================================
    
    def FollowingMoveRoute(commands,waitComplete=false)
        $PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete)
    end
    
    #==============================================================================
    #   ¡Ü Pokemon Following Character v3 By Help-14
    #==============================================================================
    
    class DependentEvents
    #==============================================================================
    # Raises The Current Pokemon's Happiness levels +1 per each time the 
    # Walk_time_Variable reachs 5000 then resets to 0
    # ItemWalk, is when the variable reaches a certain amount, that you are able to talk to your pokemon to recieve an item
    #==============================================================================
        def add_following_time
          if $game_switches[2]==true && $Trainer.party.length>=1
            $game_variables[Walking_Time_Variable]+=1 if $game_variables[Current_Following_Variable]!=$Trainer.party.length
            if $game_variables[Walking_Time_Variable]==5000
              $Trainer.party[0].happiness+=1
              $game_variables[Walking_Time_Variable]=0
            if $game_variables[ItemWalk]==5
               else
               $game_variables[ItemWalk]+=1
              end
            end
          end
        end
      #----------------------------------------------------------------------------
      # -  refresh_sprite
      # -  Change sprite without animation
      #----------------------------------------------------------------------------
      
      def refresh_sprite
        if $Trainer.party.length!=$game_variables[Current_Following_Variable]
          if $Trainer.party[0].isShiny?
            shiny=true
          else
            shiny=false
          end
          if $Trainer.party[0].form>0
             altform=true
          else
             altform=false
          end
          if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
          change_sprite($Trainer.party[0].species, shiny, altform, false)
        elsif $Trainer.party[0].hp<=0 
          remove_sprite
          end
         end
        end
    
      #----------------------------------------------------------------------------
      # - change_sprite(id, shiny, animation)
      # - Example, to change sprite to shiny lugia with animation:
      #     change_sprite(249, true, true)
      # - If just change sprite:
      #     change_sprite(249)
      #----------------------------------------------------------------------------
      def change_sprite(id, shiny=nil, altform=nil, animation=nil)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
            if shiny==true && altform==false
               events[i][6]=sprintf("%03ds",id)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds",id)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
           elsif altform==true && shiny==false
               events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
            elsif altform==true && shiny==true
               events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
          end 
        end  
           if animation==true
              $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y)
            end
            $game_variables[Walking_Time_Variable]=0
        end
      end
      
      #----------------------------------------------------------------------------
      # - remove_sprite(animation)
      # - Example, to remove sprite with animation:
      #     remove_sprite(true)
      # - If just remove sprite:
      #     remove_sprite
      #----------------------------------------------------------------------------
      
      def remove_sprite(animation=nil)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
              events[i][6]=sprintf("nil")
              @realEvents[i].character_name=sprintf("nil")
             if animation==true
              $scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents[i].x,@realEvents[i].y)
              pbWait(10)
              end
            $game_variables[Current_Following_Variable]=$Trainer.party[0]
            $game_variables[Walking_Time_Variable]=0
          end
        end
      end
    
      #----------------------------------------------------------------------------
      # - check_surf(animation)
      # - If current Pokemon is a water Pokemon, it is still following.
      # - If current Pokemon is not a water Pokemon, remove sprite.
      # - Require Water_Pokemon_Can_Surf = true to enable
      #----------------------------------------------------------------------------
    def check_surf(animation=nil)
      events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
             events[i][6]=sprintf("nil")
             @realEvents[i].character_name=sprintf("nil")
           else
           if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
            if $Trainer.party[0].hasType?(:WATER)
            remove_sprite
          else
            remove_sprite
            pbWait(20)
          end
        elsif $Trainer.party[0].hp<=0 
          end
        end
      end
    end  
      
      #----------------------------------------------------------------------------
      # -  talk_to_pokemon
      # -  It will run when you talk to Pokemon following
      #----------------------------------------------------------------------------
    
      def talk_to_pokemon
        e=$Trainer.party[0]
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
              pos_x=@realEvents[i].x
              pos_y=@realEvents[i].y
          end
        end
        if e==0
        else
        if e.hp>0 && !$Trainer.party[0].egg?
        if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true
        else
          if e!=6
           pbPlayCry(e.species)
           random1=rand(5)
    if $game_variables[ItemWalk]==5 
          items=[:POTION,:SUPERPOTION,:FULLRESTORE,:REVIVE,:PPUP,
           :PPMAX,:RARECANDY,:REPEL,:MAXREPEL,:ESCAPEROPE,
           :HONEY,:TINYMUSHROOM,:PEARL,:NUGGET,:GREATBALL,
           :ULTRABALL,:THUNDERSTONE,:MOONSTONE,:SUNSTONE,:DUSKSTONE,
           :REDAPRICORN,:BLUAPRICORN,:YLWAPRICORN,:GRNAPRICORN,:PNKAPRICORN,
           :BLKAPRICORN,:WHTAPRICORN
          ]
    random2=0
    loop do
      random2=rand(items.length)
      break if hasConst?(PBItems,items[random2])
     end
    
    Kernel.pbMessage(_INTL("{1} seems to be holding something, it looks like {1} wants to give it to me.",e.name))
    Kernel.pbPokemonFound(getConst(PBItems,items[random2]))
    $game_variables[ItemWalk]=0
          end
          
           if random1==0
            $scene.spriteset.addUserAnimation(Emo_sing, pos_x, pos_y-2)
            pbWait(50)
            Kernel.pbMessage(_INTL("{1} loves this tune so much that {1} is singing it.",e.name)) 
          elsif e.happiness>0 && e.happiness<=50
            $scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2)
            pbWAit(70)
            Kernel.pbMessage(_INTL("{1} hate to travel with {2}.",e.name,$Trainer.name))
          elsif e.status==PBStatuses::POISON && e.hp>0 && !e.egg?
            $scene.spriteset.addUserAnimation(Emo_Poison, pos_x, pos_y-2)
            pbWait(120)
            Kernel.pbMessage(_INTL("{1} is badly poisoned, {1} needs help quick.",e.name))
          elsif e.happiness>50 && e.happiness<=100
            $scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2)
            pbWait(100)
            Kernel.pbMessage(_INTL("{1} is still undecided for whether traveling with {2} is a good thing or not.",e.name,$Trainer.name))
          elsif e.happiness>100 && e.happiness<150
            $scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2)
            Kernel.pbMessage(_INTL("{1} is happy traveling with {2}.",e.name,$Trainer.name))
          elsif e.happiness>=150
            $scene.spriteset.addUserAnimation(Emo_love, pos_x, pos_y-2)
            pbWait(70)
            Kernel.pbMessage(_INTL("{1} loves traveling with {2}.",e.name,$Trainer.name))
          end
          
        else
        
         
         end
        end
       end
      end
     end
    
    
    def Come_back(shiny=nil, altform=nil, animation=nil)
      events=$PokemonGlobal.dependentEvents
      if $game_variables[Current_Following_Variable]==$Trainer.party.length
          $game_variables[Current_Following_Variable]
        else
          $game_variables[Current_Following_Variable]
        end
        if $game_variables[Current_Following_Variable]==$Trainer.party.length
          remove_sprite(false)
          for i in 0...events.length 
          $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y)
       end
         else
          if $Trainer.party[0].isShiny?
            shiny=true
          else
            shiny=false
          end
           if $Trainer.party[0].form>0
             altform=true
          else
             altform=false
          end
          change_sprite($Trainer.party[0].species, shiny, altform, false)
        end
        for i in 0..$Trainer.party.length-1
            if $Trainer.party[i].hp>0 && !$Trainer.party[0].egg?
              $game_variables[Current_Following_Variable]=i
              refresh_sprite
              break
            end
          end
        for i in 0...events.length 
           for i in 0..$Trainer.party.length-1
         if $Trainer.party[i].hp<=0 
           id = $Trainer.party[i].species
         else
           id = $Trainer.party[i].species
          end
        end
        
         if events[i] && events[i][8]=="Dependent"
            if shiny==true && altform==false
               events[i][6]=sprintf("%03ds",id)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds",id)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
           elsif altform==true && shiny==false
               events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
            elsif altform==true && shiny==true
               events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            if FileTest.image_exist?("Graphics/Characters/"+events[i][6])
              @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form)
            else
              events[i][6]=sprintf("%03d",id)
              @realEvents[i].character_name=sprintf("%03d",id)
            end
          end 
     
        
          if animation==true
          else
          end
        end 
      end 
    end
    
      #----------------------------------------------------------------------------
      # - check_faint
      # - If current Pokemon is fainted, change other Pokemon.
      #----------------------------------------------------------------------------
    
    def check_faint
      if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true
      else
    
      if $Trainer.party[0].hp<=0 
        $game_variables[Current_Following_Variable]=0  
        remove_sprite
       elsif $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
    
      end 
     end
    end
    
    def SetMoveRoute(commands,waitComplete=false)
        events=$PokemonGlobal.dependentEvents
        for i in 0...events.length
          if events[i] && events[i][8]=="Dependent"
            pbMoveRoute(@realEvents[i],commands,waitComplete)
          end
        end
      end
    end
    
      #----------------------------------------------------------------------------
      # -  Auto add Script to Kernel.pbSurf, It'll check curent Pokemon when surf
      #----------------------------------------------------------------------------  
    
      def Kernel.pbSurf
    #  if $game_player.pbHasDependentEvents?
    #    return false
    #  end
      if $DEBUG ||
        (HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF])
        movefinder=Kernel.pbCheckMove(:SURF)
        if $DEBUG || movefinder
          if Kernel.pbConfirmMessage(_INTL("The water is dyed a deep blue...  Would you like to surf?"))
            speciesname=!movefinder ? $Trainer.name : movefinder.name
            Kernel.pbMessage(_INTL("{1} used Surf!",speciesname))
            pbHiddenMoveAnimation(movefinder)
    #        $PokemonTemp.dependentEvents.check_surf
            surfbgm=pbGetMetadata(0,MetadataSurfBGM)
            $PokemonTemp.dependentEvents.check_surf
            if surfbgm
              pbCueBGM(surfbgm,0.5)
            end
            pbStartSurfing()
            return true
          end
        end
      end
      return false
    end
    
    
    
      #----------------------------------------------------------------------------
      # -  Auto add Script to pbEndSurf, It'll show sprite after surf
      #----------------------------------------------------------------------------  
    
      def pbEndSurf(xOffset,yOffset)
          return false if !$PokemonGlobal.surfing
      x=$game_player.x
      y=$game_player.y
      currentTag=$game_map.terrain_tag(x,y)
      facingTag=Kernel.pbFacingTerrainTag
      if pbIsSurfableTag?(currentTag)&&!pbIsSurfableTag?(facingTag)
        if Kernel.pbJumpToward
          Kernel.pbCancelVehicles
          $game_map.autoplayAsCue
          $game_player.increase_steps
          result=$game_player.check_event_trigger_here([1,2])
          Kernel.pbOnStepTaken(result)
          $PokemonTemp.dependentEvents.Come_back(true)
        end
        return true
      end
      return false
    end
      #----------------------------------------------------------------------------
      # -  Auto add Script to Kernel.pbCanUseHiddenMove, fix HM bug
      #----------------------------------------------------------------------------  
    def Kernel.pbCanUseHiddenMove?(pkmn,move)
     case move
      when PBMoves::FLY
       if !$DEBUG && !$Trainer.badges[BADGEFORFLY]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::CUT
       if !$DEBUG && !$Trainer.badges[BADGEFORCUT]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Tree"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::HEADBUTT
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="HeadbuttTree"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::SURF
       terrain=Kernel.pbFacingTerrainTag
       if !$DEBUG && !$Trainer.badges[BADGEFORCUT]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if $PokemonGlobal.surfing
        Kernel.pbMessage(_INTL("You're already surfing."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       terrain=Kernel.pbFacingTerrainTag
       if pbGetMetadata($game_map.map_id,MetadataBicycleAlways)
        Kernel.pbMessage(_INTL("Let's enjoy cycling!"))
        return false
       end
       if !pbIsWaterTag?(terrain)
        Kernel.pbMessage(_INTL("No surfing here!"))
        return false
       end
       return true
      when PBMoves::STRENGTH
       if !$DEBUG && !$Trainer.badges[BADGEFORSTRENGTH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Boulder"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true  
      when PBMoves::ROCKSMASH
       terrain=Kernel.pbFacingTerrainTag
       if !$DEBUG && !$Trainer.badges[BADGEFORROCKSMASH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       facingEvent=$game_player.pbFacingEvent
       if !facingEvent || facingEvent.name!="Rock"
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true  
      when PBMoves::FLASH
       if !$DEBUG && !$Trainer.badges[BADGEFORFLASH]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if !pbGetMetadata($game_map.map_id,MetadataDarkMap)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if $PokemonGlobal.flashUsed
        Kernel.pbMessage(_INTL("This is in use already."))
        return false
       end
       return true
      when PBMoves::WATERFALL
       if !$DEBUG && !$Trainer.badges[BADGEFORWATERFALL]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       terrain=Kernel.pbFacingTerrainTag
       if terrain!=PBTerrain::Waterfall
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::DIVE
       if !$DEBUG && !$Trainer.badges[BADGEFORDIVE]
        Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
        return false
       end
       if $PokemonGlobal.diving
        return true
       end
       if $game_player.terrain_tag!=PBTerrain::DeepWater
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if !pbGetMetadata($game_map.map_id,MetadataDiveMap)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       return true
      when PBMoves::TELEPORT
       if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       #if $game_player.pbHasDependentEvents?
       # Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
       # return false
       #end
       healing=$PokemonGlobal.healingSpot
       if !healing
        healing=pbGetMetadata(0,MetadataHome) # Home
       end
       if healing
        mapname=pbGetMapNameFromId(healing[0])
        if Kernel.pbConfirmMessage(_INTL("Want to return to the healing spot used last in {1}?",mapname))
         return true
        end
        return false
       else
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
      when PBMoves::DIG
       escape=pbGetMetadata($game_map.map_id,MetadataEscapePoint)
       if !escape
        Kernel.pbMessage(_INTL("Can't use that here."))
        return false
       end
       if $game_player.pbHasDependentEvents?
        Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
        return false
       end
       mapname=pbGetMapNameFromId(escape[0])
       if Kernel.pbConfirmMessage(_INTL("Want to escape from here and return to {1}?",mapname))
        return true
       end
       return false
      when PBMoves::SWEETSCENT
       return true
      else
       return HiddenMoveHandlers.triggerCanUseMove(move,pkmn)
     end
     return false
    end
    
    def pbPokemonFollow(x)
    Kernel.pbAddDependency2(x, "Dependent", CommonEvent)
    $PokemonTemp.dependentEvents.refresh_sprite
    end

    I looked back. The Scripts still are not showing the pokemon. I have every single last pokemon named correctly. Such as the number men't to be show. My data is EXACTLY like everyone else. I use Venom12's data. I have not changed anything in that data. And yet I am still not able to show them.
     
    Last edited:

    ~Angel~

    Lead developer for Pokémon Millennium
    281
    Posts
    14
    Years
  • Sorry guys I figured out my problem XD I was missing the audio files for the pokemon :/ All that for nothing XD all well it's working now and soon will have alternate forms :D
     

    korjamer

    Pixel Artist
    19
    Posts
    13
    Years
    • Seen Jun 3, 2016
    I replaced the followpokemon script in my game for the alternate forms fix that zingzags came up with and now only shiny Pokemon follow me... The sprites for regular Pokemon are invisible. Are they named wrong? If so how should I name them?

    Edit: I found that if I change the Pokemon's form to 1 with the debug editor The regular (non shiny) sprite works... But I have to do it manually... Also the shiny doesn't appear on form 1...

    And just for reference in my characters folder they are named:
    001, 001s, 001_1, 001s_1, ect...
     
    Last edited:

    ~Angel~

    Lead developer for Pokémon Millennium
    281
    Posts
    14
    Years
  • I replaced the followpokemon script in my game for the alternate forms fix that zingzags came up with and now only shiny Pokemon follow me... The sprites for regular Pokemon are invisible. Are they named wrong? If so how should I name them?

    Edit: I found that if I change the Pokemon's form to 1 with the debug editor The regular (non shiny) sprite works... But I have to do it manually... Also the shiny doesn't appear on form 1...

    And just for reference in my characters folder they are named:
    001, 001s, 001_1, 001s_1, ect...

    You would need to change them. With Zingzags premission I would be glad to let you use the script he made for me. But he changed it differently then what you have all ready. You could go to his original post and get the characters there correctly named.
     

    korjamer

    Pixel Artist
    19
    Posts
    13
    Years
    • Seen Jun 3, 2016
    How are they supposed to be named? In what sequence?
    I get the feeling it's just a code error or something.
    I'm pretty sure I'm doing everything right... Maybe. :I
     

    zingzags

    PokemonGDX creator
    536
    Posts
    15
    Years
  • I replaced the followpokemon script in my game for the alternate forms fix that zingzags came up with and now only shiny Pokemon follow me... The sprites for regular Pokemon are invisible. Are they named wrong? If so how should I name them?

    Edit: I found that if I change the Pokemon's form to 1 with the debug editor The regular (non shiny) sprite works... But I have to do it manually... Also the shiny doesn't appear on form 1...

    And just for reference in my characters folder they are named:
    001, 001s, 001_1, 001s_1, ect...

    The debug issue is something that Maruno needs to know about, I encountered the same issue trying to change my pokemon's from through the debug editor. But it works 100% my pokemon do show up shiny no matter what form they are in.

    Take a picture of your folder, I want to see how is it named inside.
     

    Maruno

    Lead Dev of Pokémon Essentials
    5,285
    Posts
    16
    Years
  • The debug issue is something that Maruno needs to know about, I encountered the same issue trying to change my pokemon's from through the debug editor. But it works 100% my pokemon do show up shiny no matter what form they are in.
    Why should I need to know about it? This following script isn't in Essentials. It's not up to me to make sure Essentials is compatible with it (that's just backwards).

    Besides, it sounds to me like this "problem" is just a case of not reading the instructions. See below.


    What I did to your script was I made it to %03d_0 because your pokemon overworlds in your folder were 001_0, 002_0... 493_0. the _0 in the script I edited for you was what made the pokemon overworlds show.

    So what you are going to have to do for each release that comes out, you are going to have to go into the script and change each

    %03d, %03ds, %03d_%d, %03ds_%d
    to
    %03d_0, %03ds_0, %03d_%d, %03ds_%d
    Change the names of the Pokémon overworld charsets as mentioned.
     

    zingzags

    PokemonGDX creator
    536
    Posts
    15
    Years
  • Why should I need to know about it? This following script isn't in Essentials. It's not up to me to make sure Essentials is compatible with it (that's just backwards).

    No it wasn't something that had to do with the script, it was something with essentials that you explained to me in another thread.
     
    Last edited:

    korjamer

    Pixel Artist
    19
    Posts
    13
    Years
    • Seen Jun 3, 2016
    I'm not sure I was understood. The Shiny sprites show up fine. It's the normal (non shiny and non alternate form) sprites that don't show. I tried changing the charsets and that didn't work either. I even went into the folder and changed the names of all the sprites. Still nothing. I can upload my game or scripts and post a link if you want or something? maybe that will help you tell me what I'm doing wrong? Meh.
     
    Back
    Top