• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Scripting Question] Help me convert pro v18? BW GetKeyItem

I want to make this work in v18, but I don't know how, can someone help me?
SCRIPT:
Code:
#===============================================================================
# € BW Get Key Item by KleinStudio
#===============================================================================

class GetKeyItemScene

def initialize(item,quantity,plural)
 @item=item
 @quantity=quantity
 @plural=plural
end

def pbStartScene
 @sprites={}
 @viewport=Viewport.new(0,0,Graphics.width,DEFAULTSCREENHEIGHT)
 @viewport.z=99999
 @finished=false
 
 @sprites["whitescreen"] = Sprite.new(@viewport)
 @sprites["whitescreen"].bitmap = RPG::Cache.picture("blackscreen")
 @sprites["whitescreen"].color=Color.new(255,255,255)
 @sprites["whitescreen"].opacity=0
 
 @sprites["bg"] = Sprite.new(@viewport)
 @sprites["bg"].bitmap = RPG::Cache.picture("keyitembg")
 @sprites["bg"].ox=@sprites["bg"].bitmap.width/2
 @sprites["bg"].oy=@sprites["bg"].bitmap.height/2
 @sprites["bg"].y=DEFAULTSCREENHEIGHT/2
 @sprites["bg"].x=DEFAULTSCREENWIDTH/2
 @sprites["bg"].zoom_y=0
 @sprites["bg"].zoom_x=0
 @sprites["bg"].opacity=0
 
  if [email protected]_a?(String)
     iconname=sprintf("Graphics/Icons/item%03dkey",@item)
    if !pbResolveBitmap(iconname)
     iconname=sprintf("Graphics/Icons/item%03d",@item)
    end
  else
   iconname=_INTL("Graphics/Icons/{1}",@item)
   @fakeitem=true
  end
 @sprites["item"] = IconSprite.new(DEFAULTSCREENWIDTH/2,DEFAULTSCREENHEIGHT/2,@viewport)
 @sprites["item"].setBitmap(iconname)
 @sprites["item"].ox=@sprites["item"].bitmap.width/2
 @sprites["item"].oy=@sprites["item"].bitmap.height/2
 @sprites["item"].angle=180
 @sprites["item"].zoom_y=0
 @sprites["item"].zoom_x=0
 @sprites["item"].opacity=0

end

  
def pbEndScene
  pbDisposeSpriteHash(@sprites)
  @viewport.dispose
end

def shakeItem
   3.times do
   Graphics.update
   @sprites["item"].angle+=2
   end
   3.times do
   Graphics.update
   @sprites["item"].angle-=2
   end
   3.times do
   Graphics.update
   @sprites["item"].angle-=2
   end
   3.times do
   Graphics.update
   @sprites["item"].angle+=2
   end
end

def pbUpdate
  pbWait(1)
  10.times do
  Graphics.update
  @sprites["whitescreen"].opacity+=255/10
  end
  10.times do
  Graphics.update
  @sprites["whitescreen"].opacity-=255/10
end
  frametome=0
  18.times do
  frametome+=1
  Graphics.update
  @sprites["item"].angle-=15/2 if @sprites["item"].angle!=0
  @sprites["item"].angle=0 if @sprites["item"].angle<0
  pbMEPlay("BW2GetKeyItem") if frametome==7
  @sprites["bg"].zoom_y+=0.1/2 if @sprites["bg"].zoom_y<1.75
  @sprites["bg"].zoom_x+=0.1/2 if @sprites["bg"].zoom_x<1.75
  @sprites["bg"].opacity+=14.16
  @sprites["item"].zoom_y+=0.17/2 
  @sprites["item"].zoom_x+=0.17/2 
  @sprites["item"].opacity+=14.16
  end
  12.times do
  Graphics.update
  @sprites["item"].angle-=15/2 if @sprites["item"].angle!=0
  @sprites["item"].angle=0 if @sprites["item"].angle<0
  
  @sprites["bg"].zoom_y+=0.1/2 if @sprites["bg"].zoom_y>1
  @sprites["bg"].zoom_x+=0.1/2 if @sprites["bg"].zoom_x>1
  @sprites["bg"].zoom_x=1 if @sprites["bg"].zoom_x<1
  @sprites["bg"].zoom_y=1 if @sprites["bg"].zoom_y<1
  
  @sprites["item"].zoom_y-=0.17/2 if @sprites["item"].zoom_y>1
  @sprites["item"].zoom_x-=0.17/2 if @sprites["item"].zoom_x>1
  @sprites["item"].zoom_x=1 if @sprites["item"].zoom_x<1
  @sprites["item"].zoom_y=1 if @sprites["item"].zoom_y<1
  end
  @sprites["item"].angle=0
  @sprites["item"].zoom_y=1
  @sprites["item"].zoom_x=1
  @sprites["bg"].zoom_y=1
  @sprites["bg"].zoom_x=1
  shakeItem
  shakeItem
  pbWait(6)
  18.times do
  Graphics.update  
  @sprites["bg"].zoom_y-=0.15/2 
  @sprites["bg"].zoom_x+=0.1/2 
  @sprites["bg"].opacity-=14.16
  @sprites["item"].zoom_y-=0.17/2 
  @sprites["item"].zoom_x-=0.17/2 
  @sprites["item"].opacity-=14.16
  end
  Kernel.pbReceiveItem(@item,@quantity) if !@fakeitem
  loop do
    break
  end
end

end
###################################################

class GetKeyItem

def initialize(scene)
 @scene=scene
end

def pbStartScreen
 @scene.pbStartScene
 @scene.pbUpdate
 @scene.pbEndScene
end

end

def pbGetKeyItem(item,quantity=1,plural=nil)
  scene=GetKeyItemScene.new(item,quantity,plural)
  screen=GetKeyItem.new(scene)
  screen.pbStartScreen
end
 
Why doesn't this work in v18 as is? Have you tried it? If yes, then do you get any errors?
 
Back
Top