- 232
- Posts
- 8
- Years
- Seen May 15, 2025
I want to make this work in v18, but I don't know how, can someone help me?
SCRIPT:
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