- 295
- Posts
- 6
- Years
- Seen Aug 15, 2022
This script hepls you to create a Option menu like HGSS.
How to use
Post this code above main
If you want to change "number", increase or decrease, like Music volume, find
then find
and change this line
into
Here, when you press right it will increase 5 and decrease 5 when you press left.
You can change SE volume value just like, below Music volume there is
and you need to change
into
If you want to delete some features, find
and delete. Example: If you don't want screen border, delete this line
You need to delete a comma in this line
But if you need to delete
You don't need to delete a comma of above line.
Download
Link
Code
Credit
bo4p5687
Graphics by Richard PT
How to use
Post this code above main
If you want to change "number", increase or decrease, like Music volume, find
Code:
def choose_screen
Code:
if @option[pos][2] == 0
Code:
bgm_play if Input.trigger?(Input::RIGHT)
bgm_play(true) if Input.trigger?(Input::LEFT)
Code:
bgm_play(false,5) if Input.trigger?(Input::RIGHT)
bgm_play(true,5) if Input.trigger?(Input::LEFT)
You can change SE volume value just like, below Music volume there is
Code:
elsif @option[pos][2] == 1
Code:
se_play if Input.trigger?(Input::RIGHT)
se_play(true) if Input.trigger?(Input::LEFT)
Code:
se_play(false,5) if Input.trigger?(Input::RIGHT)
se_play(true,5) if Input.trigger?(Input::LEFT)
Code:
def set_option
Code:
["Screen Border",1,11,["Off","On"]]
Code:
["Screen Size",1,10,["S","M","L","Full"]],
Code:
["Screen Size",1,10,["S","M","L","Full"]],
Download
Link
Code
Spoiler:
Code:
#-------------------------------------------------------------------------------
# HGSS Option menu
# Credit: bo4p5687, graphics by Richard PT
#-------------------------------------------------------------------------------
PluginManager.register({
:name => "HGSS Option Menu",
:credits => ["bo4p5687", "graphics by Richard PT"]
})
#-------------------------------------------------------------------------------
class PokemonOption_Scene
COLOR_SLIDER_BAR = Color.new(0,0,0) # Black
COLOR_SLIDER_SELECT = Color.new(255,0,48) # Red
def initialize
# Set sprites
@sprites = {}
# Set viewport
@viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z = 99999
# Text
@viewport2 = Viewport.new(8,46,198,284) # x,y,graphic width, graphic height
@viewport2.z = 99999
# Choose (description)
@viewport3 = Viewport.new(210,46,294,284) # x,y,graphic width, graphic height
@viewport3.z = 99999
# Window
@viewport4 = Viewport.new(304,0,208,38) # x,y,graphic width, graphic height
@viewport4.z = 99999
# Scene
create_sprite("scene","hgssoptionsbg",@viewport)
# Select
create_sprite("select","select",@viewport)
@sprites["select"].x = 6
# Quit button
create_sprite("quit","quit",@viewport)
set_xy_sprite("quit",378,338)
set_visible_sprite("quit")
# Position
@position = 0
# Quit (position)
@quit = false
# Roll
@roll = 0
# Set frames
@realframes = 0; @frame = 0
# Set exit
@exit = false
end
def pbStartScene(inloadscreen=false)
@inloadscreen = inloadscreen
# Set
set_option # Option
set_arrow # Arrow
draw_option_name # Name
draw_option_type # Type
loop do
break if @exit
# Update
update_ingame
# Arrow
arrow_roll
# Move
move_screen
# Choose option
choose_screen
if Input.trigger?(Input::C)
if @quit
pbPlayCloseMenuSE
# Exit
@exit = true
end
end
if Input.trigger?(Input::B)
pbPlayCloseMenuSE
# Exit
@exit = true
end
end
# End
pbEndScene
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Image
def create_sprite(spritename,filename,vp)
@sprites["#{spritename}"] = Sprite.new(vp)
@sprites["#{spritename}"].bitmap = Bitmap.new("Graphics/Pictures/OptionsMenu/#{filename}")
end
# Set x,y image
def set_xy_sprite(spritename,x,y)
@sprites["#{spritename}"].x = x
@sprites["#{spritename}"].y = y
end
# Set visible image
def set_visible_sprite(spritename,vsb=false)
@sprites["#{spritename}"].visible = vsb
end
# Text, fill rect (draw)
def create_sprite_2(spritename,vp)
@sprites["#{spritename}"] = Sprite.new(vp)
@sprites["#{spritename}"].bitmap = Bitmap.new(Graphics.width, Graphics.height)
end
# Window
def create_sprite_3(spritename,vp)
@sprites["#{spritename}"] = Window_AdvancedTextPokemon.new
@sprites["#{spritename}"].viewport = vp
end
def set_xywh_window(spritename,x,y,width,height)
@sprites["#{spritename}"].x = x
@sprites["#{spritename}"].y = y
@sprites["#{spritename}"].width = width
@sprites["#{spritename}"].height = height
end
# Fill rect
def fill_img(spritename,x,y,width,height,color)
@sprites["#{spritename}"].bitmap.clear
@sprites["#{spritename}"].bitmap.fill_rect(x,y,width,height,color)
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Draw shadow text
def draw_shadow_text(bitmap,x,y,width,height,string)
# Color
basecolor = Color.new(255,255,255)
shadowcolor = Color.new(209,144,37)
# Sprite
bitmap = @sprites["#{bitmap}"].bitmap
bitmap.clear
# Set font, size
pbSetSystemFont(bitmap)
bitmap.font.size = 26
pbDrawShadowText(bitmap, # Bitmap
x,y,width,height,_INTL("#{string}"), # Position, title
basecolor,shadowcolor, # Color
1) # Shadow
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Set option
def set_option
# Set
@option = []
# Set option
@option.push(
# Number, Type, Order, Array (choose of the type "1")
# Music volume
["Music Volume",0,0],
# SE volume
["SE Volume",0,1],
# Text speed
["Text Speed",1,2,["Slow","Normal","Fast"]],
# Battle effects
["Battle Effects",1,3,["On","Off"]],
# Battle style
["Battle Style",1,4,["Switch","Set"]],
# Running key
["Running Key",1,5,["Hold","Toggle"]],
# Speech frame
["Speech Frame",2,6],
# Menu frame
["Menu Frame",2,7],
# Font style
["Font Style",1,8,["Em","R/S","FRLG","DP"]],
# Text entry
["Text Entry",1,9,["Cursor","Keyboard"]],
# Screen size
["Screen Size",1,10,["S","M","L","Full"]],
# Screen border
["Screen Border",1,11,["Off","On"]]
)
end
#-------------------------------------------------------------------------------
# Draw option
def draw_option_name
([email protected]).each{|i|
# Create sprites (name)
create_sprite_2("#{@option[i][0]}",@viewport2)
x = 0; y = 48*i
width = 196; height = 40
draw_shadow_text(@option[i][0],x,y,width,height,@option[i][0])
# Create content
# Slider option
if @option[i][1] == 0
# Bar
spritename = "#{@option[i][0]} #{@option[i][2]} B"
create_sprite_2(spritename,@viewport3)
# Select (red)
spritename2 = "#{@option[i][0]} #{@option[i][2]} S"
create_sprite_2(spritename2,@viewport3)
# Number
spritename3 = "#{@option[i][0]} #{@option[i][2]} N"
create_sprite_2(spritename3,@viewport3)
# Choose option
elsif @option[i][1] == 1
if @option[i][3].nil?
raise ArgumentError("Add array")
break
end
number = @option[i][3].size
(0...number).each{|j|
spritename = "#{@option[i][0]} #{@option[i][2]} GB#{j}"
spritename2 = "#{@option[i][0]} #{@option[i][2]} WB#{j}"
spritename3 = "#{@option[i][0]} #{@option[i][2]} #{@option[i][3][j]}"
# Grey button
create_sprite(spritename,"greybutton",@viewport3)
# White button
create_sprite(spritename2,"whitebutton",@viewport3)
# Name
create_sprite_2(spritename3,@viewport3)
# Set visible White (false)
set_visible_sprite(spritename2) }
# Number option
elsif @option[i][1] == 2
spritename = "#{@option[i][0]} #{@option[i][2]} LB"
spritename2 = "#{@option[i][0]} #{@option[i][2]} AR"
spritename3 = "#{@option[i][0]} #{@option[i][2]} AL"
spritename4 = "#{@option[i][0]} #{@option[i][2]} NOLB"
spritename5 = "#{@option[i][0]} #{@option[i][2]} Set"
# Large button
create_sprite(spritename,"largebutton",@viewport3)
# Right button
create_sprite(spritename2,"arrowright",@viewport3)
# Left button
create_sprite(spritename3,"arrowleft",@viewport3)
# Name
create_sprite_2(spritename4,@viewport3)
# Window
create_sprite_3(spritename5,@viewport4)
# Set visible right and left (false)
set_visible_sprite(spritename2)
set_visible_sprite(spritename3)
end }
end
#-------------------------------------------------------------------------------
# Draw
def draw_option_type(num=0)
([email protected]).each{|i|
# Slider option
if @option[i][1] == 0
color = COLOR_SLIDER_BAR
color2 = COLOR_SLIDER_SELECT
# Bar
spritename = "#{@option[i][0]} #{@option[i][2]} B"
x = 28
y = 18 + 48*i - 48*num
width = 208; height = 4
# Create bar
fill_img(spritename,x,y,width,height,color)
# Select (red)
spritename2 = "#{@option[i][0]} #{@option[i][2]} S"
x2 = (@option[i][2] == 0)? 28 + 2*$PokemonSystem.bgmvolume : 28 + 2*$PokemonSystem.sevolume
y2 = 10 + 48*i - 48*num
width2 = 8; height2 = 20
# Create select
fill_img(spritename2,x2,y2,width2,height2,color2)
# Number
spritename3 = "#{@option[i][0]} #{@option[i][2]} N"
x3 = 236
y3 = 48*i - 48*num
width3 = 50; height3 = 40
string = (@option[i][2] == 0)? $PokemonSystem.bgmvolume : $PokemonSystem.sevolume
# Create number
draw_shadow_text(spritename3,x3,y3,width3,height3,string)
# Choose option
elsif @option[i][1] == 1
number = @option[i][3].size
(0...number).each{|j|
spritename = "#{@option[i][0]} #{@option[i][2]} GB#{j}"
spritename2 = "#{@option[i][0]} #{@option[i][2]} WB#{j}"
spritename3 = "#{@option[i][0]} #{@option[i][2]} #{@option[i][3][j]}"
string = @option[i][3][j]
# Set position
if number == 1
x = 187 # 294/2 + bitmap.width/2 + 2
y = 48*i + 2 - 48*num
set_xy_sprite(spritename,x,y)
set_xy_sprite(spritename2,x,y)
elsif number >= 2 && number <= 4
x = (j!=0)? 76*j + ((290-76*number)/(number-1))*j + 2 : 2
y = 48*i + 2 - 48*num
set_xy_sprite(spritename,x,y)
set_xy_sprite(spritename2,x,y)
end
width = 76; height = 40
# Create choose (name)
draw_shadow_text(spritename3,x,y,width,height,string)
# Text speed
if @option[i][2] == 2
if $PokemonSystem.textspeed == j
set_visible_sprite(spritename2,true)
else
set_visible_sprite(spritename2)
end
# Battle effects
elsif @option[i][2] == 3
if $PokemonSystem.battlescene == j
set_visible_sprite(spritename2,true)
else
set_visible_sprite(spritename2)
end
# Battle style
elsif @option[i][2] == 4
if $PokemonSystem.battlestyle == j
set_visible_sprite(spritename2,true)
else
set_visible_sprite(spritename2)
end
# Running key
elsif @option[i][2] == 5
if $PokemonSystem.runstyle == j
set_visible_sprite(spritename2,true)
else
set_visible_sprite(spritename2)
end
# Font style
elsif @option[i][2] == 8
if $PokemonSystem.font == j
set_visible_sprite(spritename2,true)
else
set_visible_sprite(spritename2)
end
# Text entry
elsif @option[i][2] == 9
if $PokemonSystem.textinput == j
set_visible_sprite(spritename2,true)
else
set_visible_sprite(spritename2)
end
# Screen size
elsif @option[i][2] == 10
if $PokemonSystem.screensize == j
set_visible_sprite(spritename2,true)
else
set_visible_sprite(spritename2)
end
# Screen border
elsif @option[i][2] == 11
if $PokemonSystem.border == j
set_visible_sprite(spritename2,true)
else
set_visible_sprite(spritename2)
end
end }
# Number option
elsif @option[i][1] == 2
spritename = "#{@option[i][0]} #{@option[i][2]} LB"
spritename2 = "#{@option[i][0]} #{@option[i][2]} AR"
spritename3 = "#{@option[i][0]} #{@option[i][2]} AL"
spritename4 = "#{@option[i][0]} #{@option[i][2]} NOLB"
spritename5 = "#{@option[i][0]} #{@option[i][2]} Set"
x = 18
y = 2 + 48*i - 48*num
set_xy_sprite(spritename,x,y)
set_xy_sprite(spritename2,x+196,y)
set_xy_sprite(spritename3,x,y)
width = 136; height = 32
# Speech frame
if @option[i][2] == 6
string = "Type #{$PokemonSystem.textskin+1}/#{$SpeechFrames.length}"
# Menu frame
elsif @option[i][2] == 7
string = "Type #{$PokemonSystem.frame+1}/#{$TextFrames.length}"
end
# Create (name)
draw_shadow_text(spritename4,x+60,y+4,width,height,string)
if @option[i][2] == 6
@sprites[spritename5].setSkin(MessageConfig.pbGetSpeechFrame())
# Window
set_xywh_window(spritename5,0,0,96,38)
elsif @option[i][2] == 7
@sprites[spritename5].setSkin(MessageConfig.pbGetSystemFrame())
# Window
set_xywh_window(spritename5,96,0,48,38)
end
end }
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Roll scene
def move_screen
max = @option.size
if max <= 6
if Input.trigger?(Input::UP)
pbPlayCursorSE
if !@quit
@position -= 1
@position = 0 if @position < 0
else
@quit = false
set_visible_sprite("quit")
set_visible_sprite("select",true)
end
end
if Input.trigger?(Input::DOWN)
pbPlayCursorSE
if !@quit
@position += 1
if @position >= max
@position = max-1
@quit = true
end
end
if @quit
set_visible_sprite("select")
set_visible_sprite("quit",true)
end
end
(0...max).each{|i| @sprites["select"].y = 44 + 48*i if @position == i}
elsif max == 7
if Input.trigger?(Input::UP)
pbPlayCursorSE
if !@quit
@roll -= 1
@roll = 0 if @roll < 0
@position -= 1
@position = 0 if @position < 0
# Redraw text
redraw_choose
else
@quit = false
set_visible_sprite("quit")
set_visible_sprite("select",true)
end
end
if Input.trigger?(Input::DOWN)
pbPlayCursorSE
if !@quit
@roll += 1
if @roll >= max
@roll = max-1
@quit = true
end
@position += 1 if @roll > 1
@position = max-2 if @position >= max-1
# Redraw text
redraw_choose
end
if @quit
set_visible_sprite("select")
set_visible_sprite("quit",true)
end
end
(0...(max-1)).each{|i| @sprites["select"].y = 44 + 48*i if @position == i}
else
if Input.trigger?(Input::UP)
pbPlayCursorSE
if !@quit
@roll -= 1
@roll = 0 if @roll < 0
@position -= 1
@position = 0 if @position < 0
# Redraw text
redraw_choose
else
@quit = false
set_visible_sprite("quit")
set_visible_sprite("select",true)
end
end
if Input.trigger?(Input::DOWN)
pbPlayCursorSE
if !@quit
@roll += 1
if @roll >= max
@roll = max-1
@quit = true
end
@position += 1 if @roll > max-6
@position = 5 if @position >= 6
# Redraw text
redraw_choose
end
if @quit
set_visible_sprite("select")
set_visible_sprite("quit",true)
end
end
(0...6).each{|i| @sprites["select"].y = 44 + 48*i if @position == i}
end
end
#-------------------------------------------------------------------------------
# Set Arrow
def set_arrow
# Up
@sprites["uparrow"] = Sprite.new(@viewport)
@sprites["uparrow"].bitmap = Bitmap.new("Graphics/Pictures/uparrow")
@sprites["uparrow"].x = 261
@sprites["uparrow"].y = 20
@sprites["uparrow"].src_rect.width = @sprites["uparrow"].bitmap.width/8
@sprites["uparrow"].src_rect.x = 0
@sprites["uparrow"].visible = false
# Down
@sprites["downarrow"] = Sprite.new(@viewport)
@sprites["downarrow"].bitmap = Bitmap.new("Graphics/Pictures/downarrow")
@sprites["downarrow"].x = 261
@sprites["downarrow"].y = 316
@sprites["downarrow"].src_rect.width = @sprites["downarrow"].bitmap.width/8
@sprites["downarrow"].src_rect.x = 0
@sprites["downarrow"].visible = false
end
def move_arrow
@sprites["uparrow"].src_rect.x = @frame%8*@sprites["uparrow"].bitmap.width/8
@sprites["downarrow"].src_rect.x = @frame%8*@sprites["downarrow"].bitmap.width/8
end
# Arrow (roll)
def arrow_roll
# Set arrow
max = @option.size
if max <= 6
@sprites["uparrow"].visible = false
@sprites["downarrow"].visible = false
elsif max == 7
if @roll == 0
@sprites["uparrow"].visible = false
@sprites["downarrow"].visible = true
elsif @roll == 1
@sprites["uparrow"].visible = true
@sprites["downarrow"].visible = false
end
else
if @roll == 0
@sprites["uparrow"].visible = false
@sprites["downarrow"].visible = true
elsif @roll >= 1 && @roll <= max-7
@sprites["uparrow"].visible = true
@sprites["downarrow"].visible = true
else
@sprites["uparrow"].visible = true
@sprites["downarrow"].visible = false
end
end
# Set frames
@realframes += 1
if @realframes >= 2
@realframes = 0
@frame += 1
@frame = 0 if @frame > 8
# Move
move_arrow
end
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Text after roll (position)
def text_after_roll(num=0)
([email protected]).each{|i|
x = 0; y = 48*i - 48*num
width = 196; height = 40
draw_shadow_text(@option[i][0],x,y,width,height,@option[i][0]) }
end
# Redraw after roll, choose
def redraw_choose
max = @option.size
if max == 7
if @roll == 0
text_after_roll
draw_option_type
elsif @roll >= 1
text_after_roll(1)
draw_option_type(1)
end
elsif max >= 8
if @roll <= max-6
text_after_roll(@roll)
draw_option_type(@roll)
else
text_after_roll(max-6)
draw_option_type(max-6)
end
else
draw_option_type
end
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Choose option
def choose_screen
max = @option.size
if max <= 6
# Position
pos = @position
else
# Position
pos = @roll
end
if !@quit
# Music volume
if @option[pos][2] == 0
bgm_play if Input.trigger?(Input::RIGHT)
bgm_play(true) if Input.trigger?(Input::LEFT)
# SE volume
elsif @option[pos][2] == 1
se_play if Input.trigger?(Input::RIGHT)
se_play(true) if Input.trigger?(Input::LEFT)
# Text speed
elsif @option[pos][2] == 2
text_speed_play(pos) if Input.trigger?(Input::RIGHT)
text_speed_play(pos,true) if Input.trigger?(Input::LEFT)
# Battle effects
elsif @option[pos][2] == 3
battle_effects_play(pos) if Input.trigger?(Input::RIGHT)
battle_effects_play(pos,true) if Input.trigger?(Input::LEFT)
# Battle style
elsif @option[pos][2] == 4
battle_style_play(pos) if Input.trigger?(Input::RIGHT)
battle_style_play(pos,true) if Input.trigger?(Input::LEFT)
# Running key
elsif @option[pos][2] == 5
running_key_play(pos) if Input.trigger?(Input::RIGHT)
running_key_play(pos,true) if Input.trigger?(Input::LEFT)
# Speech frame
elsif @option[pos][2] == 6
speech_frame_play(pos) if Input.trigger?(Input::RIGHT)
speech_frame_play(pos,true) if Input.trigger?(Input::LEFT)
# Menu frame
elsif @option[pos][2] == 7
menu_frame_play(pos) if Input.trigger?(Input::RIGHT)
menu_frame_play(pos,true) if Input.trigger?(Input::LEFT)
# Font style
elsif @option[pos][2] == 8
font_style_play(pos) if Input.trigger?(Input::RIGHT)
font_style_play(pos,true) if Input.trigger?(Input::LEFT)
# Text entry
elsif @option[pos][2] == 9
text_entry_play(pos) if Input.trigger?(Input::RIGHT)
text_entry_play(pos,true) if Input.trigger?(Input::LEFT)
# Screen size
elsif @option[pos][2] == 10
screen_size_play(pos) if Input.trigger?(Input::RIGHT)
screen_size_play(pos,true) if Input.trigger?(Input::LEFT)
# Screen border
elsif @option[pos][2] == 11
screen_border_play(pos) if Input.trigger?(Input::RIGHT)
screen_border_play(pos,true) if Input.trigger?(Input::LEFT)
end
end
end
#-------------------------------------------------------------------------------
def bgm_play(minus=false,number=1)
pbPlayCursorSE
if !minus
$PokemonSystem.bgmvolume += number
else
$PokemonSystem.bgmvolume -= number
end
$PokemonSystem.bgmvolume = 100 if $PokemonSystem.bgmvolume >= 100
$PokemonSystem.bgmvolume = 0 if $PokemonSystem.bgmvolume < 0
if $game_system.playing_bgm!=nil && !@inloadscreen
$game_system.playing_bgm.volume = $PokemonSystem.bgmvolume
playingBGM = $game_system.getPlayingBGM
$game_system.bgm_pause
$game_system.bgm_resume(playingBGM)
end
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def se_play(minus=false,number=1)
if !minus
$PokemonSystem.sevolume += number
else
$PokemonSystem.sevolume -= number
end
$PokemonSystem.sevolume = 100 if $PokemonSystem.sevolume >= 100
$PokemonSystem.sevolume = 0 if $PokemonSystem.sevolume < 0
if $game_system.playing_bgs!=nil
$game_system.playing_bgs.volume = $PokemonSystem.sevolume
playingBGS = $game_system.getPlayingBGS
$game_system.bgs_pause
$game_system.bgs_resume(playingBGS)
end
pbPlayCursorSE
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def text_speed_play(pos,minus=false)
pbPlayCursorSE
if !minus
$PokemonSystem.textspeed += 1
else
$PokemonSystem.textspeed -= 1
end
$PokemonSystem.textspeed = (@option[pos][3].size-1) if $PokemonSystem.textspeed >= (@option[pos][3].size)
$PokemonSystem.textspeed = 0 if $PokemonSystem.textspeed < 0
MessageConfig.pbSetTextSpeed(pbSettingToTextSpeed($PokemonSystem.textspeed))
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def battle_effects_play(pos,minus=false)
pbPlayCursorSE
if !minus
$PokemonSystem.battlescene += 1
else
$PokemonSystem.battlescene -= 1
end
$PokemonSystem.battlescene = 0 if $PokemonSystem.battlescene < 0
$PokemonSystem.battlescene = (@option[pos][3].size-1) if $PokemonSystem.battlescene >= (@option[pos][3].size)
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def battle_style_play(pos,minus=false)
pbPlayCursorSE
if !minus
$PokemonSystem.battlestyle += 1
else
$PokemonSystem.battlestyle -= 1
end
$PokemonSystem.battlestyle = 0 if $PokemonSystem.battlestyle < 0
$PokemonSystem.battlestyle = (@option[pos][3].size-1) if $PokemonSystem.battlestyle >= (@option[pos][3].size)
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def running_key_play(pos,minus=false)
pbPlayCursorSE
if !minus
$PokemonSystem.runstyle += 1
else
$PokemonSystem.runstyle -= 1
end
$PokemonSystem.runstyle = 0 if $PokemonSystem.runstyle < 0
$PokemonSystem.runstyle = 1 if $PokemonSystem.runstyle >= 2
$PokemonGlobal.runtoggle = false if $PokemonGlobal
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def speech_frame_play(pos,minus=false)
pbPlayCursorSE
if !minus
$PokemonSystem.textskin += 1
# Set visible
numb_opt_wb(pos,true)
else
$PokemonSystem.textskin -= 1
# Set visible
numb_opt_wb(pos,false,true)
end
$PokemonSystem.textskin = 0 if $PokemonSystem.textskin < 0
$PokemonSystem.textskin = ($SpeechFrames.length-1) if $PokemonSystem.textskin >= $SpeechFrames.length
MessageConfig.pbSetSpeechFrame("Graphics/Windowskins/"+$SpeechFrames[$PokemonSystem.textskin])
# Set visible
pbWait(1)
numb_opt_wb(pos)
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def menu_frame_play(pos,minus=false)
pbPlayCursorSE
if !minus
$PokemonSystem.frame += 1
# Set visible
numb_opt_wb(pos,true)
else
$PokemonSystem.frame -= 1
# Set visible
numb_opt_wb(pos,false,true)
end
$PokemonSystem.frame = 0 if $PokemonSystem.frame < 0
$PokemonSystem.frame = ($TextFrames.length-1) if $PokemonSystem.frame >= $TextFrames.length
MessageConfig.pbSetSystemFrame($TextFrames[$PokemonSystem.frame])
# Set visible
pbWait(1)
numb_opt_wb(pos)
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def font_style_play(pos,minus=false)
pbPlayCursorSE
if !minus
$PokemonSystem.font += 1
else
$PokemonSystem.font -= 1
end
$PokemonSystem.font = (@option[pos][3].size-1) if $PokemonSystem.font >= (@option[pos][3].size)
$PokemonSystem.font = 0 if $PokemonSystem.font < 0
MessageConfig.pbSetSystemFontName($VersionStyles[$PokemonSystem.font])
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def text_entry_play(pos,minus=false)
pbPlayCursorSE
if !minus
$PokemonSystem.textinput += 1
else
$PokemonSystem.textinput -= 1
end
$PokemonSystem.textinput = 0 if $PokemonSystem.textinput < 0
$PokemonSystem.textinput = (@option[pos][3].size-1) if $PokemonSystem.textinput >= (@option[pos][3].size)
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def screen_size_play(pos,minus=false)
pbPlayCursorSE
if !minus
$PokemonSystem.screensize += 1
else
$PokemonSystem.screensize -= 1
end
$PokemonSystem.screensize = 0 if $PokemonSystem.screensize < 0
$PokemonSystem.screensize = (@option[pos][3].size-1) if $PokemonSystem.screensize >= (@option[pos][3].size)
pbSetResizeFactor($PokemonSystem.screensize)
ObjectSpace.each_object(TilemapLoader) { |o| o.updateClass if !o.disposed? }
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
def screen_border_play(pos,minus=false)
pbPlayCursorSE
if !minus
$PokemonSystem.border += 1
else
$PokemonSystem.border -= 1
end
$PokemonSystem.border = 0 if $PokemonSystem.border < 0
$PokemonSystem.border = (@option[pos][3].size-1) if $PokemonSystem.border >= (@option[pos][3].size)
pbSetResizeFactor($PokemonSystem.screensize)
ObjectSpace.each_object(TilemapLoader) { |o| o.updateClass if !o.disposed? }
# Redraw
redraw_choose
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Set visible = true when choose
def numb_opt_wb(pos,vsb1=false,vsb2=false)
spritename2 = "#{@option[pos][0]} #{@option[pos][2]} AR"
spritename3 = "#{@option[pos][0]} #{@option[pos][2]} AL"
# Right
set_visible_sprite(spritename2,vsb1)
# Left
set_visible_sprite(spritename3,vsb2)
end
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
def update_ingame
Graphics.update
Input.update
pbUpdateSpriteHash(@sprites)
end
def pbEndScene
pbDisposeSpriteHash(@sprites)
pbRefreshSceneMap
@viewport.dispose
@viewport2.dispose
@viewport3.dispose
@viewport4.dispose
end
end
#-------------------------------------------------------------------------------
class PokemonOptionScreen
def initialize(scene)
@scene = scene
end
def pbStartScreen(inloadscreen=false)
@scene.pbStartScene(inloadscreen)
end
end
Credit
bo4p5687
Graphics by Richard PT
Last edited: