The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > Create & Discover > Game Development > Scripts & Tutorials
Reload this Page Essentials Script Party screen's Ball graphic matches the Poké Ball the Pokemon was caught in
Sign Up Rules/FAQ Daily Battle Blogs Mark Forums Read


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 October 8th, 2015 (11:54 PM). Edited February 17th, 2016 by Lucidious89.
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 127
This allows the ball type that the Pokemon was caught in to be displayed on the party menu; replacing the default Pokeball icon that is used for every Pokemon. This is just a visual mod, but some minor coding is required.

Here's what the final results look like in my game:

Poke Ball, Premier Ball, Friend Ball, Dive Ball, Great Ball, Master Ball


Lure Ball, Luxury Ball, Moon Ball, Nest Ball, Net Ball, Quick Ball


Fast Ball, Dusk Ball, Heal Ball, Heavy Ball, Level Ball, Love Ball


Repeat Ball, Safari Ball, Sport Ball, Timer Ball, Ultra Ball, Cherish Ball



Installation
Spoiler:
Step 1
In PScreen_Party, find the following lines:
Code:
@pokeballsprite.addBitmap("pokeballdesel","Graphics/Pictures/partyBall")
    @pokeballsprite.addBitmap("pokeballsel","Graphics/Pictures/partyBallSel")
And replace it with ALL of this:
Code:
    @pokeballsprite.addBitmap("pokeballdesel","Graphics/Pictures/PartyBall/partyBallBasic")
    @pokeballsprite.addBitmap("pokeballsel","Graphics/Pictures/PartyBall/partyBallSelBasic")
    @pokeballsprite.addBitmap("greatballdesel","Graphics/Pictures/PartyBall/partyBallGreat")
    @pokeballsprite.addBitmap("greatballsel","Graphics/Pictures/PartyBall/partyBallSelGreat")
    @pokeballsprite.addBitmap("safariballdesel","Graphics/Pictures/PartyBall/partyBallSafari")
    @pokeballsprite.addBitmap("safariballsel","Graphics/Pictures/PartyBall/partyBallSelSafari")
    @pokeballsprite.addBitmap("ultraballdesel","Graphics/Pictures/PartyBall/partyBallUltra")
    @pokeballsprite.addBitmap("ultraballsel","Graphics/Pictures/PartyBall/partyBallSelUltra")
    @pokeballsprite.addBitmap("masterballdesel","Graphics/Pictures/PartyBall/partyBallMaster")
    @pokeballsprite.addBitmap("masterballsel","Graphics/Pictures/PartyBall/partyBallSelMaster")
    @pokeballsprite.addBitmap("netballdesel","Graphics/Pictures/PartyBall/partyBallNet")
    @pokeballsprite.addBitmap("netballsel","Graphics/Pictures/PartyBall/partyBallSelNet")
    @pokeballsprite.addBitmap("diveballdesel","Graphics/Pictures/PartyBall/partyBallDive")
    @pokeballsprite.addBitmap("diveballsel","Graphics/Pictures/PartyBall/partyBallSelDive")
    @pokeballsprite.addBitmap("nestballdesel","Graphics/Pictures/PartyBall/partyBallNest")
    @pokeballsprite.addBitmap("nestballsel","Graphics/Pictures/PartyBall/partyBallSelNest")
    @pokeballsprite.addBitmap("repeatballdesel","Graphics/Pictures/PartyBall/partyBallRepeat")
    @pokeballsprite.addBitmap("repeatballsel","Graphics/Pictures/PartyBall/partyBallSelRepeat")
    @pokeballsprite.addBitmap("timerballdesel","Graphics/Pictures/PartyBall/partyBallTimer")
    @pokeballsprite.addBitmap("timerballsel","Graphics/Pictures/PartyBall/partyBallSelTimer")
    @pokeballsprite.addBitmap("luxuryballdesel","Graphics/Pictures/PartyBall/partyBallLuxury")
    @pokeballsprite.addBitmap("luxuryballsel","Graphics/Pictures/PartyBall/partyBallSelLuxury")
    @pokeballsprite.addBitmap("premierballdesel","Graphics/Pictures/PartyBall/partyBallPremier")
    @pokeballsprite.addBitmap("premierballsel","Graphics/Pictures/PartyBall/partyBallSelPremier")
    @pokeballsprite.addBitmap("duskballdesel","Graphics/Pictures/PartyBall/partyBallDusk")
    @pokeballsprite.addBitmap("duskballsel","Graphics/Pictures/PartyBall/partyBallSelDusk")
    @pokeballsprite.addBitmap("healballdesel","Graphics/Pictures/PartyBall/partyBallHeal")
    @pokeballsprite.addBitmap("healballsel","Graphics/Pictures/PartyBall/partyBallSelHeal")
    @pokeballsprite.addBitmap("quickballdesel","Graphics/Pictures/PartyBall/partyBallQuick")
    @pokeballsprite.addBitmap("quickballsel","Graphics/Pictures/PartyBall/partyBallSelQuick")
    @pokeballsprite.addBitmap("cherishballdesel","Graphics/Pictures/PartyBall/partyBallCherish")
    @pokeballsprite.addBitmap("cherishballsel","Graphics/Pictures/PartyBall/partyBallSelCherish")
    @pokeballsprite.addBitmap("fastballdesel","Graphics/Pictures/PartyBall/partyBallFast")
    @pokeballsprite.addBitmap("fastballsel","Graphics/Pictures/PartyBall/partyBallSelFast")
    @pokeballsprite.addBitmap("levelballdesel","Graphics/Pictures/PartyBall/partyBallLevel")
    @pokeballsprite.addBitmap("levelballsel","Graphics/Pictures/PartyBall/partyBallSelLevel")
    @pokeballsprite.addBitmap("lureballdesel","Graphics/Pictures/PartyBall/partyBallLure")
    @pokeballsprite.addBitmap("lureballsel","Graphics/Pictures/PartyBall/partyBallSelLure")
    @pokeballsprite.addBitmap("heavyballdesel","Graphics/Pictures/PartyBall/partyBallHeavy")
    @pokeballsprite.addBitmap("heavyballsel","Graphics/Pictures/PartyBall/partyBallSelHeavy")
    @pokeballsprite.addBitmap("loveballdesel","Graphics/Pictures/PartyBall/partyBallLove")
    @pokeballsprite.addBitmap("loveballsel","Graphics/Pictures/PartyBall/partyBallSelLove")
    @pokeballsprite.addBitmap("friendballdesel","Graphics/Pictures/PartyBall/partyBallFriend")
    @pokeballsprite.addBitmap("friendballsel","Graphics/Pictures/PartyBall/partyBallSelFriend")
    @pokeballsprite.addBitmap("moonballdesel","Graphics/Pictures/PartyBall/partyBallMoon")
    @pokeballsprite.addBitmap("moonballsel","Graphics/Pictures/PartyBall/partyBallSelMoon")
    @pokeballsprite.addBitmap("sportballdesel","Graphics/Pictures/PartyBall/partyBallSport")
    @pokeballsprite.addBitmap("sportballsel","Graphics/Pictures/PartyBall/partyBallSelSport")

Step 2
In PScreen_Party, use CTRL+F to locate the first line in this section:
Code:
 @pokeballsprite.color=self.color
 @pokeballsprite.changeBitmap(self.selected ? "pokeballsel" : "pokeballdesel")
And replace the bolded line with this:
Code:
      if @pokemon.ballused==1
        @pokeballsprite.changeBitmap(self.selected ? "greatballsel" : "greatballdesel")
      elsif @pokemon.ballused==2
        @pokeballsprite.changeBitmap(self.selected ? "safariballsel" : "safariballdesel")
      elsif @pokemon.ballused==3
        @pokeballsprite.changeBitmap(self.selected ? "ultraballsel" : "ultraballdesel")
      elsif @pokemon.ballused==4
        @pokeballsprite.changeBitmap(self.selected ? "masterballsel" : "masterballdesel")
      elsif @pokemon.ballused==5
        @pokeballsprite.changeBitmap(self.selected ? "netballsel" : "netballdesel")
      elsif @pokemon.ballused==6
        @pokeballsprite.changeBitmap(self.selected ? "diveballsel" : "diveballdesel")
      elsif @pokemon.ballused==7
        @pokeballsprite.changeBitmap(self.selected ? "nestballsel" : "nestballdesel")
      elsif @pokemon.ballused==8
        @pokeballsprite.changeBitmap(self.selected ? "repeatballsel" : "repeatballdesel")
      elsif @pokemon.ballused==9
        @pokeballsprite.changeBitmap(self.selected ? "timerballsel" : "timerballdesel")
      elsif @pokemon.ballused==10
        @pokeballsprite.changeBitmap(self.selected ? "luxuryballsel" : "luxuryballdesel")
      elsif @pokemon.ballused==11
        @pokeballsprite.changeBitmap(self.selected ? "premierballsel" : "premierballdesel")
      elsif @pokemon.ballused==12
        @pokeballsprite.changeBitmap(self.selected ? "duskballsel" : "duskballdesel")
      elsif @pokemon.ballused==13
        @pokeballsprite.changeBitmap(self.selected ? "healballsel" : "healballdesel")
      elsif @pokemon.ballused==14
        @pokeballsprite.changeBitmap(self.selected ? "quickballsel" : "quickballdesel")
      elsif @pokemon.ballused==15
        @pokeballsprite.changeBitmap(self.selected ? "cherishballsel" : "cherishballdesel")
      elsif @pokemon.ballused==16
        @pokeballsprite.changeBitmap(self.selected ? "fastballsel" : "fastballdesel")
      elsif @pokemon.ballused==17
        @pokeballsprite.changeBitmap(self.selected ? "levelballsel" : "levelballdesel")
      elsif @pokemon.ballused==18
        @pokeballsprite.changeBitmap(self.selected ? "lureballsel" : "lureballdesel")
      elsif @pokemon.ballused==19
        @pokeballsprite.changeBitmap(self.selected ? "heavyballsel" : "heavyballdesel")
      elsif @pokemon.ballused==20
        @pokeballsprite.changeBitmap(self.selected ? "loveballsel" : "loveballdesel")
      elsif @pokemon.ballused==21
        @pokeballsprite.changeBitmap(self.selected ? "friendballsel" : "friendballdesel")
      elsif @pokemon.ballused==22
        @pokeballsprite.changeBitmap(self.selected ? "moonballsel" : "moonballdesel")
      elsif @pokemon.ballused==23
        @pokeballsprite.changeBitmap(self.selected ? "sportballsel" : "sportballdesel")
      else
         @pokeballsprite.changeBitmap(self.selected ? "pokeballsel" : "pokeballdesel")
      end
And that's it!
Now just install the linked folder within your Pictures folder:
PartyBall

Note that while graphics for Dream and Park Balls are included in this, neither one is implemented into Essentials by default, so you'll have to add them in on your own if you want them to be displayed.



Enjoy!


Other scripts of mine that you may like:
Spoiler:
  • "Pokemon Birthsigns"
    This is my most ambitious project, consisting of several scripts that adds an entirely new breeding mechanic to the game known as 'Birthsigns'. These are added perks that are applied to a Pokemon at its moment of birth, which vary depending on the different constellations for each month of the year. Think Elder Scrolls, but with a Pokemon twist!
    You can find this project here: http://www.pokecommunity.com/showthread.php?p=8740502#8740502
  • "IV Star Ratings"
    A script that gives a general indication of the Pokemon's IV's through a star ranking system in the summary. This may be more visually appealing if you don't like the idea of cramming your screen with a bunch of extra numbers, but still want to give the player some way to gauge a quality Pokemon at a glance.
    You can find this script here: http://www.pokecommunity.com/showthread.php?p=8957793#8957793
  • "Egg Group Types"
    A script that displays the Egg Groups that a Pokemon belongs to in its summary, allowing you to easily look up compatible species for breeding. You can even stick this script into other places, such as the Pokedex, or PC menu.
    You can find this script here: http://www.pokecommunity.com/showthread.php?p=8957794#8957794
  • "HGSS Shiny Leaf Display"
    A script that adds the ability to attach Shiny Leaves to your Pokemon, a feature exclusive to HGSS. This adds an extra way of adding some uniqueness to your Pokemon. How you utilize them is up to you!
    You can find this script here: http://www.pokecommunity.com/showthread.php?p=8956957#8956957
Reply With Quote

Relevant Advertising!

  #2    
Old October 9th, 2015 (4:58 AM).
Mellan's Avatar
Mellan Mellan is offline
Pokémon Chion Developer
 
Join Date: May 2014
Location: Italy
Age: 19
Gender: Female
Nature: Lonely
Posts: 90
It's a cool feature! I'll definitely use it.
Thank you for sharing it!
__________________



Reply With Quote
  #3    
Old October 9th, 2015 (5:02 AM).
venom12's Avatar
venom12 venom12 is offline
Pokemon Crystal Rain Relased
 
Join Date: Sep 2006
Age: 25
Gender: Male
Nature: Adamant
Posts: 528
Send a message via Windows Live Messenger to venom12
Why just don't use the numbers of balls? And it will take less lines

Code:
@pokeballsprite.addBitmap("pokeballdesel","[email protected]}")
 @pokeballsprite.addBitmap("pokeballsel","[email protected]}")
Reply With Quote
  #4    
Old October 9th, 2015 (8:43 AM).
Rot8er_ConeX's Avatar
Rot8er_ConeX Rot8er_ConeX is offline
 
Join Date: May 2015
Location: The Dissa Region
Gender: Male
Posts: 677
I thought about doing this in my own game. I think I didn't because I didn't want to make graphics for every kind of Pokeball. Unfortunately, your art style doesn't mesh with my game, or I'd use your sprites.
__________________
Features of Pokemon Entropy

The black circular "doodles" in the lower right corner of my avatar are actually my username written in Gallifreyan. Yes I'm a Whovian.
Reply With Quote
  #5    
Old October 9th, 2015 (9:14 AM).
laxus3d laxus3d is offline
 
Join Date: Jul 2015
Gender: Male
Posts: 11
My failed
Reply With Quote
  #6    
Old October 9th, 2015 (9:17 AM).
akane159 akane159 is offline
 
Join Date: Oct 2012
Gender: Female
Posts: 57
i have this, but dont show all tipe pokeball, only show pokeball look
Spoiler:


Espurr have a Masterball but the show a pokeball

here the script
Spoiler:
Quote:
# Data structure representing mail that the Pokémon can hold
class PokemonMail
attr_accessor :item,:message,:sender,:poke1,:poke2,:poke3

def initialize(item,message,sender,poke1=nil,poke2=nil,poke3=nil)
@item=item # Item represented by this mail
@message=message # Message text
@sender=sender # Name of the message's sender
@poke1=poke1 # [species,gender,shininess,form,shadowness,is egg]
@poke2=poke2
@poke3=poke3
end
end



def pbMoveToMailbox(pokemon)
$PokemonGlobal.mailbox=[] if !$PokemonGlobal.mailbox
return false if $PokemonGlobal.mailbox.length>=10
return false if !pokemon.mail
$PokemonGlobal.mailbox.push(pokemon.mail)
pokemon.mail=nil
return true
end

def pbStoreMail(pkmn,item,message,poke1=nil,poke2=nil,poke3=nil)
raise _INTL("Pokémon already has mail") if pkmn.mail
pkmn.mail=PokemonMail.new(item,message,$Trainer.name,poke1,poke2,poke3)
end

def pbDisplayMail(mail,bearer=nil)
sprites={}
viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
viewport.z=99999
addBackgroundPlane(sprites,"background","mailbg",viewport)
sprites["card"]=IconSprite.new(0,0,viewport)
sprites["card"].setBitmap(pbMailBackFile(mail.item))
sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,viewport)
overlay=sprites["overlay"].bitmap
pbSetSystemFont(overlay)
if $ItemData[mail.item][ITEMTYPE]==2
if mail.poke1
sprites["bearer"]=IconSprite.new(64,288,viewport)
bitmapFileName=pbCheckPokemonIconFiles(mail.poke1,mail.poke1[5])
sprites["bearer"].setBitmap(bitmapFileName)
sprites["bearer"].src_rect.set(0,0,64,64)
end
if mail.poke2
sprites["bearer2"]=IconSprite.new(144,288,viewport)
bitmapFileName=pbCheckPokemonIconFiles(mail.poke2,mail.poke2[5])
sprites["bearer2"].setBitmap(bitmapFileName)
sprites["bearer2"].src_rect.set(0,0,64,64)
end
if mail.poke3
sprites["bearer3"]=IconSprite.new(224,288,viewport)
bitmapFileName=pbCheckPokemonIconFiles(mail.poke3,mail.poke3[5])
sprites["bearer3"].setBitmap(bitmapFileName)
sprites["bearer3"].src_rect.set(0,0,64,64)
end
end
baseForDarkBG=Color.new(248,248,248)
shadowForDarkBG=Color.new(72,80,88)
baseForLightBG=Color.new(80,80,88)
shadowForLightBG=Color.new(168,168,176)
if mail.message && mail.message!=""
isDark=isDarkBackground(sprites["card"].bitmap,Rect.new(48,48,Graphics.width-96,32*7))
drawTextEx(overlay,48,48,Graphics.width-96,7,mail.message,
isDark ? baseForDarkBG : baseForLightBG,
isDark ? shadowForDarkBG : shadowForLightBG)
end
if mail.sender && mail.sender!=""
isDark=isDarkBackground(sprites["card"].bitmap,Rect.new(336,322,144,32*1))
drawTextEx(overlay,336,322,144,1,_INTL("{1}",mail.sender),
isDark ? baseForDarkBG : baseForLightBG,
isDark ? shadowForDarkBG : shadowForLightBG)
end
pbFadeInAndShow(sprites)
loop do
Graphics.update
Input.update
pbUpdateSpriteHash(sprites)
if Input.trigger?(Input::B) || Input.trigger?(Input::C)
break
end
end
pbFadeOutAndHide(sprites)
pbDisposeSpriteHash(sprites)
viewport.dispose
end


###########################


class PokeSelectionPlaceholderSprite < SpriteWrapper
attr_accessor :text

def initialize(pokemon,index,viewport=nil)
super(viewport)
xvalues=[0,256,0,256,0,256]
yvalues=[0,16,96,112,192,208]
@pbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelBlank")
[email protected]
self.x=xvalues[index]
self.y=yvalues[index]
@text=nil
end

def update
super
@pbitmap.update
[email protected]
end

def selected
return false
end

def selected=(value)
end

def preselected
return false
end

def preselected=(value)
end

def switching
return false
end

def switching=(value)
end

def refresh
end

def dispose
@pbitmap.dispose
super
end
end



class PokeSelectionConfirmCancelSprite < SpriteWrapper
attr_reader :selected

def initialize(text,x,y,narrowbox=false,viewport=nil)
super(viewport)
@refreshBitmap=true
@bgsprite=ChangelingSprite.new(0,0,viewport)
if narrowbox
@bgsprite.addBitmap("deselbitmap","Graphics/Pictures/partyCancelNarrow")
@bgsprite.addBitmap("selbitmap","Graphics/Pictures/partyCancelSelNarrow")
else
@bgsprite.addBitmap("deselbitmap","Graphics/Pictures/partyCancel")
@bgsprite.addBitmap("selbitmap","Graphics/Pictures/partyCancelSel")
end
@bgsprite.changeBitmap("deselbitmap")
@overlaysprite=BitmapSprite.new(@bgsprite.bitmap.width,@bgsprite.bitmap.height,viewport)
@yoffset=8
ynarrow=narrowbox ? -6 : 0
pbSetSystemFont(@overlaysprite.bitmap)
textpos=[[text,56,8+ynarrow,2,Color.new(248,248,248),Color.new(40,40,40)]]
pbDrawTextPositions(@overlaysprite.bitmap,textpos)
@overlaysprite.z=self.z+1 # For compatibility with RGSS2
self.x=x
self.y=y
end

def dispose
@overlaysprite.bitmap.dispose
@overlaysprite.dispose
@bgsprite.dispose
super
end

def viewport=(value)
super
refresh
end

def color=(value)
super
refresh
end

def x=(value)
super
refresh
end

def y=(value)
super
refresh
end

def selected=(value)
@selected=value
refresh
end

def refresh
@bgsprite.changeBitmap((@selected) ? "selbitmap" : "deselbitmap")
if @bgsprite && [email protected]?
@bgsprite.x=self.x
@bgsprite.y=self.y
@overlaysprite.x=self.x
@overlaysprite.y=self.y
@bgsprite.color=self.color
@overlaysprite.color=self.color
end
end
end



class PokeSelectionCancelSprite < PokeSelectionConfirmCancelSprite
def initialize(viewport=nil)
super(_INTL(" "),398,328,false,viewport)
end
end



class PokeSelectionConfirmSprite < PokeSelectionConfirmCancelSprite
def initialize(viewport=nil)
super(_INTL("CONFIRM"),398,308,true,viewport)
end
end



class PokeSelectionCancelSprite2 < PokeSelectionConfirmCancelSprite
def initialize(viewport=nil)
super(_INTL("CANCEL"),398,346,true,viewport)
end
end



class ChangelingSprite < SpriteWrapper
def initialize(x=0,y=0,viewport=nil)
super(viewport)
self.x=x
self.y=y
@bitmaps={}
@currentBitmap=nil
end

def addBitmap(key,path)
if @bitmaps[key]
@bitmaps[key].dispose
end
@bitmaps[key]=AnimatedBitmap.new(path)
end

def changeBitmap(key)
@[email protected][key]
[email protected] ? @currentBitmap.bitmap : nil
end

def dispose
return if disposed?
for bm in @bitmaps.values; bm.dispose; end
@bitmaps.clear
super
end

def update
return if disposed?
for bm in @bitmaps.values; bm.update; end
[email protected] ? @currentBitmap.bitmap : nil
end
end



class PokeSelectionSprite < SpriteWrapper
attr_reader :selected
attr_reader :preselected
attr_reader :switching
attr_reader :pokemon
attr_reader :active
attr_accessor :text

def initialize(pokemon,index,viewport=nil)
super(viewport)
@pokemon=pokemon
active=(index==0)
@active=active
if active # Rounded panel
@deselbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRound")
@selbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRoundSel")
@deselfntbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRoundFnt")
@selfntbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRoundSelFnt")
@deselswapbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRoundSwap")
@selswapbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRoundSelSwap")
else # Rectangular panel
@deselbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRect")
@selbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRectSel")
@deselfntbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRectFnt")
@selfntbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRectSelFnt")
@deselswapbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRectSwap")
@selswapbitmap=AnimatedBitmap.new("Graphics/Pictures/partyPanelRectSelSwap")
end
@spriteXOffset=28
@spriteYOffset=0
@pokeballXOffset=10
@pokeballYOffset=0
@pokenameX=96
@pokenameY=16
@levelX=20
@levelY=62
@statusX=80
@statusY=68
@genderX=224
@genderY=16
@hpX=224
@hpY=60
@hpbarX=96
@hpbarY=50
@gaugeX=128
@gaugeY=52
@itemXOffset=62
@itemYOffset=48
@annotX=96
@annotY=58
xvalues=[0,256,0,256,0,256]
yvalues=[0,16,96,112,192,208]
@text=nil
@statuses=AnimatedBitmap.new(_INTL("Graphics/Pictures/statuses"))
@hpbar=AnimatedBitmap.new("Graphics/Pictures/partyHP")
@hpbarfnt=AnimatedBitmap.new("Graphics/Pictures/partyHPfnt")
@hpbarswap=AnimatedBitmap.new("Graphics/Pictures/partyHPswap")
@pokeballsprite=ChangelingSprite.new(0,0,viewport)
@pokeballsprite.addBitmap("pokeballdesel","Graphics/Pictures/PartyBall/partyBallBasic")
@pokeballsprite.addBitmap("pokeballsel","Graphics/Pictures/PartyBall/partyBallSelBasic")
@pokeballsprite.addBitmap("greatballdesel","Graphics/Pictures/PartyBall/partyBallGreat")
@pokeballsprite.addBitmap("greatballsel","Graphics/Pictures/PartyBall/partyBallSelGreat")
@pokeballsprite.addBitmap("safariballdesel","Graphics/Pictures/PartyBall/partyBallSafari")
@pokeballsprite.addBitmap("safariballsel","Graphics/Pictures/PartyBall/partyBallSelSafari")
@pokeballsprite.addBitmap("ultraballdesel","Graphics/Pictures/PartyBall/partyBallUltra")
@pokeballsprite.addBitmap("ultraballsel","Graphics/Pictures/PartyBall/partyBallSelUltra")
@pokeballsprite.addBitmap("masterballdesel","Graphics/Pictures/PartyBall/partyBallMaster")
@pokeballsprite.addBitmap("masterballsel","Graphics/Pictures/PartyBall/partyBallSelMaster")
@pokeballsprite.addBitmap("netballdesel","Graphics/Pictures/PartyBall/partyBallNet")
@pokeballsprite.addBitmap("netballsel","Graphics/Pictures/PartyBall/partyBallSelNet")
@pokeballsprite.addBitmap("diveballdesel","Graphics/Pictures/PartyBall/partyBallDive")
@pokeballsprite.addBitmap("diveballsel","Graphics/Pictures/PartyBall/partyBallSelDive")
@pokeballsprite.addBitmap("nestballdesel","Graphics/Pictures/PartyBall/partyBallNest")
@pokeballsprite.addBitmap("nestballsel","Graphics/Pictures/PartyBall/partyBallSelNest")
@pokeballsprite.addBitmap("repeatballdesel","Graphics/Pictures/PartyBall/partyBallRepeat")
@pokeballsprite.addBitmap("repeatballsel","Graphics/Pictures/PartyBall/partyBallSelRepeat")
@pokeballsprite.addBitmap("timerballdesel","Graphics/Pictures/PartyBall/partyBallTimer")
@pokeballsprite.addBitmap("timerballsel","Graphics/Pictures/PartyBall/partyBallSelTimer")
@pokeballsprite.addBitmap("luxuryballdesel","Graphics/Pictures/PartyBall/partyBallLuxury")
@pokeballsprite.addBitmap("luxuryballsel","Graphics/Pictures/PartyBall/partyBallSelLuxury")
@pokeballsprite.addBitmap("premierballdesel","Graphics/Pictures/PartyBall/partyBallPremier")
@pokeballsprite.addBitmap("premierballsel","Graphics/Pictures/PartyBall/partyBallSelPremier")
@pokeballsprite.addBitmap("duskballdesel","Graphics/Pictures/PartyBall/partyBallDusk")
@pokeballsprite.addBitmap("duskballsel","Graphics/Pictures/PartyBall/partyBallSelDusk")
@pokeballsprite.addBitmap("healballdesel","Graphics/Pictures/PartyBall/partyBallHeal")
@pokeballsprite.addBitmap("healballsel","Graphics/Pictures/PartyBall/partyBallSelHeal")
@pokeballsprite.addBitmap("quickballdesel","Graphics/Pictures/PartyBall/partyBallQuick")
@pokeballsprite.addBitmap("quickballsel","Graphics/Pictures/PartyBall/partyBallSelQuick")
@pokeballsprite.addBitmap("cherishballdesel","Graphics/Pictures/PartyBall/partyBallCherish")
@pokeballsprite.addBitmap("cherishballsel","Graphics/Pictures/PartyBall/partyBallSelCherish")
@pokeballsprite.addBitmap("fastballdesel","Graphics/Pictures/PartyBall/partyBallFast")
@pokeballsprite.addBitmap("fastballsel","Graphics/Pictures/PartyBall/partyBallSelFast")
@pokeballsprite.addBitmap("levelballdesel","Graphics/Pictures/PartyBall/partyBallLevel")
@pokeballsprite.addBitmap("levelballsel","Graphics/Pictures/PartyBall/partyBallSelLevel")
@pokeballsprite.addBitmap("lureballdesel","Graphics/Pictures/PartyBall/partyBallLure")
@pokeballsprite.addBitmap("lureballsel","Graphics/Pictures/PartyBall/partyBallSelLure")
@pokeballsprite.addBitmap("heavyballdesel","Graphics/Pictures/PartyBall/partyBallHeavy")
@pokeballsprite.addBitmap("heavyballsel","Graphics/Pictures/PartyBall/partyBallSelHeavy")
@pokeballsprite.addBitmap("loveballdesel","Graphics/Pictures/PartyBall/partyBallLove")
@pokeballsprite.addBitmap("loveballsel","Graphics/Pictures/PartyBall/partyBallSelLove")
@pokeballsprite.addBitmap("friendballdesel","Graphics/Pictures/PartyBall/partyBallFriend")
@pokeballsprite.addBitmap("friendballsel","Graphics/Pictures/PartyBall/partyBallSelFriend")
@pokeballsprite.addBitmap("moonballdesel","Graphics/Pictures/PartyBall/partyBallMoon")
@pokeballsprite.addBitmap("moonballsel","Graphics/Pictures/PartyBall/partyBallSelMoon")
@pokeballsprite.addBitmap("sportballdesel","Graphics/Pictures/PartyBall/partyBallSport")
@pokeballsprite.addBitmap("sportballsel","Graphics/Pictures/PartyBall/partyBallSelSport")
@pkmnsprite=PokemonIconSprite.new(pokemon,viewport)
@pkmnsprite.active=active
@itemsprite=ChangelingSprite.new(0,0,viewport)
@itemsprite.addBitmap("itembitmap","Graphics/Pictures/item")
@itemsprite.addBitmap("mailbitmap","Graphics/Pictures/mail")
@spriteX=xvalues[index]
@spriteY=yvalues[index]
@refreshBitmap=true
@refreshing=false
@preselected=false
@switching=false
@pkmnsprite.z=self.z+2 # For compatibility with RGSS2
@itemsprite.z=self.z+3 # For compatibility with RGSS2
@pokeballsprite.z=self.z+1 # For compatibility with RGSS2
self.selected=false
[email protected]
[email protected]
refresh
end

def dispose
@selbitmap.dispose
@statuses.dispose
@hpbar.dispose
@deselbitmap.dispose
@itemsprite.dispose
@pkmnsprite.dispose
@pokeballsprite.dispose
self.bitmap.dispose
super
end

def selected=(value)
@selected=value
@refreshBitmap=true
refresh
end

def text=(value)
@text=value
@refreshBitmap=true
refresh
end

def pokemon=(value)
@pokemon=value
if @pkmnsprite && [email protected]?
@pkmnsprite.pokemon=value
end
@refreshBitmap=true
refresh
end

def preselected=(value)
if [email protected]
@preselected=value
refresh
end
end

def switching=(value)
if [email protected]
@switching=value
refresh
end
end

def color=(value)
super
refresh
end

def x=(value)
super
refresh
end

def y=(value)
super
refresh
end

def hp
return @pokemon.hp
end

def refresh
return if @refreshing
return if disposed?
@refreshing=true
if !self.bitmap || self.bitmap.disposed?
self.bitmap=BitmapWrapper.new(@selbitmap.width,@selbitmap.height)
end
if @pkmnsprite && [email protected]?
@[email protected]
@[email protected]
@pkmnsprite.color=pbSrcOver(@pkmnsprite.color,self.color)
@pkmnsprite.selected=self.selected
end
if @pokeballsprite && [email protected]?
@[email protected]
@[email protected]
@pokeballsprite.color=self.color
if @pokemon.ballused==1
@pokeballsprite.changeBitmap(self.selected ? "greatballsel" : "greatballdesel")
elsif @pokemon.ballused==2
@pokeballsprite.changeBitmap(self.selected ? "safariballsel" : "safariballdesel")
elsif @pokemon.ballused==3
@pokeballsprite.changeBitmap(self.selected ? "ultraballsel" : "ultraballdesel")
elsif @pokemon.ballused==4
@pokeballsprite.changeBitmap(self.selected ? "masterballsel" : "masterballdesel")
elsif @pokemon.ballused==5
@pokeballsprite.changeBitmap(self.selected ? "netballsel" : "netballdesel")
elsif @pokemon.ballused==6
@pokeballsprite.changeBitmap(self.selected ? "diveballsel" : "diveballdesel")
elsif @pokemon.ballused==7
@pokeballsprite.changeBitmap(self.selected ? "nestballsel" : "nestballdesel")
elsif @pokemon.ballused==8
@pokeballsprite.changeBitmap(self.selected ? "repeatballsel" : "repeatballdesel")
elsif @pokemon.ballused==9
@pokeballsprite.changeBitmap(self.selected ? "timerballsel" : "timerballdesel")
elsif @pokemon.ballused==10
@pokeballsprite.changeBitmap(self.selected ? "luxuryballsel" : "luxuryballdesel")
elsif @pokemon.ballused==11
@pokeballsprite.changeBitmap(self.selected ? "premierballsel" : "premierballdesel")
elsif @pokemon.ballused==12
@pokeballsprite.changeBitmap(self.selected ? "duskballsel" : "duskballdesel")
elsif @pokemon.ballused==13
@pokeballsprite.changeBitmap(self.selected ? "healballsel" : "healballdesel")
elsif @pokemon.ballused==14
@pokeballsprite.changeBitmap(self.selected ? "quickballsel" : "quickballdesel")
elsif @pokemon.ballused==15
@pokeballsprite.changeBitmap(self.selected ? "cherishballsel" : "cherishballdesel")
elsif @pokemon.ballused==16
@pokeballsprite.changeBitmap(self.selected ? "fastballsel" : "fastballdesel")
elsif @pokemon.ballused==17
@pokeballsprite.changeBitmap(self.selected ? "levelballsel" : "levelballdesel")
elsif @pokemon.ballused==18
@pokeballsprite.changeBitmap(self.selected ? "lureballsel" : "lureballdesel")
elsif @pokemon.ballused==19
@pokeballsprite.changeBitmap(self.selected ? "heavyballsel" : "heavyballdesel")
elsif @pokemon.ballused==20
@pokeballsprite.changeBitmap(self.selected ? "loveballsel" : "loveballdesel")
elsif @pokemon.ballused==21
@pokeballsprite.changeBitmap(self.selected ? "friendballsel" : "friendballdesel")
elsif @pokemon.ballused==22
@pokeballsprite.changeBitmap(self.selected ? "moonballsel" : "moonballdesel")
elsif @pokemon.ballused==23
@pokeballsprite.changeBitmap(self.selected ? "sportballsel" : "sportballdesel")
else
@pokeballsprite.changeBitmap(self.selected ? "pokeballsel" : "pokeballdesel")
end
@pokeballsprite.changeBitmap(self.selected ? "pokeballsel" : "pokeballdesel")
end
if @itemsprite && [email protected]?
@itemsprite.visible=(@pokemon.item>0)
if @itemsprite.visible
@itemsprite.changeBitmap(@pokemon.mail ? "mailbitmap" : "itembitmap")
@[email protected]
@[email protected]
@itemsprite.color=self.color
end
end
if @refreshBitmap
@refreshBitmap=false
self.bitmap.clear if self.bitmap
if self.selected
if self.preselected
self.bitmap.blt(0,0,@selswapbitmap.bitmap,Rect.new(0,0,@selswapbitmap.width,@selswapbitmap.height))
self.bitmap.blt(0,0,@deselswapbitmap.bitmap,Rect.new(0,0,@deselswapbitmap.width,@deselswapbitmap.height))
elsif @switching
self.bitmap.blt(0,0,@selswapbitmap.bitmap,Rect.new(0,0,@selswapbitmap.width,@selswapbitmap.height))
elsif @pokemon.hp<=0 && [email protected]?
self.bitmap.blt(0,0,@selfntbitmap.bitmap,Rect.new(0,0,@selfntbitmap.width,@selfntbitmap.height))
else
self.bitmap.blt(0,0,@selbitmap.bitmap,Rect.new(0,0,@selbitmap.width,@selbitmap.height))
end
else
if self.preselected
self.bitmap.blt(0,0,@deselswapbitmap.bitmap,Rect.new(0,0,@deselswapbitmap.width,@deselswapbitmap.height))
elsif @pokemon.hp<=0 && [email protected]?
self.bitmap.blt(0,0,@deselfntbitmap.bitmap,Rect.new(0,0,@deselfntbitmap.width,@deselfntbitmap.height))
else
self.bitmap.blt(0,0,@deselbitmap.bitmap,Rect.new(0,0,@deselbitmap.width,@deselbitmap.height))
end
end
base=Color.new(248,248,248)
shadow=Color.new(40,40,40)
pbSetSystemFont(self.bitmap)
[email protected]
textpos=[[pokename,@pokenameX,@pokenameY,0,base,shadow]]
if [email protected]?
if [email protected] || @text.length==0
[email protected]
textpos.push([_ISPRINTF("{1: 3d}/{2: 3d}",@pokemon.hp,tothp),
@hpX,@hpY,1,base,shadow])
barbg=(@pokemon.hp<=0) ? @hpbarfnt : @hpbar
barbg=(self.preselected || (self.selected && @switching)) ? @hpbarswap : barbg
self.bitmap.blt(@hpbarX,@hpbarY,barbg.bitmap,Rect.new(0,0,@hpbar.width,@hpbar.height))
[email protected]==0 ? 0 : ([email protected])
hpgauge=1 if hpgauge==0 && self.hp>0
hpzone=0
hpzone=1 if self.hp<=(@pokemon.totalhp/2).floor
hpzone=2 if self.hp<=(@pokemon.totalhp/4).floor
hpcolors=[
Color.new(24,192,32),Color.new(96,248,96), # Green
Color.new(232,168,0),Color.new(248,216,0), # Orange
Color.new(248,72,56),Color.new(248,152,152) # Red
]
# fill with HP color
self.bitmap.fill_rect(@gaugeX,@gaugeY,hpgauge,2,hpcolors[hpzone*2])
self.bitmap.fill_rect(@gaugeX,@gaugeY+2,hpgauge,4,hpcolors[hpzone*2+1])
self.bitmap.fill_rect(@gaugeX,@gaugeY+6,hpgauge,2,hpcolors[hpzone*2])
if @pokemon.hp==0 || @pokemon.status>0
status=(@pokemon.hp==0) ? 5 : @pokemon.status-1
statusrect=Rect.new(0,16*status,44,16)
self.bitmap.blt(@statusX,@statusY,@statuses.bitmap,statusrect)
end
end
if @pokemon.isMale?
textpos.push([_INTL("♂"),@genderX,@genderY,0,Color.new(0,112,248),Color.new(120,184,232)])
elsif @pokemon.isFemale?
textpos.push([_INTL("♀"),@genderX,@genderY,0,Color.new(232,32,16),Color.new(248,168,184)])
end
end
pbDrawTextPositions(self.bitmap,textpos)
if [email protected]?
pbSetSmallFont(self.bitmap)
leveltext=[([_INTL("Lv.{1}",@pokemon.level),@levelX,@levelY,0,base,shadow])]
pbDrawTextPositions(self.bitmap,leveltext)
end
if @text && @text.length>0
pbSetSystemFont(self.bitmap)
annotation=[[@text,@annotX,@annotY,0,base,shadow]]
pbDrawTextPositions(self.bitmap,annotation)
end
end
@refreshing=false
end

def update
super
@pokeballsprite.update if @pokeballsprite && [email protected]?
@itemsprite.update if @itemsprite && [email protected]?
if @pkmnsprite && [email protected]?
@pkmnsprite.update
end
end

end


##############################


class PokemonScreen_Scene
def pbShowCommands(helptext,commands,index=0)
ret=-1
[email protected]["helpwindow"]
helpwindow.visible=true
using(cmdwindow=Window_CommandPokemon.new(commands)) {
[email protected]+1
cmdwindow.index=index
pbBottomRight(cmdwindow)
helpwindow.text=""
helpwindow.resizeHeightToFit(helptext,Graphics.width-cmdwindow.width)
helpwindow.text=helptext
pbBottomLeft(helpwindow)
loop do
Graphics.update
Input.update
cmdwindow.update
self.update
if Input.trigger?(Input::B)
pbPlayCancelSE()
ret=-1
break
end
if Input.trigger?(Input::C)
pbPlayDecisionSE()
ret=cmdwindow.index
break
end
end
}
return ret
end

def update
pbUpdateSpriteHash(@sprites)
end

def pbSetHelpText(helptext)
[email protected]["helpwindow"]
pbBottomLeftLines(helpwindow,1)
helpwindow.text=helptext
helpwindow.width=398
helpwindow.visible=true
end

def pbStartScene(party,starthelptext,annotations=nil,multiselect=false)
@sprites={}
@party=party
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
@multiselect=multiselect
addBackgroundPlane(@sprites,"partybg","partybg",@viewport)
@sprites["messagebox"]=Window_AdvancedTextPokemon.new("")
@sprites["helpwindow"]=Window_UnformattedTextPokemon.new(starthelptext)
@sprites["messagebox"].[email protected]
@sprites["messagebox"].visible=false
@sprites["messagebox"].letterbyletter=true
@sprites["helpwindow"].[email protected]
@sprites["helpwindow"].visible=true
pbBottomLeftLines(@sprites["messagebox"],2)
pbBottomLeftLines(@sprites["helpwindow"],1)
pbSetHelpText(starthelptext)
# Add party Pokémon sprites
for i in 0...6
if @party[i]
@sprites["pokemon#{i}"]=PokeSelectionSprite.new(
@party[i],i,@viewport)
else
@sprites["pokemon#{i}"]=PokeSelectionPlaceholderSprite.new(
@party[i],i,@viewport)
end
if annotations
@sprites["pokemon#{i}"].text=annotations[i]
end
end
if @multiselect
@sprites["pokemon6"]=PokeSelectionConfirmSprite.new(@viewport)
@sprites["pokemon7"]=PokeSelectionCancelSprite2.new(@viewport)
else
@sprites["pokemon6"]=PokeSelectionCancelSprite.new(@viewport)
end
# Select first Pokémon
@activecmd=0
@sprites["pokemon0"].selected=true
pbFadeInAndShow(@sprites) { update }
end

def pbEndScene
pbFadeOutAndHide(@sprites) { update }
pbDisposeSpriteHash(@sprites)
@viewport.dispose
end

def pbChangeSelection(key,currentsel)
numsprites=(@multiselect) ? 8 : 7
case key
when Input::LEFT
begin
currentsel-=1
end while currentsel>0 && currentsel<@party.length && [email protected][currentsel]
if currentsel>[email protected] && currentsel<6
[email protected]
end
currentsel=numsprites-1 if currentsel<0
when Input::RIGHT
begin
currentsel+=1
end while currentsel<@party.length && [email protected][currentsel]
if [email protected]
currentsel=6
elsif currentsel==numsprites
currentsel=0
end
when Input::UP
if currentsel>=6
begin
currentsel-=1
end while currentsel>0 && [email protected][currentsel]
else
begin
currentsel-=2
end while currentsel>0 && [email protected][currentsel]
end
if currentsel>[email protected] && currentsel<6
[email protected]
end
currentsel=numsprites-1 if currentsel<0
when Input::DOWN
if currentsel>=5
currentsel+=1
else
currentsel+=2
currentsel=6 if currentsel<6 && [email protected][currentsel]
end
if currentsel>[email protected] && currentsel<6
currentsel=6
elsif currentsel>=numsprites
currentsel=0
end
end
return currentsel
end

def pbRefresh
for i in 0...6
[email protected]["pokemon#{i}"]
if sprite
if sprite.is_a?(PokeSelectionSprite)
sprite.pokemon=sprite.pokemon
else
sprite.refresh
end
end
end
end

def pbRefreshSingle(i)
[email protected]["pokemon#{i}"]
if sprite
if sprite.is_a?(PokeSelectionSprite)
sprite.pokemon=sprite.pokemon
else
sprite.refresh
end
end
end

def pbHardRefresh
oldtext=[]
lastselected=-1
for i in 0...6
oldtext.push(@sprites["pokemon#{i}"].text)
lastselected=i if @sprites["pokemon#{i}"].selected
@sprites["pokemon#{i}"].dispose
end
[email protected] if lastselected>[email protected]
lastselected=0 if lastselected<0
for i in 0...6
if @party[i]
@sprites["pokemon#{i}"]=PokeSelectionSprite.new(
@party[i],i,@viewport)
else
@sprites["pokemon#{i}"]=PokeSelectionPlaceholderSprite.new(
@party[i],i,@viewport)
end
@sprites["pokemon#{i}"].text=oldtext[i]
end
pbSelect(lastselected)
end

def pbPreSelect(pkmn)
@activecmd=pkmn
end

def pbChoosePokemon(switching=false)
for i in 0...6
@sprites["pokemon#{i}"].preselected=(switching&&[email protected])
@sprites["pokemon#{i}"].switching=switching
end
pbRefresh
loop do
Graphics.update
Input.update
self.update
[email protected]
key=-1
key=Input::DOWN if Input.repeat?(Input::DOWN)
key=Input::RIGHT if Input.repeat?(Input::RIGHT)
key=Input::LEFT if Input.repeat?(Input::LEFT)
key=Input::UP if Input.repeat?(Input::UP)
if key>=0
@activecmd=pbChangeSelection(key,@activecmd)
end
if @activecmd!=oldsel # Changing selection
pbPlayCursorSE()
numsprites=(@multiselect) ? 8 : 7
for i in 0...numsprites
@sprites["pokemon#{i}"].selected=([email protected])
end
end
if Input.trigger?(Input::B)
return -1
end
if Input.trigger?(Input::C)
pbPlayDecisionSE()
cancelsprite=(@multiselect) ? 7 : 6
return (@activecmd==cancelsprite) ? -1 : @activecmd
end
end
end

def pbSelect(item)
@activecmd=item
numsprites=(@multiselect) ? 8 : 7
for i in 0...numsprites
@sprites["pokemon#{i}"].selected=([email protected])
end
end

def pbDisplay(text)
@sprites["messagebox"].text=text
@sprites["messagebox"].visible=true
@sprites["helpwindow"].visible=false
pbPlayDecisionSE()
loop do
Graphics.update
Input.update
self.update
if @sprites["messagebox"].busy? && Input.trigger?(Input::C)
pbPlayDecisionSE() if @sprites["messagebox"].pausing?
@sprites["messagebox"].resume
end
if [email protected]["messagebox"].busy? &&
(Input.trigger?(Input::C) || Input.trigger?(Input::B))
break
end
end
@sprites["messagebox"].visible=false
@sprites["helpwindow"].visible=true
end

def pbSwitchBegin(oldid,newid)
[email protected]["pokemon#{oldid}"]
[email protected]["pokemon#{newid}"]
22.times do
oldsprite.x+=(oldid&1)==0 ? -12 : 12
newsprite.x+=(newid&1)==0 ? -12 : 12
Graphics.update
Input.update
self.update
end
end

def pbSwitchEnd(oldid,newid)
[email protected]["pokemon#{oldid}"]
[email protected]["pokemon#{newid}"]
[email protected][oldid]
[email protected][newid]
22.times do
oldsprite.x-=(oldid&1)==0 ? -12 : 12
newsprite.x-=(newid&1)==0 ? -12 : 12
Graphics.update
Input.update
self.update
end
for i in 0...6
@sprites["pokemon#{i}"].preselected=false
@sprites["pokemon#{i}"].switching=false
end
pbRefresh
end

def pbDisplayConfirm(text)
ret=-1
@sprites["messagebox"].text=text
@sprites["messagebox"].visible=true
@sprites["helpwindow"].visible=false
using(cmdwindow=Window_CommandPokemon.new([_INTL("Yes"),_INTL("No")])){
[email protected]+1
cmdwindow.visible=false
pbBottomRight(cmdwindow)
[email protected]["messagebox"].height
loop do
Graphics.update
Input.update
cmdwindow.visible=true if [email protected]["messagebox"].busy?
cmdwindow.update
self.update
if Input.trigger?(Input::B) && [email protected]["messagebox"].busy?
ret=false
break
end
if Input.trigger?(Input::C) && @sprites["messagebox"].resume && [email protected]["messagebox"].busy?
ret=(cmdwindow.index==0)
break
end
end
}
@sprites["messagebox"].visible=false
@sprites["helpwindow"].visible=true
return ret
end

def pbAnnotate(annot)
for i in 0...6
if annot
@sprites["pokemon#{i}"].text=annot[i]
end
end
end

def pbSummary(pkmnid)
oldsprites=pbFadeOutAndHide(@sprites)
scene=PokemonSummaryScene.new
screen=PokemonSummary.new(scene)
screen.pbStartScreen(@party,pkmnid)
pbFadeInAndShow(@sprites,oldsprites)
end

def pbChooseItem(bag)
oldsprites=pbFadeOutAndHide(@sprites)
@sprites["helpwindow"].visible=false
@sprites["messagebox"].visible=false
scene=PokemonBag_Scene.new
screen=PokemonBagScreen.new(scene,bag)
ret=screen.pbGiveItemScreen
pbFadeInAndShow(@sprites,oldsprites)
return ret
end

def pbUseItem(bag,pokemon)
oldsprites=pbFadeOutAndHide(@sprites)
@sprites["helpwindow"].visible=false
@sprites["messagebox"].visible=false
scene=PokemonBag_Scene.new
screen=PokemonBagScreen.new(scene,bag)
ret=screen.pbUseItemScreen(pokemon)
pbFadeInAndShow(@sprites,oldsprites)
return ret
end

def pbMessageFreeText(text,startMsg,maxlength)
return Kernel.pbMessageFreeText(
_INTL("Please enter a message (max. {1} characters).",maxlength),
_INTL("{1}",startMsg),false,maxlength,Graphics.width) { update }
end
end


######################################


class PokemonScreen
def initialize(scene,party)
@party=party
@scene=scene
end

def pbHardRefresh
@scene.pbHardRefresh
end

def pbRefresh
@scene.pbRefresh
end

def pbRefreshSingle(i)
@scene.pbRefreshSingle(i)
end

def pbDisplay(text)
@scene.pbDisplay(text)
end

def pbConfirm(text)
return @scene.pbDisplayConfirm(text)
end

def pbSwitch(oldid,newid)
if oldid!=newid
@scene.pbSwitchBegin(oldid,newid)
[email protected][oldid]
@party[oldid][email protected][newid]
@party[newid]=tmp
@scene.pbSwitchEnd(oldid,newid)
end
end

def pbMailScreen(item,pkmn,pkmnid)
message=""
loop do
[email protected](
_INTL("Please enter a message (max. 256 characters)."),"",256)
if message!=""
# Store mail if a message was written
poke1=poke2=poke3=nil
if $Trainer.party[pkmnid+2]
p=$Trainer.party[pkmnid+2]
poke1=[p.species,p.gender,p.isShiny?,(p.form rescue 0),(p.isShadow? rescue false)]
poke1.push(true) if p.isEgg?
end
if $Trainer.party[pkmnid+1]
p=$Trainer.party[pkmnid+1]
poke2=[p.species,p.gender,p.isShiny?,(p.form rescue 0),(p.isShadow? rescue false)]
poke2.push(true) if p.isEgg?
end
poke3=[pkmn.species,pkmn.gender,pkmn.isShiny?,(pkmn.form rescue 0),(pkmn.isShadow? rescue false)]
poke3.push(true) if pkmn.isEgg?
pbStoreMail(pkmn,item,message,poke1,poke2,poke3)
return true
else
return false if pbConfirm(_INTL("Stop giving the Pokémon Mail?"))
end
end
end

def pbTakeMail(pkmn)
if !pkmn.hasItem?
pbDisplay(_INTL("{1} isn't holding anything.",pkmn.name))
elsif !$PokemonBag.pbCanStore?(pkmn.item)
pbDisplay(_INTL("The Bag is full. The Pokémon's item could not be removed."))
elsif pkmn.mail
if pbConfirm(_INTL("Send the removed mail to your PC?"))
if !pbMoveToMailbox(pkmn)
pbDisplay(_INTL("Your PC's Mailbox is full."))
else
pbDisplay(_INTL("The mail was sent to your PC."))
pkmn.setItem(0)
end
elsif pbConfirm(_INTL("If the mail is removed, the message will be lost. OK?"))
pbDisplay(_INTL("Mail was taken from the Pokémon."))
$PokemonBag.pbStoreItem(pkmn.item)
pkmn.setItem(0)
pkmn.mail=nil
end
else
$PokemonBag.pbStoreItem(pkmn.item)
itemname=PBItems.getName(pkmn.item)
pbDisplay(_INTL("Received the {1} from {2}.",itemname,pkmn.name))
pkmn.setItem(0)
end
end

def pbGiveMail(item,pkmn,pkmnid=0)
thisitemname=PBItems.getName(item)
if pkmn.isEgg?
pbDisplay(_INTL("Eggs can't hold items."))
return false
end
if pkmn.mail
pbDisplay(_INTL("Mail must be removed before holding an item."))
return false
end
if pkmn.item!=0
itemname=PBItems.getName(pkmn.item)
pbDisplay(_INTL("{1} is already holding one {2}.\1",pkmn.name,itemname))
if pbConfirm(_INTL("Would you like to switch the two items?"))
$PokemonBag.pbDeleteItem(item)
if !$PokemonBag.pbStoreItem(pkmn.item)
if !$PokemonBag.pbStoreItem(item) # Compensate
raise _INTL("Can't re-store deleted item in bag")
end
pbDisplay(_INTL("The Bag is full. The Pokémon's item could not be removed."))
else
if pbIsMail?(item)
if pbMailScreen(item,pkmn,pkmnid)
pkmn.setItem(item)
pbDisplay(_INTL("The {1} was taken and replaced with the {2}.",itemname,thisitemname))
return true
else
if !$PokemonBag.pbStoreItem(item) # Compensate
raise _INTL("Can't re-store deleted item in bag")
end
end
else
pkmn.setItem(item)
pbDisplay(_INTL("The {1} was taken and replaced with the {2}.",itemname,thisitemname))
return true
end
end
end
else
if !pbIsMail?(item) || pbMailScreen(item,pkmn,pkmnid) # Open the mail screen if necessary
$PokemonBag.pbDeleteItem(item)
pkmn.setItem(item)
pbDisplay(_INTL("{1} was given the {2} to hold.",pkmn.name,thisitemname))
return true
end
end
return false
end

def pbPokemonGiveScreen(item)
@scene.pbStartScene(@party,_INTL("Give to which Pokémon?"))
[email protected]
ret=false
if pkmnid>=0
ret=pbGiveMail(item,@party[pkmnid],pkmnid)
end
pbRefreshSingle(pkmnid)
@scene.pbEndScene
return ret
end

def pbPokemonGiveMailScreen(mailIndex)
@scene.pbStartScene(@party,_INTL("Give to which Pokémon?"))
[email protected]
if pkmnid>=0
[email protected][pkmnid]
if pkmn.item!=0 || pkmn.mail
pbDisplay(_INTL("This Pokémon is holding an item. It can't hold mail."))
elsif pkmn.isEgg?
pbDisplay(_INTL("Eggs can't hold mail."))
else
pbDisplay(_INTL("Mail was transferred from the Mailbox."))
pkmn.mail=$PokemonGlobal.mailbox[mailIndex]
pkmn.setItem(pkmn.mail.item)
$PokemonGlobal.mailbox.delete_at(mailIndex)
pbRefreshSingle(pkmnid)
end
end
@scene.pbEndScene
end

def pbStartScene(helptext,doublebattle,annotations=nil)
@scene.pbStartScene(@party,helptext,annotations)
end

def pbChoosePokemon(helptext=nil)
@scene.pbSetHelpText(helptext) if helptext
return @scene.pbChoosePokemon
end

def pbChooseMove(pokemon,helptext)
movenames=[]
for i in pokemon.moves
break if i.id==0
if i.totalpp==0
movenames.push(_INTL("{1} (PP: ---)",PBMoves.getName(i.id),i.pp,i.totalpp))
else
movenames.push(_INTL("{1} (PP: {2}/{3})",PBMoves.getName(i.id),i.pp,i.totalpp))
end
end
return @scene.pbShowCommands(helptext,movenames)
end

def pbEndScene
@scene.pbEndScene
end

# Checks for identical species
def pbCheckSpecies(array)
for i in 0...array.length
for j in i+1...array.length
return false if array[i].species==array[j].species
end
end
return true
end

# Checks for identical held items
def pbCheckItems(array)
for i in 0...array.length
next if !array[i].hasItem?
for j in i+1...array.length
return false if array[i].item==array[j].item
end
end
return true
end

def pbPokemonMultipleEntryScreenEx(ruleset)
annot=[]
statuses=[]
ordinals=[
_INTL("INELIGIBLE"),
_INTL("NOT ENTERED"),
_INTL("BANNED"),
_INTL("FIRST"),
_INTL("SECOND"),
_INTL("THIRD"),
_INTL("FOURTH"),
_INTL("FIFTH"),
_INTL("SIXTH")
]
if !ruleset.hasValidTeam?(@party)
return nil
end
ret=nil
addedEntry=false
for i in 0...@party.length
if ruleset.isPokemonValid?(@party[i])
statuses[i]=1
else
statuses[i]=2
end
end
for i in 0...@party.length
annot[i]=ordinals[statuses[i]]
end
@scene.pbStartScene(@party,_INTL("Choose Pokémon and confirm."),annot,true)
loop do
realorder=[]
for i in 0...@party.length
for j in 0...@party.length
if statuses[j]==i+3
realorder.push(j)
break
end
end
end
for i in 0...realorder.length
statuses[realorder[i]]=i+3
end
for i in 0...@party.length
annot[i]=ordinals[statuses[i]]
end
@scene.pbAnnotate(annot)
if realorder.length==ruleset.number && addedEntry
@scene.pbSelect(6)
end
@scene.pbSetHelpText(_INTL("Choose Pokémon and confirm."))
[email protected]
addedEntry=false
if pkmnid==6 # Confirm was chosen
ret=[]
for i in realorder
ret.push(@party[i])
end
error=[]
if !ruleset.isValid?(ret,error)
pbDisplay(error[0])
ret=nil
else
break
end
end
if pkmnid<0 # Canceled
break
end
cmdEntry=-1
cmdNoEntry=-1
cmdSummary=-1
commands=[]
if (statuses[pkmnid] || 0) == 1
commands[cmdEntry=commands.length]=_INTL("Entry")
elsif (statuses[pkmnid] || 0) > 2
commands[cmdNoEntry=commands.length]=_INTL("No Entry")
end
[email protected][pkmnid]
commands[cmdSummary=commands.length]=_INTL("DATOS")
commands[commands.length]=_INTL("Cancelar")
[email protected](_INTL("Que quieres hacer con {1}?",pkmn.name),commands) if pkmn
if cmdEntry>=0 && command==cmdEntry
if realorder.length>=ruleset.number && ruleset.number>0
pbDisplay(_INTL("No more than {1} Pokémon may enter.",ruleset.number))
else
statuses[pkmnid]=realorder.length+3
addedEntry=true
pbRefreshSingle(pkmnid)
end
elsif cmdNoEntry>=0 && command==cmdNoEntry
statuses[pkmnid]=1
pbRefreshSingle(pkmnid)
elsif cmdSummary>=0 && command==cmdSummary
@scene.pbSummary(pkmnid)
end
end
@scene.pbEndScene
return ret
end

def pbChooseAblePokemon(ableProc,allowIneligible=false)
annot=[]
eligibility=[]
for pkmn in @party
elig=ableProc.call(pkmn)
eligibility.push(elig)
annot.push(elig ? _INTL("ABLE") : _INTL("NOT ABLE"))
end
ret=-1
@scene.pbStartScene(@party,
@party.length>1 ? _INTL("Selecciona un Pokemon") : _INTL("Elejir un pokemon o cancelar."),annot)
loop do
@scene.pbSetHelpText(
@party.length>1 ? _INTL("Selecciona un Pokemon.") : _INTL("Elejir un pokemon o cancelar."))
[email protected]
if pkmnid<0
break
elsif !eligibility[pkmnid] && !allowIneligible
pbDisplay(_INTL("Este pokemon no puede ser seleccionado."))
else
ret=pkmnid
break
end
end
@scene.pbEndScene
return ret
end

def pbRefreshAnnotations(ableProc) # For after using an evolution stone
annot=[]
for pkmn in @party
elig=ableProc.call(pkmn)
annot.push(elig ? _INTL("ABLE") : _INTL("NOT ABLE"))
end
@scene.pbAnnotate(annot)
end

def pbPokemonDebug(pkmn,pkmnid)
command=0
loop do
[email protected](_INTL("Do what with {1}?",pkmn.name),[
_INTL("HP/Status"),
_INTL("Level"),
_INTL("Species"),
_INTL("Moves"),
_INTL("Gender"),
_INTL("Ability"),
_INTL("Nature"),
_INTL("Shininess"),
_INTL("Form"),
_INTL("Happiness"),
_INTL("EV/IV/pID"),
_INTL("Pokérus"),
_INTL("Ownership"),
_INTL("Nickname"),
_INTL("Poké Ball"),
_INTL("Ribbons"),
_INTL("Egg"),
_INTL("Shadow Pokémon"),
_INTL("Make Mystery Gift"),
_INTL("Duplicate"),
_INTL("Delete"),
_INTL("Force Evo"),
_INTL("Cancel")
],command)
case command
### Cancel ###
when -1, 22
break
### HP/Status ###
when 0
cmd=0
loop do
[email protected](_INTL("Do what with {1}?",pkmn.name),[
_INTL("Set HP"),
_INTL("Status: Sleep"),
_INTL("Status: Poison"),
_INTL("Status: Burn"),
_INTL("Status: Paralysis"),
_INTL("Status: Frozen"),
_INTL("Fainted"),
_INTL("Heal")
],cmd)
# Break
if cmd==-1
break
# Set HP
elsif cmd==0
params=ChooseNumberParams.new
params.setRange(0,pkmn.totalhp)
params.setDefaultValue(pkmn.hp)
newhp=Kernel.pbMessageChooseNumber(
_INTL("Set the Pokémon's HP (max. {1}).",pkmn.totalhp),params) { @scene.update }
if newhp!=pkmn.hp
pkmn.hp=newhp
pbDisplay(_INTL("{1}'s HP was set to {2}.",pkmn.name,pkmn.hp))
pbRefreshSingle(pkmnid)
end
# Set status
elsif cmd>=1 && cmd<=5
if pkmn.hp>0
pkmn.status=cmd
pkmn.statusCount=0
if pkmn.status==PBStatuses:LEEP
params=ChooseNumberParams.new
params.setRange(0,9)
params.setDefaultValue(0)
sleep=Kernel.pbMessageChooseNumber(
_INTL("Set the Pokémon's sleep count."),params) { @scene.update }
pkmn.statusCount=sleep
end
pbDisplay(_INTL("{1}'s status was changed.",pkmn.name))
pbRefreshSingle(pkmnid)
else
pbDisplay(_INTL("{1}'s status could not be changed.",pkmn.name))
end
# Faint
elsif cmd==6
pkmn.hp=0
pbDisplay(_INTL("{1}'s HP was set to 0.",pkmn.name))
pbRefreshSingle(pkmnid)
# Heal
elsif cmd==7
pkmn.heal
pbDisplay(_INTL("{1} was fully healed.",pkmn.name))
pbRefreshSingle(pkmnid)
end
end
### Level ###
when 1
params=ChooseNumberParams.new
params.setRange(1,PBExperience::MAXLEVEL)
params.setDefaultValue(pkmn.level)
level=Kernel.pbMessageChooseNumber(
_INTL("Set the Pokémon's level (max. {1}).",PBExperience::MAXLEVEL),params) { @scene.update }
if level!=pkmn.level
pkmn.level=level
pkmn.calcStats
pbDisplay(_INTL("{1}'s level was set to {2}.",pkmn.name,pkmn.level))
pbRefreshSingle(pkmnid)
end
### Species ###
when 2
species=pbChooseSpecies(pkmn.species)
if species!=0
oldspeciesname=PBSpecies.getName(pkmn.species)
pkmn.species=species
pkmn.calcStats
oldname=pkmn.name
pkmn.name=PBSpecies.getName(pkmn.species) if pkmn.name==oldspeciesname
pbDisplay(_INTL("{1}'s species was changed to {2}.",oldname,PBSpecies.getName(pkmn.species)))
pbSeenForm(pkmn)
pbRefreshSingle(pkmnid)
end
### Moves ###
when 3
cmd=0
loop do
[email protected](_INTL("Do what with {1}?",pkmn.name),[
_INTL("Teach move"),
_INTL("Forget move"),
_INTL("Reset movelist"),
_INTL("Reset initial moves")],cmd)
# Break
if cmd==-1
break
# Teach move
elsif cmd==0
move=pbChooseMoveList
if move!=0
pbLearnMove(pkmn,move)
pbRefreshSingle(pkmnid)
end
# Forget move
elsif cmd==1
move=pbChooseMove(pkmn,_INTL("Choose move to forget."))
if move>=0
movename=PBMoves.getName(pkmn.moves[move].id)
pbDeleteMove(pkmn,move)
pbDisplay(_INTL("{1} forgot {2}.",pkmn.name,movename))
pbRefreshSingle(pkmnid)
end
# Reset movelist
elsif cmd==2
pkmn.resetMoves
pbDisplay(_INTL("{1}'s moves were reset.",pkmn.name))
pbRefreshSingle(pkmnid)
# Reset initial moves
elsif cmd==3
pkmn.pbRecordFirstMoves
pbDisplay(_INTL("{1}'s moves were set as its first-known moves.",pkmn.name))
pbRefreshSingle(pkmnid)
end
end
### Gender ###
when 4
if pkmn.gender==2
pbDisplay(_INTL("{1} is genderless.",pkmn.name))
else
cmd=0
loop do
oldgender=(pkmn.isMale?) ? _INTL("male") : _INTL("female")
msg=[_INTL("Gender {1} is natural.",oldgender),
_INTL("Gender {1} is being forced.",oldgender)][pkmn.genderflag ? 1 : 0]
[email protected](msg,[
_INTL("Make male"),
_INTL("Make female"),
_INTL("Remove override")],cmd)
# Break
if cmd==-1
break
# Make male
elsif cmd==0
pkmn.setGender(0)
if pkmn.isMale?
pbDisplay(_INTL("{1} is now male.",pkmn.name))
else
pbDisplay(_INTL("{1}'s gender couldn't be changed.",pkmn.name))
end
# Make female
elsif cmd==1
pkmn.setGender(1)
if pkmn.isFemale?
pbDisplay(_INTL("{1} is now female.",pkmn.name))
else
pbDisplay(_INTL("{1}'s gender couldn't be changed.",pkmn.name))
end
# Remove override
elsif cmd==2
pkmn.genderflag=nil
pbDisplay(_INTL("Gender override removed."))
end
pbSeenForm(pkmn)
pbRefreshSingle(pkmnid)
end
end
### Ability ###
when 5
cmd=0
loop do
abils=pkmn.getAbilityList
oldabil=PBAbilities.getName(pkmn.ability)
commands=[]
for i in 0...abils[0].length
commands.push((abils[1][i]<2 ? "" : "(H) ")+PBAbilities.getName(abils[0][i]))
end
commands.push(_INTL("Remove override"))
msg=[_INTL("Ability {1} is natural.",oldabil),
_INTL("Ability {1} is being forced.",oldabil)][pkmn.abilityflag ? 1 : 0]
[email protected](msg,commands,cmd)
# Break
if cmd==-1
break
# Set ability override
elsif cmd>=0 && cmd<abils[0].length
pkmn.setAbility(abils[1][cmd])
# Remove override
elsif cmd==abils[0].length
pkmn.abilityflag=nil
end
pbRefreshSingle(pkmnid)
end
### Nature ###
when 6
cmd=0
loop do
oldnature=PBNatures.getName(pkmn.nature)
commands=[]
(PBNatures.getCount).times do |i|
commands.push(PBNatures.getName(i))
end
commands.push(_INTL("Remove override"))
msg=[_INTL("Nature {1} is natural.",oldnature),
_INTL("Nature {1} is being forced.",oldnature)][pkmn.natureflag ? 1 : 0]
[email protected](msg,commands,cmd)
# Break
if cmd==-1
break
# Set nature override
elsif cmd>=0 && cmd<PBNatures.getCount
pkmn.setNature(cmd)
pkmn.calcStats
# Remove override
elsif cmd==PBNatures.getCount
pkmn.natureflag=nil
end
pbRefreshSingle(pkmnid)
end
### Shininess ###
when 7
cmd=0
loop do
oldshiny=(pkmn.isShiny?) ? _INTL("shiny") : _INTL("normal")
msg=[_INTL("Shininess ({1}) is natural.",oldshiny),
_INTL("Shininess ({1}) is being forced.",oldshiny)][pkmn.shinyflag!=nil ? 1 : 0]
[email protected](msg,[
_INTL("Make shiny"),
_INTL("Make normal"),
_INTL("Remove override")],cmd)
# Break
if cmd==-1
break
# Make shiny
elsif cmd==0
pkmn.makeShiny
# Make normal
elsif cmd==1
pkmn.makeNotShiny
# Remove override
elsif cmd==2
pkmn.shinyflag=nil
end
pbRefreshSingle(pkmnid)
end
### Form ###
when 8
params=ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(pkmn.form)
f=Kernel.pbMessageChooseNumber(
_INTL("Set the Pokémon's form."),params) { @scene.update }
if f!=pkmn.form
pkmn.form=f
pbDisplay(_INTL("{1}'s form was set to {2}.",pkmn.name,pkmn.form))
pbSeenForm(pkmn)
pbRefreshSingle(pkmnid)
end
### Happiness ###
when 9
params=ChooseNumberParams.new
params.setRange(0,255)
params.setDefaultValue(pkmn.happiness)
h=Kernel.pbMessageChooseNumber(
_INTL("Set the Pokémon's happiness (max. 255)."),params) { @scene.update }
if h!=pkmn.happiness
pkmn.happiness=h
pbDisplay(_INTL("{1}'s happiness was set to {2}.",pkmn.name,pkmn.happiness))
pbRefreshSingle(pkmnid)
end
### EV/IV/pID ###
when 10
stats=[_INTL("HP"),_INTL("Attack"),_INTL("Defense"),
_INTL("Speed"),_INTL("Sp. Attack"),_INTL("Sp. Defense")]
cmd=0
loop do
persid=sprintf("0x%08X",pkmn.personalID)
[email protected](_INTL("Personal ID is {1}.",persid),[
_INTL("Set EVs"),
_INTL("Set IVs"),
_INTL("Randomise pID")],cmd)
case cmd
# Break
when -1
break
# Set EVs
when 0
cmd2=0
loop do
evcommands=[]
for i in 0...stats.length
evcommands.push(stats[i]+" (#{pkmn.ev[i]})")
end
[email protected](_INTL("Change which EV?"),evcommands,cmd2)
if cmd2==-1
break
elsif cmd2>=0 && cmd2<stats.length
params=ChooseNumberParams.new
params.setRange(0,255)
params.setDefaultValue(pkmn.ev[cmd2])
params.setCancelValue(pkmn.ev[cmd2])
f=Kernel.pbMessageChooseNumber(
_INTL("Set the EV for {1} (max. 255).",stats[cmd2]),params) { @scene.update }
pkmn.ev[cmd2]=f
pkmn.totalhp
pkmn.calcStats
pbRefreshSingle(pkmnid)
end
end
# Set IVs
when 1
cmd2=0
loop do
hiddenpower=pbHiddenPower(pkmn.iv)
msg=_INTL("Hidden Power:\n{1}, power {2}.",PBTypes.getName(hiddenpower[0]),hiddenpower[1])
ivcommands=[]
for i in 0...stats.length
ivcommands.push(stats[i]+" (#{pkmn.iv[i]})")
end
ivcommands.push(_INTL("Randomise all"))
[email protected](msg,ivcommands,cmd2)
if cmd2==-1
break
elsif cmd2>=0 && cmd2<stats.length
params=ChooseNumberParams.new
params.setRange(0,31)
params.setDefaultValue(pkmn.iv[cmd2])
params.setCancelValue(pkmn.iv[cmd2])
f=Kernel.pbMessageChooseNumber(
_INTL("Set the IV for {1} (max. 31).",stats[cmd2]),params) { @scene.update }
pkmn.iv[cmd2]=f
pkmn.calcStats
pbRefreshSingle(pkmnid)
elsif cmd2==ivcommands.length-1
pkmn.iv[0]=rand(32)
pkmn.iv[1]=rand(32)
pkmn.iv[2]=rand(32)
pkmn.iv[3]=rand(32)
pkmn.iv[4]=rand(32)
pkmn.iv[5]=rand(32)
pkmn.calcStats
pbRefreshSingle(pkmnid)
end
end
# Randomise pID
when 2
pkmn.personalID=rand(256)
pkmn.personalID|=rand(256)<<8
pkmn.personalID|=rand(256)<<16
pkmn.personalID|=rand(256)<<24
pkmn.calcStats
pbRefreshSingle(pkmnid)
end
end
### Pokérus ###
when 11
cmd=0
loop do
pokerus=(pkmn.pokerus) ? pkmn.pokerus : 0
msg=[_INTL("{1} doesn't have Pokérus.",pkmn.name),
_INTL("Has strain {1}, infectious for {2} more days.",pokerus/16,pokerus%16),
_INTL("Has strain {1}, not infectious.",pokerus/16)][pkmn.pokerusStage]
[email protected](msg,[
_INTL("Give random strain"),
_INTL("Make not infectious"),
_INTL("Clear Pokérus")],cmd)
# Break
if cmd==-1
break
# Give random strain
elsif cmd==0
pkmn.givePokerus
# Make not infectious
elsif cmd==1
strain=pokerus/16
p=strain<<4
pkmn.pokerus=p
# Clear Pokérus
elsif cmd==2
pkmn.pokerus=0
end
end
### Ownership ###
when 12
cmd=0
loop do
gender=[_INTL("Male"),_INTL("Female"),_INTL("Unknown")][pkmn.otgender]
msg=[_INTL("Player's Pokémon\n{1}\n{2}\n{3} ({4})",pkmn.ot,gender,pkmn.publicID,pkmn.trainerID),
_INTL("Foreign Pokémon\n{1}\n{2}\n{3} ({4})",pkmn.ot,gender,pkmn.publicID,pkmn.trainerID)
][pkmn.isForeign?($Trainer) ? 1 : 0]
[email protected](msg,[
_INTL("Make player's"),
_INTL("Set OT's name"),
_INTL("Set OT's gender"),
_INTL("Random foreign ID"),
_INTL("Set foreign ID")],cmd)
# Break
if cmd==-1
break
# Make player's
elsif cmd==0
pkmn.trainerID=$Trainer.id
pkmn.ot=$Trainer.name
pkmn.otgender=$Trainer.gender
# Set OT's name
elsif cmd==1
newot=pbEnterPlayerName(_INTL("{1}'s OT's name?",pkmn.name),1,7)
pkmn.ot=newot
# Set OT's gender
elsif cmd==2
[email protected](_INTL("Set OT's gender."),
[_INTL("Male"),_INTL("Female"),_INTL("Unknown")])
pkmn.otgender=cmd2 if cmd2>=0
# Random foreign ID
elsif cmd==3
pkmn.trainerID=$Trainer.getForeignID
# Set foreign ID
elsif cmd==4
params=ChooseNumberParams.new
params.setRange(0,65535)
params.setDefaultValue(pkmn.publicID)
val=Kernel.pbMessageChooseNumber(
_INTL("Set the new ID (max. 65535)."),params) { @scene.update }
pkmn.trainerID=val
pkmn.trainerID|=val<<16
end
end
### Nickname ###
when 13
cmd=0
loop do
speciesname=PBSpecies.getName(pkmn.species)
msg=[_INTL("{1} has the nickname {2}.",speciesname,pkmn.name),
_INTL("{1} has no nickname.",speciesname)][pkmn.name==speciesname ? 1 : 0]
[email protected](msg,[
_INTL("Rename"),
_INTL("Erase name")],cmd)
# Break
if cmd==-1
break
# Rename
elsif cmd==0
newname=pbEnterPokemonName(_INTL("{1}'s nickname?",speciesname),0,10,"",pkmn)
pkmn.name=(newname=="") ? speciesname : newname
pbRefreshSingle(pkmnid)
# Erase name
elsif cmd==1
pkmn.name=speciesname
end
end
### Poké Ball ###
when 14
cmd=0
loop do
oldball=PBItems.getName(pbBallTypeToBall(pkmn.ballused))
commands=[]; balls=[]
for key in $BallTypes.keys
item=getID(PBItems,$BallTypes[key])
balls.push([key,PBItems.getName(item)]) if item && item>0
end
balls.sort! {|a,b| a[1]<=>b[1]}
for i in 0...commands.length
cmd=i if pkmn.ballused==balls[i][0]
end
for i in balls
commands.push(i[1])
end
[email protected](_INTL("{1} uso.",oldball),commands,cmd)
if cmd==-1
break
else
pkmn.ballused=balls[cmd][0]
end
end
### Ribbons ###
when 15
cmd=0
loop do
commands=[]
for i in 1..PBRibbons.maxValue
commands.push(_INTL("{1} {2}",
pkmn.hasRibbon?(i) ? "[X]" : "[ ]",PBRibbons.getName(i)))
end
[email protected](_INTL("{1} Listones",pkmn.ribbonCount),commands,cmd)
if cmd==-1
break
elsif cmd>=0 && cmd<commands.length
if pkmn.hasRibbon?(cmd+1)
pkmn.takeRibbon(cmd+1)
else
pkmn.giveRibbon(cmd+1)
end
end
end
### Egg ###
when 16
cmd=0
loop do
msg=[_INTL("Not an egg"),
_INTL("Egg with eggsteps: {1}.",pkmn.eggsteps)][pkmn.isEgg? ? 1 : 0]
[email protected](msg,[
_INTL("Make egg"),
_INTL("Make Pokémon"),
_INTL("Set eggsteps to 1")],cmd)
# Break
if cmd==-1
break
# Make egg
elsif cmd==0
if pbHasEgg?(pkmn.species) ||
pbConfirm(_INTL("{1} cannot be an egg. Make egg anyway?",PBSpecies.getName(pkmn.species)))
pkmn.level=EGGINITIALLEVEL
pkmn.calcStats
pkmn.name=_INTL("Egg")
dexdata=pbOpenDexData
pbDexDataOffset(dexdata,pkmn.species,21)
pkmn.eggsteps=dexdata.fgetw
dexdata.close
pkmn.hatchedMap=0
pkmn.obtainMode=1
pbRefreshSingle(pkmnid)
end
# Make Pokémon
elsif cmd==1
pkmn.name=PBSpecies.getName(pkmn.species)
pkmn.eggsteps=0
pkmn.hatchedMap=0
pkmn.obtainMode=0
pbRefreshSingle(pkmnid)
# Set eggsteps to 1
elsif cmd==2
pkmn.eggsteps=1 if pkmn.eggsteps>0
end
end
### Shadow Pokémon ###
when 17
cmd=0
loop do
msg=[_INTL("Not a Shadow Pokémon."),
_INTL("Heart gauge is {1}.",pkmn.heartgauge)][(pkmn.isShadow? rescue false) ? 1 : 0]
[email protected](msg,[
_INTL("Make Shadow"),
_INTL("Lower heart gauge")],cmd)
# Break
if cmd==-1
break
# Make Shadow
elsif cmd==0
if !(pkmn.isShadow? rescue false) && pkmn.respond_to?("makeShadow")
pkmn.makeShadow
pbDisplay(_INTL("{1} is now a Shadow Pokémon.",pkmn.name))
pbRefreshSingle(pkmnid)
else
pbDisplay(_INTL("{1} is already a Shadow Pokémon.",pkmn.name))
end
# Lower heart gauge
elsif cmd==1
if (pkmn.isShadow? rescue false)
prev=pkmn.heartgauge
pkmn.adjustHeart(-700)
Kernel.pbMessage(_INTL("{1}'s heart gauge was lowered from {2} to {3} (now stage {4}).",
pkmn.name,prev,pkmn.heartgauge,pkmn.heartStage))
pbReadyToPurify(pkmn)
else
Kernel.pbMessage(_INTL("{1} is not a Shadow Pokémon.",pkmn.name))
end
end
end
### Make Mystery Gift ###
when 18
pbCreateMysteryGift(0,pkmn)
### Duplicate ###
when 19
if pbConfirm(_INTL("Are you sure you want to copy this Pokémon?"))
clonedpkmn=pkmn.clone
clonedpkmn.iv=pkmn.iv.clone
clonedpkmn.ev=pkmn.ev.clone
pbStorePokemon(clonedpkmn)
pbHardRefresh
pbDisplay(_INTL("The Pokémon was duplicated."))
break
end
### Delete ###
when 20
if pbConfirm(_INTL("Are you sure you want to delete this Pokémon?"))
@party[pkmnid]=nil
@party.compact!
pbHardRefresh
pbDisplay(_INTL("The Pokémon was deleted."))
break
end
## Force Evolution##
when 21
pbForceEvo(pkmn)
pbHardRefresh
end
end
end

def pbPokemonScreen
@scene.pbStartScene(@party,
@party.length>1 ? _INTL("Elige un Pokemon") : _INTL("Elige un pokemon o cancela"),nil)
loop do
@scene.pbSetHelpText(
@party.length>1 ? _INTL("Elige un Pokemon.") : _INTL("Elige un Pokemon o Cancela."))
[email protected]
if pkmnid<0
break
end
[email protected][pkmnid]
commands=[]
cmdSummary=-1
cmdSwitch=-1
# Birthsigns - Menu Options (Softboiled, Teleport, Flash)
#===============================================================================
cmdSoftboiled=-1
cmdTeleport=-1
cmdFlash=-1
#===============================================================================
cmdItem=-1
cmdDebug=-1
cmdMail=-1
# Build the commands
commands[cmdSummary=commands.length]=_INTL("DATOS")
if $DEBUG
# Commands for debug mode only
commands[cmdDebug=commands.length]=_INTL("Debug")
end
cmdMoves=[-1,-1,-1,-1]
for i in 0...pkmn.moves.length
move=pkmn.moves[i]
# Check for hidden moves and add any that were found
if !pkmn.isEgg? && (
isConst?(move.id,PBMoves,:MILKDRINK) ||
isConst?(move.id,PBMoves,OFTBOILED) ||
HiddenMoveHandlers.hasHandler(move.id)
)
commands[cmdMoves[i]=commands.length]=PBMoves.getName(move.id)
end
end
#===============================================================================
# Birthsigns - Menu Options (Softboiled, Teleport, Flash)
#
#If you changed the names for 'The Martyr', 'The Voyager', or 'The Beacon' in
#PField_Time, then you must change their names below to match your new names.
#===============================================================================
if pkmn.birthsign==_INTL("'El Mártir'")
commands[cmdSoftboiled=commands.length]=_INTL("Soft-Boiled")
end
if pkmn.birthsign==_INTL("'El Viajero'")
commands[cmdTeleport=commands.length]=_INTL("Teleport")
end
if pkmn.birthsign==_INTL("'El Iluminador'")
commands[cmdFlash=commands.length]=_INTL("Flash")
end
#===============================================================================
commands[cmdSwitch=commands.length]=_INTL("Switch") if @party.length>1
if !pkmn.isEgg?
if pkmn.mail
commands[cmdMail=commands.length]=_INTL("Mail")
else
commands[cmdItem=commands.length]=_INTL("Item")
end
end
commands[commands.length]=_INTL("Cancel")
command=@scene.pbShowCommands(_INTL("Do what with {1}?",pkmn.name),commands)
havecommand=false
for i in 0...4
if cmdMoves[i]>=0 && command==cmdMoves[i]
havecommand=true
if isConst?(pkmn.moves[i].id,PBMoves,OFTBOILED) ||
isConst?(pkmn.moves[i].id,PBMoves,:MILKDRINK)
if pkmn.hp<=pkmn.totalhp/5
pbDisplay(_INTL("no ahi suficiente HP..."))
break
end
@scene.pbSetHelpText(_INTL("En que pokemon quieres usarlo?"))
oldpkmnid=pkmnid
loop do
@scene.pbPreSelect(oldpkmnid)
pkmnid=@scene.pbChoosePokemon(true)
break if pkmnid<0
newpkmn=@party[pkmnid]
if newpkmn.isEgg? || newpkmn.hp==0 || newpkmn.hp==newpkmn.totalhp || pkmnid==oldpkmnid
pbDisplay(_INTL("este objeto no puede ser usado en ese Pokémon."))
else
pkmn.hp-=pkmn.totalhp/5
hpgain=pbItemRestoreHP(newpkmn,pkmn.totalhp/5)
@scene.pbDisplay(_INTL("El HP de{1} se restauro {2} puntos.",newpkmn.name,hpgain))
pbRefresh
end
end
break
elsif Kernel.pbCanUseHiddenMove?(pkmn,pkmn.moves[i].id)
@scene.pbEndScene
if isConst?(pkmn.moves[i].id,PBMoves,:FLY)
scene=PokemonRegionMapScene.new(-1,false)
screen=PokemonRegionMap.new(scene)
ret=screen.pbStartFlyScreen
if ret
$PokemonTemp.flydata=ret
return [pkmn,pkmn.moves[i].id]
end
@scene.pbStartScene(@party,
@party.length>1 ? _INTL("Elige un Pokemon") : _INTL("Elige un Pokemon o Cancela"))
break
end
return [pkmn,pkmn.moves[i].id]
else
break
end
end
end
next if havecommand
if cmdSummary>=0 && command==cmdSummary
@scene.pbSummary(pkmnid)
#===============================================================================
# Birthsigns - Softboiled Effect
#
#If you changed the name for 'The Martyr', in PField_Time, then you
#must change the name below to match your new name. Changes will
#also need to be made in PScreen_Summary.
#===============================================================================
elsif pkmn.birthsign==_INTL("'El Mártir'") && command==cmdSoftboiled
@scene.pbSetHelpText(_INTL("En que Pokémon quieres usarlo?"))
oldpkmnid=pkmnid
loop do
@scene.pbPreSelect(oldpkmnid)
pkmnid=@scene.pbChoosePokemon(true)
newpkmn=@party[pkmnid]
if newpkmn.isEgg? || newpkmn.hp==0 || newpkmn.hp==newpkmn.totalhp || newpkmn==pkmn
pbDisplay(_INTL("no puede ser usado en ese Pokémon."))
break
pbRefresh
elsif pkmn.hp<=pkmn.totalhp/5
pbDisplay(_INTL("no ahi suficiente HP..."))
break
pbRefresh
else
pkmn.hp-=pkmn.totalhp/5
hpgain=pbItemRestoreHP(newpkmn,pkmn.totalhp/5)
@scene.pbDisplay(_INTL("el HP de {1} se restauro {2} puntos.",newpkmn.name,hpgain))
break
pbRefresh
end
end
#===============================================================================
# Birthsigns - Teleport Effect
#
#If you changed the name for 'The Voyager', in PField_Time, then you
#must change the name below to match your new name. Changes will
#also need to be made in PScreen_Summary.
#===============================================================================
elsif pkmn.birthsign==_INTL("'El Viajero'") && command==cmdTeleport
if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
Kernel.pbMessage(_INTL("no puede ser usado aqui."))
break
pbRefresh
end
if $game_player.pbHasDependentEvents?
Kernel.pbMessage(_INTL("no puede usarse si tienes un compañero."))
break
pbRefresh
end
healing=$PokemonGlobal.healingSpot
if !healing
healing=pbGetMetadata(0,MetadataHome) # Home
end
if healing
mapname=pbGetMapNameFromId(healing[0])
if Kernel.pbConfirmMessage(_INTL("quieres regresar a {1}?",mapname))
if true
healing=$PokemonGlobal.healingSpot
if !healing
healing=pbGetMetadata(0,MetadataHome)
end
if healing
if !pbHiddenMoveAnimation(pkmn)
Kernel.pbMessage(_INTL("{1} uso Teletrasportacion!",pkmn.name))
end
pbFadeOutIn(99999){
Kernel.pbCancelVehicles
$game_temp.player_new_map_id=healing[0]
$game_temp.player_new_x=healing[1]
$game_temp.player_new_y=healing[2]
$game_temp.player_new_direction=2
$scene.transfer_player
$game_map.autoplay
$game_map.refresh
}
pbEraseEscapePoint
pbDisplay(_INTL("{1} se teletrasporto a {2}!",pkmn.name,mapname))
end
else
break
pbRefresh
end
end
end
#===============================================================================
# Birthsigns - Flash Effect
#
#If you changed the name for 'The Beacon', in PField_Time, then you
#must change the name below to match your new name. Changes will
#also need to be made in PScreen_Summary.
#===============================================================================
elsif pkmn.birthsign==_INTL("'El Iluminador'") && command==cmdFlash
if !pbGetMetadata($game_map.map_id,MetadataDarkMap)
Kernel.pbMessage(_INTL("No puedo usar eso aqui"))
break
pbRefresh
end
if $PokemonGlobal.flashUsed
Kernel.pbMessage(_INTL("ya lo estoy usando."))
break
pbRefresh
end
darkness=$PokemonTemp.darknessSprite
if !darkness || darkness.disposed?
darkness!=$PokemonTemp.darknessSprite
end
if !pbHiddenMoveAnimation(pkmn)
pbDisplay(_INTL("{1} uso Destello!",pkmn.name))
end
pbDisplay(_INTL("{1} ilumino el area!",pkmn.name))
$PokemonGlobal.flashUsed=true
while darkness.radius<176
Graphics.update
Input.update
pbUpdateSceneMap
darkness.radius+=4
end
#===============================================
elsif cmdSwitch>=0 && command==cmdSwitch
@scene.pbSetHelpText(_INTL("Mover a donde?"))
oldpkmnid=pkmnid
pkmnid=@scene.pbChoosePokemon(true)
if pkmnid>=0 && pkmnid!=oldpkmnid
pbSwitch(oldpkmnid,pkmnid)
end
elsif cmdDebug>=0 && command==cmdDebug
pbPokemonDebug(pkmn,pkmnid)
elsif cmdMail>=0 && command==cmdMail
command=@scene.pbShowCommands(_INTL("Quieres ver el correo?"),[_INTL("Leer"),_INTL("Tomar"),_INTL("Cancelar")])
case command
when 0 # Read
pbFadeOutIn(99999){
pbDisplayMail(pkmn.mail,pkmn)
}
when 1 # Take
pbTakeMail(pkmn)
pbRefreshSingle(pkmnid)
end
elsif cmdItem>=0 && command==cmdItem
command=@scene.pbShowCommands(_INTL("Do what with an item?"),[_INTL("Give"),_INTL("Take"),_INTL("Use"),_INTL("Move"),_INTL("Cancel")])
case command
when 0 # Give
item=@scene.pbChooseItem($PokemonBag)
if item>0
pbGiveMail(item,pkmn,pkmnid)
pbRefreshSingle(pkmnid)
end
when 1 # Take
pbTakeMail(pkmn)
pbRefreshSingle(pkmnid)
when 2 # Use
@scene.pbUseItem($PokemonBag,pkmn)
when 3
if pkmn.item>0
moveitem=pkmn.item
pkmn.item=0
pbRefreshSingle(pkmnid)
pokeid=pbChoosePokemon(_INTL("Give {1} to which Pokemon?",PBItems.getName(moveitem)))
poke=$Trainer.party[pokeid]
if pokeid>=0 && !poke.isEgg?
if poke.item>0
if pbConfirm(_INTL("{1} is already holding an item, would you like to put the {3} in your bag?",
poke.name,PBItems.getName(poke.item),PBItems.getName(poke.item)))
pbTakeMail(poke)
poke.item=moveitem
pbDisplay(_INTL("{1} was given {2} to hold",poke.name,PBItems.getName(poke.item)))
pbRefreshSingle(pokeid)
end
else
poke.item=moveitem
pbDisplay(_INTL("{1} was given {2} to hold",poke.name,PBItems.getName(poke.item)))
end
else
if poke.isEgg?
pbDisplay(_INTL("An egg can't hold an item!"))
end
pkmn.item=moveitem
end
else
pbDisplay(_INTL("{1} isn't holding an item",pkmn.name))
end
end
end
end
@scene.pbEndScene
return nil
end
end
Reply With Quote
  #7    
Old October 9th, 2015 (10:50 AM).
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 127
Quote:
Originally Posted by akane159 View Post
i have this, but dont show all tipe pokeball, only show pokeball look
Spoiler:


Espurr have a Masterball but the show a pokeball

here the script
Remove the second instance of
Code:
 @pokeballsprite.changeBitmap(self.selected ? "pokeballsel" : "pokeballdesel")
end
At the bottom of all the new code you added. It's overwriting all of the changes. My fault, i think i overlooked that part in the instructions.
Reply With Quote
  #8    
Old October 9th, 2015 (11:13 AM).
akane159 akane159 is offline
 
Join Date: Oct 2012
Gender: Female
Posts: 57
Quote:
Originally Posted by Lucidious89 View Post
Remove the second instance of
Code:
 @pokeballsprite.changeBitmap(self.selected ? "pokeballsel" : "pokeballdesel")
end
At the bottom of all the new code you added. It's overwriting all of the changes. My fault, i think i overlooked that part in the instructions.
thnx it work :D !
Reply With Quote
  #9    
Old October 9th, 2015 (11:36 AM).
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 127
Quote:
Originally Posted by venom12 View Post
Why just don't use the numbers of balls? And it will take less lines

Code:
@pokeballsprite.addBitmap("pokeballdesel","Graphics/Pictures/partyBall#{@pokemon.ballused}")
 @pokeballsprite.addBitmap("pokeballsel","Graphics/Pictures/partyBallSel#{@pokemon.ballused}")
If that works, then awesome. Ill try that whenever i get home.
Reply With Quote
  #10    
Old October 9th, 2015 (4:34 PM).
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 127
Edited Step 2 that was giving some people issues (due to an oversight on my end). No reason why it shouldn't work now.
Reply With Quote
  #11    
Old October 9th, 2015 (5:37 PM). Edited October 10th, 2015 by Maruno.
laxus3d laxus3d is offline
 
Join Date: Jul 2015
Gender: Male
Posts: 11
Now even with these changes is giving Syntax Error

The script works without Syntax Error but did not realize changes
Reply With Quote
  #12    
Old October 9th, 2015 (7:01 PM). Edited October 9th, 2015 by Lucidious89.
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 127
Quote:
Originally Posted by laxus3d View Post
The script works without Syntax Error but did not realize changes
Hmm...so it's working now? I admit, i changed it from memory, because i wont be home until tuesday to look at the script first hand. If the changes didnt work, its probably because it's missing an "end" after the line that comes after "else".

EDIT: Changed it once more, see if that works for you now.
Reply With Quote
  #13    
Old October 10th, 2015 (3:49 AM).
laxus3d laxus3d is offline
 
Join Date: Jul 2015
Gender: Male
Posts: 11
The scripts do not give Syntax Error only do not work and this latest edition is as before
Reply With Quote
  #14    
Old October 10th, 2015 (4:55 AM). Edited October 10th, 2015 by Lucidious89.
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 127
Quote:
Originally Posted by laxus3d View Post
The scripts do not give Syntax Error only do not work and this latest edition is as before
Look at my response to akane159's post, and see if that resolves the issue. Im 99% sure the only problem is that one line of code is overwritting everything.
Reply With Quote
  #15    
Old October 11th, 2015 (8:48 AM).
Richard PT's Avatar
Richard PT Richard PT is offline
 
Join Date: Aug 2014
Gender: Male
Posts: 87
This script is great and it works fine, Thx for sharing this. By the way where i can find graphics for anime balls like:

Pikachu ball, crystall ball, team rocket ball, g. s. ball, dream ball, dark ball (4movie), pokemon bug contest anime, kanto safari ball anime, old pokeball and so one?
Im not good at making graphics.
__________________

If someone wants to help me to speed up my project, so we can fully complete it as soon as possible, i'll be apreciate it.
To speed up this project i need:
Good Graphics designers (Recruits: RPD490),
Good Programers (Recruits: none),
And Good Graphics Animator (only for atack animations) (Recruits: none).
For those that don't know, I'm the creator and the project leader of Pokémon Chronicles.
Reply With Quote
  #16    
Old October 11th, 2015 (9:02 AM).
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 127
Quote:
Originally Posted by Richard PT View Post
This script is great and it works fine, Thx for sharing this. By the way where i can find graphics for anime balls like:

Pikachu ball, crystall ball, team rocket ball, g. s. ball, dream ball, dark ball (4movie), pokemon bug contest anime, kanto safari ball anime, old pokeball and so one?
Im not good at making graphics.
I cant help you there. I just used google images to find a free set of graphics of all the balls, and then cut, resized, shaded, and retouched them by hand. Its a really tedious process. Unless youre really lucky and can find something usable online, youll probably have to make them yourself.
Reply With Quote
  #17    
Old October 11th, 2015 (9:40 AM).
Richard PT's Avatar
Richard PT Richard PT is offline
 
Join Date: Aug 2014
Gender: Male
Posts: 87
ok, thx for the info.
__________________

If someone wants to help me to speed up my project, so we can fully complete it as soon as possible, i'll be apreciate it.
To speed up this project i need:
Good Graphics designers (Recruits: RPD490),
Good Programers (Recruits: none),
And Good Graphics Animator (only for atack animations) (Recruits: none).
For those that don't know, I'm the creator and the project leader of Pokémon Chronicles.
Reply With Quote
  #18    
Old October 11th, 2015 (5:12 PM).
Aljen's Avatar
Aljen Aljen is offline
The Lost Boy...
 
Join Date: Jun 2013
Location: Vietnam
Gender: Male
Nature: Lonely
Posts: 125
Nice, I will give it a try.
Thank you for posting this ~~
__________________
"The war never ends, the battlefield just changes."
Pokémon Lost Story - Arrived...
Reply With Quote
  #19    
Old October 12th, 2015 (9:34 AM).
RPD490's Avatar
RPD490 RPD490 is offline
 
Join Date: Jan 2009
Location: Blackthorn City, Johto
Gender: Male
Nature: Relaxed
Posts: 168
Quote:
Originally Posted by Richard PT View Post
ok, thx for the info.
Well since I often do this sort of thing, and I plan on making the Gold Ball and Shine Ball that my OC would use, I suppose if you want, I could do the custom ball graphics you need done as well.

Basically just using one of the Poke Ball graphics and tweaking it to another color and design, not that hard to do to be honest.
__________________
This signature has been disabled.
Signature is over 600px wide :(
Please review and fix the issues by reading the signature rules.

You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
Reply With Quote
  #20    
Old October 12th, 2015 (11:42 AM).
Richard PT's Avatar
Richard PT Richard PT is offline
 
Join Date: Aug 2014
Gender: Male
Posts: 87
I'm not good at making graphics or some scripts. But i'm good in making events a little bit of programing, organization, mapping etc.
__________________

If someone wants to help me to speed up my project, so we can fully complete it as soon as possible, i'll be apreciate it.
To speed up this project i need:
Good Graphics designers (Recruits: RPD490),
Good Programers (Recruits: none),
And Good Graphics Animator (only for atack animations) (Recruits: none).
For those that don't know, I'm the creator and the project leader of Pokémon Chronicles.
Reply With Quote
  #21    
Old October 12th, 2015 (1:04 PM).
RPD490's Avatar
RPD490 RPD490 is offline
 
Join Date: Jan 2009
Location: Blackthorn City, Johto
Gender: Male
Nature: Relaxed
Posts: 168
Well again, I'll do the graphics for those balls if you want. Just list me the names of the Poke Balls and I can start them.
__________________
This signature has been disabled.
Signature is over 600px wide :(
Please review and fix the issues by reading the signature rules.

You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
Reply With Quote
  #22    
Old October 13th, 2015 (5:57 AM).
laxus3d laxus3d is offline
 
Join Date: Jul 2015
Gender: Male
Posts: 11
This is for more updated version of the essentials?
Reply With Quote
  #23    
Old October 13th, 2015 (6:57 AM).
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 127
Quote:
Originally Posted by laxus3d View Post
This is for more updated version of the essentials?
Im using version 15.1, yes. Itll probably work on older versions, though.
Reply With Quote
  #24    
Old October 17th, 2015 (11:13 PM).
TheKenny's Avatar
TheKenny TheKenny is offline
The only real Kenny!
 
Join Date: Feb 2012
Location: Germany
Age: 20
Gender: Male
Nature: Careful
Posts: 41
Hello, first I want to say thank you for your awesome work! :3

I don't know what I did wrong, because your script is not working for me at all. I inserted the code as you said aswell as the graphics but I see nothing. The party screen is like the default one... :/ I've tried it two times because I thought I did something wrong the first try, but nope. Still not working.

I'm using version 15.1 with a few other code snippets, but nothing changes the PScreen_Party. I'm using Windows 10 Pro x64 as VM and OS X 10.11 as OS. I copied the code with the printable version of this topic.

Maybe you know what I did wrong or what I could try. Thanks in advance for any help!
Reply With Quote
  #25    
Old October 18th, 2015 (2:19 AM).
Richard PT's Avatar
Richard PT Richard PT is offline
 
Join Date: Aug 2014
Gender: Male
Posts: 87
Did you check the location for the graphics?
__________________

If someone wants to help me to speed up my project, so we can fully complete it as soon as possible, i'll be apreciate it.
To speed up this project i need:
Good Graphics designers (Recruits: RPD490),
Good Programers (Recruits: none),
And Good Graphics Animator (only for atack animations) (Recruits: none).
For those that don't know, I'm the creator and the project leader of Pokémon Chronicles.
Reply With Quote
Reply
Quick Reply

Sponsored Links
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 GMT -8. The time now is 7:40 PM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2016 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.

Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2016.