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

Single Screen Day-Care Checker Item

FL

Pokémon Island Creator
2,450
Posts
13
Years
    • Seen today
    gif.gif
    screen.png

    A single screen Day-Care Checker (like in DPP Pokétch) activated by item. This displays the pokémon sprites, names, levels, genders and if they generated an egg.

    Link

    Tested on Essentials v13, v19.1, v20.1 and v21.1. If this script isn't working on latest Essentials version, please inform on this thread.
     

    Attachments

    • ddcscreen.png
      ddcscreen.png
      6.9 KB · Views: 354
    • dccbackground.png
      dccbackground.png
      7.9 KB · Views: 296
    • item631.png
      item631.png
      1.6 KB · Views: 1,249
    • ddcscreen2.png
      ddcscreen2.png
      8.7 KB · Views: 182
    • dccbackground512x384.png
      dccbackground512x384.png
      10.5 KB · Views: 215
    Last edited:
    10,673
    Posts
    15
    Years
    • Seen Dec 30, 2023
    Seriously, how have I not seen this. Fantastic addition. Certainly a wonderful idea. I'm going to try out the script a little later on, but definitely something well needed. Great work.
     

    SytheXP

    Net Labs/UG Founder
    387
    Posts
    16
    Years
  • Nice job FL. I briefly skimmed your post, and you said its activated via Item, is there a way to change it to activate it via button? I was and still against having a DS screen but I like the idea of a side screen so I am planning to implement that and this would be a nice additions.
     

    FL

    Pokémon Island Creator
    2,450
    Posts
    13
    Years
    • Seen today
    Nice job FL. I briefly skimmed your post, and you said its activated via Item, is there a way to change it to activate it via button? I was and still against having a DS screen but I like the idea of a side screen so I am planning to implement that and this would be a nice additions.
    Yes! In Scene_Map, before 'Scene_Map' add

    Code:
       if Input.trigger?(Input::A)
          unless pbMapInterpreterRunning? # Only works if none event command is running
            pbFadeOutIn(99999){ 
              scene=DayCareCheckerScene.new
              screen=DayCareChecker.new(scene)
              screen.startScreen
            }
          end
        end

    The 'Input::A' activates when "Z" key is press. You can change it to other key.

    You can also change the
    Code:
    pbFadeOutIn(99999){ 
              scene=DayCareCheckerScene.new
              screen=DayCareChecker.new(scene)
              screen.startScreen
    }
    to a function/scene if you want to a function/scene be called in game map when some key is pressed.
     
    4
    Posts
    11
    Years
    • Seen Oct 25, 2013
    It's an awesome script :D

    However, when I try to test my game, it says that "Theres no value in line 216 for ItemHandlers"
    How could I fix it ?
     

    FL

    Pokémon Island Creator
    2,450
    Posts
    13
    Years
    • Seen today
    It's an awesome script :D

    However, when I try to test my game, it says that "Theres no value in line 216 for ItemHandlers"
    How could I fix it ?
    I remove a extra ',' in '# 631,DAYCARESIGHT' line, maybe is it. Besides this, it is working on newer versions.
     

    FL

    Pokémon Island Creator
    2,450
    Posts
    13
    Years
    • Seen today
    I updated the topic with new script that works in different screens resolutions, plus male/female symbols.

    thank you for this managed to get it working as an app for my pokégear
    Neat idea!
     
    28
    Posts
    8
    Years
    • Seen Dec 14, 2023
    Hi Everyone,

    I decided to incorporate this amazing script into my game. I had to make a few adjustments because of the updates since it was written. It seems to be all correct but when I open it in the bag there is no "use" function. So in other words there is no way to actually use the item. The code is below along with the modified Item handles. Any Help would be wonderful. Thank You.

    Code:
    #===============================================================================
    # * One screen Day-Care Checker item - by FL (Credits will be apreciated)
    #===============================================================================
    #
    # This script is for Pokémon Essentials. It makes a One screen Day-Care Checker
    # (like in DPP) activated by item. This display the pokémon sprite, names,
    # levels, genders and if them generate an egg.
    #
    #===============================================================================
    #
    # To this script works, put it above main, put a 480x320 background in 
    # DCCBACKPATH location and, like any item, you need to add in the "items.txt"
    # and in the script. There an example below using the name DAYCARESIGHT, but
    # you can use any other name changing the DCCITEM and the item that be added in
    # txt. You can change the internal number too:
    #
    # 631,DAYCARESIGHT,DayCare Sight,8,0,"A visor that can be use for see certains Pokémon in Day-Care to monitor their growth.",2,0,6
    # 
    #===============================================================================
    
    DCCITEM=:DAYCARECHECKER # Change this and the item.txt if you wish another name
    DCCBACKPATH= "Graphics/Pictures/dccbackground" # You can change if you wish 
    # If you wish that the pokémon is positioned like in battle (have the distance
    # defined in metadata, even the BattlerAltitude) change the below line to true
    DCCBATTLEPOSITION = false
    
    class DayCareCheckerScene  
    
    def startScene
      @sprites={}
      @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
      @viewport.z=99999
      @pkmn1=$PokemonGlobal.daycare[0][0]
      @pkmn2=$PokemonGlobal.daycare[1][0]
      # If you wish that if there only one pokémon, it became right 
      # positioned, them uncomment the four below lines
      #if !@pkmn1 && @pkmn2
      #  @pkmn1=@pkmn2
      #  @pkmn2=nil
      #end  
      textPositions=[]
      baseColor=Color.new(12*8,12*8,12*8)
      shadowColor=Color.new(26*8,26*8,25*8)
      @sprites["background"]=IconSprite.new(0,0,@viewport)
      @sprites["background"].setBitmap(DCCBACKPATH)
      pokemony=Graphics.height/2-32
      pokemonyadjust=pokemony-32 
      if @pkmn1
        @sprites["pokemon1"]=PokemonSprite.new(@viewport)
        @sprites["pokemon1"].setPokemonBitmap(@pkmn1)
        @sprites["pokemon1"].mirror=true
       pbPositionPokemonSprite(@sprites["pokemon1"],32,pokemony)
        @sprites["pokemon1"].y=pokemonyadjust + adjustBattleSpriteY(
            @sprites["pokemon1"],@pkmn1.species,1) if DCCBATTLEPOSITION
        textPositions.push([_INTL("{1} Lv{2}{3}",@pkmn1.name,@pkmn1.level.to_s,
            genderString(@pkmn1.gender)),32,44,false,baseColor,shadowColor])
      end
      if @pkmn2
        @sprites["pokemon2"]=PokemonSprite.new(@viewport)
        @sprites["pokemon2"].setPokemonBitmap(@pkmn2)
       pbPositionPokemonSprite(@sprites["pokemon2"],Graphics.width-168,pokemony)
        @sprites["pokemon2"].y=pokemonyadjust + adjustBattleSpriteY(
            @sprites["pokemon2"],@pkmn2.species,1) if DCCBATTLEPOSITION
        textPositions.push([_INTL("{1} Lv{2}{3}",@pkmn2.name,@pkmn2.level.to_s,
            genderString(@pkmn2.gender)),Graphics.width-16,44,true,baseColor,
            shadowColor])
      end
      if Kernel.pbEggGenerated?
        @sprites["egg"]=IconSprite.new(Graphics.width/2-68,pokemony+32,@viewport)
        @sprites["egg"].setBitmap("Graphics/Battlers/egg")
        # To works with different egg sprite sizes
        @sprites["egg"].x-=(@sprites["egg"].bitmap.width/8-16)*3
        # Uncomment the below line to only a egg shadow be show
        #@sprites["egg"].color=Color.new(0,0,0,255)    
      end
      @sprites["overlay"]=Sprite.new(@viewport)
      @sprites["overlay"].bitmap=BitmapWrapper.new(Graphics.width,Graphics.height)
      pbSetSystemFont(@sprites["overlay"].bitmap)
      if !textPositions.empty?
        pbDrawTextPositions(@sprites["overlay"].bitmap,textPositions)
      end
      pbFadeInAndShow(@sprites) { update }
    end
    
    def genderString(gender)
      ret="  "
      if gender==0
        ret=" ♂"
      elsif gender==1
        ret=" ♀"
      end 
      return ret
    end  
    
    def middleScene
      loop do
        Graphics.update
        Input.update
        self.update
        if Input.trigger?(Input::B) || Input.trigger?(Input::C)
          break
        end
      end 
    end
    
    def update
      pbUpdateSpriteHash(@sprites)
    end
    
    def endScene
      pbFadeOutAndHide(@sprites) { update }
      pbDisposeSpriteHash(@sprites)
      @viewport.dispose
    end
    end
    
    class DayCareChecker
    
    def initialize(scene)
      @scene=scene
    end
    
    def startScreen
      @scene.startScene
      @scene.middleScene
      @scene.endScene
    end
    end

    Item Handles
    Code:
    ItemHandlers::UseFromBag.add(:DCCITEM, proc {|item|
       pbFadeOutIn(99999){ 
         scene=DayCareCheckerScene.new
         screen=DayCareChecker.new(scene)
         screen.startScreen
       }
       next 1 # Continue
    })

    Code:
    ItemHandlers::UseInField.add(:DCCITEM, proc {|item|
       pbFadeOutIn(99999){ 
         scene=DayCareCheckerScene.new
         screen=DayCareChecker.new(scene)
         screen.startScreen
       }
       next 1 # Continue
    })
     

    FL

    Pokémon Island Creator
    2,450
    Posts
    13
    Years
    • Seen today
    Hi Everyone,

    I decided to incorporate this amazing script into my game. I had to make a few adjustments because of the updates since it was written. It seems to be all correct but when I open it in the bag there is no "use" function. So in other words there is no way to actually use the item. The code is below along with the modified Item handles. Any Help would be wonderful. Thank You.

    Code:
    #===============================================================================
    # * One screen Day-Care Checker item - by FL (Credits will be apreciated)
    #===============================================================================
    #
    # This script is for Pok?mon Essentials. It makes a One screen Day-Care Checker
    # (like in DPP) activated by item. This display the pok?mon sprite, names,
    # levels, genders and if them generate an egg.
    #
    #===============================================================================
    #
    # To this script works, put it above main, put a 480x320 background in 
    # DCCBACKPATH location and, like any item, you need to add in the "items.txt"
    # and in the script. There an example below using the name DAYCARESIGHT, but
    # you can use any other name changing the DCCITEM and the item that be added in
    # txt. You can change the internal number too:
    #
    # 631,DAYCARESIGHT,DayCare Sight,8,0,"A visor that can be use for see certains Pok?mon in Day-Care to monitor their growth.",2,0,6
    # 
    #===============================================================================
    
    DCCITEM=:DAYCARECHECKER # Change this and the item.txt if you wish another name
    DCCBACKPATH= "Graphics/Pictures/dccbackground" # You can change if you wish 
    # If you wish that the pok?mon is positioned like in battle (have the distance
    # defined in metadata, even the BattlerAltitude) change the below line to true
    DCCBATTLEPOSITION = false
    
    class DayCareCheckerScene  
    
    def startScene
      @sprites={}
      @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
      @viewport.z=99999
      @pkmn1=$PokemonGlobal.daycare[0][0]
      @pkmn2=$PokemonGlobal.daycare[1][0]
      # If you wish that if there only one pok?mon, it became right 
      # positioned, them uncomment the four below lines
      #if !@pkmn1 && @pkmn2
      #  @pkmn1=@pkmn2
      #  @pkmn2=nil
      #end  
      textPositions=[]
      baseColor=Color.new(12*8,12*8,12*8)
      shadowColor=Color.new(26*8,26*8,25*8)
      @sprites["background"]=IconSprite.new(0,0,@viewport)
      @sprites["background"].setBitmap(DCCBACKPATH)
      pokemony=Graphics.height/2-32
      pokemonyadjust=pokemony-32 
      if @pkmn1
        @sprites["pokemon1"]=PokemonSprite.new(@viewport)
        @sprites["pokemon1"].setPokemonBitmap(@pkmn1)
        @sprites["pokemon1"].mirror=true
       pbPositionPokemonSprite(@sprites["pokemon1"],32,pokemony)
        @sprites["pokemon1"].y=pokemonyadjust + adjustBattleSpriteY(
            @sprites["pokemon1"],@pkmn1.species,1) if DCCBATTLEPOSITION
        textPositions.push([_INTL("{1} Lv{2}{3}",@pkmn1.name,@pkmn1.level.to_s,
            genderString(@pkmn1.gender)),32,44,false,baseColor,shadowColor])
      end
      if @pkmn2
        @sprites["pokemon2"]=PokemonSprite.new(@viewport)
        @sprites["pokemon2"].setPokemonBitmap(@pkmn2)
       pbPositionPokemonSprite(@sprites["pokemon2"],Graphics.width-168,pokemony)
        @sprites["pokemon2"].y=pokemonyadjust + adjustBattleSpriteY(
            @sprites["pokemon2"],@pkmn2.species,1) if DCCBATTLEPOSITION
        textPositions.push([_INTL("{1} Lv{2}{3}",@pkmn2.name,@pkmn2.level.to_s,
            genderString(@pkmn2.gender)),Graphics.width-16,44,true,baseColor,
            shadowColor])
      end
      if Kernel.pbEggGenerated?
        @sprites["egg"]=IconSprite.new(Graphics.width/2-68,pokemony+32,@viewport)
        @sprites["egg"].setBitmap("Graphics/Battlers/egg")
        # To works with different egg sprite sizes
        @sprites["egg"].x-=(@sprites["egg"].bitmap.width/8-16)*3
        # Uncomment the below line to only a egg shadow be show
        #@sprites["egg"].color=Color.new(0,0,0,255)    
      end
      @sprites["overlay"]=Sprite.new(@viewport)
      @sprites["overlay"].bitmap=BitmapWrapper.new(Graphics.width,Graphics.height)
      pbSetSystemFont(@sprites["overlay"].bitmap)
      if !textPositions.empty?
        pbDrawTextPositions(@sprites["overlay"].bitmap,textPositions)
      end
      pbFadeInAndShow(@sprites) { update }
    end
    
    def genderString(gender)
      ret="  "
      if gender==0
        ret=" ?"
      elsif gender==1
        ret=" ?"
      end 
      return ret
    end  
    
    def middleScene
      loop do
        Graphics.update
        Input.update
        self.update
        if Input.trigger?(Input::B) || Input.trigger?(Input::C)
          break
        end
      end 
    end
    
    def update
      pbUpdateSpriteHash(@sprites)
    end
    
    def endScene
      pbFadeOutAndHide(@sprites) { update }
      pbDisposeSpriteHash(@sprites)
      @viewport.dispose
    end
    end
    
    class DayCareChecker
    
    def initialize(scene)
      @scene=scene
    end
    
    def startScreen
      @scene.startScene
      @scene.middleScene
      @scene.endScene
    end
    end

    Item Handles
    Code:
    ItemHandlers::UseFromBag.add(:DCCITEM, proc {|item|
       pbFadeOutIn(99999){ 
         scene=DayCareCheckerScene.new
         screen=DayCareChecker.new(scene)
         screen.startScreen
       }
       next 1 # Continue
    })

    Code:
    ItemHandlers::UseInField.add(:DCCITEM, proc {|item|
       pbFadeOutIn(99999){ 
         scene=DayCareCheckerScene.new
         screen=DayCareChecker.new(scene)
         screen.startScreen
       }
       next 1 # Continue
    })
    I tested my script right now on V16 and the only thing that need adjust is item, change '631,DAYCARESIGHT,DayCare Sight,8,0,"A visor that can be use for see certains Pok?mon in Day-Care to monitor their growth.",2,0,6' to '631,DAYCARESIGHT,DayCare Sight,DayCare Sight,8,0,"A visor that can be use for see certains Pok?mon in Day-Care to monitor their growth.",2,0,6'. I updated this thread.
     
    28
    Posts
    8
    Years
    • Seen Dec 14, 2023
    Okay I tried changing back to the orginal script and changing the items.txt. It doesnt work at all. The item handles had to be rejiggered and there is several inconsistencies in the naming. In some places its DDC and in others it DCC. I was able to get it back to the Bag but when you try to us it from the bag there is still no "use" function. so how exactly is this supposed to be activated???

    Never mind I got it working. I changed DCCITEM in the handles to the actual internal name of the item and it worked.
     
    Last edited by a moderator:
    24
    Posts
    11
    Years
    • Seen Apr 7, 2022
    Hey FL. In my game, I have a custom egg sprite that is unique to each Pokemon species. How would I need to change this script to make it so that my custom egg sprite is what shows up as the graphic instead of the default egg sprite?
     

    FL

    Pokémon Island Creator
    2,450
    Posts
    13
    Years
    • Seen today
    Hey FL. In my game, I have a custom egg sprite that is unique to each Pokemon species. How would I need to change this script to make it so that my custom egg sprite is what shows up as the graphic instead of the default egg sprite?
    Change line '@sprites["egg"].setBitmap("Graphics/Battlers/egg")' into '@sprites["egg"].setBitmap(getEggBitmap(getBabySpecies))'. Before line 'def genderString(gender)' add:

    Code:
    def getEggBitmap(species)
      bitmapFileName=sprintf("Graphics/Battlers/%segg",getConstantName(PBSpecies,species)) rescue nil
      bitmapFileName=sprintf("Graphics/Battlers/%03degg",species) if !pbResolveBitmap(bitmapFileName)
      bitmapFileName=sprintf("Graphics/Battlers/egg") if !pbResolveBitmap(bitmapFileName)
      bitmapFileName=pbResolveBitmap(bitmapFileName)
      return bitmapFileName
    end
    
    def getBabySpecies
      pokemon0=$PokemonGlobal.daycare[0][0]
      pokemon1=$PokemonGlobal.daycare[1][0]
      mother=nil
      father=nil
      babyspecies=0
      ditto0=pbIsDitto?(pokemon0)
      ditto1=pbIsDitto?(pokemon1)
      if (pokemon0.gender==1 || ditto0)
        babyspecies=(ditto0) ? pokemon1.species : pokemon0.species
        mother=pokemon0
        father=pokemon1
      else
        babyspecies=(ditto1) ? pokemon0.species : pokemon1.species
        mother=pokemon1
        father=pokemon0
      end
      babyspecies=pbGetBabySpecies(babyspecies)
      if isConst?(babyspecies,PBSpecies,:MANAPHY) && hasConst?(PBSpecies,:PHIONE)
        babyspecies=getConst(PBSpecies,:PHIONE)
      end
      if isConst?(babyspecies,PBSpecies,:NIDORANfE) && hasConst?(PBSpecies,:NIDORANmA)
        babyspecies=[getConst(PBSpecies,:NIDORANmA),
                     getConst(PBSpecies,:NIDORANfE)][rand(2)]
      elsif isConst?(babyspecies,PBSpecies,:NIDORANmA) && hasConst?(PBSpecies,:NIDORANfE)
        babyspecies=[getConst(PBSpecies,:NIDORANmA),
                     getConst(PBSpecies,:NIDORANfE)][rand(2)]
      elsif isConst?(babyspecies,PBSpecies,:VOLBEAT) && hasConst?(PBSpecies,:ILLUMISE)
        babyspecies=[getConst(PBSpecies,:VOLBEAT),
                     getConst(PBSpecies,:ILLUMISE)][rand(2)]
      elsif isConst?(babyspecies,PBSpecies,:ILLUMISE) && hasConst?(PBSpecies,:VOLBEAT)
        babyspecies=[getConst(PBSpecies,:VOLBEAT),
                     getConst(PBSpecies,:ILLUMISE)][rand(2)]
      elsif isConst?(babyspecies,PBSpecies,:MUNCHLAX) &&
            !isConst?(mother.item,PBItems,:FULLINCENSE) &&
            !isConst?(father.item,PBItems,:FULLINCENSE)
        babyspecies=pbGetNonIncenseLowestSpecies(babyspecies)
      elsif isConst?(babyspecies,PBSpecies,:WYNAUT) &&
            !isConst?(mother.item,PBItems,:LAXINCENSE) &&
            !isConst?(father.item,PBItems,:LAXINCENSE)
        babyspecies=pbGetNonIncenseLowestSpecies(babyspecies)
      elsif isConst?(babyspecies,PBSpecies,:HAPPINY) &&
            !isConst?(mother.item,PBItems,:LUCKINCENSE) &&
            !isConst?(father.item,PBItems,:LUCKINCENSE)
        babyspecies=pbGetNonIncenseLowestSpecies(babyspecies)
      elsif isConst?(babyspecies,PBSpecies,:MIMEJR) &&
            !isConst?(mother.item,PBItems,:ODDINCENSE) &&
            !isConst?(father.item,PBItems,:ODDINCENSE)
        babyspecies=pbGetNonIncenseLowestSpecies(babyspecies)
      elsif isConst?(babyspecies,PBSpecies,:CHINGLING) &&
            !isConst?(mother.item,PBItems,:PUREINCENSE) &&
            !isConst?(father.item,PBItems,:PUREINCENSE)
        babyspecies=pbGetNonIncenseLowestSpecies(babyspecies)
      elsif isConst?(babyspecies,PBSpecies,:BONSLY) &&
            !isConst?(mother.item,PBItems,:ROCKINCENSE) &&
            !isConst?(father.item,PBItems,:ROCKINCENSE)
        babyspecies=pbGetNonIncenseLowestSpecies(babyspecies)
      elsif isConst?(babyspecies,PBSpecies,:BUDEW) &&
            !isConst?(mother.item,PBItems,:ROSEINCENSE) &&
            !isConst?(father.item,PBItems,:ROSEINCENSE)
        babyspecies=pbGetNonIncenseLowestSpecies(babyspecies)
      elsif isConst?(babyspecies,PBSpecies,:AZURILL) &&
            !isConst?(mother.item,PBItems,:SEAINCENSE) &&
            !isConst?(father.item,PBItems,:SEAINCENSE)
        babyspecies=pbGetNonIncenseLowestSpecies(babyspecies)
      elsif isConst?(babyspecies,PBSpecies,:MANTYKE) &&
            !isConst?(mother.item,PBItems,:WAVEINCENSE) &&
            !isConst?(father.item,PBItems,:WAVEINCENSE)
        babyspecies=pbGetNonIncenseLowestSpecies(babyspecies)
      end
      return babyspecies
    end
     
    6
    Posts
    9
    Years
    • Seen May 3, 2022
    If I wanted to call the scene using a button via mouse what would I use to do so? The method I assumed didn't work:

    Code:
      if $mouse.leftClick?(@sprites["DCC"])
            clockButtonAnim(@sprites["DCC"])
            pbFadeOutIn(99999) { 
               pbDayCareCheckerScene 
            }
         end
       end

    I'm not the most skilled at coding, everything I know is just me studying the wiki and code in the essentials kit and learning that way.
     

    FL

    Pokémon Island Creator
    2,450
    Posts
    13
    Years
    • Seen today
    If I wanted to call the scene using a button via mouse what would I use to do so? The method I assumed didn't work:

    Code:
      if $mouse.leftClick?(@sprites["DCC"])
            clockButtonAnim(@sprites["DCC"])
            pbFadeOutIn(99999) { 
               pbDayCareCheckerScene 
            }
         end
       end

    I'm not the most skilled at coding, everything I know is just me studying the wiki and code in the essentials kit and learning that way.
    You are calling the script wrong, since the item call it with three line inside of pbFadeOutIn, do the same. The below code may works.

    Code:
    if $mouse.leftClick?(@sprites["DCC"])
      clockButtonAnim(@sprites["DCC"])
      pbFadeOutIn(99999){ 
         scene=DayCareCheckerScene.new
         screen=DayCareChecker.new(scene)
         screen.startScreen
      }
    end
     
    6
    Posts
    9
    Years
    • Seen May 3, 2022
    You are calling the script wrong, since the item call it with three line inside of pbFadeOutIn, do the same. The below code may works.

    Code:
    if $mouse.leftClick?(@sprites["DCC"])
      clockButtonAnim(@sprites["DCC"])
      pbFadeOutIn(99999){ 
         scene=DayCareCheckerScene.new
         screen=DayCareChecker.new(scene)
         screen.startScreen
      }
    end


    Thanks a ton FL, that worked perfectly.
     
    Back
    Top