class Scene_Equip
def initialize(id=0)
@id = id
@actor = $game_party.actors[@id]
end
def main
@bitmap = Spriteset_Map.new
@back = Sprite.new
@back.bitmap = Bitmap.new(640,480)
@back.bitmap.fill_rect(0,0,640,480,Color.new(0,0,0,100))
@person = Sprite.new
@person.bitmap = Bitmap.new("Graphics/Menu/#{@actor.name}")
@z = Sprite.new
@z.bitmap = Bitmap.new(640,480)
for i in 0...52
@z.bitmap.fill_rect(0,i*4,640,4,Color.new(0,0,0,255-5*i))
@z.bitmap.fill_rect(0,480-i*4,640,4,Color.new(0,0,0,255-5*i))
end
rect = Bitmap.new(40,204)
for i in 0..51
rect.fill_rect(0,i*2,40,2,Color.new(0,0,0,i*5))
rect.fill_rect(0,204-i*2,40,2,Color.new(0,0,0,i*5))
rect.fill_rect(0,i*2,1,2,Color.new(255,255,255,i*5))
rect.fill_rect(0,204-i*2,1,2,Color.new(255,255,255,i*5))
rect.fill_rect(39,i*2,1,2,Color.new(255,255,255,i*5))
rect.fill_rect(39,204-i*2,1,2,Color.new(255,255,255,i*5))
end
@equip_rect = []
@equip = []
for i in 0...5
@equip_rect[i] = RPG::Sprite.new
@equip_rect[i].bitmap = rect
@equip_rect[i].x = 150 + 44 * i
@equip_rect[i].y = 200
@equip[i] = Sprite.new
@equip[i].bitmap = Bitmap.new(40,204)
@equip[i].x = 150 + 44 * i
@equip[i].y = 200
@equip[i].bitmap.font.size = 12
if i == 0
@equip[i].bitmap.blur_draw_text(0,40,40,24,$data_system.words.weapon,1,
Color.new(0,0,0,10),2)
next if $data_weapons[@actor.weapon_id].nil?
@equip[i].bitmap.blt(8,12,
RPG::Cache.icon($data_weapons[@actor.weapon_id].icon_name),Rect.new(0,0,24,24))
a = $data_weapons[@actor.weapon_id].name.scan(/./)
a.each_index {|b| @equip[i].bitmap.blur_draw_text(0,70+16*b,40,16,
a[b],1,Color.new(0,0,0,10),2)}
else
eval "@equip[i].bitmap.blur_draw_text(0,
40,40,24,$data_system.words.armor#{i},1,Color.new(0,0,0,10),2)"
eval "next if $data_armors[@actor.armor#{i}_id].nil?"
eval "b = RPG::Cache.icon($data_armors[@actor.armor#{i}_id].icon_name)"
eval "@equip[i].bitmap.blt(8,12,b,Rect.new(0,0,24,24))"
eval "a = $data_armors[@actor.armor#{i}_id].name.scan(/./)"
a.each_index {|b| @equip[i].bitmap.blur_draw_text(0,70+16*b,40,16,
a[b],1,Color.new(0,0,0,10),2)}
end
end
@status_back = Sprite.new
@status_back.bitmap = Bitmap.new(306,120)
@status_back.y = 25
@status_back.x = 300
for i in 0...52
@status_back.bitmap.fill_rect(i*3,0,3,200,Color.new(0,0,0,i*5))
@status_back.bitmap.fill_rect(306-i*3,0,3,200,Color.new(0,0,0,i*5))
@status_back.bitmap.fill_rect(i*3,0,3,1,Color.new(255,255,255,i*5))
@status_back.bitmap.fill_rect(306-i*3,0,3,1,Color.new(255,255,255,i*5))
@status_back.bitmap.fill_rect(i*3,119,3,1,Color.new(255,255,255,i*5))
@status_back.bitmap.fill_rect(306-i*3,119,3,1,Color.new(255,255,255,i*5))
@status_back.bitmap.fill_rect(153,40,1,70,Color.new(255,255,255))
end
@status = Sprite.new
@status.bitmap = Bitmap.new(306,120)
@status.y = 25
@status.x = 300
@status.bitmap.font.size = 15
@status.bitmap.draw_text(50,10,600,15,"#{@actor.name} Lv#{@actor.level}")
@status.bitmap.font.size = 12
for i in 0..6
draw_par(i)
end
@help = Sprite.new
@help.bitmap = Bitmap.new(510, 20)
@help.x = 65
@help.y = 450
@help_text = Sprite.new
@help_text.bitmap = Bitmap.new(510, 20)
@help_text.bitmap.font.name = "宋体"
@help_text.bitmap.font.size = 13
@help_text.x = 65
@help_text.y = 450
@change_equip = Sprite.new
@change_equip.bitmap = Bitmap.new(204,200)
@change_equip.x = 400
@change_equip.y = 200
@new_equip = []
@data = [[],[],[],[],[]]
for i in 0..255/5
@help.bitmap.fill_rect(i*5,0,5,20,Color.new(0,0,0,i*5))
@help.bitmap.fill_rect(510-i*5,0,5,20,Color.new(0,0,0,i*5))
@help.bitmap.fill_rect(i*5, 0, 5, 1, Color.new(255,255,255,i*5))
@help.bitmap.fill_rect(510-i*5, 0, 5, 1, Color.new(255,255,255,i*5))
@help.bitmap.fill_rect(i*5, 19, 5, 1, Color.new(255,255,255,i*5))
@help.bitmap.fill_rect(510-i*5, 19, 5, 1, Color.new(255,255,255,i*5))
@change_equip.bitmap.fill_rect(2*i,0,2,200,Color.new(0,0,0,50+5*i))
@change_equip.bitmap.fill_rect(204-2*i,0,2,200,Color.new(0,0,0,50+5*i))
@change_equip.bitmap.fill_rect(2*i,0,2,1,Color.new(255,255,255,5*i))
@change_equip.bitmap.fill_rect(2*i,199,2,1,Color.new(255,255,255,5*i))
@change_equip.bitmap.fill_rect(204-2*i,199,2,1,Color.new(255,255,255,5*i))
@change_equip.bitmap.fill_rect(204-2*i,0,2,1,Color.new(255,255,255,5*i))
end
viewport = Viewport.new(400,200,204,200)
@equip_choose = RPG::Sprite.new(viewport)
@equip_choose.bitmap = @help.bitmap.clone
@equip_choose.zoom_x = 164 / 510.0
@equip_choose.x = 20
@equip_choose.zoom_y = 14 / 20.0
@equip_choose.y = 28
for i in 0...5
@new_equip[i] = Sprite.new(viewport)
@new_equip[i].bitmap = Bitmap.new(204,200)
@new_equip[i].x = 204 * i
@new_equip[i].bitmap.font.size = 12
@new_equip[i].bitmap.draw_text(40,30,184,12,"[脱下装备]")
@data[i].push(-1)
y = 44
if i == 0
weapon_set = $data_classes[@actor.class_id].weapon_set
for n in 1...$data_weapons.size
if $game_party.weapon_number(n) > 0 and weapon_set.include?(n)
@new_equip[i].bitmap.blt(10,y-6,
RPG::Cache.icon($data_weapons[n].icon_name),Rect.new(0,0,24,20))
@new_equip[i].bitmap.draw_text(40,y,184,12,$data_weapons[n].name)
@new_equip[i].bitmap.draw_text(40,y,140,12,$game_party.weapon_number(n).to_s,2)
@data[i].push($data_weapons[n])
y += 14
end
end
end
if i != 0
armor_set = $data_classes[@actor.class_id].armor_set
for n in 1...$data_armors.size
if $game_party.armor_number(n) > 0 and armor_set.include?(n)
if $data_armors[n].kind == i-1
@new_equip[i].bitmap.blt(10,y-6,
RPG::Cache.icon($data_armors[n].icon_name),Rect.new(0,0,24,20))
@new_equip[i].bitmap.draw_text(40,y,184,12,$data_armors[n].name)
@new_equip[i].bitmap.draw_text(40,y,140,12,$game_party.armor_number(n).to_s,2)
@data[i].push($data_armors[n])
y += 14
end
end
end
end
end
if !$data_weapons[@actor.weapon_id].nil?
@help_text.bitmap.draw_text(0,0,510,20,
$data_weapons[@actor.weapon_id].description,1)
end
@equip_choose.visible = false
@equip_rect[0].blink_on
@left_index = 0 # 装备位的选择
@right = false # 右边是否选择
@right_index = -1 # 新装备的选择
@page = 0 # 同ITEM
loop {update; break if $scene != self}
@equip_rect.each {|a| a.bitmap.dispose ; a.dispose}
@equip.each {|a| a.bitmap.dispose ; a.dispose}
@bitmap.dispose
@back.dispose
@back.dispose
@z.bitmap.dispose
@z.dispose
@person.dispose
@change_equip.bitmap.dispose; @change_equip.dispose
@new_equip.each {|a| a.bitmap.dispose;a.dispose}
@equip_choose.dispose
end
def update
Graphics.update
@equip_rect.each {|a| a.update} if !@right
@equip_choose.visible = true if !@equip_choose.visible && @right
@equip_choose.visible = false if !@right && @equip_choose.visible
@equip_choose.blink_on if !@equip_choose.blink? && @equip_choose.visible
@equip_choose.update if @equip_choose.visible
update_change if @right
return if @right
update_input
end
def update_input
Input.update
left_index(true) if Input.trigger?(Input::RIGHT)
left_index if Input.trigger?(Input::LEFT)
@right_index = 0 and @right = true and $game_system.se_play($data_system.decision_se) if Input.trigger?(Input::C)
$scene = Scene_Menu.new and $game_system.se_play($data_system.cancel_se) if Input.trigger?(Input::B)
end
def left_index(plus=false)
if plus
return if @left_index >= 4
@left_index += 1
@equip_rect.each {|a| a.blink_off}
@equip_rect[@left_index].blink_on
for i in 0...4
@new_equip.each {|a| a.x -= 51}
Graphics.update
end
else
return if @left_index <= 0
@left_index -= 1
@equip_rect.each {|a| a.blink_off}
@equip_rect[@left_index].blink_on
for i in 0...4
@new_equip.each {|a| a.x += 51}
Graphics.update
end
end
$game_system.se_play($data_system.cursor_se)
@help_text.bitmap.clear
if @left_index == 0
if !$data_weapons[@actor.weapon_id].nil?
@help_text.bitmap.draw_text(0,0,510,20,
$data_weapons[@actor.weapon_id].description,1)
end
else
eval "return if $data_armors[@actor.armor#{@left_index}_id].nil?"
eval "@help_text.bitmap.draw_text(0,0,510,20,
$data_armors[@actor.armor#{@left_index}_id].description,1)"
end
end
def draw_par(type)
case type
when 0
parameter_name = $data_system.words.atk
parameter_value = @actor.atk
when 1
parameter_name = $data_system.words.pdef
parameter_value = @actor.pdef
when 2
parameter_name = $data_system.words.mdef
parameter_value = @actor.mdef
when 3
parameter_name = $data_system.words.str
parameter_value = @actor.str
when 4
parameter_name = $data_system.words.dex
parameter_value = @actor.dex
when 5
parameter_name = $data_system.words.agi
parameter_value = @actor.agi
when 6
parameter_name = $data_system.words.int
parameter_value = @actor.int
end
@status.bitmap.draw_text(type / 4 == 0 ? 27 : 170, 40 + (15 * (type % 4)),
126,15,"#{parameter_name}:#{parameter_value}")
end
end
class Scene_Equip
def initialize(id=0)
@id = id
@actor = $game_party.actors[@id]
end
def main
@bitmap = Spriteset_Map.new
@back = Sprite.new
@back.bitmap = Bitmap.new(640,480)
@back.bitmap.fill_rect(0,0,640,480,Color.new(0,0,0,100))
@person = Sprite.new
@person.bitmap = Bitmap.new("Graphics/Menu/#{@actor.name}")
@z = Sprite.new
@z.bitmap = Bitmap.new(640,480)
for i in 0...52
@z.bitmap.fill_rect(0,i*4,640,4,Color.new(0,0,0,255-5*i))
@z.bitmap.fill_rect(0,480-i*4,640,4,Color.new(0,0,0,255-5*i))
end
rect = Bitmap.new(40,204)
for i in 0..51
rect.fill_rect(0,i*2,40,2,Color.new(0,0,0,i*5))
rect.fill_rect(0,204-i*2,40,2,Color.new(0,0,0,i*5))
rect.fill_rect(0,i*2,1,2,Color.new(255,255,255,i*5))
rect.fill_rect(0,204-i*2,1,2,Color.new(255,255,255,i*5))
rect.fill_rect(39,i*2,1,2,Color.new(255,255,255,i*5))
rect.fill_rect(39,204-i*2,1,2,Color.new(255,255,255,i*5))
end
@equip_rect = []
@equip = []
for i in 0...5
@equip_rect[i] = RPG::Sprite.new
@equip_rect[i].bitmap = rect
@equip_rect[i].x = 150 + 44 * i
@equip_rect[i].y = 200
@equip[i] = Sprite.new
@equip[i].bitmap = Bitmap.new(40,204)
@equip[i].x = 150 + 44 * i
@equip[i].y = 200
@equip[i].bitmap.font.size = 12
if i == 0
@equip[i].bitmap.blur_draw_text(0,40,40,24,$data_system.words.weapon,1,
Color.new(0,0,0,10),2)
next if $data_weapons[@actor.weapon_id].nil?
@equip[i].bitmap.blt(8,12,
RPG::Cache.icon($data_weapons[@actor.weapon_id].icon_name),Rect.new(0,0,24,24))
a = $data_weapons[@actor.weapon_id].name.scan(/./)
a.each_index {|b| @equip[i].bitmap.blur_draw_text(0,70+16*b,40,16,
a[b],1,Color.new(0,0,0,10),2)}
else
eval "@equip[i].bitmap.blur_draw_text(0,
40,40,24,$data_system.words.armor#{i},1,Color.new(0,0,0,10),2)"
eval "next if $data_armors[@actor.armor#{i}_id].nil?"
eval "b = RPG::Cache.icon($data_armors[@actor.armor#{i}_id].icon_name)"
eval "@equip[i].bitmap.blt(8,12,b,Rect.new(0,0,24,24))"
eval "a = $data_armors[@actor.armor#{i}_id].name.scan(/./)"
a.each_index {|b| @equip[i].bitmap.blur_draw_text(0,70+16*b,40,16,
a[b],1,Color.new(0,0,0,10),2)}
end
end
@status_back = Sprite.new
@status_back.bitmap = Bitmap.new(306,120)
@status_back.y = 25
@status_back.x = 300
for i in 0...52
@status_back.bitmap.fill_rect(i*3,0,3,200,Color.new(0,0,0,i*5))
@status_back.bitmap.fill_rect(306-i*3,0,3,200,Color.new(0,0,0,i*5))
@status_back.bitmap.fill_rect(i*3,0,3,1,Color.new(255,255,255,i*5))
@status_back.bitmap.fill_rect(306-i*3,0,3,1,Color.new(255,255,255,i*5))
@status_back.bitmap.fill_rect(i*3,119,3,1,Color.new(255,255,255,i*5))
@status_back.bitmap.fill_rect(306-i*3,119,3,1,Color.new(255,255,255,i*5))
@status_back.bitmap.fill_rect(153,40,1,70,Color.new(255,255,255))
end
@status = Sprite.new
@status.bitmap = Bitmap.new(306,120)
@status.y = 25
@status.x = 300
@status.bitmap.font.size = 15
@status.bitmap.draw_text(50,10,600,15,"#{@actor.name} Lv#{@actor.level}")
@status.bitmap.font.size = 12
for i in 0..6
draw_par(i)
end
@help = Sprite.new
@help.bitmap = Bitmap.new(510, 20)
@help.x = 65
@help.y = 450
@help_text = Sprite.new
@help_text.bitmap = Bitmap.new(510, 20)
@help_text.bitmap.font.name = "宋体"
@help_text.bitmap.font.size = 13
@help_text.x = 65
@help_text.y = 450
@change_equip = Sprite.new
@change_equip.bitmap = Bitmap.new(204,200)
@change_equip.x = 400
@change_equip.y = 200
@new_equip = []
@data = [[],[],[],[],[]]
for i in 0..255/5
@help.bitmap.fill_rect(i*5,0,5,20,Color.new(0,0,0,i*5))
@help.bitmap.fill_rect(510-i*5,0,5,20,Color.new(0,0,0,i*5))
@help.bitmap.fill_rect(i*5, 0, 5, 1, Color.new(255,255,255,i*5))
@help.bitmap.fill_rect(510-i*5, 0, 5, 1, Color.new(255,255,255,i*5))
@help.bitmap.fill_rect(i*5, 19, 5, 1, Color.new(255,255,255,i*5))
@help.bitmap.fill_rect(510-i*5, 19, 5, 1, Color.new(255,255,255,i*5))
@change_equip.bitmap.fill_rect(2*i,0,2,200,Color.new(0,0,0,50+5*i))
@change_equip.bitmap.fill_rect(204-2*i,0,2,200,Color.new(0,0,0,50+5*i))
@change_equip.bitmap.fill_rect(2*i,0,2,1,Color.new(255,255,255,5*i))
@change_equip.bitmap.fill_rect(2*i,199,2,1,Color.new(255,255,255,5*i))
@change_equip.bitmap.fill_rect(204-2*i,199,2,1,Color.new(255,255,255,5*i))
@change_equip.bitmap.fill_rect(204-2*i,0,2,1,Color.new(255,255,255,5*i))
end
viewport = Viewport.new(400,200,204,200)
@equip_choose = RPG::Sprite.new(viewport)
@equip_choose.bitmap = @help.bitmap.clone
@equip_choose.zoom_x = 164 / 510.0
@equip_choose.x = 20
@equip_choose.zoom_y = 14 / 20.0
@equip_choose.y = 28
for i in 0...5
@new_equip[i] = Sprite.new(viewport)
@new_equip[i].bitmap = Bitmap.new(204,200)
@new_equip[i].x = 204 * i
@new_equip[i].bitmap.font.size = 12
@new_equip[i].bitmap.draw_text(40,30,184,12,"[脱下装备]")
@data[i].push(-1)
y = 44
if i == 0
weapon_set = $data_classes[@actor.class_id].weapon_set
for n in 1...$data_weapons.size
if $game_party.weapon_number(n) > 0 and weapon_set.include?(n)
@new_equip[i].bitmap.blt(10,y-6,
RPG::Cache.icon($data_weapons[n].icon_name),Rect.new(0,0,24,20))
@new_equip[i].bitmap.draw_text(40,y,184,12,$data_weapons[n].name)
@new_equip[i].bitmap.draw_text(40,y,140,12,$game_party.weapon_number(n).to_s,2)
@data[i].push($data_weapons[n])
y += 14
end
end
end
if i != 0
armor_set = $data_classes[@actor.class_id].armor_set
for n in 1...$data_armors.size
if $game_party.armor_number(n) > 0 and armor_set.include?(n)
if $data_armors[n].kind == i-1
@new_equip[i].bitmap.blt(10,y-6,
RPG::Cache.icon($data_armors[n].icon_name),Rect.new(0,0,24,20))
@new_equip[i].bitmap.draw_text(40,y,184,12,$data_armors[n].name)
@new_equip[i].bitmap.draw_text(40,y,140,12,$game_party.armor_number(n).to_s,2)
@data[i].push($data_armors[n])
y += 14
end
end
end
end
end
if !$data_weapons[@actor.weapon_id].nil?
@help_text.bitmap.draw_text(0,0,510,20,
$data_weapons[@actor.weapon_id].description,1)
end
@equip_choose.visible = false
@equip_rect[0].blink_on
@left_index = 0 # 装备位的选择
@right = false # 右边是否选择
@right_index = -1 # 新装备的选择
@page = 0 # 同ITEM
loop {update; break if $scene != self}
@equip_rect.each {|a| a.bitmap.dispose ; a.dispose}
@equip.each {|a| a.bitmap.dispose ; a.dispose}
@bitmap.dispose
@back.dispose
@back.dispose
@z.bitmap.dispose
@z.dispose
@person.dispose
@change_equip.bitmap.dispose; @change_equip.dispose
@new_equip.each {|a| a.bitmap.dispose;a.dispose}
@equip_choose.dispose
end
def update
Graphics.update
@equip_rect.each {|a| a.update} if !@right
@equip_choose.visible = true if !@equip_choose.visible && @right
@equip_choose.visible = false if !@right && @equip_choose.visible
@equip_choose.blink_on if !@equip_choose.blink? && @equip_choose.visible
@equip_choose.update if @equip_choose.visible
update_change if @right
return if @right
update_input
end
def update_input
Input.update
left_index(true) if Input.trigger?(Input::RIGHT)
left_index if Input.trigger?(Input::LEFT)
@right_index = 0 and @right = true and $game_system.se_play($data_system.decision_se) if Input.trigger?(Input::C)
$scene = Scene_Menu.new and $game_system.se_play($data_system.cancel_se) if Input.trigger?(Input::B)
end
def left_index(plus=false)
if plus
return if @left_index >= 4
@left_index += 1
@equip_rect.each {|a| a.blink_off}
@equip_rect[@left_index].blink_on
for i in 0...4
@new_equip.each {|a| a.x -= 51}
Graphics.update
end
else
return if @left_index <= 0
@left_index -= 1
@equip_rect.each {|a| a.blink_off}
@equip_rect[@left_index].blink_on
for i in 0...4
@new_equip.each {|a| a.x += 51}
Graphics.update
end
end
$game_system.se_play($data_system.cursor_se)
@help_text.bitmap.clear
if @left_index == 0
if !$data_weapons[@actor.weapon_id].nil?
@help_text.bitmap.draw_text(0,0,510,20,
$data_weapons[@actor.weapon_id].description,1)
end
else
eval "return if $data_armors[@actor.armor#{@left_index}_id].nil?"
eval "@help_text.bitmap.draw_text(0,0,510,20,
$data_armors[@actor.armor#{@left_index}_id].description,1)"
end
end
def draw_par(type)
case type
when 0
parameter_name = $data_system.words.atk
parameter_value = @actor.atk
when 1
parameter_name = $data_system.words.pdef
parameter_value = @actor.pdef
when 2
parameter_name = $data_system.words.mdef
parameter_value = @actor.mdef
when 3
parameter_name = $data_system.words.str
parameter_value = @actor.str
when 4
parameter_name = $data_system.words.dex
parameter_value = @actor.dex
when 5
parameter_name = $data_system.words.agi
parameter_value = @actor.agi
when 6
parameter_name = $data_system.words.int
parameter_value = @actor.int
end
@status.bitmap.draw_text(type / 4 == 0 ? 27 : 170, 40 + (15 * (type % 4)),
126,15,"#{parameter_name}:#{parameter_value}")
end
end