Go Back   The PokéCommunity Forums > Creative Discussions > Game Development > Scripts & Tutorials
Reload this Page [Essentials script] One screen Day-Care Checker item

Notices
For all updates, view the main page.

Scripts & Tutorials This forum is for scripts and code, as well as all kinds of tutorials, software, tools and so forth. Remember to give credit!
The thread revival limit does not apply here.



Reply
 
Thread Tools
  #1    
Old April 14th, 2012 (12:01 PM). Edited August 11th, 2012 by FL.
FL's Avatar
FL FL is offline
Pokémon Island Creator
 
Join Date: Sep 2010
Gender: Male
Posts: 1,482
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 DDCITEM 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
# 
#===============================================================================

DDCITEM=:DAYCARESIGHT # 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
DDCBATTLEPOSITION = 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 DDCBATTLEPOSITION
    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 DDCBATTLEPOSITION
    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 handlers 

ItemHandlers.addUseFromBag(DDCITEM, proc {|item|
   pbFadeOutIn(99999){ 
     scene=DayCareCheckerScene.new
     screen=DayCareChecker.new(scene)
     screen.startScreen
   }
   next 1 # Continue
})

ItemHandlers.addUseInField(DDCITEM, proc {|item|
   pbFadeOutIn(99999){ 
     scene=DayCareCheckerScene.new
     screen=DayCareChecker.new(scene)
     screen.startScreen
   }
   next 1 # Continue
})
Attached Thumbnails
ddcscreen.png‎   dccbackground.png‎   ddcscreen2.png‎   dccbackground512x384.png‎  
Attached Images
 
__________________
Reply With Quote
  #2    
Old April 15th, 2012 (08:25 AM).
tylerab01's Avatar
tylerab01 tylerab01 is offline
Pokemon AquaHarmony
 
Join Date: Apr 2009
Location: France
Gender: Male
Nature: Bold
Posts: 165
This is gnarly. It is like the PokeTech with the DayCare App, but better!
__________________

Reply With Quote
  #3    
Old May 7th, 2012 (06:29 AM).
seeker's Avatar
seeker seeker is offline
adventure seeker
Platinum Tier
 
Join Date: Apr 2009
Location: Ireland
Posts: 10,683
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.
__________________
Reply With Quote
  #4    
Old May 7th, 2012 (08:03 AM).
SytheXP's Avatar
SytheXP SytheXP is offline
Net Labs/UG Founder
 
Join Date: May 2007
Location: Zombieville South Carolina
Age: 24
Gender: Male
Nature: Calm
Posts: 387
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.
__________________
My Threads:
Phantom Dusk Plot and Story: http://www.pokecommunity.com/showthread.php?p=4678023#post4678023


My Sprite Thread:http://www.pokecommunity.com/showthread.php?t=179083

Phantom Dusk is back in production with loads of modifications. Will be updating soon! -2012

I Support:
Reply With Quote
  #5    
Old May 12th, 2012 (11:55 AM).
FL's Avatar
FL FL is offline
Pokémon Island Creator
 
Join Date: Sep 2010
Gender: Male
Posts: 1,482
Quote originally posted by SytheXP:
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.
__________________
Reply With Quote
  #6    
Old May 27th, 2012 (05:22 PM).
Gostaras Gostaras is offline
 
Join Date: May 2012
Gender: Male
Posts: 4
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 ?
Reply With Quote
  #7    
Old June 2nd, 2012 (02:26 PM).
FL's Avatar
FL FL is offline
Pokémon Island Creator
 
Join Date: Sep 2010
Gender: Male
Posts: 1,482
Quote originally posted by Gostaras:
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.
__________________
Reply With Quote
  #8    
Old June 2nd, 2012 (03:22 PM).
Gostaras Gostaras is offline
 
Join Date: May 2012
Gender: Male
Posts: 4
Quote originally posted by FL .:
I remove a extra ',' in '# 631,DAYCARESIGHT' line, maybe is it. Besides this, it is working on newer versions.
Thanks, It works perfectly now!
Reply With Quote
  #9    
Old June 12th, 2012 (07:27 AM).
p.claydon p.claydon is offline
 
Join Date: Jan 2011
Gender:
Posts: 305
thank you for this managed to get it working as an app for my pokégear
Reply With Quote
  #10    
Old August 4th, 2012 (06:15 PM).
FL's Avatar
FL FL is offline
Pokémon Island Creator
 
Join Date: Sep 2010
Gender: Male
Posts: 1,482
I updated the topic with new script that works in different screens resolutions, plus male/female symbols.

Quote originally posted by p.claydon:
thank you for this managed to get it working as an app for my pokégear
Neat idea!
__________________
Reply With Quote
Reply
Quick Reply

Sponsored Links

You may also like.. (Beta)
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are UTC -8. The time now is 08:01 PM.