赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 0 |
经验 | 6143 |
最后登录 | 2012-9-8 |
在线时间 | 223 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 46
- 在线时间
- 223 小时
- 注册时间
- 2010-7-7
- 帖子
- 213
|
本帖最后由 hcm 于 2012-8-11 13:46 编辑
- #==============================================================================
- # 禾西製作 / Created by Quarcy
- #==============================================================================
- class Window_Help < Window_Base
- attr_reader :materia
- #--------------------------------------------------------------------------
- # ● 定義不顯示的屬性與狀態
- #--------------------------------------------------------------------------
- def unshown
- @unshow_elements = [17, 18]
- @unshow_states = []
- end
- #--------------------------------------------------------------------------
- # ● 初始化對象
- #--------------------------------------------------------------------------
- def initialize
- super(0, 0, 640, 64)
- self.opacity = 150
- self.z=150
- self.visible = false
- end
- #--------------------------------------------------------------------------
- # ● 設置文本
- # data : 窗口顯示的字符串/物品資料
- # align : 對齊方式 (0..左對齊、1..中間對齊、2..右對齊)
- #--------------------------------------------------------------------------
- def set_text(data, align=0)
- #------------------------------------------------------------------------
- # ● 當資料爲文字時候
- #------------------------------------------------------------------------
- # 如果文本或對齊方式至少一方与上次的不同
- if data != @text or align != @align
- if data.is_a?(String)
- # 再描繪文本
- self.width = 640
- self.height = 64
- self.x=0
- self.y=0
- self.contents = Bitmap.new(width - 32, height - 32) if self.contents.nil?
- self.contents.clear
- self.contents.font.color = normal_color
- self.contents.font.size = 20
- self.contents.draw_text(4, 0, self.width - 40, 32, data, align)
- @text = data
- @align = align
- @actor = nil
- self.visible = true
- end
- end
- return if data.is_a?(String)
- #------------------------------------------------------------------------
- # ● 當沒有資料時候
- #------------------------------------------------------------------------
- if data.nil?
- self.visible=false
- else
- self.visible=true
- end
- #------------------------------------------------------------------------
- # ● 當資料爲物品/技能時候
- #------------------------------------------------------------------------
- if data != nil && @data != data
- self.width = 210
- self.height = 430
- self.x=0
- self.y=200
- unshown
- non_auto_update(data)
- else
- return
- end
- end
- #--------------------------------------------------------------------------
- # ● 更新帮助窗口
- #--------------------------------------------------------------------------
- def non_auto_update(data=@data)
- @data = data
- case @data
- when RPG::Item
- set_item_text(@data)
- when RPG::Weapon
- set_equipment_text(@data)
- when RPG::Armor
- set_equipment_text(@data)
- when RPG::Skill
- set_skill_text(@data)
- end
- end
- #--------------------------------------------------------------------------
- # ● 裝備帮助窗口
- #--------------------------------------------------------------------------
- def set_equipment_text(equipment)
- #------------------------------------------------------------------------
- # ● 取得基本質料
- #------------------------------------------------------------------------
- # 取得屬性、附加狀態、解除狀態之副本
- case equipment
- when RPG::Weapon
- element_set = equipment.element_set.clone
- plus_state_set = equipment.plus_state_set.clone
- minus_state_set = equipment.minus_state_set.clone
- #----------------------#
- # 過濾不顯示的狀態描述 #
- #----------------------#
- plus_state_set -= @unshow_states
- minus_state_set -= @unshow_states
- when RPG::Armor
- element_set = equipment.guard_element_set.clone
- guard_state_set = equipment.guard_state_set.clone
- #----------------------#
- # 過濾不顯示的狀態描述 #
- #----------------------#
- auto_state_id = equipment.auto_state_id
- guard_state_set -= @unshow_states
- end
- #----------------------#
- # 過濾不顯示的屬性描述 #
- #----------------------#
- element_set -= @unshow_elements
- #--------------#
- # 取得說明文字 #
- #--------------#
- description = equipment.description.clone
- # 初始化數據設定
- x = 0
- y = 0
- h = 0
- phrase = {}
-
- # 基本文字設定
- phrase["price"] = "价格:"
- phrase["elements"] = "属性:"
- phrase["minus_states"] = "解除状态:"
- phrase["plus_states"] = "附加状态:"
- phrase["guard_elements"] = "防御属性"
- phrase["guard_states"] = "防御状态"
- phrase["auto_state"] = "自动状态"
- # 基本數據設定
- =begin
- name_size = 名字文字大小
- size = 描述文字大小
- word = 每行的描述文字數
- move = 全體描述偏移幅度
- =end
- name_size = 18
- size = 14
- word = 12
- move = 80
- #------------------------------------------------------------------------
- # ● 確定背景圖片的高度
- #------------------------------------------------------------------------
- h += (description.size/3/word)
- h += 1 if (description.size/3%word) > 0
- h += 1 if equipment.is_a?(RPG::Weapon)
- now_h = h
- h += 1
- h += 1 unless equipment.pdef.zero?
- h += 1 unless equipment.mdef.zero?
- h += 1 if element_set.size > 0
- h += 1 if element_set.size >= 5
- case equipment
- when RPG::Weapon
- h += 1 unless minus_state_set.empty?
- h += minus_state_set.size
- h += 1 unless plus_state_set.empty?
- h += plus_state_set.size
- when RPG::Armor
- h += 1 unless guard_state_set.empty?
- h += guard_state_set.size
- h += 1 unless auto_state_id.zero?
- end
- h += 1
- h += 1 unless equipment.str_plus.zero?
- h += 1 unless equipment.dex_plus.zero?
- h += 1 unless equipment.agi_plus.zero?
- h += 1 unless equipment.int_plus.zero?
- h += materia_height_plus(equipment) unless self.materia.nil?
- #------------------------------------------------------------------------
- # ● 圖片顯示保證高度
- #------------------------------------------------------------------------
- h = 6 + now_h if (h - now_h) < 6
- #------------------------------------------------------------------------
- # ● 換算高度
- #------------------------------------------------------------------------
- self.height = h * size + name_size + 32
- #------------------------------------------------------------------------
- # ● 生成背景
- #------------------------------------------------------------------------
- self.contents = Bitmap.new(self.width - 32, self.height - 32)
- self.contents.clear
- #------------------------------------------------------------------------
- # ● 名字描繪
- #------------------------------------------------------------------------
- text = equipment.name
- self.contents.font.color = draw_name_color(equipment)
- self.contents.font.size = name_size
- if text.nil?
- self.visible = false
- else
- self.visible = true
- self.contents.draw_text(0, 0, text.size*7, name_size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 說明描繪
- #------------------------------------------------------------------------
- x = 0
- y += 1
- while ((text = description.slice!(/./m)) != nil)
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x*size, y*size+5, size, size, text, 0)
- x+=1
- if x == word
- x=0
- y+=1
- end
- end
- #------------------------------------------------------------------------
- # ● 圖標描繪
- #------------------------------------------------------------------------
- bitmap = RPG::Cache.icon(equipment.icon_name)
- opacity = self.contents.font.color == normal_color ? 255 : 128
- self.contents.blt(0 ,y*size + 20, bitmap, Rect.new(0, 0, 95, 100), 225)
-
- #------------------------------------------------------------------------
- # ● 攻擊力描繪(武器)
- #------------------------------------------------------------------------
- if equipment.is_a?(RPG::Weapon)
- x = 0
- y += 1
- text = $data_system.words.atk+":"+equipment.atk.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 價格描繪
- #------------------------------------------------------------------------
- x = 0
- y += 1
- text = phrase["price"] + equipment.price.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- #------------------------------------------------------------------------
- # ● 物理防禦
- #------------------------------------------------------------------------
- unless equipment.pdef.zero?
- x = 0
- y += 1
- text = $data_system.words.pdef+":"+equipment.pdef.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 魔法防禦
- #------------------------------------------------------------------------
- unless equipment.mdef.zero?
- x = 0
- y += 1
- text=$data_system.words.mdef+":"+equipment.mdef.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 屬性
- #------------------------------------------------------------------------
- if element_set.size > 0
- x = 0
- y += 1
- text = phrase["elements"]
- for i in 0...element_set.size
- break if i > 4
- text += $data_system.elements[element_set[i]]
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- if element_set.size >= 5
- x = (phrase["elements"].size)*5-4
- y += 1
- text = ""
- for i in 4...element_set.size
- text += $data_system.elements[element_set[i]]
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 描述分流 武器/防具
- #------------------------------------------------------------------------
- case equipment
- when RPG::Weapon
- #------------------------------------------------------------------------
- # ● 解除狀態(武器)
- #------------------------------------------------------------------------
- unless minus_state_set.empty?
- x = 0
- y += 1
- text=phrase["minus_states"]
- text=phrase["guard_states"]
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- for i in 0...minus_state_set.size
- y += 1
- text = $data_states[minus_state_set[i]].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- #------------------------------------------------------------------------
- # ● 附加狀態(武器)
- #------------------------------------------------------------------------
- unless plus_state_set.empty?
- x = 0
- y += 1
- text = phrase["plus_states"]
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- for i in 0...plus_state_set.size
- y += 1
- text=$data_states[plus_state_set[i]].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- when RPG::Armor
- #------------------------------------------------------------------------
- # ● 防禦狀態(防具)
- #------------------------------------------------------------------------
- unless guard_state_set.empty?
- x = 0
- y += 1
- text=phrase["guard_states"]
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- for i in 0...guard_state_set.size
- y += 1
- text = $data_states[guard_state_set[i]].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- #------------------------------------------------------------------------
- # ● 自動狀態(防具)
- #------------------------------------------------------------------------
- unless auto_state_id.zero?
- x = 0
- y += 1
- text = phrase["auto_state"] + $data_states[auto_state_id].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- #------------------------------------------------------------------------
- # ● 空行
- #------------------------------------------------------------------------
- y+=1
- #------------------------------------------------------------------------
- # ● 力量
- #------------------------------------------------------------------------
- unless equipment.str_plus.zero?
- x = 0
- y += 1
- h += 1
- if equipment.str_plus > 0
- text=$data_system.words.str+" +"+ equipment.str_plus.to_s
- else
- text=$data_system.words.str+" -"+ (-equipment.str_plus).to_s
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 靈巧
- #------------------------------------------------------------------------
- unless equipment.dex_plus.zero?
- x = 0
- y += 1
- h += 1
- if equipment.dex_plus > 0
- text=$data_system.words.dex+" +"+ equipment.dex_plus.to_s
- else
- text=$data_system.words.dex+" -"+ (-equipment.dex_plus).to_s
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 速度
- #------------------------------------------------------------------------
- unless equipment.agi_plus.zero?
- x = 0
- y += 1
- h += 1
- if equipment.agi_plus > 0
- text=$data_system.words.agi+" +"+ equipment.agi_plus.to_s
- else
- text=$data_system.words.agi+" -"+ (-equipment.agi_plus).to_s
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 智力
- #------------------------------------------------------------------------
- unless equipment.int_plus.zero?
- x = 0
- y += 1
- h += 1
- if equipment.int_plus > 0
- text=$data_system.words.int+" +"+ equipment.int_plus.to_s
- else
- text=$data_system.words.int+" -"+ (-equipment.int_plus).to_s
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 魔力石描繪
- #------------------------------------------------------------------------
- y += draw_materia(equipment, move, y, size) unless self.materia.nil?
- end
- #--------------------------------------------------------------------------
- # ● 物品幫助窗口
- #--------------------------------------------------------------------------
- def set_item_text(item)
- # 取得描述
- description = item.description.clone
- # 取得屬性、附加狀態、解除狀態之副本
- element_set = item.element_set.clone
- plus_state_set = item.plus_state_set.clone
- minus_state_set = item.minus_state_set.clone
- # 過濾不顯示的描述
- element_set -= @unshow_elements
- plus_state_set -= @unshow_states
- minus_state_set -= @unshow_states
- # 初始化數據設定
- x = 0
- y = 0
- h = 0
- phrase = {}
- scope ={}
- parameter_type = {}
-
- # 基本數據設定
- =begin
- name_size = 名字文字大小
- size = 描述文字大小
- word = 每行的描述文字數
- move = 全體描述偏移幅度
- =end
- name_size = 18
- size = 14
- word = 12
- move = 80
-
- # 基本文字設定
- phrase["scope"] = "范围:"
- phrase["price"] = "价格:"
- phrase["recover_hp_rate"] = "HP 回复率:"
- phrase["recover_hp"] = "HP 回复量:"
- phrase["recover_sp_rate"] = "SP 回复率:"
- phrase["recover_sp"] = "SP 回复量:"
- phrase["elements"] = "属性:"
- phrase["plus"] = "附加"
- phrase["minus"] = "解除"
- phrase["states"] = "状态"
- scope[0] = "特殊物品"
- scope[1] = "特殊物品"
- scope[2] = "敌单体"
- scope[3] = "敌全体"
- scope[4] = "己方单体"
- scope[5] = "己方全体"
- scope[6] = "己方昏死单体"
- scope[7] = "己方昏死全体"
- scope[8] = "使用者"
- parameter_type[1] = "MaxHP"
- parameter_type[2] = "MaxSP"
- parameter_type[3] = $data_system.words.str
- parameter_type[4] = $data_system.words.dex
- parameter_type[5] = $data_system.words.agi
- parameter_type[6] = $data_system.words.int
-
- #依顯示内容確定自身高
- h = (description.size/3/word)
- h +=1 if (description.size/3%word)> 0
- now_h = h
- h +=3 # 空行,效果範圍,價格
- h += 1 unless item.recover_hp_rate.zero?
- h += 1 unless item.recover_hp.zero?
- h += 1 unless item.recover_sp_rate.zero?
- h += 1 unless item.recover_sp.zero?
- h += 1 unless item.parameter_type.zero?
- h += 1 unless element_set[0].nil?
- h += 1 unless element_set[4].nil?
- h += (1+plus_state_set.size) unless plus_state_set.empty?
- h += (1+minus_state_set.size) unless minus_state_set.empty?
- #------------------------------------------------------------------------
- # ● 圖片顯示保證高度
- #------------------------------------------------------------------------
- h = 6 + now_h if (h - now_h) < 6
- #------------------------------------------------------------------------
- # ● 換算高度
- #------------------------------------------------------------------------
- self.height = h * size + name_size + 32
- #------------------------------------------------------------------------
- # ● 生成背景
- #------------------------------------------------------------------------
- self.contents = Bitmap.new(self.width - 32, self.height - 32)
- self.contents.clear
- #------------------------------------------------------------------------
- # ● 名字描繪
- #------------------------------------------------------------------------
- text = item.name
- self.contents.font.color = normal_color#顔色腳本
- self.contents.font.size = name_size
- if text.nil?
- self.visible = false
- else
- self.visible = true
- self.contents.draw_text(0,0, text.size*7, 20, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 說明描繪
- #------------------------------------------------------------------------
- x = 0
- y += 1
- while ((text = description.slice!(/./m)) != nil)
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x*size, y*size+5, size, size, text, 0)
- x+=1
- if x == word
- x = 0
- y += 1
- end
- end
- #------------------------------------------------------------------------
- # ● 圖標描繪
- #------------------------------------------------------------------------
- bitmap = RPG::Cache.icon(item.icon_name) unless item.icon_name.nil?
- opacity = self.contents.font.color == normal_color ? 255 : 128
- self.contents.blt(0 ,y*size + 20, bitmap, Rect.new(0, 0, 95, 100), 225)
- #------------------------------------------------------------------------
- # ● 魔力石接口
- #------------------------------------------------------------------------
- unless self.materia.nil?
- return if is_materia?(item)
- end
- #------------------------------------------------------------------------
- # ● 效果範圍
- #------------------------------------------------------------------------
- text= phrase["scope"] + scope[item.scope]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- #------------------------------------------------------------------------
- # ● 價格
- #------------------------------------------------------------------------
- x = 0
- y += 1
- text = phrase["price"] + item.price.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
-
- #------------------------------------------------------------------------
- # ● HP回復率
- #------------------------------------------------------------------------
- unless item.recover_hp_rate.zero?
- x = 0
- y += 1
- text = phrase["recover_hp_rate"] + item.recover_hp_rate.to_s+"%"
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● HP回復量
- #------------------------------------------------------------------------
- unless item.recover_hp.zero?
- x = 0
- y += 1
- text = phrase["recover_hp"] + item.recover_hp.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● SP回復率
- #------------------------------------------------------------------------
- unless item.recover_sp_rate.zero?
- x = 0
- y += 1
- text = phrase["recover_sp_rate"] + item.recover_sp_rate.to_s+"%"
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● SP回復量
- #------------------------------------------------------------------------
- unless item.recover_sp.zero?
- x = 0
- y += 1
- text = phrase["elements"] + item.recover_sp.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 能力值增加
- #------------------------------------------------------------------------
- unless item.parameter_type.zero?
- x = 0
- y += 1
- text= parameter_type[item.parameter_type]+" +"+item.parameter_points.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 屬性
- #------------------------------------------------------------------------
- if element_set.size > 0
- x = 0
- y += 1
- text = phrase["elements"]
- for i in 0...element_set.size
- break if i > 4
- text += $data_system.elements[element_set[i]]
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- if element_set.size >= 5
- x = (phrase["elements"].size)*5-4
- y += 1
- text = ""
- for i in 4...element_set.size
- text += $data_system.elements[element_set[i]]
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 狀態添加
- #------------------------------------------------------------------------
- unless plus_state_set.empty?
- text = phrase["plus"]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- plus_state_set.each do |plus_state|
- y += 1
- text = $data_states[plus_state].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- #------------------------------------------------------------------------
- # ● 狀態解除
- #------------------------------------------------------------------------
- unless minus_state_set.empty?
- text = phrase["minus"]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- minus_state_set.each do |minus_state|
- y += 1
- text = $data_states[minus_state].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- end
- #--------------------------------------------------------------------------
- # ● 技能帮助窗口
- #--------------------------------------------------------------------------
- def set_skill_text(skill)
- # 取得描述
- description = skill.description.clone
- # 取得屬性、附加狀態、解除狀態之副本
- element_set = skill.element_set.clone
- plus_state_set = skill.plus_state_set.clone
- minus_state_set = skill.minus_state_set.clone
- # 過濾不顯示的描述
- element_set -= @unshow_elements
- plus_state_set -= @unshow_states
- minus_state_set -= @unshow_states
- # 初始化設定
- x = 0
- y = 0
- h = 0
- phrase = {}
- scope = {}
-
- # 基本數據設定
- =begin
- name_size = 名字文字大小
- size = 描述文字大小
- word = 每行的描述文字數
- move = 全體描述偏移幅度
- =end
- name_size = 18
- size = 14
- word = 12
- move = 80
-
- # 基本文字設定
- phrase["scope"] = "范围:"
- #
- phrase["power"] = "威力:"
- phrase["cost_sp"] = "消耗SP:"
- phrase["hit_rate"] = "命中率:"
- phrase["elements"] = "攻击属性"
- #
- phrase["plus"] = "附加"
- phrase["minus"] = "解除"
- phrase["states"] = "状态"
- scope[0] = "特殊技能"
- scope[1] = "敌单体"
- scope[2] = "敌全体"
- scope[3] = "我方单体"
- scope[4] = "我方全体"
- scope[5] = "我方昏死(单体)"
- scope[6] = "我方昏死(全体)"
- scope[7] = "自身"
-
- #由描叙确定高
- h =description.size/3/word
- h += 1 if (description.size%3/word) > 0
- h += 4 #空行,效果范围,消费SP,命中率
- h += 1 unless skill.power.zero?
- h += 1 unless element_set.empty?
- h += 1 unless element_set[4].nil?
- h += plus_state_set.size
- h += minus_state_set.size
- #------------------------------------------------------------------------
- # ● 換算高度
- #------------------------------------------------------------------------
- self.height=h * size + name_size + 32
- self.contents = Bitmap.new(self.width - 32,self.height - 32)
- self.contents.clear
-
- #------------------------------------------------------------------------
- # ● 名字描述
- #------------------------------------------------------------------------
- text = skill.name
- self.contents.font.color = Color.new(255, 255, 128, 255)
- self.contents.font.size = name_size
- if text!=nil
- self.visible = true
- self.contents.draw_text(0,0, text.size*7, name_size, text, 0)
- else
- self.visible = false
- end
-
- #------------------------------------------------------------------------
- # ● 說明描述
- #------------------------------------------------------------------------
- x = 0
- y += 1
- text = description
- while ((text = description.slice!(/./m)) != nil)
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x*size, y*size+5, size, size, text, 0)
- x+=1
- if x==word#每行10个字
- x = 0
- y += 1
- end
- end
-
- #------------------------------------------------------------------------
- # ● 攻擊範圍
- #------------------------------------------------------------------------
- text = phrase["scope"] + scope[skill.scope]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- #------------------------------------------------------------------------
- # ● 空一行
- #------------------------------------------------------------------------
- y += 1
- #------------------------------------------------------------------------
- # ● 威力描述
- #------------------------------------------------------------------------
- unless skill.power.zero?
- power = skill.power > 0 ? skill.power : -1 * skill.power
- text = phrase["power"] + power.to_s
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 消費SP描述
- #------------------------------------------------------------------------
- text = phrase["cost_sp"] + skill.sp_cost.to_s
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- #------------------------------------------------------------------------
- # ● 命中率描述
- #------------------------------------------------------------------------
- text = phrase["hit_rate"] + skill.hit.to_s + "%"
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- #------------------------------------------------------------------------
- # ● 攻擊屬性
- #------------------------------------------------------------------------
- if element_set.size > 0
- text=phrase["elements"]
- for i in 0...element_set.size
- if i < 4
- text+=$data_system.elements[element_set[i]]
- else
- break
- end
- end
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- end
- if element_set.size >= 5
- text=""
- for i in 4...element_set.size
- text+=$data_system.elements[element_set[i]]
- end
- x= (phrase["elements"].size)*3
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 狀態附加
- #------------------------------------------------------------------------
- unless plus_state_set.empty?
- text= phrase["plus"]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- plus_state_set.each do |plus_state|
- y += 1
- text=$data_states[plus_state].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- end
- end
- #------------------------------------------------------------------------
- # ●狀態解除
- #------------------------------------------------------------------------
- unless minus_state_set.empty?
- text = phrase["minus"]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size=size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- minus_state_set.each do |minus_state|
- y += 1
- text=$data_states[minus_state].name
- self.contents.font.color = normal_color
- self.contents.font.size=size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- end
- end
- end
- #--------------------------------------------------------------------------
- # ● 设置角色
- # actor : 要显示状态的角色
- #--------------------------------------------------------------------------
- def set_actor(actor)
- if actor != @actor
- self.contents.clear
- draw_actor_name(actor, 4, 0)
- draw_actor_state(actor, 140, 0)
- draw_actor_hp(actor, 284, 0)
- draw_actor_sp(actor, 460, 0)
- @actor = actor
- @text = nil
- self.visible = true
- end
- end
- #--------------------------------------------------------------------------
- # ● 設置角色
- # actor : 要顯示狀態之角色
- #--------------------------------------------------------------------------
- def set_actor(actor)
- self.contents = Bitmap.new(width - 32, height - 32) if self.contents.nil?
- if actor != @actor
- self.contents.clear
- draw_actor_name(actor, 4, 0)
- draw_actor_state(actor, 140, 0)
- draw_actor_hp(actor, 284, 0)
- draw_actor_sp(actor, 460, 0)
- @actor = actor
- @text = nil
- self.visible = true
- end
- end
- #--------------------------------------------------------------------------
- # ● 設置敵人
- # enemy : 要顯示名字與狀態之敵人
- #--------------------------------------------------------------------------
- def set_enemy(enemy)
- self.contents = Bitmap.new(width - 32, height - 32) if self.contents.nil?
- text = enemy.name.sub(/\[Ff][([0-9]+)]/) {""}
- state_text = make_battler_state_text(enemy, 112, false)
- if state_text != ""
- text += " " + state_text
- end
- set_text(text, 1)
- self.visible = true
- end
- #--------------------------------------------------------------------------
- # ● 校正帮助窗口位置
- #--------------------------------------------------------------------------
- def set_pos(x,y,width,oy,index,column_max)
- #光标坐标
- cursor_width = width / column_max - 32
- xx = index % column_max * (cursor_width + 32)
- yy = index / column_max * 32 - oy
- self.x=xx+x+150
- self.y=yy+y+30
- if self.x+self.width>640
- self.x=640-self.width
- end
- if self.y+self.height>480
- self.y=480-self.height
- end
- end
- #------------------------------------------------------------------------
- # ● 裝備名字顔色變化 接口
- #------------------------------------------------------------------------
- def draw_name_color(equipment)
- return normal_color
- end
- #------------------------------------------------------------------------
- # ● 自身身份確認
- #------------------------------------------------------------------------
- def original_help?
- return false
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_Item
- #------------------------------------------------------------------------------
- # 物品画面、战斗画面、显示浏览物品的窗口。
- #==============================================================================
- class Window_Item < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- super(0, 64-64, 640, 416+64)
- @column_max = 2
- refresh
- self.index = 0
- # 战斗中的情况下将窗口移至中央并将其半透明化
- if $game_temp.in_battle
- self.y = 64
- self.height = 256
- self.back_opacity = 160
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(item)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_Skill
- #------------------------------------------------------------------------------
- # 特技画面、战斗画面、显示可以使用的特技浏览的窗口。
- #==============================================================================
- class Window_Skill < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- #--------------------------------------------------------------------------
- def initialize(actor)
- super(0, 128, 640, 352)
- @actor = actor
- @column_max = 2
-
- refresh
- self.index = 0
- # 战斗中的情况下将窗口移至中央并将其半透明化
- if $game_temp.in_battle
- self.y = 64
- self.height = 256
- self.back_opacity = 160
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(skill)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_SkillStatus
- #------------------------------------------------------------------------------
- # 显示特技画面、特技使用者的窗口。
- #==============================================================================
- class Window_SkillStatus < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- #--------------------------------------------------------------------------
- def initialize(actor)
- # -------------------
- # 修改開始
- super(0, 64-64, 640, 64+64)#★★★★★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @actor = actor
- refresh
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_EquipLeft
- #------------------------------------------------------------------------------
- # 装备画面的、显示角色能力值变化的窗口。
- #==============================================================================
- class Window_EquipLeft < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- #--------------------------------------------------------------------------
- def initialize(actor)
- # -------------------
- # 修改開始
- super(0, 64-64, 272, 416+64)#★★★★★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @actor = actor
- refresh
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_EquipRight
- #------------------------------------------------------------------------------
- # 装备画面、显示角色现在装备的物品的窗口。
- #==============================================================================
- class Window_EquipRight < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- #--------------------------------------------------------------------------
- def initialize(actor)
- # -------------------
- # 修改開始
- super(272, 64-64, 368, 256+64)#★★★★★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @actor = actor
- refresh
- self.index = 0
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(item)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_EquipItem
- #------------------------------------------------------------------------------
- # 装备画面、显示浏览变更装备的候补物品的窗口。
- #==============================================================================
- class Window_EquipItem < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- # equip_type : 装备部位 (0~3)
- #--------------------------------------------------------------------------
- def initialize(actor, equip_type)
- # -------------------
- # 修改開始
- super(272, 320, 368, 160)#★★★★★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- @actor = actor
- @equip_type = equip_type
- @column_max = 1
-
- refresh
- self.active = false
- self.index = -1
- end
- def update_help
- @help_window.set_text(item)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_ShopCommand
- #------------------------------------------------------------------------------
- # 商店画面、选择要做的事的窗口
- #==============================================================================
- class Window_ShopCommand < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- # -------------------
- # 修改開始
- super(0, 64-64, 480, 64)#★★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @item_max = 3
- @column_max = 3
- @commands = ["买", "卖", "取消"]
- refresh
- self.index = 0
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #========================================================================================================================
- # ■ Window_ShopBuy
- #------------------------------------------------------------------------------
- # 商店画面、浏览显示可以购买的商品的窗口。
- #==============================================================================
- class Window_ShopBuy < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # shop_goods : 商品
- #--------------------------------------------------------------------------
- def initialize(shop_goods)
- # -------------------
- # 修改開始
- super(0, 128-64, 368, 352+64)#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- @shop_goods = shop_goods
-
- refresh
- self.index = 0
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(item)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_ShopSell
- #------------------------------------------------------------------------------
- # 商店画面、浏览显示可以卖掉的商品的窗口。
- #==============================================================================
- class Window_ShopSell < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- # -------------------
- # 修改開始
- super(0, 128-64, 640, 352+64)#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- @column_max = 2
-
- refresh
- self.index = 0
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(item)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_ShopNumber
- #------------------------------------------------------------------------------
- # 商店画面、输入买卖数量的窗口。
- #==============================================================================
- class Window_ShopNumber < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- # -------------------
- # 修改開始
- super(0, 128-64, 368, 352+64)#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @item = nil
- @max = 1
- @price = 0
- @number = 1
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_ShopStatus
- #------------------------------------------------------------------------------
- # 商店画面、显示物品所持数与角色装备的窗口。
- #==============================================================================
- class Window_ShopStatus < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- # -------------------
- # 修改開始
- super(368, 128-64, 272, 352+64)#★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @item = nil
- refresh
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Scene_Equip
- #------------------------------------------------------------------------------
- # 处理装备画面的类。
- #==============================================================================
- class Scene_Equip
- #--------------------------------------------------------------------------
- # ● 刷新画面 (右侧窗口被激活的情况下)
- #--------------------------------------------------------------------------
- def update_right
- # -------------------
- # 修改開始
- if @right_window.item==nil
- @help_window.visible=false
- else
- @help_window.visible=true
- end
- # 修改終了
- # -------------------
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 切换到菜单画面
- $scene = Scene_Menu.new(2)
- return
- end
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 固定装备的情况下
- if @actor.equip_fix?(@right_window.index)
- # 演奏冻结 SE
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 激活物品窗口
- @right_window.active = false
- @item_window.active = true
- @item_window.index = 0
- return
- end
- # 按下 R 键的情况下
- if Input.trigger?(Input::R)
- # 演奏光标 SE
- $game_system.se_play($data_system.cursor_se)
- # 移至下一位角色
- @actor_index += 1
- @actor_index %= $game_party.actors.size
- # 切换到别的装备画面
- $scene = Scene_Equip.new(@actor_index, @right_window.index)
- return
- end
- # 按下 L 键的情况下
- if Input.trigger?(Input::L)
- # 演奏光标 SE
- $game_system.se_play($data_system.cursor_se)
- # 移至上一位角色
- @actor_index += $game_party.actors.size - 1
- @actor_index %= $game_party.actors.size
- # 切换到别的装备画面
- $scene = Scene_Equip.new(@actor_index, @right_window.index)
- return
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面 (物品窗口被激活的情况下)
- #--------------------------------------------------------------------------
- def update_item
- # -------------------
- # 修改開始
- if @item_window.item==nil
- @help_window.visible=false
- else
- @help_window.visible=true
- end
- # 修改終了
- # -------------------
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 激活右侧窗口
- @right_window.active = true
- @item_window.active = false
- @item_window.index = -1
- return
- end
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 演奏装备 SE
- $game_system.se_play($data_system.equip_se)
- # 获取物品窗口现在选择的装备数据
- item = @item_window.item
- # 变更装备
- @actor.equip(@right_window.index, item == nil ? 0 : item.id)
- # 激活右侧窗口
- @right_window.active = true
- @item_window.active = false
- @item_window.index = -1
- # 再生成右侧窗口、物品窗口的内容
- @right_window.refresh
- @item_window.refresh
- return
- end
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #========================================================================================================================
- # ■ Scene_Battle (分割定义 3)
- #------------------------------------------------------------------------------
- # 处理战斗画面的类。
- #========================================================================================================================
- class Scene_Battle
- #--------------------------------------------------------------------------
- # ● 刷新画面 (角色命令回合 : 选择特技)
- #--------------------------------------------------------------------------
- alias first_reupdate_phase3_skill_select update_phase3_skill_select
- def update_phase3_skill_select
- # -------------------
- # 修改開始
- @skill_window.help_window.visible = false#★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- first_reupdate_phase3_skill_select
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面 (角色命令回合 : 选择物品)
- #--------------------------------------------------------------------------
- alias first_reupdate_phase3_item_select update_phase3_item_select
- def update_phase3_item_select
- # -------------------
- # 修改開始
- @item_window.help_window.visible = false#★★★★★★★★★★★★
- # 修改終了
- # -------------------
- first_reupdate_phase3_item_select
- end
- #--------------------------------------------------------------------------
- # ● 开始选择特技
- #--------------------------------------------------------------------------
- def start_skill_select
- @skill_window = Window_Skill.new(@active_battler)
- @skill_window.help_window = Window_Help.new
- @actor_command_window.active = false
- @actor_command_window.visible = false
- end
- #--------------------------------------------------------------------------
- # ● 选择特技结束
- #--------------------------------------------------------------------------
- alias first_update_end_skill_select end_skill_select
- def end_skill_select
- # -------------------
- # 修改開始
- @skill_window.help_window.visible = false#★★★★★★★★★★★★
- # 修改終了
- # -------------------
- first_update_end_skill_select
- end
- #--------------------------------------------------------------------------
- # ● 开始选择物品
- #--------------------------------------------------------------------------
- def start_item_select
- # 生成物品窗口
- @item_window = Window_Item.new
- # 关联帮助窗口
- # -------------------
- # 修改開始
- @item_window.help_window = Window_Help.new#★★★★★★★★★★★★
- # 修改終了
- # -------------------
- # 无效化角色指令窗口
- @actor_command_window.active = false
- @actor_command_window.visible = false
- end
- #--------------------------------------------------------------------------
- # ● 结束选择物品
- #--------------------------------------------------------------------------
- alias first_update_end_item_select end_item_select
- def end_item_select
- # -------------------
- # 修改開始
- @item_window.help_window.visible = false#★★★★★★★★★★★★
- # 修改終了
- # -------------------
- first_update_end_item_select
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Scene_Shop
- #------------------------------------------------------------------------------
- # 处理商店画面的类。
- #==============================================================================
- class Scene_Shop
- #--------------------------------------------------------------------------
- # ● 主处理
- #--------------------------------------------------------------------------
- # --------------------
- # 衝突可能
- def main
- # 生成帮助窗口
- # -------------------
- # 修改開始
- @help_window = Window_Help.new#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- # 生成指令窗口
- @command_window = Window_ShopCommand.new
- # 生成金钱窗口
- @gold_window = Window_Gold.new
- @gold_window.x = 480
- # -------------------
- # 修改開始
- @gold_window.y = 64-64#★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- # 生成时间窗口
- # -------------------
- # 修改開始
- @dummy_window = Window_Base.new(0, 128-64, 640, 352+64)#★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- # 生成购买窗口
- @buy_window = Window_ShopBuy.new($game_temp.shop_goods)
- @buy_window.active = false
- @buy_window.visible = false
- @buy_window.help_window = @help_window
- # 生成卖出窗口
- @sell_window = Window_ShopSell.new
- @sell_window.active = false
- @sell_window.visible = false
- @sell_window.help_window = @help_window
- # 生成数量输入窗口
- @number_window = Window_ShopNumber.new
- @number_window.active = false
- @number_window.visible = false
- # 生成状态窗口
- @status_window = Window_ShopStatus.new
- @status_window.visible = false
- # 执行过渡
- Graphics.transition
- # 主循环
- loop do
- # 刷新游戏画面
- Graphics.update
- # 刷新输入信息
- Input.update
- # 刷新画面
- update
- # 如果画面切换的话就中断循环
- if $scene != self
- break
- end
- end
- # 准备过渡
- Graphics.freeze
- # 释放窗口
- @help_window.dispose
- @command_window.dispose
- @gold_window.dispose
- @dummy_window.dispose
- @buy_window.dispose
- @sell_window.dispose
- @number_window.dispose
- @status_window.dispose
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- # --------------------
- # 衝突可能
- def update
- # 刷新窗口
- @help_window.update
- @command_window.update
- @gold_window.update
- @dummy_window.update
- @buy_window.update
- @sell_window.update
- @number_window.update
- @status_window.update
- # 指令窗口激活的情况下: 调用 update_command
- if @command_window.active
- # -------------------
- # 修改開始
- @help_window.visible=false#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- update_command
- return
- end
- # 购买窗口激活的情况下: 调用 update_buy
- if @buy_window.active
- # -------------------
- # 修改開始
- @help_window.visible=true#★★★★★★★★★★★★★★★★
- if @buy_window.item==nil#★★★★★★★★★★★★★★★★
- @help_window.visible=false#★★★★★★★★★★★★★★★★
- end #★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- update_buy
- return
- end
- # 卖出窗口激活的情况下: 调用 update_sell
- if @sell_window.active
- # -------------------
- # 修改開始
- @help_window.visible=true#★★★★★★★★★★★★★★★★
- if @sell_window.item==nil#★★★★★★★★★★★★★★★★
- @help_window.visible=false#★★★★★★★★★★★★★★★★
- end #★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- update_sell
- return
- end
- # 个数输入窗口激活的情况下: 调用 update_number
- if @number_window.active
- # -------------------
- # 修改開始
- @help_window.visible=false#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- update_number
- return
- end
- end
- end
- ‘‘──eu国猪于2012-7-21 12:22补充以下内容:
- #==============================================================================
- # 禾西製作 / Created by Quarcy
- #==============================================================================
- class Window_Help < Window_Base
- attr_reader :materia
- #--------------------------------------------------------------------------
- # ● 定義不顯示的屬性與狀態
- #--------------------------------------------------------------------------
- def unshown
- @unshow_elements = [17, 18]
- @unshow_states = []
- end
- #--------------------------------------------------------------------------
- # ● 初始化對象
- #--------------------------------------------------------------------------
- def initialize
- super(0, 0, 640, 64)
- self.opacity = 150
- self.z=150
- self.visible = false
- end
- #--------------------------------------------------------------------------
- # ● 設置文本
- # data : 窗口顯示的字符串/物品資料
- # align : 對齊方式 (0..左對齊、1..中間對齊、2..右對齊)
- #--------------------------------------------------------------------------
- def set_text(data, align=0)
- #------------------------------------------------------------------------
- # ● 當資料爲文字時候
- #------------------------------------------------------------------------
- # 如果文本或對齊方式至少一方与上次的不同
- if data != @text or align != @align
- if data.is_a?(String)
- # 再描繪文本
- self.width = 640
- self.height = 64
- self.x=0
- self.y=0
- self.contents = Bitmap.new(width - 32, height - 32) if self.contents.nil?
- self.contents.clear
- self.contents.font.color = normal_color
- self.contents.font.size = 20
- self.contents.draw_text(4, 0, self.width - 40, 32, data, align)
- @text = data
- @align = align
- @actor = nil
- self.visible = true
- end
- end
- return if data.is_a?(String)
- #------------------------------------------------------------------------
- # ● 當沒有資料時候
- #------------------------------------------------------------------------
- if data.nil?
- self.visible=false
- else
- self.visible=true
- end
- #------------------------------------------------------------------------
- # ● 當資料爲物品/技能時候
- #------------------------------------------------------------------------
- if data != nil && @data != data
- self.width = 210
- self.height = 430
- self.x=0
- self.y=200
- unshown
- non_auto_update(data)
- else
- return
- end
- end
- #--------------------------------------------------------------------------
- # ● 更新帮助窗口
- #--------------------------------------------------------------------------
- def non_auto_update(data=@data)
- @data = data
- case @data
- when RPG::Item
- set_item_text(@data)
- when RPG::Weapon
- set_equipment_text(@data)
- when RPG::Armor
- set_equipment_text(@data)
- when RPG::Skill
- set_skill_text(@data)
- end
- end
- #--------------------------------------------------------------------------
- # ● 裝備帮助窗口
- #--------------------------------------------------------------------------
- def set_equipment_text(equipment)
- #------------------------------------------------------------------------
- # ● 取得基本質料
- #------------------------------------------------------------------------
- # 取得屬性、附加狀態、解除狀態之副本
- case equipment
- when RPG::Weapon
- element_set = equipment.element_set.clone
- plus_state_set = equipment.plus_state_set.clone
- minus_state_set = equipment.minus_state_set.clone
- #----------------------#
- # 過濾不顯示的狀態描述 #
- #----------------------#
- plus_state_set -= @unshow_states
- minus_state_set -= @unshow_states
- when RPG::Armor
- element_set = equipment.guard_element_set.clone
- guard_state_set = equipment.guard_state_set.clone
- #----------------------#
- # 過濾不顯示的狀態描述 #
- #----------------------#
- auto_state_id = equipment.auto_state_id
- guard_state_set -= @unshow_states
- end
- #----------------------#
- # 過濾不顯示的屬性描述 #
- #----------------------#
- element_set -= @unshow_elements
- #--------------#
- # 取得說明文字 #
- #--------------#
- description = equipment.description.clone
- # 初始化數據設定
- x = 0
- y = 0
- h = 0
- phrase = {}
-
- # 基本文字設定
- phrase["price"] = "价格:"
- phrase["elements"] = "属性:"
- phrase["minus_states"] = "解除状态:"
- phrase["plus_states"] = "附加状态:"
- phrase["guard_elements"] = "防御属性"
- phrase["guard_states"] = "防御状态"
- phrase["auto_state"] = "自动状态"
- # 基本數據設定
- =begin
- name_size = 名字文字大小
- size = 描述文字大小
- word = 每行的描述文字數
- move = 全體描述偏移幅度
- =end
- name_size = 18
- size = 14
- word = 12
- move = 80
- #------------------------------------------------------------------------
- # ● 確定背景圖片的高度
- #------------------------------------------------------------------------
- h += (description.size/3/word)
- h += 1 if (description.size/3%word) > 0
- h += 1 if equipment.is_a?(RPG::Weapon)
- now_h = h
- h += 1
- h += 1 unless equipment.pdef.zero?
- h += 1 unless equipment.mdef.zero?
- h += 1 if element_set.size > 0
- h += 1 if element_set.size >= 5
- case equipment
- when RPG::Weapon
- h += 1 unless minus_state_set.empty?
- h += minus_state_set.size
- h += 1 unless plus_state_set.empty?
- h += plus_state_set.size
- when RPG::Armor
- h += 1 unless guard_state_set.empty?
- h += guard_state_set.size
- h += 1 unless auto_state_id.zero?
- end
- h += 1
- h += 1 unless equipment.str_plus.zero?
- h += 1 unless equipment.dex_plus.zero?
- h += 1 unless equipment.agi_plus.zero?
- h += 1 unless equipment.int_plus.zero?
- h += materia_height_plus(equipment) unless self.materia.nil?
- #------------------------------------------------------------------------
- # ● 圖片顯示保證高度
- #------------------------------------------------------------------------
- h = 6 + now_h if (h - now_h) < 6
- #------------------------------------------------------------------------
- # ● 換算高度
- #------------------------------------------------------------------------
- self.height = h * size + name_size + 32
- #------------------------------------------------------------------------
- # ● 生成背景
- #------------------------------------------------------------------------
- self.contents = Bitmap.new(self.width - 32, self.height - 32)
- self.contents.clear
- #------------------------------------------------------------------------
- # ● 名字描繪
- #------------------------------------------------------------------------
- text = equipment.name
- self.contents.font.color = draw_name_color(equipment)
- self.contents.font.size = name_size
- if text.nil?
- self.visible = false
- else
- self.visible = true
- self.contents.draw_text(0, 0, text.size*7, name_size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 說明描繪
- #------------------------------------------------------------------------
- x = 0
- y += 1
- while ((text = description.slice!(/./m)) != nil)
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x*size, y*size+5, size, size, text, 0)
- x+=1
- if x == word
- x=0
- y+=1
- end
- end
- #------------------------------------------------------------------------
- # ● 圖標描繪
- #------------------------------------------------------------------------
- bitmap = RPG::Cache.icon(equipment.icon_name)
- opacity = self.contents.font.color == normal_color ? 255 : 128
- self.contents.blt(0 ,y*size + 20, bitmap, Rect.new(0, 0, 95, 100), 225)
-
- #------------------------------------------------------------------------
- # ● 攻擊力描繪(武器)
- #------------------------------------------------------------------------
- if equipment.is_a?(RPG::Weapon)
- x = 0
- y += 1
- text = $data_system.words.atk+":"+equipment.atk.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 價格描繪
- #------------------------------------------------------------------------
- x = 0
- y += 1
- text = phrase["price"] + equipment.price.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- #------------------------------------------------------------------------
- # ● 物理防禦
- #------------------------------------------------------------------------
- unless equipment.pdef.zero?
- x = 0
- y += 1
- text = $data_system.words.pdef+":"+equipment.pdef.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 魔法防禦
- #------------------------------------------------------------------------
- unless equipment.mdef.zero?
- x = 0
- y += 1
- text=$data_system.words.mdef+":"+equipment.mdef.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 屬性
- #------------------------------------------------------------------------
- if element_set.size > 0
- x = 0
- y += 1
- text = phrase["elements"]
- for i in 0...element_set.size
- break if i > 4
- text += $data_system.elements[element_set[i]]
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- if element_set.size >= 5
- x = (phrase["elements"].size)*5-4
- y += 1
- text = ""
- for i in 4...element_set.size
- text += $data_system.elements[element_set[i]]
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 描述分流 武器/防具
- #------------------------------------------------------------------------
- case equipment
- when RPG::Weapon
- #------------------------------------------------------------------------
- # ● 解除狀態(武器)
- #------------------------------------------------------------------------
- unless minus_state_set.empty?
- x = 0
- y += 1
- text=phrase["minus_states"]
- text=phrase["guard_states"]
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- for i in 0...minus_state_set.size
- y += 1
- text = $data_states[minus_state_set[i]].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- #------------------------------------------------------------------------
- # ● 附加狀態(武器)
- #------------------------------------------------------------------------
- unless plus_state_set.empty?
- x = 0
- y += 1
- text = phrase["plus_states"]
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- for i in 0...plus_state_set.size
- y += 1
- text=$data_states[plus_state_set[i]].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- when RPG::Armor
- #------------------------------------------------------------------------
- # ● 防禦狀態(防具)
- #------------------------------------------------------------------------
- unless guard_state_set.empty?
- x = 0
- y += 1
- text=phrase["guard_states"]
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- for i in 0...guard_state_set.size
- y += 1
- text = $data_states[guard_state_set[i]].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- #------------------------------------------------------------------------
- # ● 自動狀態(防具)
- #------------------------------------------------------------------------
- unless auto_state_id.zero?
- x = 0
- y += 1
- text = phrase["auto_state"] + $data_states[auto_state_id].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- #------------------------------------------------------------------------
- # ● 空行
- #------------------------------------------------------------------------
- y+=1
- #------------------------------------------------------------------------
- # ● 力量
- #------------------------------------------------------------------------
- unless equipment.str_plus.zero?
- x = 0
- y += 1
- h += 1
- if equipment.str_plus > 0
- text=$data_system.words.str+" +"+ equipment.str_plus.to_s
- else
- text=$data_system.words.str+" -"+ (-equipment.str_plus).to_s
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 靈巧
- #------------------------------------------------------------------------
- unless equipment.dex_plus.zero?
- x = 0
- y += 1
- h += 1
- if equipment.dex_plus > 0
- text=$data_system.words.dex+" +"+ equipment.dex_plus.to_s
- else
- text=$data_system.words.dex+" -"+ (-equipment.dex_plus).to_s
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 速度
- #------------------------------------------------------------------------
- unless equipment.agi_plus.zero?
- x = 0
- y += 1
- h += 1
- if equipment.agi_plus > 0
- text=$data_system.words.agi+" +"+ equipment.agi_plus.to_s
- else
- text=$data_system.words.agi+" -"+ (-equipment.agi_plus).to_s
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 智力
- #------------------------------------------------------------------------
- unless equipment.int_plus.zero?
- x = 0
- y += 1
- h += 1
- if equipment.int_plus > 0
- text=$data_system.words.int+" +"+ equipment.int_plus.to_s
- else
- text=$data_system.words.int+" -"+ (-equipment.int_plus).to_s
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 魔力石描繪
- #------------------------------------------------------------------------
- y += draw_materia(equipment, move, y, size) unless self.materia.nil?
- end
- #--------------------------------------------------------------------------
- # ● 物品幫助窗口
- #--------------------------------------------------------------------------
- def set_item_text(item)
- # 取得描述
- description = item.description.clone
- # 取得屬性、附加狀態、解除狀態之副本
- element_set = item.element_set.clone
- plus_state_set = item.plus_state_set.clone
- minus_state_set = item.minus_state_set.clone
- # 過濾不顯示的描述
- element_set -= @unshow_elements
- plus_state_set -= @unshow_states
- minus_state_set -= @unshow_states
- # 初始化數據設定
- x = 0
- y = 0
- h = 0
- phrase = {}
- scope ={}
- parameter_type = {}
-
- # 基本數據設定
- =begin
- name_size = 名字文字大小
- size = 描述文字大小
- word = 每行的描述文字數
- move = 全體描述偏移幅度
- =end
- name_size = 18
- size = 14
- word = 12
- move = 80
-
- # 基本文字設定
- phrase["scope"] = "范围:"
- phrase["price"] = "价格:"
- phrase["recover_hp_rate"] = "HP 回复率:"
- phrase["recover_hp"] = "HP 回复量:"
- phrase["recover_sp_rate"] = "SP 回复率:"
- phrase["recover_sp"] = "SP 回复量:"
- phrase["elements"] = "属性:"
- phrase["plus"] = "附加"
- phrase["minus"] = "解除"
- phrase["states"] = "状态"
- scope[0] = "特殊物品"
- scope[1] = "特殊物品"
- scope[2] = "敌单体"
- scope[3] = "敌全体"
- scope[4] = "己方单体"
- scope[5] = "己方全体"
- scope[6] = "己方昏死单体"
- scope[7] = "己方昏死全体"
- scope[8] = "使用者"
- parameter_type[1] = "MaxHP"
- parameter_type[2] = "MaxSP"
- parameter_type[3] = $data_system.words.str
- parameter_type[4] = $data_system.words.dex
- parameter_type[5] = $data_system.words.agi
- parameter_type[6] = $data_system.words.int
-
- #依顯示内容確定自身高
- h = (description.size/3/word)
- h +=1 if (description.size/3%word)> 0
- now_h = h
- h +=3 # 空行,效果範圍,價格
- h += 1 unless item.recover_hp_rate.zero?
- h += 1 unless item.recover_hp.zero?
- h += 1 unless item.recover_sp_rate.zero?
- h += 1 unless item.recover_sp.zero?
- h += 1 unless item.parameter_type.zero?
- h += 1 unless element_set[0].nil?
- h += 1 unless element_set[4].nil?
- h += (1+plus_state_set.size) unless plus_state_set.empty?
- h += (1+minus_state_set.size) unless minus_state_set.empty?
- #------------------------------------------------------------------------
- # ● 圖片顯示保證高度
- #------------------------------------------------------------------------
- h = 6 + now_h if (h - now_h) < 6
- #------------------------------------------------------------------------
- # ● 換算高度
- #------------------------------------------------------------------------
- self.height = h * size + name_size + 32
- #------------------------------------------------------------------------
- # ● 生成背景
- #------------------------------------------------------------------------
- self.contents = Bitmap.new(self.width - 32, self.height - 32)
- self.contents.clear
- #------------------------------------------------------------------------
- # ● 名字描繪
- #------------------------------------------------------------------------
- text = item.name
- self.contents.font.color = normal_color#顔色腳本
- self.contents.font.size = name_size
- if text.nil?
- self.visible = false
- else
- self.visible = true
- self.contents.draw_text(0,0, text.size*7, 20, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 說明描繪
- #------------------------------------------------------------------------
- x = 0
- y += 1
- while ((text = description.slice!(/./m)) != nil)
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x*size, y*size+5, size, size, text, 0)
- x+=1
- if x == word
- x = 0
- y += 1
- end
- end
- #------------------------------------------------------------------------
- # ● 圖標描繪
- #------------------------------------------------------------------------
- bitmap = RPG::Cache.icon(item.icon_name) unless item.icon_name.nil?
- opacity = self.contents.font.color == normal_color ? 255 : 128
- self.contents.blt(0 ,y*size + 20, bitmap, Rect.new(0, 0, 95, 100), 225)
- #------------------------------------------------------------------------
- # ● 魔力石接口
- #------------------------------------------------------------------------
- unless self.materia.nil?
- return if is_materia?(item)
- end
- #------------------------------------------------------------------------
- # ● 效果範圍
- #------------------------------------------------------------------------
- text= phrase["scope"] + scope[item.scope]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- #------------------------------------------------------------------------
- # ● 價格
- #------------------------------------------------------------------------
- x = 0
- y += 1
- text = phrase["price"] + item.price.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
-
- #------------------------------------------------------------------------
- # ● HP回復率
- #------------------------------------------------------------------------
- unless item.recover_hp_rate.zero?
- x = 0
- y += 1
- text = phrase["recover_hp_rate"] + item.recover_hp_rate.to_s+"%"
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● HP回復量
- #------------------------------------------------------------------------
- unless item.recover_hp.zero?
- x = 0
- y += 1
- text = phrase["recover_hp"] + item.recover_hp.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● SP回復率
- #------------------------------------------------------------------------
- unless item.recover_sp_rate.zero?
- x = 0
- y += 1
- text = phrase["recover_sp_rate"] + item.recover_sp_rate.to_s+"%"
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● SP回復量
- #------------------------------------------------------------------------
- unless item.recover_sp.zero?
- x = 0
- y += 1
- text = phrase["elements"] + item.recover_sp.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 能力值增加
- #------------------------------------------------------------------------
- unless item.parameter_type.zero?
- x = 0
- y += 1
- text= parameter_type[item.parameter_type]+" +"+item.parameter_points.to_s
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 屬性
- #------------------------------------------------------------------------
- if element_set.size > 0
- x = 0
- y += 1
- text = phrase["elements"]
- for i in 0...element_set.size
- break if i > 4
- text += $data_system.elements[element_set[i]]
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- if element_set.size >= 5
- x = (phrase["elements"].size)*5-4
- y += 1
- text = ""
- for i in 4...element_set.size
- text += $data_system.elements[element_set[i]]
- end
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 狀態添加
- #------------------------------------------------------------------------
- unless plus_state_set.empty?
- text = phrase["plus"]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- plus_state_set.each do |plus_state|
- y += 1
- text = $data_states[plus_state].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- #------------------------------------------------------------------------
- # ● 狀態解除
- #------------------------------------------------------------------------
- unless minus_state_set.empty?
- text = phrase["minus"]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- minus_state_set.each do |minus_state|
- y += 1
- text = $data_states[minus_state].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
- end
- end
- end
- #--------------------------------------------------------------------------
- # ● 技能帮助窗口
- #--------------------------------------------------------------------------
- def set_skill_text(skill)
- # 取得描述
- description = skill.description.clone
- # 取得屬性、附加狀態、解除狀態之副本
- element_set = skill.element_set.clone
- plus_state_set = skill.plus_state_set.clone
- minus_state_set = skill.minus_state_set.clone
- # 過濾不顯示的描述
- element_set -= @unshow_elements
- plus_state_set -= @unshow_states
- minus_state_set -= @unshow_states
- # 初始化設定
- x = 0
- y = 0
- h = 0
- phrase = {}
- scope = {}
-
- # 基本數據設定
- =begin
- name_size = 名字文字大小
- size = 描述文字大小
- word = 每行的描述文字數
- move = 全體描述偏移幅度
- =end
- name_size = 18
- size = 14
- word = 12
- move = 80
-
- # 基本文字設定
- phrase["scope"] = "范围:"
- #
- phrase["power"] = "威力:"
- phrase["cost_sp"] = "消耗SP:"
- phrase["hit_rate"] = "命中率:"
- phrase["elements"] = "攻击属性"
- #
- phrase["plus"] = "附加"
- phrase["minus"] = "解除"
- phrase["states"] = "状态"
- scope[0] = "特殊技能"
- scope[1] = "敌单体"
- scope[2] = "敌全体"
- scope[3] = "我方单体"
- scope[4] = "我方全体"
- scope[5] = "我方昏死(单体)"
- scope[6] = "我方昏死(全体)"
- scope[7] = "自身"
-
- #由描叙确定高
- h =description.size/3/word
- h += 1 if (description.size%3/word) > 0
- h += 4 #空行,效果范围,消费SP,命中率
- h += 1 unless skill.power.zero?
- h += 1 unless element_set.empty?
- h += 1 unless element_set[4].nil?
- h += plus_state_set.size
- h += minus_state_set.size
- #------------------------------------------------------------------------
- # ● 換算高度
- #------------------------------------------------------------------------
- self.height=h * size + name_size + 32
- self.contents = Bitmap.new(self.width - 32,self.height - 32)
- self.contents.clear
-
- #------------------------------------------------------------------------
- # ● 名字描述
- #------------------------------------------------------------------------
- text = skill.name
- self.contents.font.color = Color.new(255, 255, 128, 255)
- self.contents.font.size = name_size
- if text!=nil
- self.visible = true
- self.contents.draw_text(0,0, text.size*7, name_size, text, 0)
- else
- self.visible = false
- end
-
- #------------------------------------------------------------------------
- # ● 說明描述
- #------------------------------------------------------------------------
- x = 0
- y += 1
- text = description
- while ((text = description.slice!(/./m)) != nil)
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x*size, y*size+5, size, size, text, 0)
- x+=1
- if x==word#每行10个字
- x = 0
- y += 1
- end
- end
-
- #------------------------------------------------------------------------
- # ● 攻擊範圍
- #------------------------------------------------------------------------
- text = phrase["scope"] + scope[skill.scope]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- #------------------------------------------------------------------------
- # ● 空一行
- #------------------------------------------------------------------------
- y += 1
- #------------------------------------------------------------------------
- # ● 威力描述
- #------------------------------------------------------------------------
- unless skill.power.zero?
- power = skill.power > 0 ? skill.power : -1 * skill.power
- text = phrase["power"] + power.to_s
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 消費SP描述
- #------------------------------------------------------------------------
- text = phrase["cost_sp"] + skill.sp_cost.to_s
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- #------------------------------------------------------------------------
- # ● 命中率描述
- #------------------------------------------------------------------------
- text = phrase["hit_rate"] + skill.hit.to_s + "%"
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- #------------------------------------------------------------------------
- # ● 攻擊屬性
- #------------------------------------------------------------------------
- if element_set.size > 0
- text=phrase["elements"]
- for i in 0...element_set.size
- if i < 4
- text+=$data_system.elements[element_set[i]]
- else
- break
- end
- end
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- end
- if element_set.size >= 5
- text=""
- for i in 4...element_set.size
- text+=$data_system.elements[element_set[i]]
- end
- x= (phrase["elements"].size)*3
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- end
- #------------------------------------------------------------------------
- # ● 狀態附加
- #------------------------------------------------------------------------
- unless plus_state_set.empty?
- text= phrase["plus"]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- plus_state_set.each do |plus_state|
- y += 1
- text=$data_states[plus_state].name
- self.contents.font.color = normal_color
- self.contents.font.size = size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- end
- end
- #------------------------------------------------------------------------
- # ●狀態解除
- #------------------------------------------------------------------------
- unless minus_state_set.empty?
- text = phrase["minus"]
- x = 0
- y += 1
- self.contents.font.color = normal_color
- self.contents.font.size=size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- minus_state_set.each do |minus_state|
- y += 1
- text=$data_states[minus_state].name
- self.contents.font.color = normal_color
- self.contents.font.size=size
- self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
- end
- end
- end
- #--------------------------------------------------------------------------
- # ● 设置角色
- # actor : 要显示状态的角色
- #--------------------------------------------------------------------------
- def set_actor(actor)
- if actor != @actor
- self.contents.clear
- draw_actor_name(actor, 4, 0)
- draw_actor_state(actor, 140, 0)
- draw_actor_hp(actor, 284, 0)
- draw_actor_sp(actor, 460, 0)
- @actor = actor
- @text = nil
- self.visible = true
- end
- end
- #--------------------------------------------------------------------------
- # ● 設置角色
- # actor : 要顯示狀態之角色
- #--------------------------------------------------------------------------
- def set_actor(actor)
- self.contents = Bitmap.new(width - 32, height - 32) if self.contents.nil?
- if actor != @actor
- self.contents.clear
- draw_actor_name(actor, 4, 0)
- draw_actor_state(actor, 140, 0)
- draw_actor_hp(actor, 284, 0)
- draw_actor_sp(actor, 460, 0)
- @actor = actor
- @text = nil
- self.visible = true
- end
- end
- #--------------------------------------------------------------------------
- # ● 設置敵人
- # enemy : 要顯示名字與狀態之敵人
- #--------------------------------------------------------------------------
- def set_enemy(enemy)
- self.contents = Bitmap.new(width - 32, height - 32) if self.contents.nil?
- text = enemy.name.sub(/\\[Ff]\[([0-9]+)\]/) {""}
- state_text = make_battler_state_text(enemy, 112, false)
- if state_text != ""
- text += " " + state_text
- end
- set_text(text, 1)
- self.visible = true
- end
- #--------------------------------------------------------------------------
- # ● 校正帮助窗口位置
- #--------------------------------------------------------------------------
- def set_pos(x,y,width,oy,index,column_max)
- #光标坐标
- cursor_width = width / column_max - 32
- xx = index % column_max * (cursor_width + 32)
- yy = index / column_max * 32 - oy
- self.x=xx+x+150
- self.y=yy+y+30
- if self.x+self.width>640
- self.x=640-self.width
- end
- if self.y+self.height>480
- self.y=480-self.height
- end
- end
- #------------------------------------------------------------------------
- # ● 裝備名字顔色變化 接口
- #------------------------------------------------------------------------
- def draw_name_color(equipment)
- return normal_color
- end
- #------------------------------------------------------------------------
- # ● 自身身份確認
- #------------------------------------------------------------------------
- def original_help?
- return false
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_Item
- #------------------------------------------------------------------------------
- # 物品画面、战斗画面、显示浏览物品的窗口。
- #==============================================================================
- class Window_Item < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- super(0, 64-64, 640, 416+64)
- @column_max = 2
- refresh
- self.index = 0
- # 战斗中的情况下将窗口移至中央并将其半透明化
- if $game_temp.in_battle
- self.y = 64
- self.height = 256
- self.back_opacity = 160
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(item)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_Skill
- #------------------------------------------------------------------------------
- # 特技画面、战斗画面、显示可以使用的特技浏览的窗口。
- #==============================================================================
- class Window_Skill < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- #--------------------------------------------------------------------------
- def initialize(actor)
- super(0, 128, 640, 352)
- @actor = actor
- @column_max = 2
-
- refresh
- self.index = 0
- # 战斗中的情况下将窗口移至中央并将其半透明化
- if $game_temp.in_battle
- self.y = 64
- self.height = 256
- self.back_opacity = 160
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(skill)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_SkillStatus
- #------------------------------------------------------------------------------
- # 显示特技画面、特技使用者的窗口。
- #==============================================================================
- class Window_SkillStatus < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- #--------------------------------------------------------------------------
- def initialize(actor)
- # -------------------
- # 修改開始
- super(0, 64-64, 640, 64+64)#★★★★★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @actor = actor
- refresh
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_EquipLeft
- #------------------------------------------------------------------------------
- # 装备画面的、显示角色能力值变化的窗口。
- #==============================================================================
- class Window_EquipLeft < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- #--------------------------------------------------------------------------
- def initialize(actor)
- # -------------------
- # 修改開始
- super(0, 64-64, 272, 416+64)#★★★★★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @actor = actor
- refresh
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_EquipRight
- #------------------------------------------------------------------------------
- # 装备画面、显示角色现在装备的物品的窗口。
- #==============================================================================
- class Window_EquipRight < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- #--------------------------------------------------------------------------
- def initialize(actor)
- # -------------------
- # 修改開始
- super(272, 64-64, 368, 256+64)#★★★★★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @actor = actor
- refresh
- self.index = 0
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(item)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_EquipItem
- #------------------------------------------------------------------------------
- # 装备画面、显示浏览变更装备的候补物品的窗口。
- #==============================================================================
- class Window_EquipItem < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- # equip_type : 装备部位 (0~3)
- #--------------------------------------------------------------------------
- def initialize(actor, equip_type)
- # -------------------
- # 修改開始
- super(272, 320, 368, 160)#★★★★★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- @actor = actor
- @equip_type = equip_type
- @column_max = 1
-
- refresh
- self.active = false
- self.index = -1
- end
- def update_help
- @help_window.set_text(item)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_ShopCommand
- #------------------------------------------------------------------------------
- # 商店画面、选择要做的事的窗口
- #==============================================================================
- class Window_ShopCommand < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- # -------------------
- # 修改開始
- super(0, 64-64, 480, 64)#★★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @item_max = 3
- @column_max = 3
- @commands = ["买", "卖", "取消"]
- refresh
- self.index = 0
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #========================================================================================================================
- # ■ Window_ShopBuy
- #------------------------------------------------------------------------------
- # 商店画面、浏览显示可以购买的商品的窗口。
- #==============================================================================
- class Window_ShopBuy < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # shop_goods : 商品
- #--------------------------------------------------------------------------
- def initialize(shop_goods)
- # -------------------
- # 修改開始
- super(0, 128-64, 368, 352+64)#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- @shop_goods = shop_goods
-
- refresh
- self.index = 0
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(item)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_ShopSell
- #------------------------------------------------------------------------------
- # 商店画面、浏览显示可以卖掉的商品的窗口。
- #==============================================================================
- class Window_ShopSell < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- # -------------------
- # 修改開始
- super(0, 128-64, 640, 352+64)#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- @column_max = 2
-
- refresh
- self.index = 0
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(item)
- #校正帮助窗口位置
- @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_ShopNumber
- #------------------------------------------------------------------------------
- # 商店画面、输入买卖数量的窗口。
- #==============================================================================
- class Window_ShopNumber < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- # -------------------
- # 修改開始
- super(0, 128-64, 368, 352+64)#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @item = nil
- @max = 1
- @price = 0
- @number = 1
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Window_ShopStatus
- #------------------------------------------------------------------------------
- # 商店画面、显示物品所持数与角色装备的窗口。
- #==============================================================================
- class Window_ShopStatus < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- # -------------------
- # 修改開始
- super(368, 128-64, 272, 352+64)#★★★★★★★★★★★★
- # 修改終了
- # -------------------
- self.contents = Bitmap.new(width - 32, height - 32)
- @item = nil
- refresh
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Scene_Equip
- #------------------------------------------------------------------------------
- # 处理装备画面的类。
- #==============================================================================
- class Scene_Equip
- #--------------------------------------------------------------------------
- # ● 刷新画面 (右侧窗口被激活的情况下)
- #--------------------------------------------------------------------------
- def update_right
- # -------------------
- # 修改開始
- if @right_window.item==nil
- @help_window.visible=false
- else
- @help_window.visible=true
- end
- # 修改終了
- # -------------------
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 切换到菜单画面
- $scene = Scene_Menu.new(2)
- return
- end
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 固定装备的情况下
- if @actor.equip_fix?(@right_window.index)
- # 演奏冻结 SE
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 激活物品窗口
- @right_window.active = false
- @item_window.active = true
- @item_window.index = 0
- return
- end
- # 按下 R 键的情况下
- if Input.trigger?(Input::R)
- # 演奏光标 SE
- $game_system.se_play($data_system.cursor_se)
- # 移至下一位角色
- @actor_index += 1
- @actor_index %= $game_party.actors.size
- # 切换到别的装备画面
- $scene = Scene_Equip.new(@actor_index, @right_window.index)
- return
- end
- # 按下 L 键的情况下
- if Input.trigger?(Input::L)
- # 演奏光标 SE
- $game_system.se_play($data_system.cursor_se)
- # 移至上一位角色
- @actor_index += $game_party.actors.size - 1
- @actor_index %= $game_party.actors.size
- # 切换到别的装备画面
- $scene = Scene_Equip.new(@actor_index, @right_window.index)
- return
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面 (物品窗口被激活的情况下)
- #--------------------------------------------------------------------------
- def update_item
- # -------------------
- # 修改開始
- if @item_window.item==nil
- @help_window.visible=false
- else
- @help_window.visible=true
- end
- # 修改終了
- # -------------------
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 激活右侧窗口
- @right_window.active = true
- @item_window.active = false
- @item_window.index = -1
- return
- end
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 演奏装备 SE
- $game_system.se_play($data_system.equip_se)
- # 获取物品窗口现在选择的装备数据
- item = @item_window.item
- # 变更装备
- @actor.equip(@right_window.index, item == nil ? 0 : item.id)
- # 激活右侧窗口
- @right_window.active = true
- @item_window.active = false
- @item_window.index = -1
- # 再生成右侧窗口、物品窗口的内容
- @right_window.refresh
- @item_window.refresh
- return
- end
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #========================================================================================================================
- # ■ Scene_Battle (分割定义 3)
- #------------------------------------------------------------------------------
- # 处理战斗画面的类。
- #========================================================================================================================
- class Scene_Battle
- #--------------------------------------------------------------------------
- # ● 刷新画面 (角色命令回合 : 选择特技)
- #--------------------------------------------------------------------------
- alias first_reupdate_phase3_skill_select update_phase3_skill_select
- def update_phase3_skill_select
- # -------------------
- # 修改開始
- @skill_window.help_window.visible = false#★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- first_reupdate_phase3_skill_select
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面 (角色命令回合 : 选择物品)
- #--------------------------------------------------------------------------
- alias first_reupdate_phase3_item_select update_phase3_item_select
- def update_phase3_item_select
- # -------------------
- # 修改開始
- @item_window.help_window.visible = false#★★★★★★★★★★★★
- # 修改終了
- # -------------------
- first_reupdate_phase3_item_select
- end
- #--------------------------------------------------------------------------
- # ● 开始选择特技
- #--------------------------------------------------------------------------
- def start_skill_select
- @skill_window = Window_Skill.new(@active_battler)
- @skill_window.help_window = Window_Help.new
- @actor_command_window.active = false
- @actor_command_window.visible = false
- end
- #--------------------------------------------------------------------------
- # ● 选择特技结束
- #--------------------------------------------------------------------------
- alias first_update_end_skill_select end_skill_select
- def end_skill_select
- # -------------------
- # 修改開始
- @skill_window.help_window.visible = false#★★★★★★★★★★★★
- # 修改終了
- # -------------------
- first_update_end_skill_select
- end
- #--------------------------------------------------------------------------
- # ● 开始选择物品
- #--------------------------------------------------------------------------
- def start_item_select
- # 生成物品窗口
- @item_window = Window_Item.new
- # 关联帮助窗口
- # -------------------
- # 修改開始
- @item_window.help_window = Window_Help.new#★★★★★★★★★★★★
- # 修改終了
- # -------------------
- # 无效化角色指令窗口
- @actor_command_window.active = false
- @actor_command_window.visible = false
- end
- #--------------------------------------------------------------------------
- # ● 结束选择物品
- #--------------------------------------------------------------------------
- alias first_update_end_item_select end_item_select
- def end_item_select
- # -------------------
- # 修改開始
- @item_window.help_window.visible = false#★★★★★★★★★★★★
- # 修改終了
- # -------------------
- first_update_end_item_select
- end
- end
- #------------------------------------------------------------------------------
- #------------------------------------------------------------------------------
- #==============================================================================
- # ■ Scene_Shop
- #------------------------------------------------------------------------------
- # 处理商店画面的类。
- #==============================================================================
- class Scene_Shop
- #--------------------------------------------------------------------------
- # ● 主处理
- #--------------------------------------------------------------------------
- # --------------------
- # 衝突可能
- def main
- # 生成帮助窗口
- # -------------------
- # 修改開始
- @help_window = Window_Help.new#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- # 生成指令窗口
- @command_window = Window_ShopCommand.new
- # 生成金钱窗口
- @gold_window = Window_Gold.new
- @gold_window.x = 480
- # -------------------
- # 修改開始
- @gold_window.y = 64-64#★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- # 生成时间窗口
- # -------------------
- # 修改開始
- @dummy_window = Window_Base.new(0, 128-64, 640, 352+64)#★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- # 生成购买窗口
- @buy_window = Window_ShopBuy.new($game_temp.shop_goods)
- @buy_window.active = false
- @buy_window.visible = false
- @buy_window.help_window = @help_window
- # 生成卖出窗口
- @sell_window = Window_ShopSell.new
- @sell_window.active = false
- @sell_window.visible = false
- @sell_window.help_window = @help_window
- # 生成数量输入窗口
- @number_window = Window_ShopNumber.new
- @number_window.active = false
- @number_window.visible = false
- # 生成状态窗口
- @status_window = Window_ShopStatus.new
- @status_window.visible = false
- # 执行过渡
- Graphics.transition
- # 主循环
- loop do
- # 刷新游戏画面
- Graphics.update
- # 刷新输入信息
- Input.update
- # 刷新画面
- update
- # 如果画面切换的话就中断循环
- if $scene != self
- break
- end
- end
- # 准备过渡
- Graphics.freeze
- # 释放窗口
- @help_window.dispose
- @command_window.dispose
- @gold_window.dispose
- @dummy_window.dispose
- @buy_window.dispose
- @sell_window.dispose
- @number_window.dispose
- @status_window.dispose
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- # --------------------
- # 衝突可能
- def update
- # 刷新窗口
- @help_window.update
- @command_window.update
- @gold_window.update
- @dummy_window.update
- @buy_window.update
- @sell_window.update
- @number_window.update
- @status_window.update
- # 指令窗口激活的情况下: 调用 update_command
- if @command_window.active
- # -------------------
- # 修改開始
- @help_window.visible=false#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- update_command
- return
- end
- # 购买窗口激活的情况下: 调用 update_buy
- if @buy_window.active
- # -------------------
- # 修改開始
- @help_window.visible=true#★★★★★★★★★★★★★★★★
- if @buy_window.item==nil#★★★★★★★★★★★★★★★★
- @help_window.visible=false#★★★★★★★★★★★★★★★★
- end #★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- update_buy
- return
- end
- # 卖出窗口激活的情况下: 调用 update_sell
- if @sell_window.active
- # -------------------
- # 修改開始
- @help_window.visible=true#★★★★★★★★★★★★★★★★
- if @sell_window.item==nil#★★★★★★★★★★★★★★★★
- @help_window.visible=false#★★★★★★★★★★★★★★★★
- end #★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- update_sell
- return
- end
- # 个数输入窗口激活的情况下: 调用 update_number
- if @number_window.active
- # -------------------
- # 修改開始
- @help_window.visible=false#★★★★★★★★★★★★★★★★
- # 修改終了
- # -------------------
- update_number
- return
- end
- end
- end
复制代码 ’’ |
评分
-
查看全部评分
|